]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDVZERO.cxx
Fix Coverity 15062, 15063
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.cxx
CommitLineData
dd735cf0 1#include "AliESDVZERO.h"
28fdf12c 2#include "AliLog.h"
dd735cf0 3
4ClassImp(AliESDVZERO)
5
d0502ab2 6//__________________________________________________________________________
a055ee24 7AliESDVZERO::AliESDVZERO()
8 :TObject(),
9 fBBtriggerV0A(0),
10 fBGtriggerV0A(0),
11 fBBtriggerV0C(0),
b44c933e 12 fBGtriggerV0C(0),
13 fV0ATime(-1024),
14 fV0CTime(-1024),
15 fV0ATimeError(0),
16 fV0CTimeError(0),
17 fV0ADecision(kV0Invalid),
18 fV0CDecision(kV0Invalid)
dd735cf0 19{
20 // Default constructor
a055ee24 21 for(Int_t j=0; j<64; j++){
6c6d6114 22 fMultiplicity[j] = 0.0;
db0db003 23 fAdc[j] = 0.0;
24 fTime[j] = 0.0;
25 fWidth[j] = 0.0;
d0502ab2 26 fBBFlag[j]= kFALSE;
27 fBGFlag[j]= kFALSE;
cd888a89 28 }
dd735cf0 29}
30
d0502ab2 31//__________________________________________________________________________
cd888a89 32AliESDVZERO::AliESDVZERO(const AliESDVZERO &o)
33 :TObject(o),
a055ee24 34 fBBtriggerV0A(o.fBBtriggerV0A),
35 fBGtriggerV0A(o.fBGtriggerV0A),
36 fBBtriggerV0C(o.fBBtriggerV0C),
b44c933e 37 fBGtriggerV0C(o.fBGtriggerV0C),
38 fV0ATime(o.fV0ATime),
39 fV0CTime(o.fV0CTime),
40 fV0ATimeError(o.fV0ATimeError),
41 fV0CTimeError(o.fV0CTimeError),
42 fV0ADecision(o.fV0ADecision),
43 fV0CDecision(o.fV0CDecision)
dd735cf0 44{
45 // Default constructor
28fdf12c 46 for(Int_t j=0; j<64; j++) {
a055ee24 47 fMultiplicity[j] = o.fMultiplicity[j];
d0502ab2 48 fAdc[j] = o.fAdc[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];
28fdf12c 53 }
dd735cf0 54}
55
d0502ab2 56//__________________________________________________________________________
a055ee24 57AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
58 UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
db0db003 59 Float_t *Multiplicity, Float_t *Adc,
60 Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag)
cd888a89 61 :TObject(),
a055ee24 62 fBBtriggerV0A(BBtriggerV0A),
63 fBGtriggerV0A(BGtriggerV0A),
64 fBBtriggerV0C(BBtriggerV0C),
b44c933e 65 fBGtriggerV0C(BGtriggerV0C),
66 fV0ATime(-1024),
67 fV0CTime(-1024),
68 fV0ATimeError(0),
69 fV0CTimeError(0),
70 fV0ADecision(kV0Invalid),
71 fV0CDecision(kV0Invalid)
dd735cf0 72{
73 // Constructor
28fdf12c 74 for(Int_t j=0; j<64; j++) {
a055ee24 75 fMultiplicity[j] = Multiplicity[j];
d0502ab2 76 fAdc[j] = Adc[j];
77 fTime[j] = Time[j];
78 fWidth[j] = Width[j];
79 fBBFlag[j] = BBFlag[j];
80 fBGFlag[j] = BGFlag[j];
28fdf12c 81 }
dd735cf0 82}
83
d0502ab2 84//__________________________________________________________________________
dd735cf0 85AliESDVZERO& AliESDVZERO::operator=(const AliESDVZERO& o)
86{
cd888a89 87
a055ee24 88 if(this==&o) return *this;
cd888a89 89 TObject::operator=(o);
dd735cf0 90 // Assignment operator
a055ee24 91 fBBtriggerV0A=o.fBBtriggerV0A;
92 fBGtriggerV0A=o.fBGtriggerV0A;
93 fBBtriggerV0C=o.fBBtriggerV0C;
94 fBGtriggerV0C=o.fBGtriggerV0C;
b44c933e 95
96 fV0ATime = o.fV0ATime;
97 fV0CTime = o.fV0CTime;
98 fV0ATimeError = o.fV0ATimeError;
99 fV0CTimeError = o.fV0CTimeError;
100 fV0ADecision = o.fV0ADecision;
101 fV0CDecision = o.fV0CDecision;
102
28fdf12c 103 for(Int_t j=0; j<64; j++) {
a055ee24 104 fMultiplicity[j] = o.fMultiplicity[j];
d0502ab2 105 fAdc[j] = o.fAdc[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];
28fdf12c 110 }
a055ee24 111 return *this;
112}
cd888a89 113
4ca09433 114//______________________________________________________________________________
115void AliESDVZERO::Copy(TObject &obj) const {
116
117 // this overwrites the virtual TOBject::Copy()
118 // to allow run time copying without casting
119 // in AliESDEvent
120
121 if(this==&obj)return;
122 AliESDVZERO *robj = dynamic_cast<AliESDVZERO*>(&obj);
123 if(!robj)return; // not an AliESDVZERO
124 *robj = *this;
125
126}
127
d0502ab2 128//__________________________________________________________________________
5fc205b9 129Short_t AliESDVZERO::GetNbPMV0A() const
a055ee24 130{
5fc205b9 131 // Returns the number of
132 // fired PM in V0A
a055ee24 133 Short_t n=0;
134 for(Int_t i=32;i<64;i++)
135 if (fMultiplicity[i]>0) n++;
136 return n;
137}
dd735cf0 138
d0502ab2 139//__________________________________________________________________________
5fc205b9 140Short_t AliESDVZERO::GetNbPMV0C() const
a055ee24 141{
5fc205b9 142 // Returns the number of
143 // fired PM in V0C
a055ee24 144 Short_t n=0;
145 for(Int_t i=0;i<32;i++)
146 if (fMultiplicity[i]>0) n++;
147 return n;
148}
dd735cf0 149
d0502ab2 150//__________________________________________________________________________
5fc205b9 151Float_t AliESDVZERO::GetMTotV0A() const
a055ee24 152{
5fc205b9 153 // returns total multiplicity
154 // in V0A
6c6d6114 155 Float_t mul=0.0;
a055ee24 156 for(Int_t i=32;i<64;i++)
db0db003 157 mul+= fMultiplicity[i];
6c6d6114 158 return mul;
a055ee24 159}
160
d0502ab2 161//__________________________________________________________________________
5fc205b9 162Float_t AliESDVZERO::GetMTotV0C() const
a055ee24 163{
5fc205b9 164 // returns total multiplicity
165 // in V0C
6c6d6114 166 Float_t mul=0.0;
a055ee24 167 for(Int_t i=0;i<32;i++)
db0db003 168 mul+= fMultiplicity[i];
6c6d6114 169 return mul;
a055ee24 170}
171
d0502ab2 172//__________________________________________________________________________
5fc205b9 173Float_t* AliESDVZERO::GetMRingV0A() const
a055ee24 174{
28fdf12c 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");
6c6d6114 178 AliInfo("use Float_t AliESDVZERO::GetMRingV0C(Int_t ring)");
a055ee24 179 return 0x0;
180}
181
d0502ab2 182//__________________________________________________________________________
5fc205b9 183Float_t* AliESDVZERO::GetMRingV0C() const
a055ee24 184{
28fdf12c 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");
6c6d6114 188 AliInfo("use Float_t AliESDVZERO::GetMRingV0C(Int_t ring)");
a055ee24 189 return 0x0;
dd735cf0 190}
191
d0502ab2 192//__________________________________________________________________________
5fc205b9 193Float_t AliESDVZERO::GetMRingV0A(Int_t ring) const
a055ee24 194{
5fc205b9 195 // returns multiplicity in a
196 // given ring of V0A
a055ee24 197 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
6c6d6114 198 Float_t mul =0.0;
732a24fe 199
db0db003 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];
6c6d6114 204 return mul ;
a055ee24 205}
732a24fe 206
d0502ab2 207//__________________________________________________________________________
5fc205b9 208Float_t AliESDVZERO::GetMRingV0C(Int_t ring) const
a055ee24 209{
5fc205b9 210 // returns multiplicity in a
211 // given ring of V0C
a055ee24 212 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
6c6d6114 213 Float_t mul =0.0;
732a24fe 214
db0db003 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];
6c6d6114 219 return mul ;
732a24fe 220}
221
d0502ab2 222//__________________________________________________________________________
5fc205b9 223Float_t AliESDVZERO::GetMultiplicity(Int_t i) const
a055ee24 224
225{
5fc205b9 226 // returns multiplicity in a
227 // given cell of V0
a055ee24 228 if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
229 return fMultiplicity[i];
230}
231
d0502ab2 232//__________________________________________________________________________
5fc205b9 233Float_t AliESDVZERO::GetMultiplicityV0A(Int_t i) const
28fdf12c 234
235{
5fc205b9 236 // returns multiplicity in a
237 // given cell of V0A
28fdf12c 238 if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0A:",32)) return -1;
239 return fMultiplicity[32+i];
240}
241
d0502ab2 242//__________________________________________________________________________
5fc205b9 243Float_t AliESDVZERO::GetMultiplicityV0C(Int_t i) const
28fdf12c 244
245{
5fc205b9 246 // returns multiplicity in a
247 // given cell of V0C
28fdf12c 248 if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0C:",32)) return -1;
249 return fMultiplicity[i];
250}
251
d0502ab2 252//__________________________________________________________________________
5fc205b9 253Float_t AliESDVZERO::GetAdc(Int_t i) const
28fdf12c 254
255{
5fc205b9 256 // returns ADC charge in a
257 // given cell of V0
28fdf12c 258 if (OutOfRange(i, "AliESDVZERO::GetAdc:",64)) return -1;
259 return fAdc[i];
260}
261
d0502ab2 262//__________________________________________________________________________
5fc205b9 263Float_t AliESDVZERO::GetAdcV0A(Int_t i) const
28fdf12c 264
265{
5fc205b9 266 // returns ADC charge in a
267 // given cell of V0A
d0502ab2 268 if (OutOfRange(i, "AliESDVZERO::GetAdcV0A:",32)) return -1;
269 return fAdc[32+i];
28fdf12c 270}
271
d0502ab2 272//__________________________________________________________________________
5fc205b9 273Float_t AliESDVZERO::GetAdcV0C(Int_t i) const
28fdf12c 274
275{
5fc205b9 276 // returns ADC charge in a
277 // given cell of V0C
d0502ab2 278 if (OutOfRange(i, "AliESDVZERO::GetAdcV0C:",32)) return -1;
279 return fAdc[i];
28fdf12c 280}
281
d0502ab2 282//__________________________________________________________________________
5fc205b9 283Float_t AliESDVZERO::GetTime(Int_t i) const
28fdf12c 284
285{
5fc205b9 286 // returns leading time measured by TDC
287 // in a given cell of V0
28fdf12c 288 if (OutOfRange(i, "AliESDVZERO::GetTime:",64)) return -1;
289 return fTime[i];
290}
291
d0502ab2 292//__________________________________________________________________________
5fc205b9 293Float_t AliESDVZERO::GetTimeV0A(Int_t i) const
d0502ab2 294
295{
5fc205b9 296 // returns leading time measured by TDC
297 // in a given cell of V0A
d0502ab2 298 if (OutOfRange(i, "AliESDVZERO::GetTimeV0A:",32)) return -1;
299 return fTime[32+i];
300}
301
302//__________________________________________________________________________
5fc205b9 303Float_t AliESDVZERO::GetTimeV0C(Int_t i) const
28fdf12c 304
305{
5fc205b9 306 // returns leading time measured by TDC
307 // in a given cell of V0C
28fdf12c 308 if (OutOfRange(i, "AliESDVZERO::GetTimeV0C:",32)) return -1;
309 return fTime[i];
310}
311
d0502ab2 312//__________________________________________________________________________
5fc205b9 313Float_t AliESDVZERO::GetWidth(Int_t i) const
28fdf12c 314
315{
5fc205b9 316 // returns time signal width
317 // in a given cell of V0
d0502ab2 318 if (OutOfRange(i, "AliESDVZERO::GetWidth:",64)) return -1;
319 return fWidth[i];
320}
321
322//__________________________________________________________________________
5fc205b9 323Float_t AliESDVZERO::GetWidthV0A(Int_t i) const
d0502ab2 324
325{
5fc205b9 326 // returns time signal width
327 // in a given cell of V0A
d0502ab2 328 if (OutOfRange(i, "AliESDVZERO::GetWidthV0A:",32)) return -1;
329 return fWidth[32+i];
330}
331
332//__________________________________________________________________________
5fc205b9 333Float_t AliESDVZERO::GetWidthV0C(Int_t i) const
d0502ab2 334
335{
5fc205b9 336 // returns time signal width
337 // in a given cell of V0C
d0502ab2 338 if (OutOfRange(i, "AliESDVZERO::GetWidthV0C:",32)) return -1;
339 return fWidth[i];
28fdf12c 340}
341
d0502ab2 342//__________________________________________________________________________
5fc205b9 343Bool_t AliESDVZERO::BBTriggerV0A(Int_t i) const
a055ee24 344{
5fc205b9 345 // returns offline beam-beam flags in V0A
346 // one bit per cell
a055ee24 347 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0A",32)) return kFALSE;
348 UInt_t test = 1;
349 return ( fBBtriggerV0A & (test << i) ? kTRUE : kFALSE );
350}
351
d0502ab2 352//__________________________________________________________________________
5fc205b9 353Bool_t AliESDVZERO::BGTriggerV0A(Int_t i) const
a055ee24 354{
5fc205b9 355 // returns offline beam-gas flags in V0A
356 // one bit per cell
a055ee24 357 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0A",32)) return kFALSE;
358 UInt_t test = 1;
359 return ( fBGtriggerV0A & (test << i) ? kTRUE : kFALSE );
360}
361
d0502ab2 362//__________________________________________________________________________
5fc205b9 363Bool_t AliESDVZERO::BBTriggerV0C(Int_t i) const
a055ee24 364{
5fc205b9 365 // returns offline beam-beam flags in V0C
366 // one bit per cell
a055ee24 367 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0C",32)) return kFALSE;
368 UInt_t test = 1;
369 return ( fBBtriggerV0C & (test << i) ? kTRUE : kFALSE );
370}
371
d0502ab2 372//__________________________________________________________________________
5fc205b9 373Bool_t AliESDVZERO::BGTriggerV0C(Int_t i) const
a055ee24 374{
5fc205b9 375 // returns offline beam-gasflags in V0C
376 // one bit per cell
a055ee24 377 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0C",32)) return kFALSE;
378 UInt_t test = 1;
379 return ( fBGtriggerV0C & (test << i) ? kTRUE : kFALSE );
380}
381
d0502ab2 382//__________________________________________________________________________
5fc205b9 383Bool_t AliESDVZERO::GetBBFlag(Int_t i) const
d0502ab2 384
385{
5fc205b9 386 // returns online beam-beam flag in V0
387 // one boolean per cell
d0502ab2 388 if (OutOfRange(i, "AliESDVZERO::GetBBFlag:",64)) return kFALSE;
389 return fBBFlag[i];
390}
391
392//__________________________________________________________________________
5fc205b9 393Bool_t AliESDVZERO::GetBGFlag(Int_t i) const
d0502ab2 394
395{
5fc205b9 396 // returns online beam-gas flag in V0
397 // one boolean per cell
d0502ab2 398 if (OutOfRange(i, "AliESDVZERO::GetBGFlag:",64)) return kFALSE;
399 return fBGFlag[i];
400}
401
402//__________________________________________________________________________
7cec0871 403Bool_t AliESDVZERO::OutOfRange(Int_t i, const char* /*s*/, Int_t upper) const
a055ee24 404{
5fc205b9 405 // checks if i is a valid index.
406 // s = name of calling method
a055ee24 407 if (i > upper || i < 0) {
28fdf12c 408// cout << s << " Index " << i << " out of range" << endl;
409 AliInfo(Form("Index %d out of range",i));
410 return kTRUE;
a055ee24 411 }
412 return kFALSE;
413}
732a24fe 414