1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
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 //-----------------------------------------------------------------
24 #include "AliEventTag.h"
25 #include <TObjArray.h>
26 #include <TObjString.h>
30 //______________________________________________________________________________
31 AliEventTag::AliEventTag() :
36 //*T* fFiredTriggerClasses(),
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),
55 fTriggerMaskNext50(0),
57 fZDCNeutron1Energy(-10.0),
58 fZDCProton1Energy(-10.0),
59 fZDCNeutron2Energy(-10.0),
60 fZDCProton2Energy(-10.0),
63 fNumberOfPositiveTracks(-10),
64 fNumberOfNegativeTracks(-10),
65 fNumberOfNeutralTracks(-10),
67 fNumberOfCascades(-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),
92 fNumberOfProtons(-10),
93 fNumberOfLambdas(-10),
94 fNumberOfPhotons(-10),
96 fNumberOfNeutrons(-10),
103 fTotalNeutralP(-10.0),
104 fMeanNeutralPt(-10.0),
105 fMaxNeutralPt(-10.0),
106 fEventPlaneAngle(-10.0),
108 fNumberOfFiredChipsLayer1(0),
109 fNumberOfFiredChipsLayer2(0),
110 fNumberOfSPDTracklets(0),
116 // AliEventTag default constructor
117 for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = -10.0;
121 //___________________________________________________________________________
122 AliEventTag::AliEventTag(const AliEventTag & 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),
135 // fturl(evTag.fturl),
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)
207 // EventTag copy constructor
208 for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = evTag.fZDCEMEnergy[i];
211 //___________________________________________________________________________
212 AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
213 // EventTag assignment operator
214 if (this != &evTag) {
215 TObject::operator=(evTag);
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());
301 //___________________________________________________________________________
302 AliEventTag::~AliEventTag() {
303 // AliEventTag destructor
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);}
312 TString AliEventTag::GetFiredTriggerClasses(TString actclass) const
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(" ");
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)));
324 TString str = ((TObjString *) actrig->At(i))->GetString();
325 if (tFired.Length() > 0)