CMS_small.gif HEPHY_LOGO.gif

The Sensor Grading Tool

AUTHOR: Edmund WIDL    CONTACT: Edmund.Erich.Widl@cern.ch




Contents:

Overview

Installation

Input Lists

Additional Input Data

Using the Grading Tool

Select List-Button

Select Additonal Data-Button

Process List-Button

Save Data-Button

Quit-Button



Overview

This tool is an easy to use program that enables the user to get the gradings for a list of sensors. The analysis is based on sensor specific properties, i.e., specific for one type of sensor, that are acquired directly from the CMS Tracker DataBase. This means that each sensor's grading depends on the typical characteristics of its kind, like the average conductance for depleted sensors.
The program is written in standard C++ and uses ROOT for the graphical user interface and the communication with the database as well as the (almost standard) libxml2-library for parsing the data transmitted from the database. Although the program was extensively tested and debugged the author is thankful for every comment or reported bug.

back to top of page

Installation

  1. First make sure that both the libxml2 library (version 2.4.19 recommended) and ROOT (at least version 3.05/05 recommended) are installed and running. This can be checked by typing:
    prompt% xml2-config --version
    prompt% root-config --version
  2. Download the source code: sensor_grading.tar.gz

  3. Unpack the file:
    prompt% gzip -dc sensor_grading.tar.gz | tar -xf -
  4. Change the directory (X_X stands for the current version):
    prompt% cd sensor_grading_vX_X
  5. Compile the source code:
    prompt% make
  6. To run the application type:
    prompt% ./sensor_grading

back to top of page

Input Lists

The program that performs the grading processes simple ASCII-files that contain lists of sensors. All sensors should be of the same type! These input lists have to be of the form:
#COMMENT (MAXIMUM 100 CHARACTERS)
OBJECT_ID
OBJECT_ID
OBJECT_ID

...

OBJECT_ID
OBJECT_ID
#ANOTHER COMMENT
OBJECT_ID
OBJECT_ID
OBJECT_ID

...
Comments have to start with a hash (#) and must no be longer than 100 characters. Avoid blanks before the object-IDs!

Via the PERL-application relay.pl one can easily create such lists with little effort. To create a list that contains for example the object-IDs of W7A-sensors (having object-IDs like 302113xxxxxxxx) in ascending order that arrived at Lyon with several transfers (given by their TRANSFER_IDs) one needs just a simple SQL-query:
example.sql:
<select db="prod">
OBJECT_ID AS "#OBJECT_ID"
FROM
HISTORY
WHERE
( TRANSFER_ID = 30299990001436 OR
TRANSFER_ID = 30299990001433 OR
TRANSFER_ID = 30299990001422 OR
TRANSFER_ID = 30299991000225 OR
TRANSFER_ID = 30299991000222 ) AND
CENTER = 'LYON' AND
OBJECT_ID LIKE '302113%'
ORDER BY OBJECT_ID ASC
</select>
To get finally the list as ASCII-file called example.dat one has to enter at the prompt:
prompt% ./relay.pl example.sql > example.dat
For testing the functionality of the programm (see below) a input-list called test.dat in the sub-directory data can be used which was created as described above with a similar SQL-query (the query-file can also be found in the sub-directory queries and is called test.sql).

back to top of page

Additional Input Data

The tool also allows to process IV-curces that are supplied by the user (for example for remeasured sensors). To do so, the additional data has to be included in a file the following way:
OBJECT_ID
CURRENT MEASUREMENTS
VOLTAGES
OBJECT_ID
CURRENT MEASUREMENTS
VOLTAGES
...
The data for each current measurement and the according voltages have to be in a single line and the single measurement points have to be seperated by blanks only.

The following example shows how a file containing additional IV-curves for two sensors would look like.

extra_data.dat:
30210922302909
0.0 80.0 84.0 88.0 92.0 96.0 97.0 98.0 99.0 99.2 99.4 99.6 99.8 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
0.0 20.0 40.0 60.0 80.0 100.0 120.0 140.0 160.0 180.0 200.0 220.0 240.0 260.0 280.0 300.0 320.0 340.0 360.0 380.0 400.0 420.0 450.0
30210922302902
0.0 800.0 840.0 880.0 920.0 960.0 970.0 980.0 990.0 99.2 99.4 99.6 99.8 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0 1000.0
0.0 200.0 400.0 600.0 800.0 1000.0 1200.0 1400.0 1600.0 1800.0 2000.0 2200.0 2400.0 2600.0 2800.0 3000.0 3200.0 3400.0 3600.0 3800.0 4000.0 9000.0 9500.0
Attention: Sensors for which additional data is available will not be contained automatically in the final output. This data will primarily be used instead of the database-data for defining the cuts. If these sensors shall show up in the final grading lists their object-IDs have to be included in the input list as well!

back to top of page

Using the Grading Tool

GRADING_GUI_PANEL.gif

Select List-Button

Clicking this button opens a file-dialog window from where an input-list can be selected.

Select Additional Data-Button

Clicking this button opens a file-dialog window from where a file containing additional IV-curves can be selected. Every time such data shall be included to the analysis it has to be selected via this button before clicking the Process List-Button.

Process List-Button

Clicking on this button after the selection of an input-list starts the grading procedure. This should take about some 20-30 seconds but not more than one minute if everything is working correctly (the important factor is the time needed by the DB to return the data).

After the grading-procedure is finished the IV-curves of all investigated sensors are plotted and the object-IDs are shown for each category (Grade A, Grade A+ and Grade B) on seperate tabs. Clicking on their labels will show the corresponding plot and list. Right-clicking on a single IV-curve will cause a menu to appear that allows to manipulate different properties (like the drawing-colour) and, more important, also shows the corresponding object-ID.

Save Data-Button

When the grading-procedure is finished all plots and lists can be stored. The program will create automatically a sub-directory with the same name as the input-file except that the extension is omitted. If the input-file is for instance called example.dat the sub-directory will be named example.

In this sub-directory three lists named like gradeX.txt (one for each grading) are stored containing following information about each sensor: Additionally, the corresponding plots of the IV-curves (gradeX.eps) and a file called no_grading.txt, that contains the object_IDs of all sensors which for any reason could not be graded (either corrupted or missing data), are stored in this sub-directory.

Quit-Button

Quit the program.

back to top of page