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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide 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 mocchiut 1.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