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