Line data Source code
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 : **************************************************************************/
15 :
16 : /* $Id$ */
17 :
18 : //-----------------------------------------------------------------
19 : // Implementation of the EventTag class
20 : // This is the class to deal with the tags in the event level
21 : // Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
22 : //-----------------------------------------------------------------
23 :
24 : #include "AliEventTag.h"
25 : #include <TObjArray.h>
26 : #include <TObjString.h>
27 :
28 176 : ClassImp(AliEventTag)
29 :
30 : //______________________________________________________________________________
31 : AliEventTag::AliEventTag() :
32 18 : TObject(),
33 18 : fPeriodNumber(0),
34 18 : fOrbitNumber(0),
35 18 : fBunchCrossNumber(0),
36 : //*T* fFiredTriggerClasses(),
37 18 : fEventType(0),
38 18 : fPhysicsFlag(0),
39 18 : fBackgroundFlag(0),
40 : // fGUID(0),
41 : // fPath(0),
42 : // fsize(0),
43 : // fmd5(0),
44 : // fturl(0),
45 : // fFileRef(0),
46 18 : fNumberOfParticipants(-10),
47 18 : fNumberOfParticipants2(-10),
48 18 : fImpactParameter(-10.0),
49 18 : fPrimaryVertexFlag(-1),
50 18 : fPrimaryVertexX(-100.0),
51 18 : fPrimaryVertexY(-100.0),
52 18 : fPrimaryVertexZ(-100.0),
53 18 : fPrimaryVertexZError(-100.0),
54 18 : fTriggerMask(0),
55 18 : fTriggerMaskNext50(0),
56 18 : fTriggerCluster(0),
57 18 : fZDCNeutron1Energy(-10.0),
58 18 : fZDCProton1Energy(-10.0),
59 18 : fZDCNeutron2Energy(-10.0),
60 18 : fZDCProton2Energy(-10.0),
61 18 : fT0VertexZ(-10.0),
62 18 : fNumberOfTracks(-10),
63 18 : fNumberOfPositiveTracks(-10),
64 18 : fNumberOfNegativeTracks(-10),
65 18 : fNumberOfNeutralTracks(-10),
66 18 : fNumberOfV0s(-10),
67 18 : fNumberOfCascades(-10),
68 18 : fNumberOfKinks(-10),
69 18 : fNumberOfPMDTracks(-10),
70 18 : fNumberOfFMDTracks(-10),
71 18 : fNumberOfPHOSClusters(-10),
72 18 : fNumberOfEMCALClusters(-10),
73 18 : fNumberOfJetCandidates(-10),
74 18 : fMaxJetEnergy(-100.0),
75 18 : fNumberOfHardPhotonsCandidates(-10),
76 18 : fMaxNeutralEnergy(-100.0),
77 18 : fNumberOfChargedAbove1GeV(-10),
78 18 : fNumberOfChargedAbove3GeV(-10),
79 18 : fNumberOfChargedAbove10GeV(-10),
80 18 : fNumberOfMuonsAbove1GeV(-10),
81 18 : fNumberOfMuonsAbove3GeV(-10),
82 18 : fNumberOfMuonsAbove10GeV(-10),
83 18 : fNumberOfElectronsAbove1GeV(-10),
84 18 : fNumberOfElectronsAbove3GeV(-10),
85 18 : fNumberOfElectronsAbove10GeV(-10),
86 18 : fNumberOfElectrons(-10),
87 18 : fNumberOfFWMuons(-10),
88 18 : fNumberOfFWMatchedMuons(-10),
89 18 : fNumberOfMuons(-10),
90 18 : fNumberOfPions(-10),
91 18 : fNumberOfKaons(-10),
92 18 : fNumberOfProtons(-10),
93 18 : fNumberOfLambdas(-10),
94 18 : fNumberOfPhotons(-10),
95 18 : fNumberOfPi0s(-10),
96 18 : fNumberOfNeutrons(-10),
97 18 : fNumberOfKaon0s(-10),
98 18 : fTotalP(-10.0),
99 18 : fMeanPt(-10.0),
100 18 : fMaxPt(-10.0),
101 18 : fEtaMaxPt(-13.0),
102 18 : fPhiMaxPt(+13.0),
103 18 : fTotalNeutralP(-10.0),
104 18 : fMeanNeutralPt(-10.0),
105 18 : fMaxNeutralPt(-10.0),
106 18 : fEventPlaneAngle(-10.0),
107 18 : fHBTRadii(-10.0),
108 18 : fNumberOfFiredChipsLayer1(0),
109 18 : fNumberOfFiredChipsLayer2(0),
110 18 : fNumberOfSPDTracklets(0),
111 18 : fMTotV0A(0),
112 18 : fMTotV0C(0),
113 18 : fNbPMV0A(0),
114 18 : fNbPMV0C(0)
115 90 : {
116 : // AliEventTag default constructor
117 108 : for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = -10.0;
118 36 : }
119 :
120 :
121 : //___________________________________________________________________________
122 : AliEventTag::AliEventTag(const AliEventTag & evTag) :
123 16 : TObject(evTag),
124 16 : fPeriodNumber(evTag.fPeriodNumber),
125 16 : fOrbitNumber(evTag.fOrbitNumber),
126 16 : fBunchCrossNumber(evTag.fBunchCrossNumber),
127 : //*T* fFiredTriggerClasses(evTag.fFiredTriggerClasses),
128 16 : fEventType(evTag.fEventType),
129 16 : fPhysicsFlag(evTag.fPhysicsFlag),
130 16 : fBackgroundFlag(evTag.fBackgroundFlag),
131 : // fGUID(evTag.fGUID),
132 : // fPath(evTag.fPath),
133 : // fsize(evTag.fsize),
134 : // fmd5(evTag.fmd5),
135 : // fturl(evTag.fturl),
136 : // fFileRef(0),
137 16 : fNumberOfParticipants(evTag.fNumberOfParticipants),
138 16 : fNumberOfParticipants2(evTag.fNumberOfParticipants2),
139 16 : fImpactParameter(evTag.fImpactParameter),
140 16 : fPrimaryVertexFlag(evTag.fPrimaryVertexFlag),
141 16 : fPrimaryVertexX(evTag.fPrimaryVertexX),
142 16 : fPrimaryVertexY(evTag.fPrimaryVertexY),
143 16 : fPrimaryVertexZ(evTag.fPrimaryVertexZ),
144 16 : fPrimaryVertexZError(evTag.fPrimaryVertexZError),
145 16 : fTriggerMask(evTag.fTriggerMask),
146 16 : fTriggerMaskNext50(evTag.fTriggerMaskNext50),
147 16 : fTriggerCluster(evTag.fTriggerCluster),
148 16 : fZDCNeutron1Energy(evTag.fZDCNeutron1Energy),
149 16 : fZDCProton1Energy(evTag.fZDCProton1Energy),
150 16 : fZDCNeutron2Energy(evTag.fZDCNeutron2Energy),
151 16 : fZDCProton2Energy(evTag.fZDCProton2Energy),
152 16 : fT0VertexZ(evTag.fT0VertexZ),
153 16 : fNumberOfTracks(evTag.fNumberOfTracks),
154 16 : fNumberOfPositiveTracks(evTag.fNumberOfPositiveTracks),
155 16 : fNumberOfNegativeTracks(evTag.fNumberOfNegativeTracks),
156 16 : fNumberOfNeutralTracks(evTag.fNumberOfNeutralTracks),
157 16 : fNumberOfV0s(evTag.fNumberOfV0s),
158 16 : fNumberOfCascades(evTag.fNumberOfCascades),
159 16 : fNumberOfKinks(evTag.fNumberOfKinks),
160 16 : fNumberOfPMDTracks(evTag.fNumberOfPMDTracks),
161 16 : fNumberOfFMDTracks(evTag.fNumberOfFMDTracks),
162 16 : fNumberOfPHOSClusters(evTag.fNumberOfPHOSClusters),
163 16 : fNumberOfEMCALClusters(evTag.fNumberOfEMCALClusters),
164 16 : fNumberOfJetCandidates(evTag.fNumberOfJetCandidates),
165 16 : fMaxJetEnergy(evTag.fMaxJetEnergy),
166 16 : fNumberOfHardPhotonsCandidates(evTag.fNumberOfHardPhotonsCandidates),
167 16 : fMaxNeutralEnergy(evTag.fMaxNeutralEnergy),
168 16 : fNumberOfChargedAbove1GeV(evTag.fNumberOfChargedAbove1GeV),
169 16 : fNumberOfChargedAbove3GeV(evTag.fNumberOfChargedAbove3GeV),
170 16 : fNumberOfChargedAbove10GeV(evTag.fNumberOfChargedAbove10GeV),
171 16 : fNumberOfMuonsAbove1GeV(evTag.fNumberOfMuonsAbove1GeV),
172 16 : fNumberOfMuonsAbove3GeV(evTag.fNumberOfMuonsAbove3GeV),
173 16 : fNumberOfMuonsAbove10GeV(evTag.fNumberOfMuonsAbove10GeV),
174 16 : fNumberOfElectronsAbove1GeV(evTag.fNumberOfElectronsAbove1GeV),
175 16 : fNumberOfElectronsAbove3GeV(evTag.fNumberOfElectronsAbove3GeV),
176 16 : fNumberOfElectronsAbove10GeV(evTag.fNumberOfElectronsAbove10GeV),
177 16 : fNumberOfElectrons(evTag.fNumberOfElectrons),
178 16 : fNumberOfFWMuons(evTag.fNumberOfFWMuons),
179 16 : fNumberOfFWMatchedMuons(evTag.fNumberOfFWMatchedMuons),
180 16 : fNumberOfMuons(evTag.fNumberOfMuons),
181 16 : fNumberOfPions(evTag.fNumberOfPions),
182 16 : fNumberOfKaons(evTag.fNumberOfKaons),
183 16 : fNumberOfProtons(evTag.fNumberOfProtons),
184 16 : fNumberOfLambdas(evTag.fNumberOfLambdas),
185 16 : fNumberOfPhotons(evTag.fNumberOfPhotons),
186 16 : fNumberOfPi0s(evTag.fNumberOfPi0s),
187 16 : fNumberOfNeutrons(evTag.fNumberOfNeutrons),
188 16 : fNumberOfKaon0s(evTag.fNumberOfKaon0s),
189 16 : fTotalP(evTag.fTotalP),
190 16 : fMeanPt(evTag.fMeanPt),
191 16 : fMaxPt(evTag.fMaxPt),
192 16 : fEtaMaxPt(evTag.fEtaMaxPt),
193 16 : fPhiMaxPt(evTag.fPhiMaxPt),
194 16 : fTotalNeutralP(evTag.fTotalNeutralP),
195 16 : fMeanNeutralPt(evTag.fMeanNeutralPt),
196 16 : fMaxNeutralPt(evTag.fMaxNeutralPt),
197 16 : fEventPlaneAngle(evTag.fEventPlaneAngle),
198 16 : fHBTRadii(evTag.fHBTRadii),
199 16 : fNumberOfFiredChipsLayer1(evTag.fNumberOfFiredChipsLayer1),
200 16 : fNumberOfFiredChipsLayer2(evTag.fNumberOfFiredChipsLayer2),
201 16 : fNumberOfSPDTracklets(evTag.fNumberOfSPDTracklets),
202 16 : fMTotV0A(evTag.fMTotV0A),
203 16 : fMTotV0C(evTag.fMTotV0C),
204 16 : fNbPMV0A(evTag.fNbPMV0A),
205 16 : fNbPMV0C(evTag.fNbPMV0C)
206 80 : {
207 : // EventTag copy constructor
208 96 : for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = evTag.fZDCEMEnergy[i];
209 32 : }
210 :
211 : //___________________________________________________________________________
212 : AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
213 : // EventTag assignment operator
214 0 : if (this != &evTag) {
215 0 : TObject::operator=(evTag);
216 :
217 0 : SetPeriodNumber(evTag.GetPeriodNumber());
218 0 : SetOrbitNumber(evTag.GetOrbitNumber());
219 0 : SetBunchCrossNumber(evTag.GetBunchCrossNumber());
220 : //*T* SetFiredTriggerClasses(evTag.GetFiredTriggerClasses());
221 0 : SetEventType(evTag.GetEventType());
222 0 : SetPhysicsFlag(evTag.GetPhysicsFlag());
223 0 : SetBackgroungFlag(evTag.GetBackgroundFlag());
224 : // SetGUID(evTag.GetGUID());
225 : // SetPath(evTag.GetPath());
226 : // SetMD5(evTag.GetMD5());
227 : // SetTURL(evTag.GetTURL());
228 : // SetSize(evTag.GetSize());
229 0 : SetNumOfParticipants(evTag.GetNumOfParticipants());
230 0 : SetImpactParameter(evTag.GetImpactParameter());
231 0 : SetVertexX(evTag.GetVertexX());
232 0 : SetVertexY(evTag.GetVertexY());
233 0 : SetVertexZ(evTag.GetVertexZ());
234 0 : SetVertexFlag(evTag.GetVertexFlag());
235 0 : SetVertexZError(evTag.GetVertexZError());
236 0 : SetTriggerMask(evTag.GetTriggerMask());
237 0 : SetTriggerCluster(evTag.GetTriggerCluster());
238 0 : SetZDCNeutron1Energy(evTag.GetZDCNeutron1Energy());
239 0 : SetZDCProton1Energy(evTag.GetZDCProton1Energy());
240 0 : SetZDCNeutron2Energy(evTag.GetZDCNeutron2Energy());
241 0 : SetZDCProton2Energy(evTag.GetZDCProton2Energy());
242 0 : SetZDCEMEnergy(evTag.GetZDCEMEnergy(0),evTag.GetZDCEMEnergy(1));
243 0 : SetT0VertexZ(evTag.GetT0VertexZ());
244 0 : SetNumOfTracks(evTag.GetNumOfTracks());
245 0 : SetNumOfPosTracks(evTag.GetNumOfPosTracks());
246 0 : SetNumOfNegTracks(evTag.GetNumOfNegTracks());
247 0 : SetNumOfNeutrTracks(evTag.GetNumOfNeutrTracks());
248 0 : SetNumOfV0s(evTag.GetNumOfV0s());
249 0 : SetNumOfCascades(evTag.GetNumOfCascades());
250 0 : SetNumOfKinks(evTag.GetNumOfKinks());
251 0 : SetNumOfPMDTracks(evTag.GetNumOfPMDTracks());
252 0 : SetNumOfFMDTracks(evTag.GetNumOfFMDTracks());
253 0 : SetNumOfPHOSClusters(evTag.GetNumOfPHOSClusters());
254 0 : SetNumOfEMCALClusters(evTag.GetNumOfEMCALClusters());
255 0 : SetNumOfJetCandidates(evTag.GetNumOfJetCandidates());
256 0 : SetNumOfHardPhotonsCandidates(evTag.GetNumOfHardPhotonsCandidates());
257 0 : SetMaxJetEnergy(evTag.GetMaxJetEnergy());
258 0 : SetMaxNeutralEnergy(evTag.GetMaxNeutralEnergy());
259 0 : SetNumOfChargedAbove1GeV(evTag.GetNumOfChargedAbove1GeV());
260 0 : SetNumOfChargedAbove3GeV(evTag.GetNumOfChargedAbove3GeV());
261 0 : SetNumOfChargedAbove10GeV(evTag.GetNumOfChargedAbove10GeV());
262 0 : SetNumOfMuonsAbove1GeV(evTag.GetNumOfMuonsAbove1GeV());
263 0 : SetNumOfMuonsAbove3GeV(evTag.GetNumOfMuonsAbove3GeV());
264 0 : SetNumOfMuonsAbove10GeV(evTag.GetNumOfMuonsAbove10GeV());
265 0 : SetNumOfElectronsAbove1GeV(evTag.GetNumOfElectronsAbove1GeV());
266 0 : SetNumOfElectronsAbove3GeV(evTag.GetNumOfElectronsAbove3GeV());
267 0 : SetNumOfElectronsAbove10GeV(evTag.GetNumOfElectronsAbove10GeV());
268 0 : SetNumOfElectrons(evTag.GetNumOfElectrons());
269 0 : SetNumOfFWMuons(evTag.GetNumOfFWMuons());
270 0 : SetNumOfFWMatchedMuons(evTag.GetNumOfFWMatchedMuons());
271 0 : SetNumOfMuons(evTag.GetNumOfMuons());
272 0 : SetNumOfPions(evTag.GetNumOfPions());
273 0 : SetNumOfKaons(evTag.GetNumOfKaons());
274 0 : SetNumOfProtons(evTag.GetNumOfProtons());
275 0 : SetNumOfLambdas(evTag.GetNumOfLambdas());
276 0 : SetNumOfPhotons(evTag.GetNumOfPhotons());
277 0 : SetNumOfPi0s(evTag.GetNumOfPi0s());
278 0 : SetNumOfNeutrons(evTag.GetNumOfNeutrons());
279 0 : SetNumOfKaon0s(evTag.GetNumOfKaon0s());
280 0 : SetTotalMomentum(evTag.GetTotalMomentum());
281 0 : SetMeanPt(evTag.GetMeanPt());
282 0 : SetMaxPt(evTag.GetMaxPt());
283 0 : SetEtaMaxPt(evTag.GetEtaMaxPt());
284 0 : SetPhiMaxPt(evTag.GetPhiMaxPt());
285 0 : SetNeutralTotalMomentum(evTag.GetNeutralTotalMomentum());
286 0 : SetNeutralMeanPt(evTag.GetNeutralMeanPt());
287 0 : SetNeutralMaxPt(evTag.GetNeutralMaxPt());
288 0 : SetEventPlaneAngle(evTag.GetEventPlaneAngle());
289 0 : SetHBTRadii(evTag.GetHBTRadii());
290 0 : SetNumberOfFiredChipsLayer1(evTag.GetNumberOfFiredChipsLayer1());
291 0 : SetNumberOfFiredChipsLayer2(evTag.GetNumberOfFiredChipsLayer2());
292 0 : SetNumberOfSPDTracklets(evTag.GetNumberOfSPDTracklets());
293 0 : SetMTotV0A(evTag.GetMTotV0A());
294 0 : SetMTotV0C(evTag.GetMTotV0C());
295 0 : SetNbPMV0A(evTag.GetNbPMV0A());
296 0 : SetNbPMV0C(evTag.GetNbPMV0C());
297 0 : }
298 0 : return *this;
299 : }
300 :
301 : //___________________________________________________________________________
302 40 : AliEventTag::~AliEventTag() {
303 : // AliEventTag destructor
304 40 : }
305 :
306 : // void AliEventTag::SetGUID(TString Pid) { ((AliFileTag * ) fFileRef.GetObject())->SetGUID(Pid);}
307 : // void AliEventTag::SetPath(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetPath(Pid);}
308 : // void AliEventTag::SetMD5(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetMD5(Pid);}
309 : // void AliEventTag::SetTURL(TString Pid) {((AliFileTag * ) fFileRef.GetObject())->SetTURL(Pid);}
310 : // void AliEventTag::SetSize(Long64_t i) {((AliFileTag * ) fFileRef.GetObject())->SetSize(i);}
311 :
312 : TString AliEventTag::GetFiredTriggerClasses(TString actclass) const
313 : {
314 : // Uses the actclass string to decode the trigger mask
315 : // into the fired trigger classes
316 : // Modifed by rl for 100 classes - to be checked.
317 0 : TObjArray *actrig = actclass.Tokenize(" ");
318 0 : TString tFired("");
319 :
320 0 : for(Int_t i = 0; i < actrig->GetEntries(); i++) {
321 0 : Bool_t fired=(fTriggerMask & (1ull << i));
322 0 : if(i>=50)fired=(fTriggerMaskNext50 & (1ull << (i-50)));
323 0 : if (fired) {
324 0 : TString str = ((TObjString *) actrig->At(i))->GetString();
325 0 : if (tFired.Length() > 0)
326 0 : tFired += " ";
327 0 : tFired += str;
328 0 : }
329 : }
330 :
331 0 : delete actrig;
332 :
333 : return tFired;
334 0 : }
|