]> git.uio.no Git - u/mrichter/AliRoot.git/blob - 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
1 #include <Riostream.h>
2 #include "AliESDVZERO.h"
3
4 ClassImp(AliESDVZERO)
5
6 AliESDVZERO::AliESDVZERO()
7   :TObject(),
8    fBBtriggerV0A(0),
9    fBGtriggerV0A(0),
10    fBBtriggerV0C(0),
11    fBGtriggerV0C(0)
12 {   
13    // Default constructor 
14    for(Int_t j=0; j<64; j++){ 
15       fMultiplicity[j] = 0;   
16    }
17 }
18
19 AliESDVZERO::AliESDVZERO(const AliESDVZERO &o)
20   :TObject(o),
21    fBBtriggerV0A(o.fBBtriggerV0A),
22    fBGtriggerV0A(o.fBGtriggerV0A),
23    fBBtriggerV0C(o.fBBtriggerV0C),
24    fBGtriggerV0C(o.fBGtriggerV0C)
25 {   
26    // Default constructor 
27    for(Int_t j=0; j<64; j++)
28        fMultiplicity[j] = o.fMultiplicity[j];
29 }
30
31 AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
32               UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
33               Short_t *Multiplicity)
34   :TObject(),
35    fBBtriggerV0A(BBtriggerV0A),
36    fBGtriggerV0A(BGtriggerV0A),
37    fBBtriggerV0C(BBtriggerV0C),
38    fBGtriggerV0C(BGtriggerV0C)
39
40 {
41    // Constructor
42    for(Int_t j=0; j<64; j++)
43        fMultiplicity[j] = Multiplicity[j];
44 }
45
46
47 AliESDVZERO& AliESDVZERO::operator=(const AliESDVZERO& o)
48 {
49
50   if(this==&o) return *this;
51   TObject::operator=(o);
52   // Assignment operator
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 }
61
62 Short_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 }
69
70 Short_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 }
77
78 Int_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
86 Int_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
95 Int_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
102 Int_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;
107 }
108
109 Int_t AliESDVZERO::GetMRingV0A(Int_t ring)
110
111   if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
112   Int_t n=0;
113
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 }
120
121 Int_t AliESDVZERO::GetMRingV0C(Int_t ring)
122
123   if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
124   Int_t n=0;
125
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 ;
131 }
132
133 Int_t AliESDVZERO::GetMultiplicity(Int_t i)
134
135 {
136   if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
137   return fMultiplicity[i];
138 }
139
140 Bool_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
147 Bool_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
154 Bool_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
161 Bool_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
168 Bool_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 }
177