1 #include "AliESDVZERO.h"
6 //__________________________________________________________________________
7 AliESDVZERO::AliESDVZERO()
17 fV0ADecision(kV0Invalid),
18 fV0CDecision(kV0Invalid)
20 // Default constructor
21 for(Int_t j=0; j<64; j++){
22 fMultiplicity[j] = 0.0;
31 //__________________________________________________________________________
32 AliESDVZERO::AliESDVZERO(const AliESDVZERO &o)
34 fBBtriggerV0A(o.fBBtriggerV0A),
35 fBGtriggerV0A(o.fBGtriggerV0A),
36 fBBtriggerV0C(o.fBBtriggerV0C),
37 fBGtriggerV0C(o.fBGtriggerV0C),
40 fV0ATimeError(o.fV0ATimeError),
41 fV0CTimeError(o.fV0CTimeError),
42 fV0ADecision(o.fV0ADecision),
43 fV0CDecision(o.fV0CDecision)
45 // Default constructor
46 for(Int_t j=0; j<64; j++) {
47 fMultiplicity[j] = o.fMultiplicity[j];
49 fTime[j] = o.fTime[j];
50 fWidth[j] = o.fWidth[j];
51 fBBFlag[j] = o.fBBFlag[j];
52 fBGFlag[j] = o.fBGFlag[j];
56 //__________________________________________________________________________
57 AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
58 UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
59 Float_t *Multiplicity, Float_t *Adc,
60 Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag)
62 fBBtriggerV0A(BBtriggerV0A),
63 fBGtriggerV0A(BGtriggerV0A),
64 fBBtriggerV0C(BBtriggerV0C),
65 fBGtriggerV0C(BGtriggerV0C),
70 fV0ADecision(kV0Invalid),
71 fV0CDecision(kV0Invalid)
74 for(Int_t j=0; j<64; j++) {
75 fMultiplicity[j] = Multiplicity[j];
79 fBBFlag[j] = BBFlag[j];
80 fBGFlag[j] = BGFlag[j];
84 //__________________________________________________________________________
85 AliESDVZERO& AliESDVZERO::operator=(const AliESDVZERO& o)
88 if(this==&o) return *this;
89 TObject::operator=(o);
90 // Assignment operator
91 fBBtriggerV0A=o.fBBtriggerV0A;
92 fBGtriggerV0A=o.fBGtriggerV0A;
93 fBBtriggerV0C=o.fBBtriggerV0C;
94 fBGtriggerV0C=o.fBGtriggerV0C;
96 fV0ATime = o.fV0ATime;
97 fV0CTime = o.fV0CTime;
98 fV0ATimeError = o.fV0ATimeError;
99 fV0CTimeError = o.fV0CTimeError;
100 fV0ADecision = o.fV0ADecision;
101 fV0CDecision = o.fV0CDecision;
103 for(Int_t j=0; j<64; j++) {
104 fMultiplicity[j] = o.fMultiplicity[j];
106 fTime[j] = o.fTime[j];
107 fWidth[j] = o.fWidth[j];
108 fBBFlag[j] = o.fBBFlag[j];
109 fBGFlag[j] = o.fBGFlag[j];
114 //______________________________________________________________________________
115 void AliESDVZERO::Copy(TObject &obj) const {
117 // this overwrites the virtual TOBject::Copy()
118 // to allow run time copying without casting
121 if(this==&obj)return;
122 AliESDVZERO *robj = dynamic_cast<AliESDVZERO*>(&obj);
123 if(!robj)return; // not an AliESDVZERO
128 //__________________________________________________________________________
129 Short_t AliESDVZERO::GetNbPMV0A() const
131 // Returns the number of
134 for(Int_t i=32;i<64;i++)
135 if (fMultiplicity[i]>0) n++;
139 //__________________________________________________________________________
140 Short_t AliESDVZERO::GetNbPMV0C() const
142 // Returns the number of
145 for(Int_t i=0;i<32;i++)
146 if (fMultiplicity[i]>0) n++;
150 //__________________________________________________________________________
151 Float_t AliESDVZERO::GetMTotV0A() const
153 // returns total multiplicity
156 for(Int_t i=32;i<64;i++)
157 mul+= fMultiplicity[i];
161 //__________________________________________________________________________
162 Float_t AliESDVZERO::GetMTotV0C() const
164 // returns total multiplicity
167 for(Int_t i=0;i<32;i++)
168 mul+= fMultiplicity[i];
172 //__________________________________________________________________________
173 Float_t* AliESDVZERO::GetMRingV0A() const
175 // cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
176 // cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
177 AliInfo("AliESDVZERO::GetMRingV0C() not supported any more");
178 AliInfo("use Float_t AliESDVZERO::GetMRingV0C(Int_t ring)");
182 //__________________________________________________________________________
183 Float_t* AliESDVZERO::GetMRingV0C() const
185 // cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
186 // cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
187 AliInfo("AliESDVZERO::GetMRingV0C() not supported any more");
188 AliInfo("use Float_t AliESDVZERO::GetMRingV0C(Int_t ring)");
192 //__________________________________________________________________________
193 Float_t AliESDVZERO::GetMRingV0A(Int_t ring) const
195 // returns multiplicity in a
197 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
200 if (ring == 0) for(Int_t i=32;i<40;i++) mul += fMultiplicity[i];
201 if (ring == 1) for(Int_t i=40;i<48;i++) mul += fMultiplicity[i];
202 if (ring == 2) for(Int_t i=48;i<56;i++) mul += fMultiplicity[i];
203 if (ring == 3) for(Int_t i=56;i<64;i++) mul += fMultiplicity[i];
207 //__________________________________________________________________________
208 Float_t AliESDVZERO::GetMRingV0C(Int_t ring) const
210 // returns multiplicity in a
212 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
215 if (ring == 0) for(Int_t i=0;i<8;i++) mul += fMultiplicity[i];
216 if (ring == 1) for(Int_t i=8;i<16;i++) mul += fMultiplicity[i];
217 if (ring == 2) for(Int_t i=16;i<24;i++) mul += fMultiplicity[i];
218 if (ring == 3) for(Int_t i=24;i<32;i++) mul += fMultiplicity[i];
222 //__________________________________________________________________________
223 Float_t AliESDVZERO::GetMultiplicity(Int_t i) const
226 // returns multiplicity in a
228 if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
229 return fMultiplicity[i];
232 //__________________________________________________________________________
233 Float_t AliESDVZERO::GetMultiplicityV0A(Int_t i) const
236 // returns multiplicity in a
238 if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0A:",32)) return -1;
239 return fMultiplicity[32+i];
242 //__________________________________________________________________________
243 Float_t AliESDVZERO::GetMultiplicityV0C(Int_t i) const
246 // returns multiplicity in a
248 if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0C:",32)) return -1;
249 return fMultiplicity[i];
252 //__________________________________________________________________________
253 Float_t AliESDVZERO::GetAdc(Int_t i) const
256 // returns ADC charge in a
258 if (OutOfRange(i, "AliESDVZERO::GetAdc:",64)) return -1;
262 //__________________________________________________________________________
263 Float_t AliESDVZERO::GetAdcV0A(Int_t i) const
266 // returns ADC charge in a
268 if (OutOfRange(i, "AliESDVZERO::GetAdcV0A:",32)) return -1;
272 //__________________________________________________________________________
273 Float_t AliESDVZERO::GetAdcV0C(Int_t i) const
276 // returns ADC charge in a
278 if (OutOfRange(i, "AliESDVZERO::GetAdcV0C:",32)) return -1;
282 //__________________________________________________________________________
283 Float_t AliESDVZERO::GetTime(Int_t i) const
286 // returns leading time measured by TDC
287 // in a given cell of V0
288 if (OutOfRange(i, "AliESDVZERO::GetTime:",64)) return -1;
292 //__________________________________________________________________________
293 Float_t AliESDVZERO::GetTimeV0A(Int_t i) const
296 // returns leading time measured by TDC
297 // in a given cell of V0A
298 if (OutOfRange(i, "AliESDVZERO::GetTimeV0A:",32)) return -1;
302 //__________________________________________________________________________
303 Float_t AliESDVZERO::GetTimeV0C(Int_t i) const
306 // returns leading time measured by TDC
307 // in a given cell of V0C
308 if (OutOfRange(i, "AliESDVZERO::GetTimeV0C:",32)) return -1;
312 //__________________________________________________________________________
313 Float_t AliESDVZERO::GetWidth(Int_t i) const
316 // returns time signal width
317 // in a given cell of V0
318 if (OutOfRange(i, "AliESDVZERO::GetWidth:",64)) return -1;
322 //__________________________________________________________________________
323 Float_t AliESDVZERO::GetWidthV0A(Int_t i) const
326 // returns time signal width
327 // in a given cell of V0A
328 if (OutOfRange(i, "AliESDVZERO::GetWidthV0A:",32)) return -1;
332 //__________________________________________________________________________
333 Float_t AliESDVZERO::GetWidthV0C(Int_t i) const
336 // returns time signal width
337 // in a given cell of V0C
338 if (OutOfRange(i, "AliESDVZERO::GetWidthV0C:",32)) return -1;
342 //__________________________________________________________________________
343 Bool_t AliESDVZERO::BBTriggerV0A(Int_t i) const
345 // returns offline beam-beam flags in V0A
347 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0A",32)) return kFALSE;
349 return ( fBBtriggerV0A & (test << i) ? kTRUE : kFALSE );
352 //__________________________________________________________________________
353 Bool_t AliESDVZERO::BGTriggerV0A(Int_t i) const
355 // returns offline beam-gas flags in V0A
357 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0A",32)) return kFALSE;
359 return ( fBGtriggerV0A & (test << i) ? kTRUE : kFALSE );
362 //__________________________________________________________________________
363 Bool_t AliESDVZERO::BBTriggerV0C(Int_t i) const
365 // returns offline beam-beam flags in V0C
367 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0C",32)) return kFALSE;
369 return ( fBBtriggerV0C & (test << i) ? kTRUE : kFALSE );
372 //__________________________________________________________________________
373 Bool_t AliESDVZERO::BGTriggerV0C(Int_t i) const
375 // returns offline beam-gasflags in V0C
377 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0C",32)) return kFALSE;
379 return ( fBGtriggerV0C & (test << i) ? kTRUE : kFALSE );
382 //__________________________________________________________________________
383 Bool_t AliESDVZERO::GetBBFlag(Int_t i) const
386 // returns online beam-beam flag in V0
387 // one boolean per cell
388 if (OutOfRange(i, "AliESDVZERO::GetBBFlag:",64)) return kFALSE;
392 //__________________________________________________________________________
393 Bool_t AliESDVZERO::GetBGFlag(Int_t i) const
396 // returns online beam-gas flag in V0
397 // one boolean per cell
398 if (OutOfRange(i, "AliESDVZERO::GetBGFlag:",64)) return kFALSE;
402 //__________________________________________________________________________
403 Bool_t AliESDVZERO::OutOfRange(Int_t i, const char* /*s*/, Int_t upper) const
405 // checks if i is a valid index.
406 // s = name of calling method
407 if (i > upper || i < 0) {
408 // cout << s << " Index " << i << " out of range" << endl;
409 AliInfo(Form("Index %d out of range",i));