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),
56 fZDCNeutron1Energy(-10.0),
57 fZDCProton1Energy(-10.0),
58 fZDCNeutron2Energy(-10.0),
59 fZDCProton2Energy(-10.0),
62 fNumberOfPositiveTracks(-10),
63 fNumberOfNegativeTracks(-10),
64 fNumberOfNeutralTracks(-10),
66 fNumberOfCascades(-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),
91 fNumberOfProtons(-10),
92 fNumberOfLambdas(-10),
93 fNumberOfPhotons(-10),
95 fNumberOfNeutrons(-10),
102 fTotalNeutralP(-10.0),
103 fMeanNeutralPt(-10.0),
104 fMaxNeutralPt(-10.0),
105 fEventPlaneAngle(-10.0),
107 fNumberOfFiredChipsLayer1(0),
108 fNumberOfFiredChipsLayer2(0),
109 fNumberOfSPDTracklets(0),
115 // AliEventTag default constructor
116 for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = -10.0;
120 //___________________________________________________________________________
121 AliEventTag::AliEventTag(const AliEventTag & 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),
134 // fturl(evTag.fturl),
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)
205 // EventTag copy constructor
206 for(Int_t i=0; i<2; i++) fZDCEMEnergy[i] = evTag.fZDCEMEnergy[i];
209 //___________________________________________________________________________
210 AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
211 // EventTag assignment operator
212 if (this != &evTag) {
213 TObject::operator=(evTag);
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());
299 //___________________________________________________________________________
300 AliEventTag::~AliEventTag() {
301 // AliEventTag destructor
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);}
310 TString AliEventTag::GetFiredTriggerClasses(TString actclass) const
312 // Uses the actclass string to decode the trigger mask
313 // into the fired trigger classes
314 TObjArray *actrig = actclass.Tokenize(" ");
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)