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