075a0e70 |
1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
3 | * * |
4 | * Author: The ALICE Off-line Project. * |
5 | * Contributors are mentioned in the code where appropriate. * |
6 | * * |
7 | * Permission to use, copy, modify and distribute this software and its * |
8 | * documentation strictly for non-commercial purposes is hereby granted * |
9 | * without fee, provided that the above copyright notice appears in all * |
10 | * copies and that both the copyright notice and this permission notice * |
11 | * appear in the supporting documentation. The authors make no claims * |
12 | * about the suitability of this software for any purpose. It is * |
13 | * provided "as is" without express or implied warranty. * |
14 | **************************************************************************/ |
fdc38bb2 |
15 | |
16 | /////////////////////////////////////////////////////////////////////// |
17 | // // |
18 | // Produces the data needed to calculate the ZDC quality assurance. // |
19 | // QA objects are 1 & 2 Dimensional histograms. // |
20 | // author: C. Oppedisano // |
21 | // // |
22 | /////////////////////////////////////////////////////////////////////// |
23 | |
075a0e70 |
24 | // --- ROOT system --- |
25 | #include <TClonesArray.h> |
26 | #include <TFile.h> |
27 | #include <TH1F.h> |
28 | #include <TH2F.h> |
29 | #include <TProfile.h> |
30 | #include <Riostream.h> |
31 | // --- Standard library --- |
32 | |
33 | // --- AliRoot header files --- |
34 | #include "AliLog.h" |
35 | #include "AliQAChecker.h" |
f5e4ee59 |
36 | #include "AliZDCReco.h" |
78328afd |
37 | #include "AliRawReader.h" |
075a0e70 |
38 | #include "AliZDCQADataMakerRec.h" |
39 | #include "AliZDCRawStream.h" |
44ed7a66 |
40 | #include "AliZDCDigit.h" |
075a0e70 |
41 | #include "AliESDZDC.h" |
42 | #include "AliESDEvent.h" |
43 | |
44 | ClassImp(AliZDCQADataMakerRec) |
45 | |
46 | //____________________________________________________________________________ |
47 | AliZDCQADataMakerRec::AliZDCQADataMakerRec() : |
eca4fa66 |
48 | AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kZDC), "ZDC Quality Assurance Data Maker"), |
49 | fDigit(0) |
075a0e70 |
50 | { |
51 | // ctor |
52 | } |
53 | |
54 | //____________________________________________________________________________ |
55 | AliZDCQADataMakerRec::AliZDCQADataMakerRec(const AliZDCQADataMakerRec& qadm) : |
eca4fa66 |
56 | AliQADataMakerRec(), |
57 | fDigit(0) |
075a0e70 |
58 | { |
59 | //copy ctor |
60 | SetName((const char*)qadm.GetName()); |
61 | SetTitle((const char*)qadm.GetTitle()); |
62 | } |
63 | |
64 | //__________________________________________________________________ |
65 | AliZDCQADataMakerRec& AliZDCQADataMakerRec::operator = (const AliZDCQADataMakerRec& qadm ) |
66 | { |
67 | // Equal operator. |
68 | this->~AliZDCQADataMakerRec(); |
69 | new(this) AliZDCQADataMakerRec(qadm); |
70 | return *this; |
71 | } |
72 | |
44ed7a66 |
73 | //____________________________________________________________________________ |
74 | void AliZDCQADataMakerRec::InitDigits() |
75 | { |
76 | // create Digits histograms in Digits subdir |
77 | // |
78 | const Bool_t expert = kTRUE ; |
79 | const Bool_t image = kTRUE ; |
80 | |
81 | // ------------------- HIGH GAIN CHAIN --------------------------- |
b72460a5 |
82 | TH1F * hDigitPMCZNC = new TH1F("hDigitPMCZNC", "Digit common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
83 | TH1F * hDigitPMCZNA = new TH1F("hDigitPMCZNA", "Digit common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
84 | TH1F * hDigitPMCZPC = new TH1F("hDigitPMCZPC", "Digit common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
85 | TH1F * hDigitPMCZPA = new TH1F("hDigitPMCZPA", "Digit common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
86 | TH1F * hDigitPMZEM1 = new TH1F("hDigitPMZEM1", "Digit ZEM1 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
87 | TH1F * hDigitPMZEM2 = new TH1F("hDigitPMZEM2", "Digit ZEM2 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
88 | Add2DigitsList(hDigitPMCZNC, 0 , !expert, image); |
89 | Add2DigitsList(hDigitPMCZNA, 1 , !expert, image); |
90 | Add2DigitsList(hDigitPMCZPC, 2, !expert, image); |
91 | Add2DigitsList(hDigitPMCZPA, 3, !expert, image); |
92 | Add2DigitsList(hDigitPMZEM1, 4, !expert, image); |
93 | Add2DigitsList(hDigitPMZEM2, 5, !expert, image); |
44ed7a66 |
94 | // |
95 | // ------------------- LOW GAIN CHAIN --------------------------- |
b72460a5 |
96 | TH1F * hDigitPMCZNClg = new TH1F("hDigitPMCZNClg", "Digit common lg ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
97 | TH1F * hDigitPMCZNAlg = new TH1F("hDigitPMCZNAlg", "Digit common lg ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
98 | TH1F * hDigitPMCZPClg = new TH1F("hDigitPMCZPClg", "Digit common lg ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
99 | TH1F * hDigitPMCZPAlg = new TH1F("hDigitPMCZPAlg", "Digit common lg ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
100 | TH1F * hDigitPMZEM1lg = new TH1F("hDigitPMZEM1lg", "Digit ZEM1 PMT lg;Amplitude [ADC counts];Counts",100, 0., 4000.); |
101 | TH1F * hDigitPMZEM2lg = new TH1F("hDigitPMZEM2lg", "Digit ZEM2 PMT lg;Amplitude [ADC counts];Counts",100, 0., 4000.); |
102 | Add2DigitsList(hDigitPMCZNClg, 6, expert, !image); |
103 | Add2DigitsList(hDigitPMCZNAlg, 7, expert, !image); |
104 | Add2DigitsList(hDigitPMCZPClg, 8, expert, !image); |
105 | Add2DigitsList(hDigitPMCZPAlg, 9, expert, !image); |
106 | Add2DigitsList(hDigitPMZEM1lg, 10, !expert, image); |
107 | Add2DigitsList(hDigitPMZEM2lg, 11, !expert, image); |
44ed7a66 |
108 | // |
b72460a5 |
109 | // ------------------- HIGH GAIN CHAIN --------------------------- |
110 | TH1F * hDigitPM1ZNC = new TH1F("hDigitPM1ZNC", "Digit PM1 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
111 | TH1F * hDigitPM2ZNC = new TH1F("hDigitPM2ZNC", "Digit PM2 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
112 | TH1F * hDigitPM3ZNC = new TH1F("hDigitPM3ZNC", "Digit PM3 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
113 | TH1F * hDigitPM4ZNC = new TH1F("hDigitPM4ZNC", "Digit PM4 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
114 | Add2DigitsList(hDigitPM1ZNC, 12, !expert, image); |
115 | Add2DigitsList(hDigitPM2ZNC, 13, !expert, image); |
116 | Add2DigitsList(hDigitPM3ZNC, 14, !expert, image); |
117 | Add2DigitsList(hDigitPM4ZNC, 15, !expert, image); |
118 | // |
119 | TH1F * hDigitPM1ZPC = new TH1F("hDigitPM1ZPC", "Digit PM1 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
120 | TH1F * hDigitPM2ZPC = new TH1F("hDigitPM2ZPC", "Digit PM2 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
121 | TH1F * hDigitPM3ZPC = new TH1F("hDigitPM3ZPC", "Digit PM3 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
122 | TH1F * hDigitPM4ZPC = new TH1F("hDigitPM4ZPC", "Digit PM4 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
123 | Add2DigitsList(hDigitPM1ZPC, 16, !expert, image); |
124 | Add2DigitsList(hDigitPM2ZPC, 17, !expert, image); |
125 | Add2DigitsList(hDigitPM3ZPC, 18, !expert, image); |
126 | Add2DigitsList(hDigitPM4ZPC, 19, !expert, image); |
127 | // |
128 | TH1F * hDigitPM1ZNA = new TH1F("hDigitPM1ZNA", "Digit PM1 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
129 | TH1F * hDigitPM2ZNA = new TH1F("hDigitPM2ZNA", "Digit PM2 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
130 | TH1F * hDigitPM3ZNA = new TH1F("hDigitPM3ZNA", "Digit PM3 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
131 | TH1F * hDigitPM4ZNA = new TH1F("hDigitPM4ZNA", "Digit PM4 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
132 | Add2DigitsList(hDigitPM1ZNA, 20, !expert, image); |
133 | Add2DigitsList(hDigitPM2ZNA, 21, !expert, image); |
134 | Add2DigitsList(hDigitPM3ZNA, 22, !expert, image); |
135 | Add2DigitsList(hDigitPM4ZNA, 23, !expert, image); |
136 | // |
137 | TH1F * hDigitPM1ZPA = new TH1F("hDigitPM1ZPA", "Digit PM1 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
138 | TH1F * hDigitPM2ZPA = new TH1F("hDigitPM2ZPA", "Digit PM2 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
139 | TH1F * hDigitPM3ZPA = new TH1F("hDigitPM3ZPA", "Digit PM3 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
140 | TH1F * hDigitPM4ZPA = new TH1F("hDigitPM4ZPA", "Digit PM4 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
141 | Add2DigitsList(hDigitPM1ZPA, 24, !expert, image); |
142 | Add2DigitsList(hDigitPM2ZPA, 25, !expert, image); |
143 | Add2DigitsList(hDigitPM3ZPA, 26, !expert, image); |
144 | Add2DigitsList(hDigitPM4ZPA, 27, !expert, image); |
44ed7a66 |
145 | // |
b72460a5 |
146 | // ------------------- LOW GAIN CHAIN --------------------------- |
147 | TH1F * hDigitPM1ZNClg = new TH1F("hDigitPM1ZNClg", "Digit PM1 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
148 | TH1F * hDigitPM2ZNClg = new TH1F("hDigitPM2ZNClg", "Digit PM2 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
149 | TH1F * hDigitPM3ZNClg = new TH1F("hDigitPM3ZNClg", "Digit PM3 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
150 | TH1F * hDigitPM4ZNClg = new TH1F("hDigitPM4ZNClg", "Digit PM4 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
151 | Add2DigitsList(hDigitPM1ZNClg, 28, !expert, image); |
152 | Add2DigitsList(hDigitPM2ZNClg, 29, !expert, image); |
153 | Add2DigitsList(hDigitPM3ZNClg, 30, !expert, image); |
154 | Add2DigitsList(hDigitPM4ZNClg, 31, !expert, image); |
155 | // |
156 | TH1F * hDigitPM1ZPClg = new TH1F("hDigitPM1ZPClg", "Digit PM1 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
157 | TH1F * hDigitPM2ZPClg = new TH1F("hDigitPM2ZPClg", "Digit PM2 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
158 | TH1F * hDigitPM3ZPClg = new TH1F("hDigitPM3ZPClg", "Digit PM3 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
159 | TH1F * hDigitPM4ZPClg = new TH1F("hDigitPM4ZPClg", "Digit PM4 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
160 | Add2DigitsList(hDigitPM1ZPClg, 32, !expert, image); |
161 | Add2DigitsList(hDigitPM2ZPClg, 33, !expert, image); |
162 | Add2DigitsList(hDigitPM3ZPClg, 34, !expert, image); |
163 | Add2DigitsList(hDigitPM4ZPClg, 35, !expert, image); |
164 | // |
165 | TH1F * hDigitPM1ZNAlg = new TH1F("hDigitPM1ZNAlg", "Digit PM1 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
166 | TH1F * hDigitPM2ZNAlg = new TH1F("hDigitPM2ZNAlg", "Digit PM2 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
167 | TH1F * hDigitPM3ZNAlg = new TH1F("hDigitPM3ZNAlg", "Digit PM3 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
168 | TH1F * hDigitPM4ZNAlg = new TH1F("hDigitPM4ZNAlg", "Digit PM4 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
169 | Add2DigitsList(hDigitPM1ZNAlg, 36, !expert, image); |
170 | Add2DigitsList(hDigitPM2ZNAlg, 37, !expert, image); |
171 | Add2DigitsList(hDigitPM3ZNAlg, 38, !expert, image); |
172 | Add2DigitsList(hDigitPM4ZNAlg, 39, !expert, image); |
173 | // |
174 | TH1F * hDigitPM1ZPAlg = new TH1F("hDigitPM1ZPAlg", "Digit PM1 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
175 | TH1F * hDigitPM2ZPAlg = new TH1F("hDigitPM2ZPAlg", "Digit PM2 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
176 | TH1F * hDigitPM3ZPAlg = new TH1F("hDigitPM3ZPAlg", "Digit PM3 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
177 | TH1F * hDigitPM4ZPAlg = new TH1F("hDigitPM4ZPAlg", "Digit PM4 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
178 | Add2DigitsList(hDigitPM1ZPAlg, 40, !expert, image); |
179 | Add2DigitsList(hDigitPM2ZPAlg, 41, !expert, image); |
180 | Add2DigitsList(hDigitPM3ZPAlg, 42, !expert, image); |
181 | Add2DigitsList(hDigitPM4ZPAlg, 43, !expert, image); |
213a7d34 |
182 | |
44ed7a66 |
183 | } |
184 | |
f5e4ee59 |
185 | //____________________________________________________________________________ |
186 | void AliZDCQADataMakerRec::InitRecPoints() |
187 | { |
188 | // create Digits histograms in Digits subdir |
189 | const Bool_t expert = kTRUE ; |
190 | const Bool_t image = kTRUE ; |
191 | // |
192 | // ------------------- HIGH GAIN CHAIN --------------------------- |
193 | TH1F * hRecZNCTot = new TH1F("hRecZNCTot", "Rec signal in ZNC;Amplitude [ADC counts];Counts", 100, 0., 6000.); |
194 | TH1F * hRecZNATot = new TH1F("hRecZNATot", "Rec signal in ZNA;Amplitude [ADC counts];Counts", 100, 0., 6000.); |
195 | TH1F * hRecZPCTot = new TH1F("hRecZPCTot", "Rec signal in ZPC;Amplitude [ADC counts];Counts", 100, 0., 10000.); |
196 | TH1F * hRecZPATot = new TH1F("hRecZPATot", "Rec signal in ZPA;Amplitude [ADC counts];Counts", 100, 0., 10000.); |
197 | Add2RecPointsList(hRecZNCTot, 0, expert, !image); |
198 | Add2RecPointsList(hRecZNATot, 1, expert, !image); |
199 | Add2RecPointsList(hRecZPCTot, 2, expert, !image); |
200 | Add2RecPointsList(hRecZPATot, 3, expert, !image); |
201 | // |
202 | TH1F * hRecSumQZNC = new TH1F("hRecSumQZNC", "Rec summed 4 ZNC quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.); |
203 | TH1F * hRecSumQZNA = new TH1F("hRecSumQZNA", "Rec summed 4 ZNA quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.); |
204 | TH1F * hRecSumQZPC = new TH1F("hRecSumQZPC", "Rec summed 4 ZPC quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.); |
205 | TH1F * hRecSumQZPA = new TH1F("hRecSumQZPA", "Rec summed 4 ZPA quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.); |
206 | Add2RecPointsList(hRecSumQZNC, 4, expert, !image); |
207 | Add2RecPointsList(hRecSumQZNA, 5, expert, !image); |
208 | Add2RecPointsList(hRecSumQZPC, 6, expert, !image); |
209 | Add2RecPointsList(hRecSumQZPA, 7, expert, !image); |
210 | // |
211 | TH1F * hRecPMCZNC = new TH1F("hRecPMCZNC", "Rec common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
212 | TH1F * hRecPMCZNA = new TH1F("hRecPMCZNA", "Rec common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
213 | TH1F * hRecPMCZPC = new TH1F("hRecPMCZPC", "Rec common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
214 | TH1F * hRecPMCZPA = new TH1F("hRecPMCZPA", "Rec common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.); |
215 | Add2RecPointsList(hRecPMCZNC, 8 , !expert, image); |
216 | Add2RecPointsList(hRecPMCZNA, 9 , !expert, image); |
217 | Add2RecPointsList(hRecPMCZPC, 10, !expert, image); |
218 | Add2RecPointsList(hRecPMCZPA, 11, !expert, image); |
219 | } |
220 | |
221 | |
222 | //____________________________________________________________________________ |
223 | void AliZDCQADataMakerRec::InitRaws() |
224 | { |
225 | // create Digits histograms in Digits subdir |
226 | const Bool_t expert = kTRUE ; |
227 | const Bool_t image = kTRUE ; |
228 | // |
229 | // ------------------- HIGH GAIN CHAIN --------------------------- |
b72460a5 |
230 | TH1F * hRawPMCZNC = new TH1F("hRawPMCZNC", "Raw common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
231 | TH1F * hRawPMCZNA = new TH1F("hRawPMCZNA", "Raw common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
232 | TH1F * hRawPMCZPC = new TH1F("hRawPMCZPC", "Raw common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
233 | TH1F * hRawPMCZPA = new TH1F("hRawPMCZPA", "Raw common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
234 | TH1F * hRawPMZEM1 = new TH1F("hRawPMZEM1", "Raw ZEM1 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
235 | TH1F * hRawPMZEM2 = new TH1F("hRawPMZEM2", "Raw ZEM2 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
236 | Add2RawsList(hRawPMCZNC, 0 , !expert, image); |
237 | Add2RawsList(hRawPMCZNA, 1 , !expert, image); |
238 | Add2RawsList(hRawPMCZPC, 2, !expert, image); |
239 | Add2RawsList(hRawPMCZPA, 3, !expert, image); |
240 | Add2RawsList(hRawPMZEM1, 4, !expert, image); |
241 | Add2RawsList(hRawPMZEM2, 5, !expert, image); |
f5e4ee59 |
242 | // |
243 | // ------------------- LOW GAIN CHAIN --------------------------- |
c2bb665a |
244 | TH1F * hRawPMCZNClg = new TH1F("hRawPMCZNClg", "Raw common lg ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
245 | TH1F * hRawPMCZNAlg = new TH1F("hRawPMCZNAlg", "Raw common lg ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
246 | TH1F * hRawPMCZPClg = new TH1F("hRawPMCZPClg", "Raw common lg ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
247 | TH1F * hRawPMCZPAlg = new TH1F("hRawPMCZPAlg", "Raw common lg ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.); |
248 | TH1F * hRawPMZEM1lg = new TH1F("hRawPMZEM1lg", "Raw ZEM1 PMT lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
249 | TH1F * hRawPMZEM2lg = new TH1F("hRawPMZEM2lg", "Raw ZEM2 PMT lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
b72460a5 |
250 | Add2RawsList(hRawPMCZNClg, 6, expert, !image); |
251 | Add2RawsList(hRawPMCZNAlg, 7, expert, !image); |
252 | Add2RawsList(hRawPMCZPClg, 8, expert, !image); |
253 | Add2RawsList(hRawPMCZPAlg, 9, expert, !image); |
254 | Add2RawsList(hRawPMZEM1lg, 10, !expert, image); |
255 | Add2RawsList(hRawPMZEM2lg, 11, !expert, image); |
f5e4ee59 |
256 | // |
b72460a5 |
257 | // ------------------- HIGH GAIN CHAIN --------------------------- |
258 | TH1F * hRawPM1ZNC = new TH1F("hRawPM1ZNC", "Raw PM1 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
259 | TH1F * hRawPM2ZNC = new TH1F("hRawPM2ZNC", "Raw PM2 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
260 | TH1F * hRawPM3ZNC = new TH1F("hRawPM3ZNC", "Raw PM3 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
261 | TH1F * hRawPM4ZNC = new TH1F("hRawPM4ZNC", "Raw PM4 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
262 | Add2RawsList(hRawPM1ZNC, 12, !expert, image); |
263 | Add2RawsList(hRawPM2ZNC, 13, !expert, image); |
264 | Add2RawsList(hRawPM3ZNC, 14, !expert, image); |
265 | Add2RawsList(hRawPM4ZNC, 15, !expert, image); |
266 | // |
267 | TH1F * hRawPM1ZPC = new TH1F("hRawPM1ZPC", "Raw PM1 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
268 | TH1F * hRawPM2ZPC = new TH1F("hRawPM2ZPC", "Raw PM2 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
269 | TH1F * hRawPM3ZPC = new TH1F("hRawPM3ZPC", "Raw PM3 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
270 | TH1F * hRawPM4ZPC = new TH1F("hRawPM4ZPC", "Raw PM4 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.); |
271 | Add2RawsList(hRawPM1ZPC, 16, !expert, image); |
272 | Add2RawsList(hRawPM2ZPC, 17, !expert, image); |
273 | Add2RawsList(hRawPM3ZPC, 18, !expert, image); |
274 | Add2RawsList(hRawPM4ZPC, 19, !expert, image); |
275 | // |
276 | TH1F * hRawPM1ZNA = new TH1F("hRawPM1ZNA", "Raw PM1 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
277 | TH1F * hRawPM2ZNA = new TH1F("hRawPM2ZNA", "Raw PM2 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
278 | TH1F * hRawPM3ZNA = new TH1F("hRawPM3ZNA", "Raw PM3 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
279 | TH1F * hRawPM4ZNA = new TH1F("hRawPM4ZNA", "Raw PM4 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
280 | Add2RawsList(hRawPM1ZNA, 20, !expert, image); |
281 | Add2RawsList(hRawPM2ZNA, 21, !expert, image); |
282 | Add2RawsList(hRawPM3ZNA, 22, !expert, image); |
283 | Add2RawsList(hRawPM4ZNA, 23, !expert, image); |
284 | // |
285 | TH1F * hRawPM1ZPA = new TH1F("hRawPM1ZPA", "Raw PM1 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
286 | TH1F * hRawPM2ZPA = new TH1F("hRawPM2ZPA", "Raw PM2 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
287 | TH1F * hRawPM3ZPA = new TH1F("hRawPM3ZPA", "Raw PM3 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
288 | TH1F * hRawPM4ZPA = new TH1F("hRawPM4ZPA", "Raw PM4 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.); |
289 | Add2RawsList(hRawPM1ZPA, 24, !expert, image); |
290 | Add2RawsList(hRawPM2ZPA, 25, !expert, image); |
291 | Add2RawsList(hRawPM3ZPA, 26, !expert, image); |
292 | Add2RawsList(hRawPM4ZPA, 27, !expert, image); |
f5e4ee59 |
293 | // |
b72460a5 |
294 | // ------------------- LOW GAIN CHAIN --------------------------- |
295 | TH1F * hRawPM1ZNClg = new TH1F("hRawPM1ZNClg", "Raw PM1 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
296 | TH1F * hRawPM2ZNClg = new TH1F("hRawPM2ZNClg", "Raw PM2 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
297 | TH1F * hRawPM3ZNClg = new TH1F("hRawPM3ZNClg", "Raw PM3 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
298 | TH1F * hRawPM4ZNClg = new TH1F("hRawPM4ZNClg", "Raw PM4 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
299 | Add2RawsList(hRawPM1ZNClg, 28, !expert, image); |
300 | Add2RawsList(hRawPM2ZNClg, 29, !expert, image); |
301 | Add2RawsList(hRawPM3ZNClg, 30, !expert, image); |
302 | Add2RawsList(hRawPM4ZNClg, 31, !expert, image); |
303 | // |
304 | TH1F * hRawPM1ZPClg = new TH1F("hRawPM1ZPClg", "Raw PM1 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
305 | TH1F * hRawPM2ZPClg = new TH1F("hRawPM2ZPClg", "Raw PM2 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
306 | TH1F * hRawPM3ZPClg = new TH1F("hRawPM3ZPClg", "Raw PM3 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
307 | TH1F * hRawPM4ZPClg = new TH1F("hRawPM4ZPClg", "Raw PM4 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
308 | Add2RawsList(hRawPM1ZPClg, 32, !expert, image); |
309 | Add2RawsList(hRawPM2ZPClg, 33, !expert, image); |
310 | Add2RawsList(hRawPM3ZPClg, 34, !expert, image); |
311 | Add2RawsList(hRawPM4ZPClg, 35, !expert, image); |
312 | // |
313 | TH1F * hRawPM1ZNAlg = new TH1F("hRawPM1ZNAlg", "Raw PM1 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
314 | TH1F * hRawPM2ZNAlg = new TH1F("hRawPM2ZNAlg", "Raw PM2 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
315 | TH1F * hRawPM3ZNAlg = new TH1F("hRawPM3ZNAlg", "Raw PM3 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
316 | TH1F * hRawPM4ZNAlg = new TH1F("hRawPM4ZNAlg", "Raw PM4 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
317 | Add2RawsList(hRawPM1ZNAlg, 36, !expert, image); |
318 | Add2RawsList(hRawPM2ZNAlg, 37, !expert, image); |
319 | Add2RawsList(hRawPM3ZNAlg, 38, !expert, image); |
320 | Add2RawsList(hRawPM4ZNAlg, 39, !expert, image); |
321 | // |
322 | TH1F * hRawPM1ZPAlg = new TH1F("hRawPM1ZPAlg", "Raw PM1 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
323 | TH1F * hRawPM2ZPAlg = new TH1F("hRawPM2ZPAlg", "Raw PM2 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
324 | TH1F * hRawPM3ZPAlg = new TH1F("hRawPM3ZPAlg", "Raw PM3 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
325 | TH1F * hRawPM4ZPAlg = new TH1F("hRawPM4ZPAlg", "Raw PM4 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.); |
326 | Add2RawsList(hRawPM1ZPAlg, 40, !expert, image); |
327 | Add2RawsList(hRawPM2ZPAlg, 41, !expert, image); |
328 | Add2RawsList(hRawPM3ZPAlg, 42, !expert, image); |
329 | Add2RawsList(hRawPM4ZPAlg, 43, !expert, image); |
f5e4ee59 |
330 | } |
331 | |
075a0e70 |
332 | //____________________________________________________________________________ |
333 | void AliZDCQADataMakerRec::InitESDs() |
334 | { |
335 | //Booking ESDs histograms |
336 | // |
b72460a5 |
337 | const Bool_t expert = kTRUE ; |
338 | const Bool_t image = kTRUE ; |
7d297381 |
339 | |
075a0e70 |
340 | TH2F * hZNC = new TH2F("hZNC", "Centroid in ZNC", 100, -5.,5.,100,-5.,5.); |
341 | TH2F * hZNA = new TH2F("hZNA", "Centroid in ZNA", 100, -5.,5.,100,-5.,5.); |
7d297381 |
342 | Add2ESDsList(hZNC, 0, !expert, image); |
343 | Add2ESDsList(hZNA, 1, !expert, image); |
075a0e70 |
344 | // |
fdc38bb2 |
345 | // ------------------- HIGH GAIN CHAIN --------------------------- |
3d26d59b |
346 | TH1F * hESDZNCTot = new TH1F("hESDZNCTot", "Energy in ZNC", 100, 0., 6000.); |
3d26d59b |
347 | TH1F * hESDZNATot = new TH1F("hESDZNATot", "Energy in ZNA", 100, 0., 6000.); |
fdc38bb2 |
348 | TH1F * hESDZPCTot = new TH1F("hESDZPCTot", "Energy in ZPC", 100, 0., 10000.); |
3d26d59b |
349 | TH1F * hESDZPATot = new TH1F("hESDZPATot", "Energy in ZPA", 100, 0., 10000.); |
f5e4ee59 |
350 | Add2ESDsList(hESDZNCTot, 2, expert, !image); |
351 | Add2ESDsList(hESDZNATot, 3, expert, !image); |
352 | Add2ESDsList(hESDZPCTot, 4, expert, !image); |
353 | Add2ESDsList(hESDZPATot, 5, expert, !image); |
075a0e70 |
354 | // |
3d26d59b |
355 | TH1F * hESDSumQZNC = new TH1F("hESDSumQZNC", "Sum of 4 ZNC energy",100, 0., 4000.); |
3d26d59b |
356 | TH1F * hESDSumQZNA = new TH1F("hESDSumQZNA", "Sum of 4 ZNA energy",100, 0., 4000.); |
fdc38bb2 |
357 | TH1F * hESDSumQZPC = new TH1F("hESDSumQZPC", "Sum of 4 ZPC energy",100, 0., 4000.); |
3d26d59b |
358 | TH1F * hESDSumQZPA = new TH1F("hESDSumQZPA", "Sum of 4 ZPA energy",100, 0., 4000.); |
7d297381 |
359 | Add2ESDsList(hESDSumQZNC, 6, expert, !image); |
360 | Add2ESDsList(hESDSumQZNA, 7, expert, !image); |
361 | Add2ESDsList(hESDSumQZPC, 8, expert, !image); |
362 | Add2ESDsList(hESDSumQZPA, 9, expert, !image); |
075a0e70 |
363 | // |
3d26d59b |
364 | TH1F * hESDPMCZNC = new TH1F("hESDPMCZNC", "Energy in common ZNC PMT",100, 0., 4000.); |
3d26d59b |
365 | TH1F * hESDPMCZNA = new TH1F("hESDPMCZNA", "Energy in common ZNA PMT",100, 0., 4000.); |
fdc38bb2 |
366 | TH1F * hESDPMCZPC = new TH1F("hESDPMCZPC", "Energy in common ZPC PMT",100, 0., 4000.); |
3d26d59b |
367 | TH1F * hESDPMCZPA = new TH1F("hESDPMCZPA", "Energy in common ZPA PMT",100, 0., 4000.); |
f5e4ee59 |
368 | Add2ESDsList(hESDPMCZNC, 10, !expert, image); |
369 | Add2ESDsList(hESDPMCZNA, 11, !expert, image); |
370 | Add2ESDsList(hESDPMCZPC, 12, !expert, image); |
371 | Add2ESDsList(hESDPMCZPA, 13, !expert, image); |
075a0e70 |
372 | // |
213a7d34 |
373 | // ------------------- LOW GAIN CHAIN --------------------------- |
3d26d59b |
374 | TH1F * hESDZNCTotlg = new TH1F("hESDZNCTotlg", "ESD lg signal in ZNC", 100, 0., 6000.); |
375 | TH1F * hESDZNATotlg = new TH1F("hESDZNATotlg", "ESD lg signal in ZNA", 100, 0., 6000.); |
376 | TH1F * hESDZPCTotlg = new TH1F("hESDZPCTotlg", "ESD lg signal in ZPC", 100, 0., 10000.); |
377 | TH1F * hESDZPATotlg = new TH1F("hESDZPATotlg", "ESD lg signal in ZPA", 100, 0., 10000.); |
f5e4ee59 |
378 | Add2ESDsList(hESDZNCTotlg, expert, !image); |
379 | Add2ESDsList(hESDZNATotlg, expert, !image); |
380 | Add2ESDsList(hESDZPCTotlg, expert, !image); |
381 | Add2ESDsList(hESDZPATotlg, expert, !image); |
075a0e70 |
382 | // |
3d26d59b |
383 | TH1F * hESDSumQZNClg = new TH1F("hESDSumQZNClg", "Sum of 4 lg ZNC sectors",100, 0., 4000.); |
3d26d59b |
384 | TH1F * hESDSumQZNAlg = new TH1F("hESDSumQZNAlg", "Sum of 4 lg ZNA sectors",100, 0., 4000.); |
fdc38bb2 |
385 | TH1F * hESDSumQZPClg = new TH1F("hESDSumQZPClg", "Sum of 4 lg ZPC sectors",100, 0., 4000.); |
3d26d59b |
386 | TH1F * hESDSumQZPAlg = new TH1F("hESDSumQZPAlg", "Sum of 4 lg ZPA sectors",100, 0., 4000.); |
7d297381 |
387 | Add2ESDsList(hESDSumQZNClg, 18, expert, !image); |
388 | Add2ESDsList(hESDSumQZNAlg, 19, expert, !image); |
389 | Add2ESDsList(hESDSumQZPClg, 20, expert, !image); |
390 | Add2ESDsList(hESDSumQZPAlg, 21, expert, !image); |
075a0e70 |
391 | // |
3d26d59b |
392 | TH1F * hESDPMCZNClg = new TH1F("hESDPMCZNClg", "Signal in common ZNC lg PMT",100, 0., 4000.); |
3d26d59b |
393 | TH1F * hESDPMCZNAlg = new TH1F("hESDPMCZNAlg", "Signal in common ZNA lg PMT",100, 0., 4000.); |
fdc38bb2 |
394 | TH1F * hESDPMCZPClg = new TH1F("hESDPMCZPClg", "Signal in common ZPC lg PMT",100, 0., 4000.); |
3d26d59b |
395 | TH1F * hESDPMCZPAlg = new TH1F("hESDPMCZPAlg", "Signal in common ZPA lg PMT",100, 0., 4000.); |
7d297381 |
396 | Add2ESDsList(hESDPMCZNClg, 22, expert, !image); |
397 | Add2ESDsList(hESDPMCZNAlg, 23, expert, !image); |
398 | Add2ESDsList(hESDPMCZPClg, 24, expert, !image); |
213a7d34 |
399 | Add2ESDsList(hESDPMCZPAlg, 25, expert, !image); |
075a0e70 |
400 | } |
075a0e70 |
401 | |
44ed7a66 |
402 | //___________________________________________________________________________ |
f5e4ee59 |
403 | void AliZDCQADataMakerRec::MakeDigits(TTree *digitTree) |
44ed7a66 |
404 | { |
b72460a5 |
405 | // Check id histograms already created for this Event Specie |
406 | if(!GetDigitsData(0)) InitDigits() ; |
407 | |
44ed7a66 |
408 | TBranch * branch = digitTree->GetBranch("ZDC"); |
409 | if(!branch){ |
410 | AliError("ZDC branch in Digit Tree not found"); |
411 | return; |
412 | } |
eca4fa66 |
413 | |
eca4fa66 |
414 | |
415 | branch->SetAddress(&fDigit); |
44ed7a66 |
416 | |
b19cc8d0 |
417 | Long64_t ndig = digitTree->GetEntries(); |
b72460a5 |
418 | |
419 | for(Int_t i=0; i<ndig; i++){ |
44ed7a66 |
420 | digitTree->GetEntry(i); |
b72460a5 |
421 | if(fDigit->GetSector(0)==1 && fDigit->GetSector(1)!=5){ |
422 | if(fDigit->GetSector(1)==0){ |
423 | GetDigitsData(0)->Fill(fDigit->GetADCValue(0)); |
424 | GetDigitsData(6)->Fill(fDigit->GetADCValue(1)); |
425 | } |
426 | else if(fDigit->GetSector(1)==1){ |
427 | GetDigitsData(12)->Fill(fDigit->GetADCValue(0)); |
428 | GetDigitsData(28)->Fill(fDigit->GetADCValue(1)); |
429 | } |
430 | else if(fDigit->GetSector(1)==2){ |
431 | GetDigitsData(13)->Fill(fDigit->GetADCValue(0)); |
432 | GetDigitsData(29)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
433 | } |
b72460a5 |
434 | else if(fDigit->GetSector(1)==3){ |
435 | GetDigitsData(14)->Fill(fDigit->GetADCValue(0)); |
436 | GetDigitsData(30)->Fill(fDigit->GetADCValue(1)); |
437 | } |
438 | else if(fDigit->GetSector(1)==4){ |
439 | GetDigitsData(15)->Fill(fDigit->GetADCValue(0)); |
440 | GetDigitsData(31)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
441 | } |
442 | } |
443 | else if(fDigit->GetSector(0)==2){ |
b72460a5 |
444 | if(fDigit->GetSector(1)==0){ |
445 | GetDigitsData(2)->Fill(fDigit->GetADCValue(0)); |
446 | GetDigitsData(8)->Fill(fDigit->GetADCValue(1)); |
447 | } |
448 | else if(fDigit->GetSector(1)==1){ |
449 | GetDigitsData(16)->Fill(fDigit->GetADCValue(0)); |
450 | GetDigitsData(32)->Fill(fDigit->GetADCValue(1)); |
451 | } |
452 | else if(fDigit->GetSector(1)==2){ |
453 | GetDigitsData(17)->Fill(fDigit->GetADCValue(0)); |
454 | GetDigitsData(33)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
455 | } |
b72460a5 |
456 | else if(fDigit->GetSector(1)==3){ |
457 | GetDigitsData(18)->Fill(fDigit->GetADCValue(0)); |
458 | GetDigitsData(34)->Fill(fDigit->GetADCValue(1)); |
459 | } |
460 | else if(fDigit->GetSector(1)==4){ |
461 | GetDigitsData(19)->Fill(fDigit->GetADCValue(0)); |
462 | GetDigitsData(35)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
463 | } |
464 | } |
b72460a5 |
465 | else if(fDigit->GetSector(0)==3){ |
466 | if(fDigit->GetSector(1)==1){ |
467 | GetDigitsData(4)->Fill(fDigit->GetADCValue(0)); |
468 | GetDigitsData(10)->Fill(fDigit->GetADCValue(1)); |
469 | } |
470 | else if(fDigit->GetSector(1)==2){ |
471 | GetDigitsData(5)->Fill(fDigit->GetADCValue(0)); |
472 | GetDigitsData(11)->Fill(fDigit->GetADCValue(1)); |
473 | } |
474 | } |
475 | else if(fDigit->GetSector(0)==4 && fDigit->GetSector(1)!=5){ |
476 | if(fDigit->GetSector(1)==0){ |
477 | GetDigitsData(1)->Fill(fDigit->GetADCValue(0)); |
478 | GetDigitsData(7)->Fill(fDigit->GetADCValue(1)); |
479 | } |
480 | else if(fDigit->GetSector(1)==1){ |
481 | GetDigitsData(20)->Fill(fDigit->GetADCValue(0)); |
482 | GetDigitsData(36)->Fill(fDigit->GetADCValue(1)); |
483 | } |
484 | else if(fDigit->GetSector(1)==2){ |
485 | GetDigitsData(21)->Fill(fDigit->GetADCValue(0)); |
486 | GetDigitsData(37)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
487 | } |
b72460a5 |
488 | else if(fDigit->GetSector(1)==3){ |
489 | GetDigitsData(22)->Fill(fDigit->GetADCValue(0)); |
490 | GetDigitsData(38)->Fill(fDigit->GetADCValue(1)); |
491 | } |
492 | else if(fDigit->GetSector(1)==4){ |
493 | GetDigitsData(23)->Fill(fDigit->GetADCValue(0)); |
494 | GetDigitsData(39)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
495 | } |
496 | } |
497 | else if(fDigit->GetSector(0)==5){ |
b72460a5 |
498 | if(fDigit->GetSector(1)==0){ |
499 | GetDigitsData(3)->Fill(fDigit->GetADCValue(0)); |
500 | GetDigitsData(9)->Fill(fDigit->GetADCValue(1)); |
501 | } |
502 | else if(fDigit->GetSector(1)==1){ |
503 | GetDigitsData(24)->Fill(fDigit->GetADCValue(0)); |
504 | GetDigitsData(40)->Fill(fDigit->GetADCValue(1)); |
505 | } |
506 | else if(fDigit->GetSector(1)==2){ |
507 | GetDigitsData(25)->Fill(fDigit->GetADCValue(0)); |
508 | GetDigitsData(41)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
509 | } |
b72460a5 |
510 | else if(fDigit->GetSector(1)==3){ |
511 | GetDigitsData(26)->Fill(fDigit->GetADCValue(0)); |
512 | GetDigitsData(42)->Fill(fDigit->GetADCValue(1)); |
513 | } |
514 | else if(fDigit->GetSector(1)==4){ |
515 | GetDigitsData(27)->Fill(fDigit->GetADCValue(0)); |
516 | GetDigitsData(43)->Fill(fDigit->GetADCValue(1)); |
44ed7a66 |
517 | } |
518 | } |
519 | } |
44ed7a66 |
520 | } |
521 | |
f5e4ee59 |
522 | //____________________________________________________________________________ |
523 | void AliZDCQADataMakerRec::MakeRecPoints(TTree * clustersTree) |
524 | { |
525 | // Filling QA histos from RecPoints |
526 | |
527 | TBranch *branch = clustersTree->GetBranch("ZDC"); |
528 | if(!branch){ |
529 | AliError("Can't get the ZDC branch for rec points!"); |
530 | return; |
531 | } |
532 | |
533 | if(!GetRecPointsData(0)) InitRecPoints() ; |
534 | |
535 | Float_t sum_ZNC=0., sum_ZNA=0., sum_ZPC=0., sum_ZPA=0.; |
536 | Float_t sumQ_ZNC=0., sumQ_ZNA=0., sumQ_ZPC=0., sumQ_ZPA=0.; |
537 | |
538 | AliZDCReco reco; |
539 | AliZDCReco* preco = &reco; |
540 | clustersTree->SetBranchAddress("ZDC", &preco); |
541 | |
542 | clustersTree->GetEntry(0); |
543 | for(Int_t i=0; i<5; i++){ |
544 | sum_ZNC += reco.GetZN1HREnTow(i); |
545 | sum_ZPC += reco.GetZN2HREnTow(i); |
546 | sum_ZNA += reco.GetZP1HREnTow(i); |
547 | sum_ZPA += reco.GetZP2HREnTow(i); |
548 | if(i==0){ |
549 | GetRecPointsData(8)->Fill(reco.GetZN1HREnTow(i)); |
550 | GetRecPointsData(9)->Fill(reco.GetZN2HREnTow(i)); |
551 | GetRecPointsData(10)->Fill(reco.GetZP1HREnTow(i)); |
552 | GetRecPointsData(11)->Fill(reco.GetZP2HREnTow(i)); |
553 | } |
554 | else{ |
555 | sumQ_ZNC += reco.GetZN1HREnTow(i); |
556 | sumQ_ZPC += reco.GetZN2HREnTow(i); |
557 | sumQ_ZNA += reco.GetZP1HREnTow(i); |
558 | sumQ_ZPA += reco.GetZP2HREnTow(i); |
559 | } |
560 | } |
561 | |
562 | GetRecPointsData(0)->Fill(sum_ZNC); |
563 | GetRecPointsData(1)->Fill(sum_ZPC); |
564 | GetRecPointsData(2)->Fill(sum_ZNA); |
565 | GetRecPointsData(3)->Fill(sum_ZPA); |
566 | // |
567 | GetRecPointsData(4)->Fill(sumQ_ZNC); |
568 | GetRecPointsData(5)->Fill(sumQ_ZPC); |
569 | GetRecPointsData(6)->Fill(sumQ_ZNA); |
570 | GetRecPointsData(7)->Fill(sumQ_ZPA); |
571 | |
572 | } |
573 | |
574 | //____________________________________________________________________________ |
575 | void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader) |
576 | { |
577 | // Filling Raws QA histos |
578 | // |
579 | // Check if histograms already created for this Event Specie |
580 | if(!GetRawsData(0)) InitRaws(); |
b72460a5 |
581 | |
f5e4ee59 |
582 | AliZDCRawStream stream(rawReader); |
583 | while(stream.Next()){ |
584 | if(stream.IsADCDataWord() && |
585 | (stream.GetADCModule()==0 || stream.GetADCModule()==1)){ |
b72460a5 |
586 | |
587 | if(stream.GetSector(0)==1 && stream.GetSector(1)!=5){ |
588 | if(stream.GetSector(1)==0){ |
589 | if(stream.GetADCGain()==0) GetRawsData(0)->Fill(stream.GetADCValue()); |
590 | else if(stream.GetADCGain()==1) GetRawsData(6)->Fill(stream.GetADCValue()); |
591 | } |
592 | else if(stream.GetSector(1)==1){ |
593 | if(stream.GetADCGain()==0) GetRawsData(12)->Fill(stream.GetADCValue()); |
594 | else if(stream.GetADCGain()==1) GetRawsData(28)->Fill(stream.GetADCValue()); |
595 | } |
596 | else if(stream.GetSector(1)==2){ |
597 | if(stream.GetADCGain()==0) GetRawsData(13)->Fill(stream.GetADCValue()); |
598 | else if(stream.GetADCGain()==1) GetRawsData(29)->Fill(stream.GetADCValue()); |
f5e4ee59 |
599 | } |
b72460a5 |
600 | else if(stream.GetSector(1)==3){ |
601 | if(stream.GetADCGain()==0) GetRawsData(14)->Fill(stream.GetADCValue()); |
602 | else if(stream.GetADCGain()==1) GetRawsData(30)->Fill(stream.GetADCValue()); |
603 | } |
604 | else if(stream.GetSector(1)==4){ |
605 | if(stream.GetADCGain()==0) GetRawsData(15)->Fill(stream.GetADCValue()); |
606 | else if(stream.GetADCGain()==1) GetRawsData(31)->Fill(stream.GetADCValue()); |
f5e4ee59 |
607 | } |
608 | } |
b72460a5 |
609 | else if(stream.GetSector(0)==2){ |
610 | if(stream.GetSector(1)==0){ |
611 | if(stream.GetADCGain()==0) GetRawsData(2)->Fill(stream.GetADCValue()); |
612 | else if(stream.GetADCGain()==1) GetRawsData(8)->Fill(stream.GetADCValue()); |
613 | } |
614 | else if(stream.GetSector(1)==1){ |
615 | if(stream.GetADCGain()==0) GetRawsData(16)->Fill(stream.GetADCValue()); |
616 | else if(stream.GetADCGain()==1) GetRawsData(32)->Fill(stream.GetADCValue()); |
617 | } |
618 | else if(stream.GetSector(1)==2){ |
619 | if(stream.GetADCGain()==0) GetRawsData(17)->Fill(stream.GetADCValue()); |
620 | else if(stream.GetADCGain()==1) GetRawsData(33)->Fill(stream.GetADCValue()); |
621 | } |
622 | else if(stream.GetSector(1)==3){ |
623 | if(stream.GetADCGain()==0) GetRawsData(18)->Fill(stream.GetADCValue()); |
624 | else if(stream.GetADCGain()==1) GetRawsData(34)->Fill(stream.GetADCValue()); |
625 | } |
626 | else if(stream.GetSector(1)==4){ |
627 | if(stream.GetADCGain()==0) GetRawsData(19)->Fill(stream.GetADCValue()); |
628 | else if(stream.GetADCGain()==1) GetRawsData(35)->Fill(stream.GetADCValue()); |
629 | } |
630 | } |
631 | else if(stream.GetSector(0)==3){ |
632 | if(stream.GetSector(1)==1){ // ZEM1 |
633 | if(stream.GetADCGain()==0) GetRawsData(4)->Fill(stream.GetADCValue()); |
f5e4ee59 |
634 | else GetRawsData(10)->Fill(stream.GetADCValue()); |
635 | } |
b72460a5 |
636 | else if(stream.GetSector(1)==2){ // ZEM2 |
637 | if(stream.GetADCGain()==0) GetRawsData(5)->Fill(stream.GetADCValue()); |
638 | else GetRawsData(11)->Fill(stream.GetADCValue()); |
f5e4ee59 |
639 | } |
640 | } |
b72460a5 |
641 | else if(stream.GetSector(0)==4 && stream.GetSector(1)!=5){ |
642 | if(stream.GetSector(1)==0){ |
643 | if(stream.GetADCGain()==0) GetRawsData(1)->Fill(stream.GetADCValue()); |
644 | else if(stream.GetADCGain()==1) GetRawsData(7)->Fill(stream.GetADCValue()); |
645 | } |
646 | else if(stream.GetSector(1)==1){ |
647 | if(stream.GetADCGain()==0) GetRawsData(20)->Fill(stream.GetADCValue()); |
648 | else if(stream.GetADCGain()==1) GetRawsData(36)->Fill(stream.GetADCValue()); |
649 | } |
650 | else if(stream.GetSector(1)==2){ |
651 | if(stream.GetADCGain()==0) GetRawsData(21)->Fill(stream.GetADCValue()); |
652 | else if(stream.GetADCGain()==1) GetRawsData(37)->Fill(stream.GetADCValue()); |
f5e4ee59 |
653 | } |
b72460a5 |
654 | else if(stream.GetSector(1)==3){ |
655 | if(stream.GetADCGain()==0) GetRawsData(22)->Fill(stream.GetADCValue()); |
656 | else if(stream.GetADCGain()==1) GetRawsData(38)->Fill(stream.GetADCValue()); |
657 | } |
658 | else if(stream.GetSector(1)==4){ |
659 | if(stream.GetADCGain()==0) GetRawsData(23)->Fill(stream.GetADCValue()); |
660 | else if(stream.GetADCGain()==1) GetRawsData(39)->Fill(stream.GetADCValue()); |
f5e4ee59 |
661 | } |
662 | } |
663 | else if(stream.GetSector(0)==5){ |
b72460a5 |
664 | if(stream.GetSector(1)==0){ |
665 | if(stream.GetADCGain()==0) GetRawsData(3)->Fill(stream.GetADCValue()); |
666 | else if(stream.GetADCGain()==1) GetRawsData(9)->Fill(stream.GetADCValue()); |
667 | } |
668 | else if(stream.GetSector(1)==1){ |
669 | if(stream.GetADCGain()==0) GetRawsData(24)->Fill(stream.GetADCValue()); |
670 | else if(stream.GetADCGain()==1) GetRawsData(40)->Fill(stream.GetADCValue()); |
671 | } |
672 | else if(stream.GetSector(1)==2){ |
673 | if(stream.GetADCGain()==0) GetRawsData(25)->Fill(stream.GetADCValue()); |
674 | else if(stream.GetADCGain()==1) GetRawsData(41)->Fill(stream.GetADCValue()); |
675 | } |
676 | else if(stream.GetSector(1)==3){ |
677 | if(stream.GetADCGain()==0) GetRawsData(26)->Fill(stream.GetADCValue()); |
678 | else if(stream.GetADCGain()==1) GetRawsData(42)->Fill(stream.GetADCValue()); |
f5e4ee59 |
679 | } |
b72460a5 |
680 | else if(stream.GetSector(1)==4){ |
681 | if(stream.GetADCGain()==0) GetRawsData(27)->Fill(stream.GetADCValue()); |
682 | else if(stream.GetADCGain()==1) GetRawsData(43)->Fill(stream.GetADCValue()); |
f5e4ee59 |
683 | } |
684 | } |
685 | } |
b72460a5 |
686 | |
f5e4ee59 |
687 | } |
b72460a5 |
688 | |
f5e4ee59 |
689 | // stream.Delete(); |
690 | } |
691 | |
075a0e70 |
692 | //____________________________________________________________________________ |
693 | void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd) |
694 | { |
695 | // make QA data from ESDs |
696 | // |
eca4fa66 |
697 | |
698 | // Check id histograms already created for this Event Specie |
b72460a5 |
699 | if(!GetESDsData(0)) |
eca4fa66 |
700 | InitESDs() ; |
701 | |
075a0e70 |
702 | AliESDZDC * zdcESD = esd->GetESDZDC(); |
703 | // |
b72460a5 |
704 | TString beamType = esd->GetBeamType(); |
789b8a8d |
705 | Double_t centr_ZNC[2]={999.,999}, centr_ZNA[2]={999.,999}; |
b72460a5 |
706 | if(((beamType.CompareTo("pp"))==0) || ((beamType.CompareTo("p-p"))==0) |
707 | ||((beamType.CompareTo("PP"))==0) || ((beamType.CompareTo("P-P"))==0)){ |
789b8a8d |
708 | zdcESD->GetZNCentroidInpp(centr_ZNC, centr_ZNA); |
b72460a5 |
709 | } |
710 | else if((beamType.CompareTo("A-A")) == 0){ |
789b8a8d |
711 | Float_t beamEne = esd->GetBeamEnergy(); |
712 | zdcESD->GetZNCentroidInPbPb(beamEne, centr_ZNC, centr_ZNA); |
b72460a5 |
713 | } |
789b8a8d |
714 | GetESDsData(0)->Fill(centr_ZNC[0], centr_ZNC[1]); |
715 | GetESDsData(1)->Fill(centr_ZNA[0], centr_ZNA[1]); |
2b6cdc43 |
716 | |
075a0e70 |
717 | // |
718 | GetESDsData(2)->Fill(esd->GetZDCN1Energy()); |
fdc38bb2 |
719 | GetESDsData(3)->Fill(esd->GetZDCN2Energy()); |
720 | GetESDsData(4)->Fill(esd->GetZDCP1Energy()); |
075a0e70 |
721 | GetESDsData(5)->Fill(esd->GetZDCP2Energy()); |
722 | // |
fdc38bb2 |
723 | Double_t sumQZNC=0., sumQZPC=0., sumQZNA=0., sumQZPA=0.; |
213a7d34 |
724 | Double_t sumQZNC_lg=0., sumQZPC_lg=0., sumQZNA_lg=0., sumQZPA_lg=0.; |
075a0e70 |
725 | // |
fdc38bb2 |
726 | const Double_t *towZNC, *towZPC, *towZNA, *towZPA; |
213a7d34 |
727 | const Double_t *towZNC_lg, *towZPC_lg, *towZNA_lg, *towZPA_lg; |
075a0e70 |
728 | // |
fdc38bb2 |
729 | towZNC = zdcESD->GetZN1TowerEnergy(); |
730 | towZPC = zdcESD->GetZP1TowerEnergy(); |
731 | towZNA = zdcESD->GetZN2TowerEnergy(); |
732 | towZPA = zdcESD->GetZP2TowerEnergy(); |
075a0e70 |
733 | // |
213a7d34 |
734 | towZNC_lg = zdcESD->GetZN1TowerEnergyLR(); |
fdc38bb2 |
735 | towZPC_lg = zdcESD->GetZP1TowerEnergyLR(); |
736 | towZNA_lg = zdcESD->GetZN2TowerEnergyLR(); |
213a7d34 |
737 | towZPA_lg = zdcESD->GetZP2TowerEnergyLR(); |
075a0e70 |
738 | // |
739 | for(Int_t i=0; i<5; i++){ |
740 | if(i==0){ |
fdc38bb2 |
741 | GetESDsData(10)->Fill(towZNC[i]); |
742 | GetESDsData(11)->Fill(towZNA[i]); |
743 | GetESDsData(12)->Fill(towZPC[i]); |
744 | GetESDsData(13)->Fill(towZPA[i]); |
075a0e70 |
745 | // |
213a7d34 |
746 | GetESDsData(22)->Fill(towZNC_lg[i]); |
fdc38bb2 |
747 | GetESDsData(23)->Fill(towZNA_lg[i]); |
748 | GetESDsData(24)->Fill(towZPC_lg[i]); |
213a7d34 |
749 | GetESDsData(25)->Fill(towZPA_lg[i]); |
075a0e70 |
750 | } |
751 | else{ |
fdc38bb2 |
752 | sumQZNC += towZNC[i]; |
753 | sumQZPC += towZPC[i]; |
754 | sumQZNA += towZNA[i]; |
755 | sumQZPA += towZPA[i]; |
075a0e70 |
756 | // |
213a7d34 |
757 | sumQZNC_lg += towZNC_lg[i]; |
fdc38bb2 |
758 | sumQZPC_lg += towZPC_lg[i]; |
759 | sumQZNA_lg += towZNA_lg[i]; |
213a7d34 |
760 | sumQZPA_lg += towZPA_lg[i]; |
075a0e70 |
761 | } |
762 | } |
fdc38bb2 |
763 | GetESDsData(6)->Fill(sumQZNC); |
764 | GetESDsData(7)->Fill(sumQZNA); |
765 | GetESDsData(8)->Fill(sumQZPC); |
766 | GetESDsData(9)->Fill(sumQZPA); |
075a0e70 |
767 | // |
213a7d34 |
768 | GetESDsData(18)->Fill(sumQZNC_lg); |
fdc38bb2 |
769 | GetESDsData(19)->Fill(sumQZNA_lg); |
770 | GetESDsData(20)->Fill(sumQZPC_lg); |
213a7d34 |
771 | GetESDsData(21)->Fill(sumQZPA_lg); |
075a0e70 |
772 | } |
773 | |
774 | //____________________________________________________________________________ |
775 | void AliZDCQADataMakerRec::StartOfDetectorCycle() |
776 | { |
777 | //Detector specific actions at start of cycle |
778 | |
779 | } |
780 | |
781 | //____________________________________________________________________________ |
4e25ac79 |
782 | void AliZDCQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) |
075a0e70 |
783 | { |
784 | //Detector specific actions at end of cycle |
785 | // do the QA checking |
4e25ac79 |
786 | AliQAChecker::Instance()->Run(AliQAv1::kZDC, task, list) ; |
075a0e70 |
787 | } |
788 | |