/[PAMELA software]/calo/ground/QLOOK/doc/latex/caloAnalysis.tex
ViewVC logotype

Contents of /calo/ground/QLOOK/doc/latex/caloAnalysis.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (as text) (vendor branch)
Mon Dec 5 16:12:45 2005 UTC (19 years ago) by mocchiut
Branch: MAIN, QLOOK
CVS Tags: start, v3r00, v3r01, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: application/x-tex
Imported sources

1 \documentclass[dvips,a4paper,twoside,10pt]{article}
2 \usepackage{latexsym}
3 \usepackage{graphicx}
4 \usepackage{fancyheadings}
5 \usepackage{amssymb}
6 \usepackage{epsfig}
7 \usepackage{times}
8 \usepackage{float}
9 \usepackage{pstricks}
10 \usepackage{pst-grad}
11 \usepackage{mathptm}
12 \usepackage{subfigure}
13 \usepackage{wrapfig}
14 \usepackage{lscape}
15 \usepackage{rotating}
16 \usepackage[english]{babel}
17
18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19 % Formattazione della pagina (v. anche copertina.tex) %
20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21 \setlength{\hoffset}{-0.5cm}
22 \setlength{\textwidth}{30pc}
23 \setlength{\textheight}{46pc}
24 \setlength{\oddsidemargin}{9.5mm}
25 \setlength{\evensidemargin}{32.5mm}
26 %
27 \setlength{\topmargin}{7mm}
28 \pagestyle{empty}
29 \renewcommand{\sectionmark}[1]%
30 {\markright{\thesection\ #1}}
31 \lhead[\fancyplain{}{\bfseries\thepage}]%
32 {\fancyplain{}{\bfseries\rightmark}}
33 \rhead[\fancyplain{}{\bfseries\leftmark}]%
34 {\fancyplain{}{\bfseries\thepage}}
35 \cfoot{}
36 \pagestyle{empty}
37 \renewcommand{\topfraction}{0.85}
38 \renewcommand{\textfraction}{0.1}
39 \renewcommand{\floatpagefraction}{0.75}
40 %
41 \fussy
42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 % Contenuti %
44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45
46 \begin{document}
47
48 %
49 % title
50 %
51 \thispagestyle{empty}
52 \title{The Calorimeter Quick--look Software}
53 \author{Emiliano Mocchiutti}
54 \maketitle
55 \begin{center}
56 \vspace{-0.6cm}(Software v. 3.00)
57 \end{center}
58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 \section*{Introduction}
60 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61
62 The aim of this document is to describe the software for the quick--look analysis of the calorimeter detector. In the next sections each program will be briefly described, it will be shown how to call it and what are the input parameters. It will follow a description of the expected output, hence it will be discussed how to recognize possible problems in the detector and some constraints to the distribution shown will be shown. The calorimeter software described here has been written in C and it is supposed to be run with ROOT using as input the YODA generated files.
63
64 The installation procedure is described in the calorimeter common package readme.
65
66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67 \section{List of quick--look functions}
68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 Two types of functions have been written for the calorimeter analysis: main functions and programs which can be called directly or from ROOT and subroutines which are used by the main functions and require input data that cannot be given by hand.
70
71 The name of main functions is composed by the word ``Calo'' followed by a uppercase name. Functions are contained in files usually of the same name and extension ``.c''. This is the list of functions with a brief description of their use:
72 \begin{description}
73 \item[CaloQLOOK] (Version 3.00) Performs a quick--look analysis of the calorimeter data. As output three canvas are drawn with informations about the calorimeter status. No calibration data are needed to run this program. Included in the automate version of quick--look.
74 \item[CaloCHKCALIB] (Version 3.00) Given a calibration it draws three canvas with the RMS, thresholds, pedestals, bad strips, variance for each strip of the calorimeter anb with a report of possible errors occurred during calibration. Included in the automate version of quick--look.
75 \end{description}
76
77 These programs included in the automate version of the PAMELA quick--look. The programs that can be used to better understand the calorimeter behaviour if in trouble or to perform a more dedicated analysis are listed and described later in this document.
78
79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
80 \section{Description of quick--look programs}
81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82 Programs must be executed from the command line or using root and loading the compiled library.
83
84 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
85 \subsection{CaloQLOOK file from\_event to\_event output\_dir figure\_format (Version 3.00)}
86 \label{ssCQL}
87 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
88 Input variables:
89 \begin{itemize}
90 \item {\it file} \\
91 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
92
93 \item {\it from\_event} = 0 \\
94 Integer, first event to be analyzed. Default value is 0 (= all the events). If different from zero and with {\it to\_event} zero the program will process only the event number {\it fromevent}.
95
96 \item {\it to\_event} = 0 \\
97 Integer, last event to be analyzed. Default value is 0 (= all the events). It can differ from zero only if {\it from\_event} is not zero.
98
99 \item {\it output\_dir} = ``''\\
100 String, path to a directory where to save the output figures. Default is empty, it will save in {\it file}.
101
102 \item {\it figure\_format} = ``ps''\\
103 Type of figures to save. Deafult are ``ps'' figures, can be any format recognized by ROOT.
104 \end{itemize}
105
106 Example of a standard call: \\
107 \texttt{bash> CaloQLOOK /home/pamela/filesfromyoda/dw\_050301\_00100/ 0 0 /tmp/ ps
108 }\\
109 \\
110 More examples:\\
111 \\
112 \texttt{CaloQLOOK /home/data/yodafiles/dw\_041126\_00400/ 146 0 /tmp/ ps}\\
113 Analyze only event number 146.\\
114 \\
115 \texttt{CaloQLOOK /home/data/yodafiles/dw\_041126\_00400/ 146 1000 /tmp/ ps }\\
116 Analyze events from 146 to 1000.\\
117 \\
118 \texttt{CaloQLOOK /home/data/yodafiles/dw\_041126\_00400/ 69 0 \\ /home/myhome/myyodafigures/ ps}\\
119 Analyze event number 69 and put figures in the directory ``/home/myhome/myyodafigures/''.\\
120 \\
121 \texttt{CaloQLOOK /home/data/yodafiles/dw\_041126\_00400/ 0 0 \\/home/myhome/myyodafigures/ eps}\\
122 Analyze all events and put ``eps'' figures in the directory ``/home/myhome/myyodafigures/''.\\
123 \\
124 The output is reported in three canvas which have as title ``Calorimeter\_Detector\_Report\_x/3'' with ``x'' from one to three.
125 \begin{description}
126 \item[Calorimeter\_Detector\_Report\_1/3]:\\
127 This canvas is divided into two main zone, left and right. An example of this canvas is shown in figure \ref{cQL1}.
128
129 {\large FIGURE \ref{cQL1} -- RIGHT:} on the right there could be one or two panels depending on the acquisition mode of the calorimeter. In the case data were acquired only in COMPRESS or RAW mode one panel will be shown reporting in a histogram the number of strip hit. In this case a strip is considered hit if its value is not zero, hence in RAW mode there must be a delta function centered on the number of working strips; in the case of COMPRESS mode there must be a distribution which average is the mean number of strips above the DSP threshold. In the case of FULL mode or in any case in which there is a mixture of acquisition modes two panels will be shown, in the upper one there will be the COMPRESS mode distribution while in the lower one the RAW mode distribution will be shown. If there is no cosmic ray trigger the mean of the COMPRESS mode must be of about 20 in the case of the full working calorimeter, with a RMS of about 8. In the case of ground muons there should be a distribution centered at about 60 plus a distribution of pulser events at about 20. If everything is working correctly the mean of RAW mode must be 4223 (one strip died during integration in Rome) and no events must be out of the delta.
130
131 {\large FIGURE \ref{cQL1} -- LEFT:} on the left is shown, if no errors occurred, the counter coming from the calorimeter section YE ({\it calevnum(2)})versus a counter in YODA ({\it iev}). In the case of RAW mode there is no DSP information, hence no figure. In FULL and COMPRESS mode a linear dependence must appear between the two variables. Notice that in case of mixed acquisition the line could start at iev greater than zero. \\
132 The program check also the counters coming from the other three sections. If any difference between the four counters is found instead of the single graph just discussed above four figures are drawn. From lower right clockwise they represent: the counter coming from the calorimeter section YE versus a counter in YODA, the absolute difference between counters from section XE and YO, the absolute difference between counters from section XE and XO and the absolute difference between counters from section YE and YO.\\
133 Another check performed by CaloQLOOK is the correct corrispondence of RAW and COMPRESS data in the case of FULL acquisition. If any difference is found in the left side of the canvas only a figure is shown with the difference between RAW and COMPRESS data instead of counter figure(s).\\
134 Only the calevnum(2)\%iev figure must be shown in standard conditions and at least one FULL or COMPRESS event. In case of pure RAW mode acquisition there will be written ``No calevnum infos from DSP''.
135
136
137 \item[Calorimeter\_Detector\_Report\_2/3]:\\
138 Four figures are plotted in this canvas, an example can be found in figure \ref{cQL2}. From top right clockwise:
139
140 {\large DEXYC:} the energy distribution in ADC channels in the case of COMPRESS mode acquisition. If there are no COMPRESS data this pad will remain empty. In a standard situation there must be a peak at zero and a distribution of data at about 3000/5000 ADC channels. Since there is a dead strip there will be a small peak at about 32000 ADC channels.\\
141 The distribution should not spread over more than about 3000 ADC channels, if it does there must be some noisy strips (has the calorimeter just been turned on? is the power supply working correctly?).
142
143 {\large DEXY:} the energy distribution in ADC channels in the case of RAW mode acquisition. If there are no RAW or FULL data this pad will remain empty. In a standard situation there must be a distribution of data at about 3000/5000 ADC channels. \\
144 There should not be any high signal at about 32000 ADC channels, that would mean a latch--up alarm in one or more views. Again, since there is a dead strip, it could be possible to see a small peak at about 32000 ADC channels. The distribution should not spread over more than about 3000 ADC channels, if it does there must be some noisy strips (has the calorimeter just been turned on? is the power supply working correctly?).
145
146 {\large CALSTRIPHIT:} this is the total number of strips above threshold in the case of COMPRESS mode acquisition as calculated by the DSP. In case of pure RAW data this figure will be empty. This distribution must be very similar (could be also identical) to the one presented in the report sheet number one (right, on the top).\\
147 The mean must be of about 10 in the case of the full working calorimeter, with a RMS of about 10, if there is no trigger. In the case of ground muons there should be a distribution centered at about 50/60.
148
149 {\large BASELINES:} in this figure is reported the distribution of the common noise of preamplifiers as calculated by the DSP (no information in RAW mode). In a standard situation there must be a distribution of data at about 3000/5000 ADC channels. \\
150 There must be no signal at about 32000 ADC channels, that would mean a latch--up in one or more views. The distribution should not spread over more than about 3000 ADC channels.
151
152
153 \item[Calorimeter\_Detector\_Report\_3/3]:\\
154 The last canvas summerizes the calorimeter status, checking for errors coming from the DSP and errors occurred during the unpacking of data, see figure \ref{cQL3}. The information from the four sections of the calorimeter is displayed in four different pads. The first four lines, written in green colour, show how many times the calorimeter acquired data in RAW, COMPRESS or FULL mode and how many time a preamplifier was fully transmitted. All the other lines, written in red colour, represent the possible errors occurred. The lines of errors coming from the DSP of the calorimeter start with a star to distinguish them by error coming from the YODA unpacking program. The possible errors are:
155 \begin{itemize}
156 \item ``* DSP ack error'': the DSP was not able to answer to the CPU.
157 \item ``* Temp. alarm'': temperature alarm.
158 \item ``* Latch up alarm'': latch--up alarm, one or more views have been turned off. The number of planes with latch--up is reported. Below under parenthesis there is the multiplicity of the latch--up as calculated by CaloQLOOK looking at the data. Notice that sometimes it could be a latch--up alarm that CaloQLOOK does not recognize on data or a latch--up alarm seen by CaloQLOOK but not reported by the DSP. The last case as been proved to be a ``false'' latch--up and to be the case in which all strips of one plane gave signal zero (even in RAW mode!). This seems to be due to the fact that the section had just been turned on and it needed some time to warm up.
159 \item ``* CMD length error'': the DSP received a command of an unexpected length.
160 \item ``* Execution error'': the DSP was not able to execute the command.
161 \item ``* CRC error (st. word)'': the CRC of the command received was wrong.
162 \item ``View or command not recognized'' (YODA error code = 128): YODA was not able to recognize the calorimeter view or command.
163 \item ``Missing section'' (YODA error code = 129): YODA did not find the calorimeter section.
164 % \item ``Length problems'' (YODA error code = 131): YODA was expecting a certain data length for the section but the last word was not in the expected position.
165 \item ``CRC error (data)'' (YODA error code = 132): the calculated CRC on data was not equal to the CRC transmitted by the DSP.
166 \item ``Length problems in RAW mode'' (YODA error code = 133): the length of RAW data was not 1064 words.
167 \item ``Length problems in COMPRESS mode'' (YODA error code = 134): the length given by the DSP is not compatible with COMPRESS mode data.
168 \item ``Length problems in FULL mode'' (YODA error code = 135): the length given by the DSP is not compatible with FULL mode data.
169 \item ``Acquisition mode problems'' (YODA error code = 136): the event seems to be not RAW nor COMPRESS nor FULL.
170 \item ``Problems with coding'' (YODA error code = 139): in COMPRESS or FULL mode YODA cannot distinguish the word containing the signal from the word containing the common noise (baseline).
171 \item ``Pedestal checksum wrong'' (YODA error code = 140): the table containing the pedestals which are needed to compress the data and to compute the baseline has been corrupted (a new calibration procedure is needed!).
172 \item ``Thresholds checksum wrong'' (YODA error code = 141): the table containing the thresholds which are needed to compress the data and to compute the baseline has been corrupted (a new calibration procedure is needed!).
173 \item ``Packet length is zero (yoda, input error), skipped'' (YODA error code = 142): the input buffer given to the unpacking routines of the calorimeter had length equal to zero.
174 \end{itemize}
175 Moreover other two kind of errors are coming from checks made by CaloQLOOK and can appear in this canvas:
176 \begin{itemize}
177 \item ``Calevnum jump'': in FULL or COMPRESS mode the counter of the section was incremented by two between to neighbour events. Notice that this can be due to a CRC error in the previous event.
178 \item ``Full mode, differences between raw and compress mode'': in full mode the program detected differences between the RAW and COMPRESS mode acquisition (when the compress data are above threshold).
179 \item ``WARNING! DEXYC $<$ 0'': negative compressed signal.
180 \end{itemize}
181 There should be no red errors. The number of events must be the same for the four different sections and the preamplifiers can be fully transmitted only in COMPRESS or FULL mode. In that case the number of preamplifier transmission should not exceed half of the total number of COMPRESS and FULL mode events on each section.
182
183 \end{description}
184
185 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
186 \subsection{CaloCHKCALIB file calib\_number output\_directory matra figure\_format (version 3.00)}
187 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
188 Input variables:
189 \begin{itemize}
190 \item {\it file} \\
191 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
192
193 \item {\it calib\_number} = 0 \\
194 Integer, the number of the calibration to check. The default value is zero, it will show one by one all the calibration in the input file.
195
196 \item {\it output\_directory} = ``''\\
197 String, path to a directory where to save the output figures. Default is empty, it will save in {\it file}.
198
199 \item {\it matra} = 0\\
200 When set to 1 display the colour figure of RMS values.\\
201
202 \item TString {\it figure\_format} = ``ps''\\
203 Type of figures to save. Deafult are ``ps'' figures, can be any format recognized by ROOT.
204 \end{itemize}
205
206 Example of a standard call: \\
207 \texttt{bash> CaloCHKCALIB /home/data/yodafiles/dw\_041126\_00400 0 /tmp/ 0 ps}\\
208 \\
209 More examples:\\
210 \\
211 \texttt{CaloCHKCALIB /home/data/yodafiles/dw\_041126\_00400/ 3 /tmp/ 0 ps}\\
212 Analyze calibration number 3.\\
213 \\
214 \texttt{CaloCHKCALIB /home/data/yodafiles/dw\_041126\_00400/ 0 \\/home/myhome/myyodafigures/calorms/ 0 ps}\\
215 Analyze all the calibrations and write the figures in directory\\ ``/home/myhome/myyodafigures/calorms/''.\\
216 \\
217 The output is reported in different canvas.
218
219 In canvas which has the title ``Calorimter:\_strip\_RMS'', see figure \ref{cCHS}, two panels are shown: in the upper panel the RMS of each strip of each Y--plane is drawn. The same in the lower one but for X-planes. Tiny white lines between strips are a normal visualization effect. There should be no white planes (latch--up) and no white strips (dead strips). The number of ``bad'' strips can vary and could be a maximum of about 25/30 in each panel (50/60 in total). Usually the two panels must be bluish, some green strips (about 15/20 in each panel), some red strips (about 5/10 in each panel), some black strips (about 5/10 in each panel). No violet strips should be seen.
220
221 Other figures:
222 \begin{description}
223 \item FIGURE C14:\\
224 {\it \bf Description:}\\
225 The pedestals of calorimeter strips (ADC channels) obtained during a calibration procedure.\\
226 {\it \bf NOMINAL:}\\
227 Most of values inside yellow region.\\
228 {\it \bf STANDARD situations:} \\
229 - some hits outside yellow region;\\
230 - about hundred consecutive values at zero; latch--up alarm from a plane during calibration?\\
231 ACTION: check a following calibration if problem persist contact specialist.\\
232 {\it \bf NON--STANDARD situations:} \\
233 - eleven set of hundred planes at zero. One section is missing.\\
234 - all zero.\\
235 ACTION: call specialist.\\
236
237 \item FIGURE C15:\\
238 {\it \bf Description:}\\
239 The RMS of calorimeter strips (ADC channels) obtained during a calibration procedure.\\
240 {\it \bf NOMINAL:}\\
241 Most of values inside yellow region.\\
242 {\it \bf STANDARD situations:} \\
243 - some hits outside yellow region;\\
244 - about hundred consecutive values at zero; latch--up alarm from a plane during calibration?\\
245 ACTION: check a following calibration if problem persist contact specialist.\\
246 {\it \bf NON--STANDARD situations:} \\
247 - eleven set of hundred planes at zero. One section is missing.\\
248 - all zero.\\
249 ACTION: call specialist.\\
250
251 \item FIGURE C16:\\
252 {\it \bf Description:}\\
253 Bad strips during a calibration procedure (not used in baseline calculation).\\
254 {\it \bf NOMINAL:}\\
255 No more than 50 hits.\\
256 {\it \bf NON--STANDARD situations:} \\
257 - all black.\\
258 - no hits.\\
259 ACTION: call specialist.\\
260
261 \item FIGURE C17:\\
262 {\it \bf Description:}\\
263 The thresholds (ADC channels) used during a calibration procedure.\\
264 {\it \bf NOMINAL:}\\
265 Most of values inside yellow region.\\
266 {\it \bf STANDARD situations:} \\
267 - some hits outside yellow region;\\
268 - about six consecutive values at zero or 255; latch--up alarm from a plane during calibration?\\
269 - about six consecutive values at higer values; noise on one plane during calibration?\\
270 ACTION: check a following calibration if problem persist contact specialist.\\
271 {\it \bf NON--STANDARD situations:} \\
272 - eleven set of hundred planes at zero or 255. One section is missing.\\
273 - all zero.\\
274 ACTION: call specialist.\\
275
276 \item FIGURE C18:\\
277 {\it \bf Description:}\\
278 Strip variance (ADC channels) during a calibration procedure.\\
279 {\it \bf NOMINAL:}\\
280 Most of values inside yellow region.\\
281 {\it \bf STANDARD situations:} \\
282 - some hits outside yellow region;\\
283 - about six consecutive values at zero or 255; latch--up alarm from a plane during calibration?\\
284 - about six consecutive values at higer values; noise on one plane during calibration?\\
285 ACTION: check a following calibration if problem persist contact specialist.\\
286 {\it \bf NON--STANDARD situations:} \\
287 - eleven set of hundred planes at zero or 255. One section is missing.\\
288 - all zero.\\
289 ACTION: call specialist.\\
290
291 \item FIGURE C18:\\
292 {\it \bf Description:}\\
293 Baselines (ADC channels) obtained during a calibration procedure.\\
294 {\it \bf NOMINAL:}\\
295 Most of values inside yellow region.
296 {\it \bf STANDARD situations:} \\
297 - some hits outside yellow region;\\
298 - about six consecutive values at zero or 32000; latch--up alarm from a plane during calibration?\\
299 - about six consecutive values at higer values; noise on one plane during calibration?\\
300 ACTION: check a following calibration if problem persist contact specialist.\\
301 {\it \bf NON--STANDARD situations:} \\
302 - eleven set of hundred planes at zero or 32000. One section is missing.\\
303 - all zero.\\
304 ACTION: call specialist.\\
305
306 \item FIGURE C20:\\
307 {\it \bf Description:}\\
308 Calorimeter calibration status, checking for errors coming from the DSP and errors occurred during the calibration procedure.\\
309 {\it \bf NOMINAL:}\\
310 No ``red'' errors. The number of calibrations must be the same for the four different sections.\\
311 {\it \bf NON--STANDARD situations:} \\
312 - different number of calibrations for different sections.\\
313 - any ``red'' error. \\
314 ACTION: call specialist.
315 \\
316 \end{description}
317
318 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 \section{List of other functions and subroutines}
320 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
321 \begin{description}
322 \item[CaloPULSE] (Version 1.05) Shows the distribution of ADC channels transmitted during the pulse calorimeter calibration. Included in the automate version of quick--look.
323 \item[CaloLEVEL1] (Version 1.21) Calibrate the calorimeter (first order calibration) and save data in a rootple inside the YODA structure (under /Physics/Level1/). It search for calibrations using CaloFindCalibs subroutine, if it fails because there are no calibrations in the file and no previous files processed it requires as input a calibration file to be used.
324 \item[CaloPLANES] (Version 2.13) Shows the number of hit for each strip and each plane of the calorimeter in a data file. It requires at least one calibration in the data file. It can be used as tool to see tracks in the calorimeter.
325 \item[CaloMIP] (Version 2.12) Calls the calibration program and print out the energy distribution together with the number of strip hit ({\it nstrip}) and the distribution of the energy released ({\it qtot}) for each event.
326 \item[CaloMATRA] (Version 3.00) Tools to look at calorimeter tracks. It requires at least one calibration in the data file.
327 \item[CaloFINDCALIBS.c] (Version 2.06) This macro has been moved in the package ``COMMON''. It provides:
328 \begin{description}
329 \item[CaloFINDCALIBS] Search for calibration in the data file and print out on the terminal the results. Look also in previous files to associate correctly at each event a calibration.
330 \item[CaloOLDFINDCALIBS] Search for calibration in the data file and print out on the terminal the results.
331 \item[CaloMySQLFINDCALIBS] Search for calibration in the database and print out on the terminal the results.
332 \item[CaloMySQLFILLCALIBS] Fill the calibrations in the database and print out on the terminal the results.
333
334 \end{description}
335 \item[CaloADC2MIP.c] (Version 4.01) This macro has been moved in the package ``UTILITIES''. This file contains calorimeter functions that can be used to determine the ADC to MIP conversion value for each strip. This file provides:
336 \begin{description}
337 \item[CaloADC2MIP] Given a file list it will put in 4224 histograms the ADC value for each strip and at the end it will perform a convoluted Landau--Gaussian fit for each strip.
338 \item[Calo4224BAK] Shows the 4224 histograms from backup files.
339 \item[Calo4224FIT] Shows the 4224 histograms from final file.
340 \item[Calo4224STATUS] Shows the error on the fitted peak for each strip.
341 \item[Calo4224MIPVALUES] Shows 22 histograms with the value of the conversion factor as function of the strip number.
342 \item[CaloBAKFIT] Performs the fit on backup figures.
343 \item[CaloRAWADC2MIPDATA] Save in a rootple the ADC values for each strip for each event of a list of files.
344 \item[CaloLOOKATSTRIP] Shows the strip ADC distribution as function of the event number or OBT (only for RAW and FULL data).
345 \item[CaloRAWADC2MIPPLOT] Save in a rootple histograms with the ADC values for each strip for each event of a list of files.
346 \end{description}
347 \item[CaloCALIBSCAN] (Version 1.05) Moved to ``UTILITIES''. Save in a rootple calorimeter calibration values and time, to check how calibration values vary on time.
348 \item[CaloTRKCALOALIG] (Version 1.01) Moved to ``UTILITIES''. Given an input file determine alignement parameters between tracker and calorimeter.
349 \end{description}
350
351 Notice that CaloPLANES, CaloMIP, and CaloMATRA requires the output of CaloLEVEL1 function. If CaloLEVEL1 has not been run before launching one of that programs CaloLEVEL1 will be automatically called.
352
353 The name of subroutines is composed again by the word ``Calo'' but it is not followed by all upper case letters. Subroutines are written in the file ``CaloFunctions.h'' (version 3.04, moved to ``COMMON'') which is included in the program files. The subroutines are:
354 \begin{description}
355 \item[CaloCompressData] Compression algorithm for RAW data.
356 \item[CaloFindBaseRaw] Determines the baseline starting from raw data. The resulting baseline must be identical to the one computed by the DSP in the case of FULL mode acquisition.
357 \item[CaloFindBaseRawNC] Determines the baseline starting from raw data. The resulting baseline must be identical to the one computed by the DSP in the case of FULL mode acquisition. Same as before but do not compress data.
358 \item[CaloFindBase] Determines the baseline starting from raw data but using relaxed condition on the minimum number of strips needed and discarding the lowest energy strip.
359 \item[CaloFindCalibs] Finds the calibration inside the data file and determine time limits for which each calibration has to be used. Looks also in previous file if the case. Associates events to the previous calibration in time.
360 \item[OLDCaloFindCalibs] Finds the calibration inside the data file and determine time limits for which each calibration has to be used. To be used in conjuction with CaloOLDFINDCALIBS. Associates events to the closer calibration.
361 \item[Calo1stCalib] Calls the first calibration on the file and store data into memory. To be used with CaloFINDCALIBS.
362 \item[OLDCalo1stCalib] Calls the first calibration on the file and store data into memory. To be used with CaloOLDFINDCALIBS.
363 \item[CaloPede] Given the calibration that must be used it returns the pedestal for each strip of the calorimeter.
364 \item[getFilename] Given the path to the YODA directory it returns the .dat filename.
365 \item[getLEVname] Given the path to the YODA directory and the data level number returns a filename formatted as YODA does.
366 \item[ColorMip] Given the energy in MIP it returns the colour to be used in figure for hit of the given energy.
367 \item[fetchpreviousfile] looks for a file containing a good calibration for a given section and returns a set of parameters. Used in CaloFindCalibs.
368 \item[whatnamewith] given the set of parameters from ``fetchpreviousfile'' returns the filename of the file which match that set. Used in CaloFindCalibs.
369 \item[WhatToDo] user interactive subroutine.
370 \item[PrintFigure] prints a figure with a special formatting.
371 \item[langaufun] Gaussian--Landau convoluted function.
372 \item[langaufit] Gaussian--Landau convoluted fit.
373 \item[langaupro] Finds the peak of the Gaussian--Landau fitted function.
374 \item[delay] Given the TDC channels of the self--trigger calorimeter delay it returns a time in milliseconds.
375 \item[stringcopy] copies strings.
376 \item[stringappend] appends strings.
377 \item[getEmiFile] almost the same as getFile in yodautility.c but it does not crash when running over a large number of files.
378 \item[fitraw] exponential function to be used in fitting routines.
379 \end{description}
380 The classes defined in caloclasses.h are:
381 \begin{description}
382 \item[CalorimeterLevel1] calorimeter Level1 class.
383 \item[CalorimeterADCRAW] contains ADC values for RAW mode data.
384 \item[CalorimeterCalibration] class to contain the 4224 conversion values.
385 \item[CalorimeterCalibScan] contains calibration data values.
386 \end{description}
387
388 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
389 \section{Description of the other programs}
390 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
391 In the following session all examples are given starting from ROOT but now each program can be called as a compiled executable without entering ROOT. If you still want to use ROOT please use the compiled version loading libraries with ``.x CaloNAMEOFPRORAM.C''.
392
393 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
394 \subsection{CaloPULSE(TString {\it filename}, TString {\it outDir} = ``'', Int\_t {\it tosave} = 0, TString {\it saveas} = ``eps'') (Version 1.05)}
395 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
396 Input variables:
397 \begin{itemize}
398 \item TString {\it filename} \\
399 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
400
401 \item TString {\it outDir} = ``''\\
402 String, path to a directory where to save the output figures. Default is empty, it will save in {\it filename}.
403
404 \item Int\_t {\it tosave} = 0\\
405 Flag to tell the function to save figures or not. Default is 0, do not save figures.
406
407 \item TString {\it saveas} = ``eps''\\
408 Type of figures to save. Deafult are ``eps'' figures, can be any format recognized by ROOT.
409 \end{itemize}
410
411 Example of a standard call: \\
412 \texttt{bash> root\\
413 root [1] .L CaloPULSE.c\\
414 root [2] CaloPULSE("/home/data/yodafiles/dw\_041126\_00400/");
415 }\\
416 \\
417 More examples (the first two steps are mandatory):\\
418 \\
419 \texttt{root [2] CaloPULSE("/home/data/yodafiles/dw\_041126\_00400/",\\"/home/mocchiut/myfigures/",1,"gif");}\\
420 Save ``gif'' figures in the directory ``/home/mocchiut/myfigures/''.\\
421 \\
422 The output is reported canvases which has the title ``calpulse'', see figure \ref{cCPUL}.
423
424 Due to a known bug the pulse type and strip number reported in figures are wrong when a file contains more than one calibration.
425
426 Usually when injecting with pulse type 8005 a distribution at about 3000/5000 ADC channel should be seen. When injecting with pulse type 8015 it should be possible to see another small distribution at higher ADC channel values. If the distribution is centered at about zero with values spreading from about -32000 to about 32000 ADC channels do nothing, it is a known bug in CPU software. If the last case, just report to calorimeter people (LOW severity).
427
428 For each calibration four figures are produced, one for each section; each figure shows as zero also the values of the other sections.
429
430
431 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
432 \subsection{CaloLEVEL1(TString {\it filename}, TString {\it calcalibfile} = ``'',\\ Int\_t {\it FORCE} = 0)\\
433 (Version 1.21)}
434 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
435 Input variables:
436 \begin{itemize}
437 \item TString {\it filename} \\
438 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
439
440 \item TString {\it calcalibfile} = ``''\\
441 String, path to a file which contains calorimeter calibration. Default is empty.
442
443 \item Int\_t {\it FORCE} = 0\\
444 Flag to force the reprocessing of data overwriting existing files. Default is 0, the program will exit if it will find the LEVEL1 rootple.
445 \end{itemize}
446
447 Example of a standard call: \\
448 \texttt{bash> root\\
449 root [1] .L CaloLEVEL1.c\\
450 root [2] CaloLEVEL1("/home/data/yodafiles/dw\_041126\_00400/");
451 }\\
452 \\
453 More examples (the first two steps are mandatory):\\
454 \\
455 \texttt{root [2] CaloLEVEL1("/home/data/yodafiles/dw\_041126\_00400/",\\"",1);}\\
456 Force the reprocessing of data.\\
457 \\
458 Due to a known bug (to be solved in next version) the processing time could become high if the files contains events which calibration has to be found in a previous (in time) file but this file has not been processed with yoda. In that case ``CaloLEVEL1'' will process anyway the data if it will find at least one calibration in the processed file or if a calibration file has been given as input. It will exit if no calibration are found.
459
460 No output is produced but the Level1 rootple.
461
462 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
463 \subsection{CaloPLANES(TString {\it filename}, TString {\it viewxy}=``both'',\\ TString {\it parity}=``both'', Int\_t {\it plane} = 0, Int\_t {\it fromevent} = 0,\\ Int\_t {\it toevent} = 0, TString {\it outDir} = ``'', TString {\it saveas} = ``eps'')\\ (Version 2.13)}
464 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
465 Input variables:
466 \begin{itemize}
467 \item TString {\it filename} \\
468 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
469
470 \item TString {\it viewxy} \\
471 String, calorimeter view to analyze. Default value is ``both'', can be ``x'' or ``y''.
472
473 \item TString {\it parity} \\
474 String, calorimeter planes to analyze. Default value is ``both'', can be ``odd'' or ``even''.
475
476 \item Int\_t {\it plane} = 0 \\
477 Integer, plane number to analyze. Default value is zero, all planes. The range goes from 1 to 11.
478
479 \item Int\_t {\it fromevent} = 0 \\
480 Integer, first event to be analyzed. Default value is 0 (= all the events). If {\it toevent} is zero the program will process only the event number {\it fromevent} when different from zero.
481
482 \item Int\_t {\it toevent} = 0 \\
483 Integer, last event to be analyzed. Default value is 0 (= all the events). It can differ from zero only if ``fromevent'' is not zero.
484
485 \item TString {\it outDir} = ``''\\
486 String, path to a directory where to save the output figures. Default is empty, it will save in the YODA root directory for the data file that will be analyzed.
487
488 \item TString {\it saveas} = ``eps''\\
489 Type of figures to save. Deafult are ``eps'' figures, can be any format recognized by ROOT.
490 \end{itemize}
491
492 Example of a standard call: \\
493 \texttt{bash> root\\
494 root [1] .L CaloPLANES.c\\
495 root [2] CaloPLANES("/home/data/yodafiles/dw\_041126\_00400/");
496 }\\
497 \\
498 More examples (the first two steps are mandatory):\\
499 \\
500 \texttt{root [2] CaloPLANES("/home/data/yodafiles/dw\_041126\_00400/",\\"both","odd",0);}\\
501 Analyze x and y odd views, all planes, all events.\\
502 \\
503 \texttt{root [2] CaloPLANES("/home/data/yodafiles/dw\_041126\_00400/",\\"both","both",7,146,1000);}\\
504 Analyze x and y, odd and even plane number 7 from event 146 to event 1000.\\
505 \\
506 \texttt{root [2] CaloPLANES("/home/data/yodafiles/dw\_041126\_00400/",\\"both","both",0,0,0,"/home/myhome/myyodafigures/");}\\
507 Analyze the whole calorimeter, all events and put figures in the directory \\``/home/myhome/myyodafigures/''.\\
508 \\
509 \texttt{root [2] CaloPLANES("/home/data/yodafiles/dw\_041126\_00400/",\\"both","both",0,143);}\\
510 Analyze the whole calorimeter, only event number 143.\\
511 \\
512 The output is reported in one or two canvas depending on the input parameters. The whole calorimeter, standard execution of the program, fills two canvas. The first contains x even and y odd planes, the second one x odd and y even planes, see figure \ref{cPLN}. For each event the energy distributed on each plane has been normalized to one in order to enhance noisy or bad working strips.
513
514 Notice, last example and figure \ref{cPTR}, that this program can be used to see tracks and to check the trasversal distribution of energy for each plane in the case of the single event. However, since the energy is normalized in each plane there could be some distorsions in the visualization.
515
516 In standard conditions each plane should show a uniform distribution without any hole (dead strips) or peak (noisy strips). The shape of the distribution will depend on the number of plane and on the PAMELA acceptance as function of rigidity. Two neighbour planes must have similar distributions. In the case of a noisy strip it could be difficult to distinguish the signal of the other strips, in that case it will be necessary to change the y--scale from linear to logarithmic (click with the right button of the mouse on the figure and click on SetLogy). The linear scale is essential to notice any distorsion in the distribution (a bad calibration of one preamplifier, for example).
517
518 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
519 \subsection{CaloMIP(TString {\it filename}, Int\_t {\it view} = 0, Int\_t {\it plane} = 0, Int\_t {\it strip} = 0, Int\_t {\it fromevent} = 0, Int\_t {\it toevent} = 0, TString {\it outDir} = ``'', TString {\it saveas} = ``eps'')\\ (Version 2.12)}
520 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
521 Input variables:
522 \begin{itemize}
523 \item TString {\it filename} \\
524 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
525
526 \item Int\_t {\it view} \\
527 String, calorimeter view to analyze. Default value is 0 (both), can be 1 (x) or 2 (y).
528
529 \item Int\_t {\it plane} = 0 \\
530 Integer, plane number to analyze. Default value is zero, all planes. The range goes from 1 to 22.
531
532 \item Int\_t {\it strip} = 0 \\
533 Integer, strip to be analyzed. Default value is 0 (all the strips). The range goes from 1 to 96.
534
535 \item Int\_t {\it fromevent} = 0 \\
536 Integer, first event to be analyzed. Default value is 0 (= all the events). If {\it toevent} is zero the program will process only the event number {\it fromevent} when different from zero.
537
538 \item Int\_t {\it toevent} = 0 \\
539 Integer, last event to be analyzed. Default value is 0 (= all the events). It can differ from zero only if ``fromevent'' is not zero.
540
541 \item TString {\it outDir} = ``''\\
542 String, path to a directory where to save the output figures. Default is empty, it will save in the YODA root directory for the data file that will be analyzed.
543
544 \item TString {\it saveas} = ``eps''\\
545 Type of figures to save. Deafult are ``eps'' figures, can be any format recognized by ROOT.
546 \end{itemize}
547
548 Example of a standard call: \\
549 \texttt{bash> root\\
550 root [1] .L CaloMIP.c\\
551 root [2] CaloMIP("/home/data/yodafiles/dw\_041126\_00400/");
552 }\\
553 \\
554 More examples (the first two steps are mandatory):\\
555 \\
556 \texttt{root [2] CaloMIP("/home/data/yodafiles/dw\_041126\_00400/",\\1,17,0);}\\
557 Analyze x view, plane 17, all strips and all events.\\
558 \\
559 \texttt{root [2] CaloMIP("/home/data/yodafiles/dw\_041126\_00400/",\\2,13,45);}\\
560 Analyze x view, plane 13, strip 45, all events.\\
561 \\
562
563 The output are two canvas. The first one, figure \ref{cMIP}, shows the MIP distribution. The second one, figure \ref{cMQN}, shows on the left the number of strip hit discarding bad strips and on the right the corresponding total energy deposit in the calorimeter. In the case of protons and muons the two distribution should peak at about 44 strips and 50 mips.
564
565 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
566 \subsection{CaloMATRA(TString {\it filename}, Int\_t {\it fromevent} = 1, Int\_t {\it toevent} = 0, TString {\it tyhist} = ``box'', TString {\it outFile} = ``'', TString {\it saveas} = ``eps'')\\ (Version 3.00)}
567 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
568 Input variables:
569 \begin{itemize}
570 \item TString {\it filename} \\
571 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
572
573 \item Int\_t {\it fromevent} = 1 \\
574 Integer, first event to be analyzed. Default value is one, the first event of the file. It can be zero, in that case it will show all the events one by one all the calibration in the input file waiting for the user to press enter in between. If {\it toevent} is zero the program will process only the event number {\it fromevent} when different from zero.
575
576 \item Int\_t {\it toevent} = 0 \\
577 Integer, last event to be analyzed. Default value is 0 (= all the events). It can differ from zero only if ``fromevent'' is not zero.
578
579 \item TString {\it tyhist} = ``box''\\
580 String, type of visualitation. Default is ``box'', it can be ``lego'' to see three dimensional, black and white figures.
581
582 \item TString {\it outDir} = ``''\\
583 String, path to a directory where to save the output figures. Default is empty, it will save in the YODA root directory for the data file that will be analyzed.
584
585 \item TString {\it saveas} = ``eps''\\
586 Type of figures to save. Deafult are ``eps'' figures, can be any format recognized by ROOT.
587 \end{itemize}
588
589 Example of a standard call (it will show event number one): \\
590 \texttt{bash> root\\
591 root [1] .L CaloMATRA.c\\
592 root [2] CaloMATRA("/home/data/yodafiles/dw\_041126\_00400/");
593 }\\
594 \\
595 More examples (the first two steps are mandatory):\\
596 \\
597 \texttt{root [2] CaloMATRA("/home/data/yodafiles/dw\_041126\_00400/",\\1,10);}\\
598 Analyze events from 1 to 10.\\
599 \\
600 Two panels with the strip hit in the x and y views of the calorimeter are drawn, see figure \ref{cMAT}. Below the lower panel the number of strip hit (nstrip), the total energy released (QTOT) and the number of bad strips are printed. The bad strips are not used in the calculation of NSTRIP and QTOT but are shown in the figures. Only strips with energy above 0.7 MIP are plotted and used in the calculation.
601
602
603 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
604 \subsection{CaloFINDCALIBS(TString {\it filename}) (Version 2.06)}
605 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
606 Input variables:
607 \begin{itemize}
608 \item TString {\it filename} \\
609 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run.
610 \end{itemize}
611
612 This program searches in the file if there is any good calibration. If so it will divide the file in time bins and it will associate at each bin a calibration. This is done for each section without any connection to the other sections.
613
614 This is an example of the output is printed on the screen:
615
616 \begin{verbatim}
617 bash> root
618 root [1] .L CaloFINDCALIBS.c
619 root [2] CaloFINDCALIBS("/home/filesfromyoda/dw_050301_00200/");
620
621 Obtjump = 0 - FIRST OBT 26622578 - LAST OBT 36637127
622
623 ------ /home/filesfromyoda/dw_050301_00200/ -------
624
625 ** SECTION 0 **
626 - from time 26622578 to time 27028067 use calibration at
627 time 23709196, file: /home/filesfromyoda/dw_050301_00100
628 - from time 27028067 to time 29311525 use calibration at
629 time 27028067, file: /home/filesfromyoda/dw_050301_00200/
630 - from time 29311525 to time 32980945 use calibration at
631 time 29311525, file: /home/filesfromyoda/dw_050301_00200/
632 - from time 32980945 to time 36637127 use calibration at
633 time 32980945, file: /home/filesfromyoda/dw_050301_00200/
634
635 ** SECTION 1 **
636 - from time 26622578 to time 27028121 use calibration at
637 time 23709250, file: /home/filesfromyoda/dw_050301_00100
638 - from time 27028121 to time 29311579 use calibration at
639 time 27028121, file: /home/filesfromyoda/dw_050301_00200/
640 - from time 29311579 to time 32980999 use calibration at
641 time 29311579, file: /home/filesfromyoda/dw_050301_00200/
642 - from time 32980999 to time 36637127 use calibration at
643 time 32980999, file: /home/filesfromyoda/dw_050301_00200/
644
645 ** SECTION 2 **
646 - from time 26622578 to time 27028174 use calibration at
647 time 23709303, file: /home/filesfromyoda/dw_050301_00100
648 - from time 27028174 to time 29311639 use calibration at
649 time 27028174, file: /home/filesfromyoda/dw_050301_00200/
650 - from time 29311639 to time 32981053 use calibration at
651 time 29311639, file: /home/filesfromyoda/dw_050301_00200/
652 - from time 32981053 to time 36637127 use calibration at
653 time 32981053, file: /home/filesfromyoda/dw_050301_00200/
654
655 ** SECTION 3 **
656 - from time 26622578 to time 27028228 use calibration at
657 time 23709357, file: /home/filesfromyoda/dw_050301_00100
658 - from time 27028228 to time 29311693 use calibration at
659 time 27028228, file: /home/filesfromyoda/dw_050301_00200/
660 - from time 29311693 to time 32981106 use calibration at
661 time 29311693, file: /home/filesfromyoda/dw_050301_00200/
662 - from time 32981106 to time 36637127 use calibration at
663 time 32981106, file: /home/filesfromyoda/dw_050301_00200/
664
665 ----------------------------------------------------------
666
667 \end{verbatim}
668
669 The program CaloMySQLFINDCALIBS.c will query the database and print on the screen the same kind informations.
670
671 The old program will divide the time intervals using only calibrations inside the processed file and associating at each event the closer calibration (in time).
672 This is an example of the output:
673
674 \begin{verbatim}
675 bash> root
676 root [1] .L CaloFINDCALIBS.c
677 root [2] CaloOLDFINDCALIBS("/home/filesfromyoda/dw_050301_00200/");
678 ----------------------------------------------------------
679
680 Section 0 from time 0 to time 28169796 use calibration
681 at time 27028067
682 Section 0 from time 28169796 to time 31146235 use calibration
683 at time 29311525
684 Section 0 from time 31146235 use calibration at time 32980945
685
686 Section 1 from time 0 to time 28169850 use calibration
687 at time 27028121
688 Section 1 from time 28169850 to time 31146289 use calibration
689 at time 29311579
690 Section 1 from time 31146289 use calibration at time 32980999
691
692 Section 2 from time 0 to time 28169906 use calibration
693 at time 27028174
694 Section 2 from time 28169906 to time 31146346 use calibration
695 at time 29311639
696 Section 2 from time 31146346 use calibration at time 32981053
697
698 Section 3 from time 0 to time 28169960 use calibration
699 at time 27028228
700 Section 3 from time 28169960 to time 31146399 use calibration
701 at time 29311693
702 Section 3 from time 31146399 use calibration at time 32981106
703
704 ----------------------------------------------------------
705 /home/filesfromyoda/dw_050301_00200/
706
707 \end{verbatim}
708
709
710
711 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
712 \subsection{CaloADC2MIP.c (Version 4.01)}
713 %{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
714 Only the main program can be called with the executables without using ROOT. For other routines start ROOT and load the compiled library.
715
716 %------------------------------------------------------------------------------------------------------------
717 \subsubsection{CaloADC2MIP(TString {\it filename}, TString {\it calcalibfile} = ``'', TString {\it flist} = ``'')}
718 %------------------------------------------------------------------------------------------------------------
719 Input variables:
720 \begin{itemize}
721 \item TString {\it filename} \\
722 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run. If used in conjuction with ``flist'' this variable must contain the path to the directory containing the YODA directories from unpacked files.
723
724 \item TString {\it calcalibfile} = ``''\\
725 File containing a valid calibration for calorimeter. Default is empty, it will search for calibrations. In certain cases it could be necessary to give an input file here.
726
727 \item TString {\it flist} = ``''\\
728 Path to a file containing a list of files to process. The list must contain YODA filenames separated by spaces or in columns. For example the file could contain a list of four files like:\\
729 dw\_050302\_00100 dw\_050302\_00200 dw\_050302\_00300 dw\_050224\_00100
730 \end{itemize}
731
732
733 Example of a standard call: \\
734 \texttt{bash> root\\
735 root [1] .L CaloADC2MIP.c\\
736 root [2] CaloADC2MIP("/home/data/yodafiles/",\\"/home/data/yodafiles/dw\_041126\_00400/","mylist.txt");
737 }\\
738 Run over files listed in mylist.txt file using file dw\_041126\_00400/ as calibration file if it fails in searching the best calibration.
739
740 %------------------------------------------------------------------------------------------------------------
741 \subsubsection{Calo4224BAK(TString {\it filename})}
742 %------------------------------------------------------------------------------------------------------------
743 Input variables:
744 \begin{itemize}
745 \item TString {\it filename} \\
746 Name of the backup file to look into.
747 \end{itemize}
748
749
750 Example of a standard call: \\
751 \texttt{bash> root\\
752 root [1] .L CaloADC2MIP.c\\
753 root [2] Calo4224BAK("CaloADC2MIPf10.bak");
754 }\\
755 Look at figures contained in the file ``CaloADC2MIPf10.bak''.
756
757 %------------------------------------------------------------------------------------------------------------
758 \subsubsection{Calo4224FIT(TString {\it filename} = ``CaloADC2MIPf.root'', TString {\it filevalue} = ``CaloADC2MIP.root'', TString {\it type}=``'')}
759 %------------------------------------------------------------------------------------------------------------
760 Input variables:
761 \begin{itemize}
762 \item TString {\it filename} \\
763 Name of the file containing figures.
764
765 \item TString {\it filevalue} \\
766 Name of the file containing calorimeter conversion values.
767
768 \item TString {\it type} \\
769 Description of the data contained in the two previous files (backup data or final data). Default is ``'', final data, can be ``bak'' instead.
770 \end{itemize}
771
772
773 Example of a standard call: \\
774 \texttt{bash> root\\
775 root [1] .L CaloADC2MIP.c\\
776 root [2] Calo4224FIT();
777 }\\
778 Look at figures and data contained in the files ``CaloADC2MIPf.root'' and ``CaloADC2MIP.root''. It allows to fit again figures and to modify values by hand changing the ``CaloADC2MIP.root'' file used by CaloLEVEL1. See figure \ref{cMIPFIT}.
779
780 %------------------------------------------------------------------------------------------------------------
781 \subsubsection{Calo4224STATUS(TString {\it filename} = ``CaloADC2MIP.root'', TString {\it type}=``'')}
782 %------------------------------------------------------------------------------------------------------------
783 Input variables:
784 \begin{itemize}
785 \item TString {\it filename} \\
786 Name of the file containing calorimeter conversion values.
787
788 \item TString {\it type} \\
789 Not used variable (yet).
790 \end{itemize}
791
792
793 Example of a standard call: \\
794 \texttt{bash> root\\
795 root [1] .L CaloADC2MIP.c\\
796 root [2] Calo4224STATUS();
797 }\\
798 See figure \ref{cMIPST}.
799
800 %------------------------------------------------------------------------------------------------------------
801 \subsubsection{Calo4224MIPVALUES(TString {\it filename} = ``CaloADC2MIP.root'', TString {\it type}=``'')}
802 %------------------------------------------------------------------------------------------------------------
803 Input variables:
804 \begin{itemize}
805 \item TString {\it filename} \\
806 Name of the file containing calorimeter conversion values.
807
808 \item TString {\it type} \\
809 Not used variable (yet).
810 \end{itemize}
811
812
813 Example of a standard call: \\
814 \texttt{bash> root\\
815 root [1] .L CaloADC2MIP.c\\
816 root [2] Calo4224MIPVALUES();
817 }\\
818 Returns eleven figures with ADC to MIP conversion values as function of the strip number. 100 is summed to y--views strip number. It requires to press enter to switch from a figure to the next one. See figure \ref{cMIPV}.
819
820 %------------------------------------------------------------------------------------------------------------
821 \subsubsection{CaloBAKFIT(TString {\it filename})}
822 %------------------------------------------------------------------------------------------------------------
823 Input variables:
824 \begin{itemize}
825 \item TString {\it filename} \\
826 Name of the file containing the backup figures from CaloADC2MIP function.
827 \end{itemize}
828
829
830 Example of a standard call: \\
831 \texttt{bash> root\\
832 root [1] .L CaloADC2MIP.c\\
833 root [2] CaloBAKFIT("CaloADC2MIPf120.bak");
834 }\\
835
836 %------------------------------------------------------------------------------------------------------------
837 \subsubsection{CaloRAWADC2MIPDATA(TString {\it filename}, TString {\it calcalibfile} = ``'', TString {\it flist} = ``'')}
838 %------------------------------------------------------------------------------------------------------------
839 Input variables:
840 \begin{itemize}
841 \item TString {\it filename} \\
842 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run. If used in conjuction with ``flist'' this variable must contain the path to the directory containing the YODA directories from unpacked files.
843
844 \item TString {\it calcalibfile} = ``''\\
845 File containing a valid calibration for calorimeter. Default is empty, it will search for calibrations. In certain cases it could be necessary to give an input file here.
846
847 \item TString {\it flist} = ``''\\
848 Path to a file containing a list of files to process. The list must contain YODA filenames separated by spaces or in columns. For example the file could contain a list of four files like:\\
849 dw\_050302\_00100 dw\_050302\_00200 dw\_050302\_00300 dw\_050224\_00100
850 \end{itemize}
851
852 Example of a standard call: \\
853 \texttt{bash> root\\
854 root [1] .L CaloADC2MIP.c\\
855 root [2] CaloRAWADC2MIPDATA("/home/data/yodafiles/",\\"/home/data/yodafiles/dw\_041126\_00400/","mylist.txt");
856 }\\
857 Create the file CaloADC2MIPdata.raw and fill it with ADC values of the files contained in mylist.txt. If necessary use file dw\_041126\_00400/ to calibrate data.
858
859 %------------------------------------------------------------------------------------------------------------
860 \subsubsection{CaloRAWADC2MIPPLOT(TString {\it filename}, TString {\it calcalibfile} = ``'', TString {\it flist} = ``'')}
861 %------------------------------------------------------------------------------------------------------------
862 Input variables:
863 \begin{itemize}
864 \item TString {\it filename} \\
865 String, name of the root directory created by YODA for the data file is going to be analyzed. There is no default value, without this input the program will not run. If used in conjuction with ``flist'' this variable must contain the path to the directory containing the YODA directories from unpacked files.
866
867 \item TString {\it calcalibfile} = ``''\\
868 File containing a valid calibration for calorimeter. Default is empty, it will search for calibrations. In certain cases it could be necessary to give an input file here.
869
870 \item TString {\it flist} = ``''\\
871 Path to a file containing a list of files to process. The list must contain YODA filenames separated by spaces or in columns. For example the file could contain a list of four files like:\\
872 dw\_050302\_00100 dw\_050302\_00200 dw\_050302\_00300 dw\_050224\_00100
873 \end{itemize}
874
875 Example of a standard call: \\
876 \texttt{bash> root\\
877 root [1] .L CaloADC2MIP.c\\
878 root [2] CaloRAWADC2MIPDATA("/home/data/yodafiles/",\\"/home/data/yodafiles/dw\_041126\_00400/","mylist.txt");
879 }\\
880 Create the file CaloADC2MIP.raw and fill it with 4224 histograms of RAW ADC values of the files contained in mylist.txt. If necessary use file dw\_041126\_00400/ to calibrate data.
881
882 %------------------------------------------------------------------------------------------------------------
883 \subsubsection{CaloLOOKATSTRIP( Int\_t {\it view}, Int\_t {\it plane}, Int\_t {\it strip}, Int\_t {\it fromevno}, Int\_t {\it toevno}, Int\_t {\it fromtime} = 0, Int\_t {\it totime} = 1000000000, Int\_t {\it fit} = 0)}
884 %------------------------------------------------------------------------------------------------------------
885 Input variables:
886 \begin{itemize}
887 \item Int\_t {\it view} \\
888 Calorimeter view (``view'' = 0 means x-view, ``view'' = 1 means y-view);
889 \item Int\_t {\it plane} \\
890 Calorimeter plane (from 0 to 21);
891 \item Int\_t {\it strip} \\
892 Calorimeter strip (from 0 to 95);
893 \item Int\_t {\it fromevno} \\
894 Starting event number (YODA counter);
895 \item Int\_t {\it toevno} \\
896 Last event number (YODA counter);
897 \item Int\_t {\it fromtime} \\
898 Starting OBT time number. If given the ADC values will be shown as function of time, elsewhere they will be shown as function of event number;
899 \item Int\_t {\it totime} \\
900 Last OBT time number;
901 \item Int\_t {\it fit} \\
902 Flag to tell the program to (1) or not to (0, default) perform an exponential fit.
903 \end{itemize}
904
905 Example of a standard call: \\
906 \texttt{bash> root\\
907 root [1] .L CaloADC2MIP.c\\
908 root [2] CaloLOOKATSTRIP(0,21,31,780000,830000,19200000,22000000,1);
909 }\\
910 Reads the file CaloADC2MIPdata.raw and draw as function of time strip 32 of x--plane 22. Then fit the result.
911
912 \texttt{bash> root\\
913 root [2] CaloLOOKATSTRIP(0,21,31,780000,830000);
914 }\\
915 Reads the file CaloADC2MIPdata.raw and draw as function of event number strip 32 of x--plane 22. Do not fit.
916
917
918 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919 \section{Figures}
920 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921 \begin{figure}[!thb]
922 \begin{center}
923 \includegraphics[width=\textwidth]{CaloQL1}
924 \caption{Calorimeter\_Detector\_Report\_1/3. On the left the calorimeter counter is shown as function of the YODA counter. The calorimeter counter remain at zero in the RAW mode acquisition and start to increase when the acquisition is changed at iev of about 6000. At iev of about 13000 there was a DSP reset and the counting started again from one. On the right two panels are shown. In the top panel the strip hit in the COMPRESS mode is reported. The strange ``two peaks'' behaviour is due to noisy strips due to problems in the power supply during the acquisition of this data file. The same problem caused some latch--up alarm, which means that some views of the calorimeter switched off during the acquisition. This can be noticed in the lower figure were four lines can be noticed instead of the one expected. This means that there were four calorimeter ``status'' in which there were four different number of strips working (during the acquisition in RAW mode only).}
925 \label{cQL1}
926 \end{center}
927 \end{figure}
928
929 \begin{figure}[!thb]
930 \begin{center}
931 \includegraphics[width=\textwidth]{CaloQL2}
932 \caption{Calorimeter\_Detector\_Report\_2/3. Clockwise from the top right figure: the dexyc dsitribution.Some noisy strips spread the detected signal over a large ADC channel range. Ususally there should be only a peak at zero and a distribution of values between 2000 and 4000 ADC channels. Below there is the dexy distribution. Notice the presence of a peak at about 32000, meaning a latch--up alarm in one or more planes. On the left the strip hit distribution as determined by the DSP; the same behaviour of figure \ref{cQL1} top right can be noticed. On the top left there is the baselines distribution, again the value at about 32000 indicates a latch--up alarm.}
933 \label{cQL2}
934 \end{center}
935 \end{figure}
936
937
938 \begin{figure}[!thb]
939 \begin{center}
940 \includegraphics[width=\textwidth]{CaloQL3e}
941 \caption{Calorimeter\_Detector\_Report\_3/3. This is the report sheet of the quick--look. Each section has recorded 6070 events in RAW mode, 1463 events in COMPRESS mode and 6611 events in FULL mode. The section YO was the one which transmitted the higher number of times the preamplifier in raw mode (2585) which is about the 30\% of the FULL and COMPRESS mode acquisition. In this file there were some latch--up alarms in sections YE and YO. Notice that in the case of section YE the DSP recorded a latch--up alarm 13839 times while CaloQLOOK only 13838 times, one time less since there are some capacitors which take time to discharge and during the first latch--up event that section recorded some data even if the plane was not powered on. The opposite can be noticed in section YO, where the latch up was recorded 13837 times by the DSP but 13843 times by CaloQLOOK. As discussed in section \ref{ssCQL} the exceeding latch--up alarm are not real latch--up but an effect of the warming up of that section.}
942 \label{cQL3}
943 \end{center}
944 \end{figure}
945
946
947 \begin{figure}[!thb]
948 \begin{center}
949 \includegraphics[width=\textwidth]{CaloPULSE}
950 \caption{Calorimeter pulse 1 for one of the four sections (the other sections have ADC values at zero). Notice that the pulse type and strip is not correct if more than one calibration exists on a file (known bug). }
951 \label{cCPUL}
952 \end{center}
953 \end{figure}
954
955 \begin{figure}[!thb]
956 \begin{center}
957 \includegraphics[width=\textwidth]{CaloCHKSTR}
958 \caption{The status at calibration one of file dw\_041126\_004 (YODA processing number 02). There can be easily notice the two planes of latch--up in the X--view. Moreover the fourth strip of X--plane 21 is off. A part this the calorimeter is working fine and only one noisy preamplifier can be seen, strips from 80 to 96 X--plane number 16.}
959 \label{cCHS}
960 \end{center}
961 \end{figure}
962
963
964 \begin{figure}[!thb]
965 \begin{center}
966 \includegraphics[width=\textwidth]{CaloPLN1}
967 \includegraphics[width=\textwidth]{CaloPLN2}
968 \caption{The strip hit for each plane in the case of about 100 events. Notice that in the two upper figures the scale is logarithmic in each panel, while it is linear in the two lower figures. When the number of events is high there should not be any hole in the distributions. Notice that in this case there are three planes with latch--up, x even 11, x odd 5 and x odd 1. Planes with one or more noisy strips like, for example, y even 4 should be seen also in logarithmic scale to see better the signal on the other strips.}
969 \label{cPLN}
970 \end{center}
971 \end{figure}
972
973 \begin{figure}[!thb]
974 \begin{center}
975 \includegraphics[width=\textwidth]{CaloPTR1}
976 \includegraphics[width=\textwidth]{CaloPTR2}
977 \caption{A muon track in the calorimeter as seen by CaloPLANES.}
978 \label{cPTR}
979 \end{center}
980 \end{figure}
981
982
983 \begin{figure}[!thb]
984 \begin{center}
985 \includegraphics[width=\textwidth]{CaloMIP}
986 \caption{The MIP in the case of about 400 events. The peak on the left is what remain of the pedestal after the compression of data. On the right the average Landau distribution of minimum ionizing particles for all the strips of the calorimeter.}
987 \label{cMIP}
988 \end{center}
989 \end{figure}
990
991
992 \begin{figure}[!thb]
993 \begin{center}
994 \includegraphics[width=\textwidth]{CaloQTNS}
995 \caption{Number of strip hit (nstrip) and energy released (qtot) in the calorimeter for ground muon events. The ``nstrip'' distribution is peaked at about 41, number of working planes while the ``qtot'' distribution is peaked at about 50 MIP.}
996 \label{cMQN}
997 \end{center}
998 \end{figure}
999
1000
1001 \begin{figure}[!thb]
1002 \begin{center}
1003 \includegraphics[width=\textwidth]{CaloMAT}
1004 \caption{A muon track in the calorimeter as seen by CaloMATRA (the same track of figure \ref{cPTR}).}
1005 \label{cMAT}
1006 \end{center}
1007 \end{figure}
1008
1009
1010 \begin{figure}[!thb]
1011 \begin{center}
1012 \includegraphics[width=\textwidth]{Calo4224FIT}
1013 \caption{Fit of the data for strip 23 plane 1 x--view.}
1014 \label{cMIPFIT}
1015 \end{center}
1016 \end{figure}
1017
1018 \begin{figure}[!thb]
1019 \begin{center}
1020 \includegraphics[width=\textwidth]{Calo4224STATUS}
1021 \caption{Figure showing with colours the error in determining the position of the MIP peak for x (lower panel) and y (upper panel) views.}
1022 \label{cMIPST}
1023 \end{center}
1024 \end{figure}
1025
1026 \begin{figure}[!thb]
1027 \begin{center}
1028 \includegraphics[width=\textwidth]{Calo4224MIPVAL}
1029 \caption{ADC to MIP conversion values for plane 1, x--view from 0 to 95 and y--view from 100 to 195.}
1030 \label{cMIPV}
1031 \end{center}
1032 \end{figure}
1033
1034
1035 \end{document}
1036
1037

  ViewVC Help
Powered by ViewVC 1.1.23