]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDVZERO.cxx
Trigger bit mask and multiplicity per PMT in the VZERO ESD. Related changes and class...
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.cxx
CommitLineData
a055ee24 1#include <Riostream.h>
dd735cf0 2#include "AliESDVZERO.h"
3
4ClassImp(AliESDVZERO)
5
a055ee24 6AliESDVZERO::AliESDVZERO()
7 :TObject(),
8 fBBtriggerV0A(0),
9 fBGtriggerV0A(0),
10 fBBtriggerV0C(0),
11 fBGtriggerV0C(0)
dd735cf0 12{
13 // Default constructor
a055ee24 14 for(Int_t j=0; j<64; j++){
15 fMultiplicity[j] = 0;
cd888a89 16 }
dd735cf0 17}
18
cd888a89 19AliESDVZERO::AliESDVZERO(const AliESDVZERO &o)
20 :TObject(o),
a055ee24 21 fBBtriggerV0A(o.fBBtriggerV0A),
22 fBGtriggerV0A(o.fBGtriggerV0A),
23 fBBtriggerV0C(o.fBBtriggerV0C),
24 fBGtriggerV0C(o.fBGtriggerV0C)
dd735cf0 25{
26 // Default constructor
a055ee24 27 for(Int_t j=0; j<64; j++)
28 fMultiplicity[j] = o.fMultiplicity[j];
dd735cf0 29}
30
a055ee24 31AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
32 UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
33 Short_t *Multiplicity)
cd888a89 34 :TObject(),
a055ee24 35 fBBtriggerV0A(BBtriggerV0A),
36 fBGtriggerV0A(BGtriggerV0A),
37 fBBtriggerV0C(BBtriggerV0C),
38 fBGtriggerV0C(BGtriggerV0C)
39
dd735cf0 40{
41 // Constructor
a055ee24 42 for(Int_t j=0; j<64; j++)
43 fMultiplicity[j] = Multiplicity[j];
dd735cf0 44}
45
a055ee24 46
dd735cf0 47AliESDVZERO& AliESDVZERO::operator=(const AliESDVZERO& o)
48{
cd888a89 49
a055ee24 50 if(this==&o) return *this;
cd888a89 51 TObject::operator=(o);
dd735cf0 52 // Assignment operator
a055ee24 53 fBBtriggerV0A=o.fBBtriggerV0A;
54 fBGtriggerV0A=o.fBGtriggerV0A;
55 fBBtriggerV0C=o.fBBtriggerV0C;
56 fBGtriggerV0C=o.fBGtriggerV0C;
57 for(Int_t j=0; j<64; j++)
58 fMultiplicity[j] = o.fMultiplicity[j];
59 return *this;
60}
cd888a89 61
a055ee24 62Short_t AliESDVZERO::GetNbPMV0A()
63{
64 Short_t n=0;
65 for(Int_t i=32;i<64;i++)
66 if (fMultiplicity[i]>0) n++;
67 return n;
68}
dd735cf0 69
a055ee24 70Short_t AliESDVZERO::GetNbPMV0C()
71{
72 Short_t n=0;
73 for(Int_t i=0;i<32;i++)
74 if (fMultiplicity[i]>0) n++;
75 return n;
76}
dd735cf0 77
a055ee24 78Int_t AliESDVZERO::GetMTotV0A()
79{
80 Int_t n=0;
81 for(Int_t i=32;i<64;i++)
82 n+= (Int_t) fMultiplicity[i];
83 return n;
84}
85
86Int_t AliESDVZERO::GetMTotV0C()
87{
88 Int_t n=0;
89 for(Int_t i=0;i<32;i++)
90 n+= (Int_t) fMultiplicity[i];
91 return n;
92}
93
94
95Int_t* AliESDVZERO::GetMRingV0A()
96{
97 cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
98 cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
99 return 0x0;
100}
101
102Int_t* AliESDVZERO::GetMRingV0C()
103{
104 cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
105 cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
106 return 0x0;
dd735cf0 107}
108
a055ee24 109Int_t AliESDVZERO::GetMRingV0A(Int_t ring)
110{
111 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
112 Int_t n=0;
732a24fe 113
a055ee24 114 if (ring == 0) for(Int_t i=32;i<40;i++) n += (Int_t) fMultiplicity[i];
115 if (ring == 1) for(Int_t i=40;i<48;i++) n += (Int_t) fMultiplicity[i];
116 if (ring == 2) for(Int_t i=48;i<56;i++) n += (Int_t) fMultiplicity[i];
117 if (ring == 3) for(Int_t i=56;i<64;i++) n += (Int_t) fMultiplicity[i];
118 return n ;
119}
732a24fe 120
a055ee24 121Int_t AliESDVZERO::GetMRingV0C(Int_t ring)
122{
123 if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
124 Int_t n=0;
732a24fe 125
a055ee24 126 if (ring == 0) for(Int_t i=0;i<8;i++) n += (Int_t) fMultiplicity[i];
127 if (ring == 1) for(Int_t i=8;i<16;i++) n += (Int_t) fMultiplicity[i];
128 if (ring == 2) for(Int_t i=16;i<24;i++) n += (Int_t) fMultiplicity[i];
129 if (ring == 3) for(Int_t i=24;i<32;i++) n += (Int_t) fMultiplicity[i];
130 return n ;
732a24fe 131}
132
a055ee24 133Int_t AliESDVZERO::GetMultiplicity(Int_t i)
134
135{
136 if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
137 return fMultiplicity[i];
138}
139
140Bool_t AliESDVZERO::BBTriggerV0A(Int_t i)
141{
142 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0A",32)) return kFALSE;
143 UInt_t test = 1;
144 return ( fBBtriggerV0A & (test << i) ? kTRUE : kFALSE );
145}
146
147Bool_t AliESDVZERO::BGTriggerV0A(Int_t i)
148{
149 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0A",32)) return kFALSE;
150 UInt_t test = 1;
151 return ( fBGtriggerV0A & (test << i) ? kTRUE : kFALSE );
152}
153
154Bool_t AliESDVZERO::BBTriggerV0C(Int_t i)
155{
156 if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0C",32)) return kFALSE;
157 UInt_t test = 1;
158 return ( fBBtriggerV0C & (test << i) ? kTRUE : kFALSE );
159}
160
161Bool_t AliESDVZERO::BGTriggerV0C(Int_t i)
162{
163 if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0C",32)) return kFALSE;
164 UInt_t test = 1;
165 return ( fBGtriggerV0C & (test << i) ? kTRUE : kFALSE );
166}
167
168Bool_t AliESDVZERO::OutOfRange(Int_t i, const char *s, Int_t upper) const
169{
170 // checks if i is a valid index. s = name of calling method
171 if (i > upper || i < 0) {
172 cout << s << " Index " << i << " out of range" << endl;
173 return kTRUE;
174 }
175 return kFALSE;
176}
732a24fe 177