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
-
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
-
Download the source code: sensor_grading.tar.gz
-
Unpack the file:
prompt% gzip -dc sensor_grading.tar.gz | tar -xf -
-
Change the directory (X_X stands for the current version):
prompt% cd sensor_grading_vX_X
-
Compile the source code:
prompt% make
-
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
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