# Presentation: 091627

## A proposal for improvements

- D. Menasce, M. Rovere      I.N.F.N. Milano-Bicocca

## Introduction

- A PROPOSAL FOR GUI IMPROVEMENTS

**Introduction**

- The CMS Pixel detector is properly initialized and eventually calibrated using a (potentially) large set of configuration files. Currently there is no room in POS to manage timestamp and comment of either a KOC or a global key, with the result that it’s up to the user to know when and for which purpose a specific configuration or a version of a KOC had been created (these information are not currently recorded in the file-based repository).
- This is bound to create confusion and ambiguities over time, as more and more configurations (particularly KOCs) will be added to the catalog.
- Let’s examine in detail what needs/can be done to possibly improve this scenario.
- Make room in POS to handle timestamp, comment and author name to be attached to a specific configuration (already almost in place for the DB but not for the file-based version)
- Do this for KOCs as well
- Provide Debbie with display/inspect capabilities of these fields (already in place, see demo later on)

## Introduction

- A PROPOSAL FOR GUI IMPROVEMENTS

**Introduction**

- The entry point to manage the CMS Pixel detector is the PixelSupervisor HTML page which allow users to configure the detector (see snapshot in the next page). In the currently implemented version the list of available configurations is implemented just as an (already too long) table with radio buttons labeled with the corresponding global key alias. From this list there is no way to quickly locate a specific configuration (they are not listed in alphabetical order), to sort them by creation date, to identify a particular configuration based on a comment field or by author and so on.
- We have not yet taken any significant amount of real data and the number of stored existing configurations already exceeds 80!
- I believe we have to agree upon a strategy to provide the PixelSupervisor of the capability to display the list of configurations in a useful way from the user’s perspective.
- We have already implemented such a strategy in Debbie (time-stamp, comment and author of a configuration are hardwired for the time-being, but the basic functionality is in place): later on in this presentation there will be a link to a live-demo of this functionality, see page 6.

## Current implementation

- A PROPOSAL FOR GUI IMPROVEMENTS

**Current implementation**

- This is how the PixelSupervisor currently displays the list of existing configurations: the list will inevitably grow in time and it will become difficult to remember what a particular configuration was meant to accomplish

## Proposed improvement

- A PROPOSAL FOR GUI IMPROVEMENTS

**Proposed improvement**

- To ease the choice of an appropriate configuration by the user, I propose to complement the main page of the Pixel Supervisor with a panel like the one we implemented for Debbie (shown below). It features a paged (with a server-side cache) list of configurations, each displaying the Key Number, the Creation Date, the Alias, a Comment and the name of the Author.

- Nb. Timestamp and comment fields are just hard-wired
-         fakes for the time-being, they are displayed only
-         for ad-hoc demo purposes.

## Proposed improvement

- A PROPOSAL FOR GUI IMPROVEMENTS

**Proposed improvement**

- A movie is probably better than a thousand words: I therefore encourage you to please watch the movie with a  demo of my proposal at [this location](http://hal9000.mib.infn.it/~menasce/Tutorial/ConfigurationPager/ConfigurationPager.htm). The movie can be paused and restarted at any time to suit your own pace. Once done, please come back to this presentation and continue reading the proposal.
- What is shown in the movie is a snapshot of the entry page of Debbie, where users can inspect the repository of configurations and perform various search/filter operations: this is an example of what I’m proposing to implement for the PixelSupervisor as well.
- In the following pages we discuss what still needs to be done in POS in order to make this proposal viable.

## What we probably need

- A PROPOSAL FOR GUI IMPROVEMENTS

**What we probably need**

-   Before delving into technicalities, let’s review the most common use-cases:
- A user starts a calibration and creates a brand new configuration. If this configuration has a particular meaning, he will most likely jot down a few lines of comment to qualify  the meaning of that specific configuration. Additionally, the configuration will be automatically tagged with the creation time and the name of the author.
- in order to allow for this behavior, both Debbie and the PixelSupervisor (and any other program in charge of creating configurations in the DB) must be properly equipped of an interactive widget to accept such a comment and forward it to the DB (Debbie already has provision for this, at least in part).
- A user just creates a new version of one or more kind-of-conditions: again, he would probably like to tag them with a specific comment. The problem here is what happens in two alternative circumstances:
- These new versions are not referenced by any existing configuration
- One or more of these KOC versions are referenced by one or more existing configurations: in this case, should the time-stamp of the configuration be its actual creation time, or should it instead be the time-stamp of the most recent change of one of it’s KOCs?

## Technicalities

- A PROPOSAL FOR GUI IMPROVEMENTS

**Technicalities**

- The POS interface needs to be equipped with methods to deal with time-stamps, comments and Author names. We propose to do this at least for the DB interface and not overhaul the file-based interface at all (since the latter will hardly be of any use in the future anyway).
- How to deal with the complex issue of providing a sophisticated widget has already been solved in Debbie by means of appropriate JavaScript components that can be ported to the PixelSupervisor as well with a reasonable effort.
- Once we provide the PixelSupervisor web interface with this tool, adding more sophisticated feedback features and widget becomes just a matter of man-power (driven by a prioritized list of suitably identified needs). For example, calibrations that take a long time to be performed should be able to periodically notify their progress and eventually allow users to safely and cleanly abort the procedure.
- These overhauls require expertise and man power: we are open to provide the expertise and work with the developers of online components to help them learning the required technology for an eventual implementation.

## Conclusions

- A PROPOSAL FOR GUI IMPROVEMENTS

**Conclusions**

- There is ample room to improve the way users can manage/browse the repository of Pixel Configurations: in this presentation we have shown a demo of what Debbie can already provide
- We suggest to implement a subset of these same features in the PixelSupervisor as well, or at least start a discussion whether people think this is necessary/useful.
- Should there be consensus about the need to improve the PixelSupervisor interface we are open to discussion and tutoring to port the necessary code from Debbie. We should also identify the necessary manpower and the time scale of this project.
- We should also try to adopt a common approach towards the way
-    web pages with dynamic content are built: we have lots of
-    suggestions and actual code to provide to this extent should this
-    activity be considered worthwhile.
- Please, provide feedback!