1 |
|
2 |
The Calorimeter LEVEL2 package v. 3.07 README |
3 |
Emiliano Mocchiutti |
4 |
21st July 2005 |
5 |
|
6 |
|
7 |
This is the ROOT function written to calibrate and process the calorimeter data creating a final level output that can be used in the data analysis. The output format (ROOT or PAW) can be chosen at running time tuning an input variable. The program connects to the Trieste MySQL server which stores the calibration tables for the calorimeter. Before using this program user must process data with the tracker ground software version 1.00. The program is able to handle both tracker ntuples and rootples, checking first for rootples and then for ntuples. |
8 |
|
9 |
WARNING1: The alignment between calorimeter and tracker is still temporary even if a good approximation is used. |
10 |
|
11 |
WARNING2: Calorimeter self-trigger events are not processed with this software version. |
12 |
|
13 |
============================================================================== |
14 |
INDEX |
15 |
|
16 |
1) INSTALLATION |
17 |
2) USER GUIDE |
18 |
3) OUTPUT FORMAT |
19 |
4) BRIEF DESCRIPTION OF VARIABLES |
20 |
5) KNOWN BUGS |
21 |
|
22 |
============================================================================== |
23 |
1) INSTALLATION |
24 |
============================================================================== |
25 |
|
26 |
The software has been rearranged to satisfy the PAMELA repository requirements. |
27 |
|
28 |
This CaloLEVEL2.c program requires: |
29 |
|
30 |
- the correct set up of the PAMELA environment; |
31 |
|
32 |
- calorimeter COMMON package; |
33 |
|
34 |
- root2paw package; |
35 |
|
36 |
- tracker ground software v. 1.00; |
37 |
|
38 |
- a working ROOT version; |
39 |
|
40 |
- a working YODA version; |
41 |
|
42 |
- the MySQL client package installed; |
43 |
|
44 |
|
45 |
To compile the libraries you will also need: |
46 |
|
47 |
- YODA source; |
48 |
|
49 |
- GCC with Fortran support; |
50 |
|
51 |
- CERN libraries. |
52 |
|
53 |
- MySQL development package installed (check you have also installed the mysql_config program). |
54 |
|
55 |
This software has been successfully compiled and tested with the following programs: |
56 |
|
57 |
- ROOT 4.03/02 9 February 2005 |
58 |
|
59 |
- YODA 4_400 |
60 |
|
61 |
- CERN 2002 |
62 |
|
63 |
- CERN 2003 |
64 |
|
65 |
- CERN 2004 |
66 |
|
67 |
- gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-49) |
68 |
|
69 |
- gcc (GCC) 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk) |
70 |
|
71 |
- mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i686) |
72 |
|
73 |
Installation steps: |
74 |
|
75 |
a) download the CaloLEVEL2 software (plus the calorimeter common package software if not already installed). You can find the software on the afs repository: |
76 |
|
77 |
/afs/ba.infn.it/user/pamela |
78 |
|
79 |
or you can download it from the WEB, in this case go to: |
80 |
|
81 |
http://pcba28.ba.infn.it/cgi-bin/cvsweb.cgi |
82 |
|
83 |
from the menu “CVS Root” choose “PAMELA repository”, click on “calo/LEVEL2” and click on “Download this directory in tarball or zip archive” depending on your preferences. |
84 |
|
85 |
b) once you have downloaded your package unpack it somewhere. |
86 |
|
87 |
c) enter the “LEVEL2” directory, you will find these file and directories: |
88 |
|
89 |
doc/ macros/ inc/ src/ bin/ lib/ Makefile calib/ data/ |
90 |
|
91 |
d) check you have installed the calorimeter common package and the root2paw package (the latest one is needed to retrieve the tracker level2 informations). |
92 |
|
93 |
e) make sure you have set up your PAMELA environmental variables and directories (if you have installed the calocommon package you should already have done this). To do so, choose a path where you want to install the PAMELA software (let's say /mydirectory/pamela/ ) and create the following directories: bin , lib , src , inc , macros , docs , calib . |
94 |
Then edit your login configuration file (people using bash shell will edit $HOME/.bashrc , people using tcsh will edit $HOME/.tcshrc and so on), and add the following environmental variables: |
95 |
|
96 |
export PAM_BIN=/mydirectory/pamela/bin |
97 |
export PAM_LIB=/mydirectory/pamela/lib |
98 |
export PAM_SRC=/mydirectory/pamela/src |
99 |
export PAM_INC=/mydirectory/pamela/inc |
100 |
export PAM_MACROS=/mydirectory/pamela/macros |
101 |
export PAM_DOC=/mydirectory/pamela/docs |
102 |
export PAM_CALIB=/mydirectory/pamela/calib |
103 |
export PAM_YODASRC=/mydirectory/pamela/yoda/yodaX_YYY/ |
104 |
export PAM_YODALIB=/mydirectory/pamela/yoda/lib/ |
105 |
|
106 |
The last two variables determine where is the source of YODA and the path to the installed YODA libraries. |
107 |
I also suggest to add the PAMELA bin directory to your default bin path but this is not essential: |
108 |
|
109 |
export PATH=$PATH:$PAM_BIN |
110 |
|
111 |
People using tcsh will use “setenv” instead of “export” and will put a space at the place of the sign “equal”. This set up has to be done only once for all the packages. |
112 |
|
113 |
f) cd to the LEVEL2 directory and give: |
114 |
|
115 |
make all install |
116 |
|
117 |
the program will check the system and create the needed libraries for the CaloLEVEL2 program; then it will install the CaloLEVEL2 libraries and macros in the paths you have given. |
118 |
If you are upgrading an older version, use “make all forceinstall” to force the installation of latest programs or “make all upgrade” to force the installation and to delete the old libraries. |
119 |
|
120 |
============================================================================== |
121 |
2) USER GUIDE |
122 |
============================================================================== |
123 |
|
124 |
The macro CaloLEVEL2.c has been compiled to improve the processing velocity. To load the compiled macro follow this step: start the ROOT session... |
125 |
|
126 |
bash> root |
127 |
|
128 |
...load the macro... |
129 |
|
130 |
root[0] .x CaloLEVEL2.C |
131 |
|
132 |
Notice that this step is different respect to the past. You must use “.x” instead of “.L” and the program name now is “CaloLEVEL2.C” whit “.C” (upper C) instead of “.c”. You can still run the program loading and interpreting the macro the same way it was done with the old software but this way the processing will be about 30 times slower. |
133 |
|
134 |
To run the program once the compiled macro is loaded you can just give: |
135 |
|
136 |
root [1] CaloLEVEL2("/mypath/to/filesfromyoda/dw_050518_00100/"); |
137 |
|
138 |
Calling CaloLEVEL2 this way we are assuming that: |
139 |
1) we have already processed the tracker data with tracker software version 1.00 and we have put the tracker level2 output in the YODA structure or we have processed the tracker level2 ntuple with GroundDataConver (root2paw package) and we have produced a rootple stored in the YODA structure; |
140 |
2) we want to store the output in the YODA structure; |
141 |
3) the calorimeter level2 output does not exist; |
142 |
4) we want as output a rootple. |
143 |
For further informations read below. |
144 |
|
145 |
The output will be like this: |
146 |
|
147 |
Filename will be: |
148 |
/mypath/to/filesfromyoda/dw_050518_00100/dw_050518_00100.Physics.Level2.Calorimeter.Event.root |
149 |
|
150 |
Not in FORCE mode, check the existence of LEVEL2 data: |
151 |
|
152 |
Error in <TFile::TFile>: file |
153 |
/mypath/to/filesfromyoda/dw_050518_00100/dw_050518_00100.Physics.Level2.Calorimeter.Event.root does not exists. |
154 |
|
155 |
OK, I will create it! |
156 |
|
157 |
Using calorimeter calibration file: |
158 |
/mydirectory/pamela/calib/CaloADC2MIP.root |
159 |
|
160 |
Try the connection to the MySQL database in Trieste... |
161 |
...OK, the connection is fine! |
162 |
|
163 |
Using database "romemuons", table "calocalib_dw_050518_001" |
164 |
|
165 |
TRACKER: loading the magnetic field maps... |
166 |
|
167 |
|
168 |
Opening first map : -/mydirectory/pamela/calib/bfield_n3.rz- |
169 |
|
170 |
|
171 |
Opening second map : -/mydirectory/pamela/calib/bfield_n4.rz- |
172 |
|
173 |
|
174 |
...done! |
175 |
|
176 |
Check the existence of tracker data... |
177 |
...found tracker level2 ROOTPLE: |
178 |
/mypath/to/filesfromyoda/dw_050518_00100//Physics/Level2/dw_050518_00900.Physics.Level2.Tracker.Event.root |
179 |
|
180 |
Processed events: |
181 |
|
182 |
** SECTION 0 ** |
183 |
- event at time 154802. From time 114823 to time 356400 |
184 |
use calibration at time 114823, file |
185 |
/mypath/to/filesfromyoda/dw_050518_00100/ |
186 |
|
187 |
** SECTION 1 ** |
188 |
- event at time 154802. From time 114876 to time 356400 |
189 |
use calibration at time 114876, file |
190 |
/mypath/to/filesfromyoda/dw_050518_00100/ |
191 |
|
192 |
** SECTION 2 ** |
193 |
- event at time 154802. From time 114929 to time 356400 |
194 |
use calibration at time 114929, file |
195 |
/mypath/to/filesfromyoda/dw_050518_00100/ |
196 |
|
197 |
** SECTION 3 ** |
198 |
- event at time 154802. From time 114989 to time 356400 |
199 |
use calibration at time 114989, file |
200 |
/mypath/to/filesfromyoda/dw_050518_00100/ |
201 |
|
202 |
|
203 |
Finished, exiting... |
204 |
|
205 |
This is the standard way to call CaloLEVEL2. Read carefully the output to check for any WARNING. With the standard call any ERROR will stop the program. By default the program will create a rootple called (as in the example) |
206 |
dw_050518_00100.Physics.Level2.Calorimeter.Event.root |
207 |
in the directory |
208 |
"/mypath/to/filesfromyoda/dw_050518_00100/Physics/Level2/". |
209 |
By default the program will try to connect to the MySQL database server in Trieste (username and password can be found in the COMMON/src/readmy.c file, package COMMON). If any problem is found in connecting the program will stop running. |
210 |
|
211 |
WARNING: the program will query the database only to know the calibration it has to use in processing files and will not retrieve any calibration data from the database. This means that you must provide the unpacked files with calibration data. The program will look by default for unpacked data in the same directory of the input file and with the same YODA level of the input file. For example if I want to process on gundam in Rome the file “/mypath/to/filesfromyoda/DW_050323_00103” and according to the Trieste database the calorimeter calibrations for that file can be found in the file “DW_050322_009” then I must have both these files unpacked in Rome with the same level. Hence the YODA directory for the calibration file must be “/mypath/to/filesfromyoda/DW_050322_00903/” (ending in “03”!). The Trieste database has been built with the files listed in the “List of PAMELA acquisition taken in night shifts in Tor Vergata Clean room” database, so if you have unpacked all that files you should have no problems. The program will give an error if it will not be able to find the correct calibration file. |
212 |
|
213 |
To check the connection to MySQL database and the calibration files needed you can use the script “CaloMySQLFINDCALIBS” that can be found in the macro CaloFINDCALIBS.c (version greater or equal than 2.01). |
214 |
|
215 |
The number of queries to the database depends on the number of calibrations needed to process the file and not on the number of events of the file. There will be four queries for any calibration needed, independently on the number of events. |
216 |
|
217 |
The possible input options are the following: |
218 |
|
219 |
short int CaloLEVEL2(TString filename, Tstring TrackerDir=””, TString outDir ="", TString Framework = "root", Int_t FORCE = 0) |
220 |
|
221 |
|
222 |
- filename : is the path to the YODA unpacked data directory; |
223 |
|
224 |
- TrackerDir: the path to the directory which contains tracker level2 |
225 |
data (ntuples or rootples). NOTICE: the program will |
226 |
search for ntuples which name is of the form |
227 |
“DW_YYMMDD_NNN_level2.rz” |
228 |
and for rootples which name is of the form |
229 |
“DW_YYMMDD_NNNnn.Physics.Level2.Tracker.Event.root” |
230 |
If TrackerDir is left empty (default) the program will |
231 |
search for ntuples or rootples in the YODA structure, |
232 |
that is in the directory: |
233 |
/mypath/to/filesfromyoda/DW_ YYMMDD_NNNnn/Physics/Level2/ |
234 |
|
235 |
- outDir : is the output directory, the directory where you want |
236 |
to store the calorimeter level2 data. If not given |
237 |
the program will create DW_000000_00000/Physics/Level2 |
238 |
as output directory. The filename will always be of the |
239 |
form |
240 |
|
241 |
DW_000000_00000.Physics.Level2.Calorimeter.Event.{root/rz} |
242 |
|
243 |
|
244 |
- Framework : this flag allows the user to choose as output a rootple |
245 |
("root", default value) or a ntuple ("paw"); |
246 |
|
247 |
- FORCE : when set to 0 the program will check if the output file |
248 |
exists. If so it will give a warning and it will exit |
249 |
without overriding the existing file. Set this flag to 1 |
250 |
to force the processing of data; in this case the old |
251 |
file will be lost. In FORCE mode the program will try to |
252 |
recover any error and to go on processing the file. Check |
253 |
carefully the output for any error! |
254 |
|
255 |
============================================================================== |
256 |
3) OUTPUT FORMAT |
257 |
============================================================================== |
258 |
|
259 |
The generated rootple has the following format: |
260 |
|
261 |
****************************************************************************** |
262 |
*Tree :CaloLevel2: PAMELA Level2 calorimeter data * |
263 |
*Entries : 140 : Total = 156014 bytes File Size = 26722 * |
264 |
* : : Tree compression factor = 1.00 * |
265 |
****************************************************************************** |
266 |
*Br 0 :OBT : OBT/I * |
267 |
*Entries : 140 : Total Size= 1186 bytes One basket in memory * |
268 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
269 |
*............................................................................* |
270 |
*Br 1 :pkt_num : pkt_num/I * |
271 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
272 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
273 |
*............................................................................* |
274 |
*Br 2 :pro_num : pro_num/I * |
275 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
276 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
277 |
*............................................................................* |
278 |
*Br 3 :trigty : trigty/F * |
279 |
*Entries : 140 : Total Size= 1204 bytes One basket in memory * |
280 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
281 |
*............................................................................* |
282 |
*Br 4 :good : good/I * |
283 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
284 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
285 |
*............................................................................* |
286 |
*Br 5 :perr : perr[4]/I * |
287 |
*Entries : 140 : Total Size= 2878 bytes One basket in memory * |
288 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
289 |
*............................................................................* |
290 |
*Br 6 :swerr : swerr[4]/I * |
291 |
*Entries : 140 : Total Size= 2884 bytes One basket in memory * |
292 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
293 |
*............................................................................* |
294 |
*Br 7 :crc : crc[4]/I * |
295 |
*Entries : 140 : Total Size= 2872 bytes One basket in memory * |
296 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
297 |
*............................................................................* |
298 |
*Br 8 :nstrip : nstrip/F * |
299 |
*Entries : 140 : Total Size= 1204 bytes One basket in memory * |
300 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
301 |
*............................................................................* |
302 |
*Br 9 :qtot : qtot/F * |
303 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
304 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
305 |
*............................................................................* |
306 |
*Br 10 :ncore : ncore/F * |
307 |
*Entries : 140 : Total Size= 1198 bytes One basket in memory * |
308 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
309 |
*............................................................................* |
310 |
*Br 11 :qcore : qcore/F * |
311 |
*Entries : 140 : Total Size= 1198 bytes One basket in memory * |
312 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
313 |
*............................................................................* |
314 |
*Br 12 :impx : impx/F * |
315 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
316 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
317 |
*............................................................................* |
318 |
*Br 13 :impy : impy/F * |
319 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
320 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
321 |
*............................................................................* |
322 |
*Br 14 :tanx : tanx/F * |
323 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
324 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
325 |
*............................................................................* |
326 |
*Br 15 :tany : tany/F * |
327 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
328 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
329 |
*............................................................................* |
330 |
*Br 16 :nint : nint/F * |
331 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
332 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
333 |
*............................................................................* |
334 |
*Br 17 :ncyl : ncyl/F * |
335 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
336 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
337 |
*............................................................................* |
338 |
*Br 18 :qcyl : qcyl/F * |
339 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
340 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
341 |
*............................................................................* |
342 |
*Br 19 :qtrack : qtrack/F * |
343 |
*Entries : 140 : Total Size= 1204 bytes One basket in memory * |
344 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
345 |
*............................................................................* |
346 |
*Br 20 :qmax : qmax/F * |
347 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
348 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
349 |
*............................................................................* |
350 |
*Br 21 :nx22 : nx22/F * |
351 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
352 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
353 |
*............................................................................* |
354 |
*Br 22 :qx22 : qx22/F * |
355 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
356 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
357 |
*............................................................................* |
358 |
*Br 23 :qq : qq[4]/F * |
359 |
*Entries : 140 : Total Size= 2866 bytes One basket in memory * |
360 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
361 |
*............................................................................* |
362 |
*Br 24 :qtrackx : qtrackx/F * |
363 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
364 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
365 |
*............................................................................* |
366 |
*Br 25 :qtracky : qtracky/F * |
367 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
368 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
369 |
*............................................................................* |
370 |
*Br 26 :dxtrack : dxtrack/F * |
371 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
372 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
373 |
*............................................................................* |
374 |
*Br 27 :dytrack : dytrack/F * |
375 |
*Entries : 140 : Total Size= 1210 bytes One basket in memory * |
376 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
377 |
*............................................................................* |
378 |
*Br 28 :qlast : qlast/F * |
379 |
*Entries : 140 : Total Size= 1198 bytes One basket in memory * |
380 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
381 |
*............................................................................* |
382 |
*Br 29 :nlast : nlast/F * |
383 |
*Entries : 140 : Total Size= 1198 bytes One basket in memory * |
384 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
385 |
*............................................................................* |
386 |
*Br 30 :qpre : qpre/F * |
387 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
388 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
389 |
*............................................................................* |
390 |
*Br 31 :npre : npre/F * |
391 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
392 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
393 |
*............................................................................* |
394 |
*Br 32 :qpresh : qpresh/F * |
395 |
*Entries : 140 : Total Size= 1204 bytes One basket in memory * |
396 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
397 |
*............................................................................* |
398 |
*Br 33 :npresh : npresh/F * |
399 |
*Entries : 140 : Total Size= 1204 bytes One basket in memory * |
400 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
401 |
*............................................................................* |
402 |
*Br 34 :qlow : qlow/F * |
403 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
404 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
405 |
*............................................................................* |
406 |
*Br 35 :nlow : nlow/F * |
407 |
*Entries : 140 : Total Size= 1192 bytes One basket in memory * |
408 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
409 |
*............................................................................* |
410 |
*Br 36 :qtr : qtr/F * |
411 |
*Entries : 140 : Total Size= 1186 bytes One basket in memory * |
412 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
413 |
*............................................................................* |
414 |
*Br 37 :ntr : ntr/F * |
415 |
*Entries : 140 : Total Size= 1186 bytes One basket in memory * |
416 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
417 |
*............................................................................* |
418 |
*Br 38 :cibar : cibar[22][2]/I * |
419 |
*Entries : 140 : Total Size= 25292 bytes One basket in memory * |
420 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
421 |
*............................................................................* |
422 |
*Br 39 :tibar : tibar[22][2]/I * |
423 |
*Entries : 140 : Total Size= 25292 bytes One basket in memory * |
424 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
425 |
*............................................................................* |
426 |
*Br 40 :cbar : cbar[22][2]/F * |
427 |
*Entries : 140 : Total Size= 25286 bytes One basket in memory * |
428 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
429 |
*............................................................................* |
430 |
*Br 41 :tbar : tbar[22][2]/F * |
431 |
*Entries : 140 : Total Size= 25286 bytes One basket in memory * |
432 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
433 |
*............................................................................* |
434 |
*Br 42 :planetot : planetot/F * |
435 |
*Entries : 140 : Total Size= 1216 bytes One basket in memory * |
436 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
437 |
*............................................................................* |
438 |
*Br 43 :qmean : qmean/F * |
439 |
*Entries : 140 : Total Size= 1198 bytes One basket in memory * |
440 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
441 |
*............................................................................* |
442 |
|
443 |
|
444 |
the class is CalorimeterLevel2 (defined in CaloFunctions.h) |
445 |
the tree name is "CaloLevel2" |
446 |
branch name is "Event" |
447 |
|
448 |
The rootple contains also another branch with one entry only: |
449 |
|
450 |
****************************************************************************** |
451 |
*Tree :Software : Software used to generate data * |
452 |
*Entries : 1 : Total = 1663 bytes File Size = 534 * |
453 |
* : : Tree compression factor = 1.00 * |
454 |
****************************************************************************** |
455 |
*Br 0 :swcode : swcode/I * |
456 |
*Entries : 1 : Total Size= 644 bytes One basket in memory * |
457 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
458 |
*............................................................................* |
459 |
*Br 1 :swtrkcode : swtrkcode/I * |
460 |
*Entries : 1 : Total Size= 662 bytes One basket in memory * |
461 |
*Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * |
462 |
*............................................................................* |
463 |
|
464 |
the tree name is “Software” |
465 |
|
466 |
swcode is the software version of the calorimeter LEVEL2 program which produced the rootple. It is an integer coded this way: swcode = version + 100*subversion + 10000*subsubversion + ... |
467 |
For example, software version 2.09 has swcode = 902 . |
468 |
|
469 |
swtrkcode is the same as above but for tracker code used to produce track and rigidity informations used by the calorimeter LEVEL2 program. |
470 |
|
471 |
The ntuple format is: |
472 |
|
473 |
****************************************************************** |
474 |
* Ntuple ID = 1 Entries = 140 Pamela Calo |
475 |
****************************************************************** |
476 |
* Var numb * Type * Packing * Range * Block * Name * |
477 |
****************************************************************** |
478 |
* 1 * I*4 * * * CALO * OBT |
479 |
* 2 * I*4 * * * CALO * pkt_num |
480 |
* 3 * I*4 * * * CALO * pro_num |
481 |
* 4 * R*4 * * * CALO * trigty |
482 |
* 5 * I*4 * * * CALO * good |
483 |
* 6 * I*4 * * * CALO * perr(4) |
484 |
* 7 * I*4 * * * CALO * swerr(4) |
485 |
* 8 * I*4 * * * CALO * crc(4) |
486 |
* 9 * R*4 * * * CALO * nstrip |
487 |
* 10 * R*4 * * * CALO * qtot |
488 |
* 11 * R*4 * * * CALO * ncore |
489 |
* 12 * R*4 * * * CALO * qcore |
490 |
* 13 * R*4 * * * CALO * impx |
491 |
* 14 * R*4 * * * CALO * impy |
492 |
* 15 * R*4 * * * CALO * tanx |
493 |
* 16 * R*4 * * * CALO * tany |
494 |
* 17 * R*4 * * * CALO * nint |
495 |
* 18 * R*4 * * * CALO * ncyl |
496 |
* 19 * R*4 * * * CALO * qcyl |
497 |
* 20 * R*4 * * * CALO * qtrack |
498 |
* 21 * R*4 * * * CALO * qmax |
499 |
* 22 * R*4 * * * CALO * nx22 |
500 |
* 23 * R*4 * * * CALO * qx22 |
501 |
* 24 * R*4 * * * CALO * qq(4) |
502 |
* 25 * R*4 * * * CALO * qtrackx |
503 |
* 26 * R*4 * * * CALO * qtracky |
504 |
* 27 * R*4 * * * CALO * dxtrack |
505 |
* 28 * R*4 * * * CALO * dytrack |
506 |
* 29 * R*4 * * * CALO * qlast |
507 |
* 30 * R*4 * * * CALO * nlast |
508 |
* 31 * R*4 * * * CALO * qpre |
509 |
* 32 * R*4 * * * CALO * npre |
510 |
* 33 * R*4 * * * CALO * qpresh |
511 |
* 34 * R*4 * * * CALO * npresh |
512 |
* 35 * R*4 * * * CALO * qlow |
513 |
* 36 * R*4 * * * CALO * nlow |
514 |
* 37 * R*4 * * * CALO * qtr |
515 |
* 38 * R*4 * * * CALO * ntr |
516 |
* 39 * I*4 * * * CALO * cibar(2,22) |
517 |
* 40 * I*4 * * * CALO * tibar(2,22) |
518 |
* 41 * R*4 * * * CALO * cbar(2,22) |
519 |
* 42 * R*4 * * * CALO * tbar(2,22) |
520 |
* 43 * R*4 * * * CALO * planetot |
521 |
* 44 * R*4 * * * CALO * qmean |
522 |
****************************************************************** |
523 |
* Block * Entries * Unpacked * Packed * Packing Factor * |
524 |
****************************************************************** |
525 |
* CALO * 140 * 912 * 912 * 1.000 * |
526 |
* Total * --- * 912 * 912 * 1.000 * |
527 |
****************************************************************** |
528 |
* Blocks = 1 Variables = 44 Columns = 228 * |
529 |
****************************************************************** |
530 |
|
531 |
- ntuple ID is 1 |
532 |
|
533 |
- lrec is 8190 |
534 |
|
535 |
the ntuple file contains another ntuple ID: |
536 |
|
537 |
|
538 |
****************************************************************** |
539 |
* Ntuple ID = 2 Entries = 1 Software version |
540 |
****************************************************************** |
541 |
* Var numb * Type * Packing * Range * Block * Name * |
542 |
****************************************************************** |
543 |
* 1 * I*4 * * * VERSIONS * swcode |
544 |
* 2 * I*4 * * * VERSIONS * swtrkcode |
545 |
****************************************************************** |
546 |
* Block * Entries * Unpacked * Packed * Packing Factor * |
547 |
****************************************************************** |
548 |
* VERSIONS * 1 * 8 * 8 * 1.000 * |
549 |
* Total * --- * 8 * 8 * 1.000 * |
550 |
****************************************************************** |
551 |
* Blocks = 1 Variables = 2 Columns = 2 * |
552 |
****************************************************************** |
553 |
|
554 |
this ntuple contains software version informations (see above). |
555 |
|
556 |
|
557 |
|
558 |
|
559 |
============================================================================== |
560 |
4) BRIEF DESCRIPTION OF VARIABLES |
561 |
============================================================================== |
562 |
|
563 |
This description is partly taken from Jens Lund's PhD thesis (Appendix A2, page 126). All energies are measured in MIP. |
564 |
|
565 |
* OBT - On Board Time of the event |
566 |
|
567 |
* pkt_num - PSCU counter |
568 |
|
569 |
* pro_num - YODA event counter for the processed file |
570 |
|
571 |
* trigty - type of trigger which generated the event (taken from the trigger board information): |
572 |
trigty = 0 is a TOF trigger |
573 |
trigty = 1 is a S4/pulser trigger |
574 |
trigty = 2 is a calorimeter trigger |
575 |
|
576 |
* good – integer, true if there were no error in the event (CRC or processing errors or alarms) |
577 |
|
578 |
* perr[4] – integer, one for each section of the calorimeter, if true there was a processing error for the relative section in the selected event. |
579 |
|
580 |
* swerr[4] – integer, one for each section, if true there was an error detected by the DSP(s) of the calorimeter for the selected event. |
581 |
|
582 |
* crc[4] – integer, one for each section, if true there was a CRC error in data transmitted by the relative section in the selected event. |
583 |
|
584 |
* nstrip - the total number of strip hit. |
585 |
|
586 |
* qtot - the total measured energy in the calorimeter. |
587 |
|
588 |
* n(q)core - SUM(j=1,2)SUM(i=1,PLmax) Nhit(i,j)*i , where Nhit(i,j) is the number of hits in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view). "qcore" is similar but uses the measured energy instead of the number of strip hit. |
589 |
|
590 |
* impx(y) - the x (y) impact position on the first plane as determined by the track fitted in the calorimeter. |
591 |
|
592 |
* tanx(y) - the tangent of the angle in the x (y) direction as determined by the track fitted in the calorimeter. |
593 |
|
594 |
* nint - SUM(j=1,2)SUM(i=1,22) TH(i,j)*i , where TH(i,j) = 1 if the i-th plane of the j-th view has a cluster along (less than 4 mm away) the track with a deposited energy typical of a proton (order of one MIP), otherwise TH(i,j) = 0. |
595 |
|
596 |
* n(q)cyl - the measured energy deposited (number of strip hit) in a cylinder of radius 8 strips around the shower axis. |
597 |
|
598 |
* qtrack - the energy deposited in the strip closest to the track and the neighbouring strip on each side. |
599 |
|
600 |
* qmax - the maximum energy detected in a strip. |
601 |
|
602 |
* n(q)x22 - the number of strip hit (energy) in the last silicon plane of the calorimeter (x view number 22). |
603 |
|
604 |
* qq(4) - the energy released in the first half of each of the four calorimeter sections. |
605 |
|
606 |
* qtrackx(y) - measured energy in clusters along the track in the x(y)-view. |
607 |
|
608 |
* dx(y)track - measured energy outside the clusters along the track in the x(y)-view. |
609 |
|
610 |
* q(n)last - the same as "q(n)cyl" but only for the last four planes. |
611 |
|
612 |
* q(n)pre - the same as "q(n)cyl" but only for the first three planes. |
613 |
|
614 |
* q(n)presh - the same as "q(n)cyl" but with radius 2 strips and only in the first four planes. |
615 |
|
616 |
* q(n)low - the same as "qtot(nstrip)" but below the calculated electromagnetic shower maximum. |
617 |
|
618 |
* q(n)tr - the same as "q(n)cyl" but with radius 4 strips. |
619 |
|
620 |
* cibar(2,22) – for each view and each plane the strip traversed by the particle (or by the shower axis) according to the fit of the track performed by the calorimeter. |
621 |
|
622 |
* tibar(2,22) – the same but using the tracking information. |
623 |
|
624 |
* cbar(2,22) – for each view and each plane the position in millimeters traversed by the particle (or by the shower axis) according to the fit of the track performed by the calorimeter. |
625 |
|
626 |
* tbar(2,22) – the same but using the tracking information. |
627 |
|
628 |
* planetot – number of planes used to calculate the energy truncated mean “qmean”. |
629 |
|
630 |
* qmean - the energy truncated mean that is the average energy deposit for the five planes with the smaller energy deposit of the whole calorimeter. |
631 |
|
632 |
|
633 |
============================================================================== |
634 |
5) KNOWN BUGS |
635 |
============================================================================== |
636 |
|
637 |
No known bugs. Write to Emiliano (Emiliano.Mocchiutti@ts.infn.it) to report any problem. |
638 |
|