]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDEvent.h
Typo fixed.
[u/mrichter/AliRoot.git] / STEER / AliESDEvent.h
CommitLineData
af885e0f 1// -*- mode: C++ -*-
2#ifndef ALIESDEVENT_H
3#define ALIESDEVENT_H
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7
8/* $Id$ */
9
10//-------------------------------------------------------------------------
f56a9fa7 11// Class AliESDEvent
6989bff3 12// This is the class to deal with during the physics analysis of data.
f56a9fa7 13// It also ensures the backward compatibility with the old ESD format.
af885e0f 14//
f56a9fa7 15// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
af885e0f 16//-------------------------------------------------------------------------
17
18#include <TClonesArray.h>
19#include <TObject.h>
20#include <TTree.h>
21#include <TArrayF.h>
22
af885e0f 23
024c7734 24#include "AliVEvent.h"
694aad0c 25// some includes for delegated methods
f0106218 26#include "AliESDCaloTrigger.h"
af885e0f 27#include "AliESDRun.h"
28#include "AliESDHeader.h"
3f47e572 29#include "AliESDTZERO.h"
f0106218 30#include "AliESDZDC.h"
bd95bae7 31#include "AliESDACORDE.h"
af885e0f 32
024c7734 33// AliESDtrack has to be included so that the compiler
34// knows its inheritance tree (= that it is a AliVParticle).
35#include "AliESDtrack.h"
5303c167 36// same for AliESDVertex (which is a AliVVertex)
37#include "AliESDVertex.h"
024c7734 38
af885e0f 39class AliESDfriend;
40class AliESDVZERO;
41class AliESDHLTtrack;
f0106218 42class AliESDVertex;
43class AliESDPmdTrack;
44class AliESDFMD;
45class AliESDkink;
f0106218 46class AliESDCaloCluster;
e649177a 47class AliESDCaloCells;
f0106218 48class AliESDv0;
f0106218 49class AliMultiplicity;
50class AliRawDataErrorLog;
51class AliESDRun;
52class AliESDTrdTrack;
53class AliESDMuonTrack;
af885e0f 54class AliESD;
f0106218 55class AliESDcascade;
cd1d4ee0 56class TRefArray;
bd95bae7 57class AliESDACORDE;
8b12d288 58class AliESDHLTDecision;
af885e0f 59
80791508 60class TList;
61class TString;
62
63
024c7734 64class AliESDEvent : public AliVEvent {
af885e0f 65public:
66
67
6989bff3 68 enum ESDListIndex {kESDRun,
af885e0f 69 kHeader,
70 kESDZDC,
71 kESDFMD,
72 kESDVZERO,
73 kESDTZERO,
06cc9d95 74 kTPCVertex,
af885e0f 75 kSPDVertex,
76 kPrimaryVertex,
77 kSPDMult,
78 kPHOSTrigger,
79 kEMCALTrigger,
04d01397 80 kSPDPileupVertices,
81 kTrkPileupVertices,
af885e0f 82 kTracks,
83 kMuonTracks,
84 kPmdTracks,
85 kTrdTracks,
86 kV0s,
87 kCascades,
88 kKinks,
89 kCaloClusters,
e649177a 90 kEMCALCells,
91 kPHOSCells,
af885e0f 92 kErrorLogs,
bd95bae7 93 kESDACORDE,
af885e0f 94 kESDListN
95 };
96
97 AliESDEvent();
732a24fe 98 virtual ~AliESDEvent();
99 AliESDEvent &operator=(const AliESDEvent& source); // or make private and use only copy?
100 virtual void Copy(TObject& obj) const;
af885e0f 101
102 // RUN
103 // move this to the UserData!!!
104 const AliESDRun* GetESDRun() const {return fESDRun;}
105
106 // Delegated methods for fESDRun
c017f53f 107 void SetRunNumber(Int_t n) {if(fESDRun) fESDRun->SetRunNumber(n);}
108 Int_t GetRunNumber() const {return fESDRun?fESDRun->GetRunNumber():-1;}
109 void SetPeriodNumber(UInt_t n){if(fESDRun) fESDRun->SetPeriodNumber(n);}
110 UInt_t GetPeriodNumber() const {return fESDRun?fESDRun->GetPeriodNumber():0;}
111 void SetMagneticField(Double_t mf){if(fESDRun) fESDRun->SetMagneticField(mf);}
112 Double_t GetMagneticField() const {return fESDRun?fESDRun->GetMagneticField():0;}
113 void SetDiamond(const AliESDVertex *vertex) { if(fESDRun) fESDRun->SetDiamond(vertex);}
114 Double_t GetDiamondX() const {return fESDRun?fESDRun->GetDiamondX():0;}
115 Double_t GetDiamondY() const {return fESDRun?fESDRun->GetDiamondY():0;}
1c7554f9 116 Double_t GetDiamondZ() const {return fESDRun?fESDRun->GetDiamondZ():0;}
c017f53f 117 Double_t GetSigma2DiamondX() const {return fESDRun?fESDRun->GetSigma2DiamondX():0;}
118 Double_t GetSigma2DiamondY() const {return fESDRun?fESDRun->GetSigma2DiamondY():0;}
1c7554f9 119 Double_t GetSigma2DiamondZ() const {return fESDRun?fESDRun->GetSigma2DiamondZ():0;}
c017f53f 120 void GetDiamondCovXY(Float_t cov[3]) const {if(fESDRun) fESDRun->GetDiamondCovXY(cov);}
121 void SetTriggerClass(const char*name, Int_t index) {if(fESDRun) fESDRun->SetTriggerClass(name,index);}
122 void SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetPHOSMatrix(matrix,i);}
123 const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {return fESDRun?fESDRun->GetPHOSMatrix(i):0x0;}
124 void SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetEMCALMatrix(matrix,i);}
125 const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {return fESDRun?fESDRun->GetEMCALMatrix(i):0x0;}
33fe5eb1 126 //
c017f53f 127 void SetCurrentL3(Float_t cur) const {if(fESDRun) fESDRun->SetCurrentL3(cur);}
128 void SetCurrentDip(Float_t cur) const {if(fESDRun) fESDRun->SetCurrentDip(cur);}
129 void SetBeamEnergy(Float_t be) const {if(fESDRun) fESDRun->SetBeamEnergy(be);}
130 void SetBeamType(const char* bt) const {if(fESDRun) fESDRun->SetBeamType(bt);}
131 void SetUniformBMap(Bool_t val=kTRUE) const {if(fESDRun) fESDRun->SetBit(AliESDRun::kUniformBMap,val);}
132 void SetBInfoStored(Bool_t val=kTRUE) const {if(fESDRun) fESDRun->SetBit(AliESDRun::kBInfoStored,val);}
33fe5eb1 133 //
c017f53f 134 Float_t GetCurrentL3() const {return fESDRun?fESDRun->GetCurrentL3():0;}
135 Float_t GetCurrentDip() const {return fESDRun?fESDRun->GetCurrentDip():0;}
136 Float_t GetBeamEnergy() const {return fESDRun?fESDRun->GetBeamEnergy():0;}
137 const char* GetBeamType() const {return fESDRun?fESDRun->GetBeamType():0;}
138 Bool_t IsUniformBMap() const {return fESDRun?fESDRun->TestBit(AliESDRun::kUniformBMap):kFALSE;}
33fe5eb1 139 //
c017f53f 140 Bool_t InitMagneticField() const {return fESDRun?fESDRun->InitMagneticField():kFALSE;}
af885e0f 141 // HEADER
024c7734 142 AliESDHeader* GetHeader() const {return fHeader;}
af885e0f 143
144 // Delegated methods for fHeader
c017f53f 145 void SetTriggerMask(ULong64_t n) {if(fHeader) fHeader->SetTriggerMask(n);}
146 void SetOrbitNumber(UInt_t n) {if(fHeader) fHeader->SetOrbitNumber(n);}
147 void SetTimeStamp(UInt_t timeStamp){if(fHeader) fHeader->SetTimeStamp(timeStamp);}
148 void SetEventType(UInt_t eventType){if(fHeader) fHeader->SetEventType(eventType);}
149 void SetEventSpecie(UInt_t eventSpecie){if(fHeader) fHeader->SetEventSpecie(eventSpecie);}
150 void SetEventNumberInFile(Int_t n) {if(fHeader) fHeader->SetEventNumberInFile(n);}
151 // void SetRunNumber(Int_t n) {if(fHeader) fHeader->SetRunNumber(n);}
152 void SetBunchCrossNumber(UShort_t n) {if(fHeader) fHeader->SetBunchCrossNumber(n);}
153 void SetTriggerCluster(UChar_t n) {if(fHeader) fHeader->SetTriggerCluster(n);}
694aad0c 154
c017f53f 155 ULong64_t GetTriggerMask() const {return fHeader?fHeader->GetTriggerMask():0;}
156 TString GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask()):"";}
157 Bool_t IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),name):kFALSE;}
2a3dfb14 158 Bool_t IsEventSelected(const char *trigExpr) const;
3b286f80 159 TObject* GetHLTTriggerDecision() const;
160 TString GetHLTTriggerDescription() const;
161 Bool_t IsHLTTriggerFired(const char* name=NULL) const;
158a76dd 162 UInt_t GetOrbitNumber() const {return fHeader?fHeader->GetOrbitNumber():0;}
c017f53f 163 UInt_t GetTimeStamp() const { return fHeader?fHeader->GetTimeStamp():0;}
164 UInt_t GetEventType() const { return fHeader?fHeader->GetEventType():0;}
165 UInt_t GetEventSpecie() const { return fHeader?fHeader->GetEventSpecie():0;}
166 Int_t GetEventNumberInFile() const {return fHeader?fHeader->GetEventNumberInFile():-1;}
167 UShort_t GetBunchCrossNumber() const {return fHeader?fHeader->GetBunchCrossNumber():0;}
168 UChar_t GetTriggerCluster() const {return fHeader?fHeader->GetTriggerCluster():0;}
af885e0f 169
170 // ZDC CKB: put this in the header?
a85132e7 171 AliESDZDC* GetESDZDC() const {return fESDZDC;}
af885e0f 172
173 // Delegated methods for fESDZDC
c017f53f 174 Double_t GetZDCN1Energy() const {return fESDZDC?fESDZDC->GetZDCN1Energy():0;}
175 Double_t GetZDCP1Energy() const {return fESDZDC?fESDZDC->GetZDCP1Energy():0;}
176 Double_t GetZDCN2Energy() const {return fESDZDC?fESDZDC->GetZDCN2Energy():0;}
177 Double_t GetZDCP2Energy() const {return fESDZDC?fESDZDC->GetZDCP2Energy():0;}
178 Double_t GetZDCEMEnergy(Int_t i=0) const {return fESDZDC?fESDZDC->GetZDCEMEnergy(i):0;}
179 Int_t GetZDCParticipants() const {return fESDZDC?fESDZDC->GetZDCParticipants():0;}
b19cc8d0 180 void SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t em1Energy, Float_t em2Energy,
181 Float_t n2Energy, Float_t p2Energy, Int_t participants, Int_t nPartA,
182 Int_t nPartC, Double_t b, Double_t bA, Double_t bC, UInt_t recoflag)
c017f53f 183 {if(fESDZDC) fESDZDC->SetZDC(n1Energy, p1Energy, em1Energy, em2Energy, n2Energy, p2Energy,
b19cc8d0 184 participants, nPartA, nPartC, b, bA, bC, recoflag);}
c017f53f 185 void SetZDCScaler(UInt_t *counts) {if(fESDZDC) fESDZDC->SetZDCScaler(counts);}
af885e0f 186
187
188 // FMD
189 void SetFMDData(AliESDFMD * obj);
5b96d6f1 190 AliESDFMD *GetFMDData() const { return fESDFMD; }
af885e0f 191
192
193 // TZERO CKB: put this in the header?
194 const AliESDTZERO* GetESDTZERO() const {return fESDTZERO;}
195 // delegetated methods for fESDTZERO
196
adf36b9d 197 Double32_t GetT0zVertex() const {return fESDTZERO?fESDTZERO->GetT0zVertex():0;}
198 void SetT0zVertex(Double32_t z) {if(fESDTZERO) fESDTZERO->SetT0zVertex(z);}
199 Double32_t GetT0() const {return fESDTZERO?fESDTZERO->GetT0():0;}
200 void SetT0(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0(timeStart);}
201 Double32_t GetT0clock() const {return fESDTZERO?fESDTZERO->GetT0clock():0;}
202 void SetT0clock(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0clock(timeStart);}
203 Double32_t GetT0TOF(Int_t icase) const {return fESDTZERO?fESDTZERO->GetT0TOF(icase):0;}
204 const Double32_t * GetT0TOF() const {return fESDTZERO?fESDTZERO->GetT0TOF():0x0;}
205 void SetT0TOF(Int_t icase,Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0TOF(icase,timeStart);}
206 const Double32_t * GetT0time() const {return fESDTZERO?fESDTZERO->GetT0time():0x0;}
207 void SetT0time(Double32_t time[24]) {if(fESDTZERO) fESDTZERO->SetT0time(time);}
208 const Double32_t * GetT0amplitude() const {return fESDTZERO?fESDTZERO->GetT0amplitude():0x0;}
209 void SetT0amplitude(Double32_t amp[24]){if(fESDTZERO) fESDTZERO->SetT0amplitude(amp);}
210 Int_t GetT0Trig() const { return fESDTZERO?fESDTZERO->GetT0Trig():0;}
211 void SetT0Trig(Int_t tvdc) {if(fESDTZERO) fESDTZERO->SetT0Trig(tvdc);}
af885e0f 212
213 // VZERO
214 AliESDVZERO *GetVZEROData() const { return fESDVZERO; }
215 void SetVZEROData(AliESDVZERO * obj);
216
bd95bae7 217 // ACORDE
218 AliESDACORDE *GetACORDEData() const { return fESDACORDE;}
219 void SetACORDEData(AliESDACORDE * obj);
af885e0f 220
7d44c466 221 void SetESDfriend(const AliESDfriend *f) const;
af885e0f 222 void GetESDfriend(AliESDfriend *f) const;
223
224
225
06cc9d95 226 void SetPrimaryVertexTPC(const AliESDVertex *vertex);
227 const AliESDVertex *GetPrimaryVertexTPC() const {return fTPCVertex;}
228
229 void SetPrimaryVertexSPD(const AliESDVertex *vertex);
230 const AliESDVertex *GetPrimaryVertexSPD() const {return fSPDVertex;}
231 const AliESDVertex *GetVertex() const {
232 //For the backward compatibily only
233 return GetPrimaryVertexSPD();
234 }
af885e0f 235
c264b61b 236 void SetPrimaryVertexTracks(const AliESDVertex *vertex);
237 const AliESDVertex *GetPrimaryVertexTracks() const {return fPrimaryVertex;}
518573d7 238 AliESDVertex *PrimaryVertexTracksUnconstrained() const;
c264b61b 239
240 const AliESDVertex *GetPrimaryVertex() const;
af885e0f 241
f0106218 242 void SetMultiplicity(const AliMultiplicity *mul);
243
af885e0f 244 const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
4ace6760 245 void EstimateMultiplicity(Int_t &tracklets,Int_t &trITSTPC,Int_t &trITSSApure,
246 Double_t eta=1.,Bool_t useDCAFlag=kTRUE,Bool_t useV0Flag=kTRUE) const;
f0106218 247
7f68891d 248 Bool_t Clean(Float_t *cleanPars);
7d44c466 249 Bool_t RemoveKink(Int_t i) const;
250 Bool_t RemoveV0(Int_t i) const;
251 Bool_t RemoveTrack(Int_t i) const;
d64bd07d 252
04d01397 253 const AliESDVertex *GetPileupVertexSPD(Int_t i) const {
c017f53f 254 return (const AliESDVertex *)(fSPDPileupVertices?fSPDPileupVertices->UncheckedAt(i):0x0);
04d01397 255 }
6dc21f57 256 Char_t AddPileupVertexSPD(const AliESDVertex *vtx);
04d01397 257 const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
c017f53f 258 return (const AliESDVertex *)(fTrkPileupVertices?fTrkPileupVertices->UncheckedAt(i):0x0);
04d01397 259 }
6dc21f57 260 Char_t AddPileupVertexTracks(const AliESDVertex *vtx);
04d01397 261
a98c78e5 262 virtual Bool_t IsPileupFromSPD(Int_t minContributors=3,
263 Double_t minZdist=0.8,
264 Double_t nSigmaZdist=3.,
265 Double_t nSigmaDiamXY=2.,
266 Double_t nSigmaDiamZ=5.) const;
267
af885e0f 268 AliESDtrack *GetTrack(Int_t i) const {
c017f53f 269 return (AliESDtrack *)(fTracks?fTracks->UncheckedAt(i):0x0);
af885e0f 270 }
271 Int_t AddTrack(const AliESDtrack *t);
272
273
274 AliESDHLTtrack *GetHLTConfMapTrack(Int_t /*i*/) const {
275 // return (AliESDHLTtrack *)fHLTConfMapTracks->UncheckedAt(i);
276 return 0;
277 }
278 void AddHLTConfMapTrack(const AliESDHLTtrack */*t*/) {
279 printf("ESD:: AddHLTConfMapTrack do nothing \n");
280 // TClonesArray &fhlt = *fHLTConfMapTracks;
281 // new(fhlt[fHLTConfMapTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
282 }
283
284
285 AliESDHLTtrack *GetHLTHoughTrack(Int_t /*i*/) const {
286 // return (AliESDHLTtrack *)fHLTHoughTracks->UncheckedAt(i);
287 return 0;
288 }
289 void AddHLTHoughTrack(const AliESDHLTtrack */*t*/) {
290 printf("ESD:: AddHLTHoughTrack do nothing \n");
291 // TClonesArray &fhlt = *fHLTHoughTracks;
292 // new(fhlt[fHLTHoughTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
293 }
294
295 AliESDMuonTrack *GetMuonTrack(Int_t i) const {
c017f53f 296 return (AliESDMuonTrack *)(fMuonTracks?fMuonTracks->UncheckedAt(i):0x0);
af885e0f 297 }
f0106218 298
299 void AddMuonTrack(const AliESDMuonTrack *t);
af885e0f 300
301 AliESDPmdTrack *GetPmdTrack(Int_t i) const {
c017f53f 302 return (AliESDPmdTrack *)(fPmdTracks?fPmdTracks->UncheckedAt(i):0x0);
af885e0f 303 }
f0106218 304
305 void AddPmdTrack(const AliESDPmdTrack *t);
306
af885e0f 307
308 AliESDTrdTrack *GetTrdTrack(Int_t i) const {
c017f53f 309 return (AliESDTrdTrack *)(fTrdTracks?fTrdTracks->UncheckedAt(i):0x0);
af885e0f 310 }
f0106218 311
312
313 void AddTrdTrack(const AliESDTrdTrack *t);
af885e0f 314
315 AliESDv0 *GetV0(Int_t i) const {
c017f53f 316 return (AliESDv0*)(fV0s?fV0s->UncheckedAt(i):0x0);
af885e0f 317 }
318 Int_t AddV0(const AliESDv0 *v);
319
320 AliESDcascade *GetCascade(Int_t i) const {
c017f53f 321 return (AliESDcascade *)(fCascades?fCascades->UncheckedAt(i):0x0);
af885e0f 322 }
f0106218 323
324 void AddCascade(const AliESDcascade *c);
af885e0f 325
326 AliESDkink *GetKink(Int_t i) const {
c017f53f 327 return (AliESDkink *)(fKinks?fKinks->UncheckedAt(i):0x0);
af885e0f 328 }
329 Int_t AddKink(const AliESDkink *c);
330
331 AliESDCaloCluster *GetCaloCluster(Int_t i) const {
c017f53f 332 return (AliESDCaloCluster *)(fCaloClusters?fCaloClusters->UncheckedAt(i):0x0);
af885e0f 333 }
e649177a 334
af885e0f 335 Int_t AddCaloCluster(const AliESDCaloCluster *c);
336
e649177a 337 AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }
338 AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }
339
af885e0f 340 AliRawDataErrorLog *GetErrorLog(Int_t i) const {
c017f53f 341 return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
af885e0f 342 }
7d44c466 343 void AddRawDataErrorLog(const AliRawDataErrorLog *log) const;
f0106218 344
c017f53f 345 Int_t GetNumberOfErrorLogs() const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}
af885e0f 346
347
c017f53f 348 void AddPHOSTriggerPosition(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerPosition(array); }
349 void AddPHOSTriggerAmplitudes(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerAmplitudes(array);}
350 void AddEMCALTriggerPosition(TArrayF array) { if(fEMCALTrigger) fEMCALTrigger->AddTriggerPosition(array); }
351 void AddEMCALTriggerAmplitudes(TArrayF array){ if(fEMCALTrigger) fEMCALTrigger->AddTriggerAmplitudes(array); }
af885e0f 352
04d01397 353 Int_t GetNumberOfPileupVerticesSPD() const {
642f673b 354 return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
04d01397 355 }
356 Int_t GetNumberOfPileupVerticesTracks() const {
642f673b 357 return (fTrkPileupVertices?fTrkPileupVertices->GetEntriesFast():0);
04d01397 358 }
c017f53f 359 Int_t GetNumberOfTracks() const {return fTracks?fTracks->GetEntriesFast():0;}
af885e0f 360 Int_t GetNumberOfHLTConfMapTracks() const {return 0;}
361 // fHLTConfMapTracks->GetEntriesFast();}
362 Int_t GetNumberOfHLTHoughTracks() const {return 0; }
363 // fHLTHoughTracks->GetEntriesFast(); }
364
c017f53f 365 Int_t GetNumberOfMuonTracks() const {return fMuonTracks?fMuonTracks->GetEntriesFast():0;}
366 Int_t GetNumberOfPmdTracks() const {return fPmdTracks?fPmdTracks->GetEntriesFast():0;}
367 Int_t GetNumberOfTrdTracks() const {return fTrdTracks?fTrdTracks->GetEntriesFast():0;}
368 Int_t GetNumberOfV0s() const {return fV0s?fV0s->GetEntriesFast():0;}
369 Int_t GetNumberOfCascades() const {return fCascades?fCascades->GetEntriesFast():0;}
370 Int_t GetNumberOfKinks() const {return fKinks?fKinks->GetEntriesFast():0;}
e649177a 371
cd1d4ee0 372 Int_t GetEMCALClusters(TRefArray *clusters) const;
373 Int_t GetPHOSClusters(TRefArray *clusters) const;
c017f53f 374 Int_t GetNumberOfCaloClusters() const {return fCaloClusters?fCaloClusters->GetEntriesFast():0;}
af885e0f 375
a2fbb067 376 void SetUseOwnList(Bool_t b){fUseOwnList = b;}
b19cc8d0 377 Bool_t GetUseOwnList() const {return fUseOwnList;}
e649177a 378
c017f53f 379 TArrayF *GetEMCALTriggerPosition() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerPosition():0x0;}
380 TArrayF *GetEMCALTriggerAmplitudes() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerAmplitudes():0x0;}
381 TArrayF *GetPHOSTriggerPosition() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerPosition():0x0;}
382 TArrayF *GetPHOSTriggerAmplitudes() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerAmplitudes():0x0;}
af885e0f 383
c017f53f 384 void ResetV0s() { if(fV0s) fV0s->Clear(); }
385 void ResetCascades() { if(fCascades) fCascades->Clear(); }
af885e0f 386 void Reset();
387
388 void Print(Option_t *option="") const;
389
390 void AddObject(TObject* obj);
1d0dd492 391 void ReadFromTree(TTree *tree, Option_t* opt = "");
2811495d 392 TObject* FindListObject(const char *name) const;
af885e0f 393 AliESD *GetAliESDOld(){return fESDOld;}
f12d42ce 394 void WriteToTree(TTree* tree) const;
af885e0f 395 void GetStdContent();
396 void ResetStdContent();
397 void CreateStdContent();
a2fbb067 398 void CreateStdContent(Bool_t bUseThisList);
af885e0f 399 void SetStdNames();
400 void CopyFromOldESD();
024c7734 401 TList* GetList() const {return fESDObjects;}
af885e0f 402
403protected:
404 AliESDEvent(const AliESDEvent&);
102c56c8 405 static Bool_t ResetWithPlacementNew(TObject *pObject);
af885e0f 406
407 TList *fESDObjects; // List of esd Objects
408
409 AliESDRun *fESDRun; //! Run information tmp put in the Userdata
410 AliESDHeader *fHeader; //! ESD Event Header
411 AliESDZDC *fESDZDC; //! ZDC information
412 AliESDFMD *fESDFMD; //! FMD object containing rough multiplicity
413 AliESDVZERO *fESDVZERO; //! VZERO object containing rough multiplicity
414 AliESDTZERO *fESDTZERO; //! TZEROObject
06cc9d95 415 AliESDVertex *fTPCVertex; //! Primary vertex estimated by the TPC
af885e0f 416 AliESDVertex *fSPDVertex; //! Primary vertex estimated by the SPD
417 AliESDVertex *fPrimaryVertex; //! Primary vertex estimated using ESD tracks
418 AliMultiplicity *fSPDMult; //! SPD tracklet multiplicity
419 AliESDCaloTrigger* fPHOSTrigger; //! PHOS Trigger information
420 AliESDCaloTrigger* fEMCALTrigger; //! PHOS Trigger information
bd95bae7 421 AliESDACORDE *fESDACORDE; //! ACORDE ESD object caontaining bit pattern
af885e0f 422
04d01397 423 TClonesArray *fSPDPileupVertices;//! Pileup primary vertices reconstructed by SPD
424 TClonesArray *fTrkPileupVertices;//! Pileup primary vertices reconstructed using the tracks
af885e0f 425 TClonesArray *fTracks; //! ESD tracks
426 TClonesArray *fMuonTracks; //! MUON ESD tracks
427 TClonesArray *fPmdTracks; //! PMD ESD tracks
428 TClonesArray *fTrdTracks; //! TRD ESD tracks (triggered)
429 TClonesArray *fV0s; //! V0 vertices
430 TClonesArray *fCascades; //! Cascade vertices
431 TClonesArray *fKinks; //! Kinks
432 TClonesArray *fCaloClusters; //! Calorimeter clusters for PHOS/EMCAL
e649177a 433 AliESDCaloCells *fEMCALCells; //! EMCAL cell info
434 AliESDCaloCells *fPHOSCells; //! PHOS cell info
af885e0f 435 TClonesArray *fErrorLogs; //! Raw-data reading error messages
436
437
438
1bd10080 439 AliESD *fESDOld; //! Old esd Structure
440 AliESDfriend *fESDFriendOld; //! Old friend esd Structure
60e8f114 441 Bool_t fConnected; //! flag if leaves are alreday connected
a2fbb067 442 Bool_t fUseOwnList; //! Do not use the list from the esdTree but use the one created by this class
60e8f114 443
6989bff3 444 static const char* fgkESDListName[kESDListN]; //!
af885e0f 445
7a54a755 446 ClassDef(AliESDEvent,11) //ESDEvent class
af885e0f 447};
448#endif
449