]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDEvent.h
1) Added to AliESDtrack the flags marking those which should not be accounted
[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);
5b05543b 257 Bool_t IsPileupFromSPD(Int_t ncont=2, Double_t distz=1., Double_t nSigmaDeltaZ=3., Double_t nSigmaXY=2., Int_t option=0) const;
04d01397 258
259 const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
c017f53f 260 return (const AliESDVertex *)(fTrkPileupVertices?fTrkPileupVertices->UncheckedAt(i):0x0);
04d01397 261 }
6dc21f57 262 Char_t AddPileupVertexTracks(const AliESDVertex *vtx);
04d01397 263
af885e0f 264 AliESDtrack *GetTrack(Int_t i) const {
c017f53f 265 return (AliESDtrack *)(fTracks?fTracks->UncheckedAt(i):0x0);
af885e0f 266 }
267 Int_t AddTrack(const AliESDtrack *t);
268
269
270 AliESDHLTtrack *GetHLTConfMapTrack(Int_t /*i*/) const {
271 // return (AliESDHLTtrack *)fHLTConfMapTracks->UncheckedAt(i);
272 return 0;
273 }
274 void AddHLTConfMapTrack(const AliESDHLTtrack */*t*/) {
275 printf("ESD:: AddHLTConfMapTrack do nothing \n");
276 // TClonesArray &fhlt = *fHLTConfMapTracks;
277 // new(fhlt[fHLTConfMapTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
278 }
279
280
281 AliESDHLTtrack *GetHLTHoughTrack(Int_t /*i*/) const {
282 // return (AliESDHLTtrack *)fHLTHoughTracks->UncheckedAt(i);
283 return 0;
284 }
285 void AddHLTHoughTrack(const AliESDHLTtrack */*t*/) {
286 printf("ESD:: AddHLTHoughTrack do nothing \n");
287 // TClonesArray &fhlt = *fHLTHoughTracks;
288 // new(fhlt[fHLTHoughTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
289 }
290
291 AliESDMuonTrack *GetMuonTrack(Int_t i) const {
c017f53f 292 return (AliESDMuonTrack *)(fMuonTracks?fMuonTracks->UncheckedAt(i):0x0);
af885e0f 293 }
f0106218 294
295 void AddMuonTrack(const AliESDMuonTrack *t);
af885e0f 296
297 AliESDPmdTrack *GetPmdTrack(Int_t i) const {
c017f53f 298 return (AliESDPmdTrack *)(fPmdTracks?fPmdTracks->UncheckedAt(i):0x0);
af885e0f 299 }
f0106218 300
301 void AddPmdTrack(const AliESDPmdTrack *t);
302
af885e0f 303
304 AliESDTrdTrack *GetTrdTrack(Int_t i) const {
c017f53f 305 return (AliESDTrdTrack *)(fTrdTracks?fTrdTracks->UncheckedAt(i):0x0);
af885e0f 306 }
f0106218 307
308
309 void AddTrdTrack(const AliESDTrdTrack *t);
af885e0f 310
311 AliESDv0 *GetV0(Int_t i) const {
c017f53f 312 return (AliESDv0*)(fV0s?fV0s->UncheckedAt(i):0x0);
af885e0f 313 }
314 Int_t AddV0(const AliESDv0 *v);
315
316 AliESDcascade *GetCascade(Int_t i) const {
c017f53f 317 return (AliESDcascade *)(fCascades?fCascades->UncheckedAt(i):0x0);
af885e0f 318 }
f0106218 319
320 void AddCascade(const AliESDcascade *c);
af885e0f 321
322 AliESDkink *GetKink(Int_t i) const {
c017f53f 323 return (AliESDkink *)(fKinks?fKinks->UncheckedAt(i):0x0);
af885e0f 324 }
325 Int_t AddKink(const AliESDkink *c);
326
327 AliESDCaloCluster *GetCaloCluster(Int_t i) const {
c017f53f 328 return (AliESDCaloCluster *)(fCaloClusters?fCaloClusters->UncheckedAt(i):0x0);
af885e0f 329 }
e649177a 330
af885e0f 331 Int_t AddCaloCluster(const AliESDCaloCluster *c);
332
e649177a 333 AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }
334 AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }
335
af885e0f 336 AliRawDataErrorLog *GetErrorLog(Int_t i) const {
c017f53f 337 return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
af885e0f 338 }
7d44c466 339 void AddRawDataErrorLog(const AliRawDataErrorLog *log) const;
f0106218 340
c017f53f 341 Int_t GetNumberOfErrorLogs() const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}
af885e0f 342
343
c017f53f 344 void AddPHOSTriggerPosition(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerPosition(array); }
345 void AddPHOSTriggerAmplitudes(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerAmplitudes(array);}
346 void AddEMCALTriggerPosition(TArrayF array) { if(fEMCALTrigger) fEMCALTrigger->AddTriggerPosition(array); }
347 void AddEMCALTriggerAmplitudes(TArrayF array){ if(fEMCALTrigger) fEMCALTrigger->AddTriggerAmplitudes(array); }
af885e0f 348
04d01397 349 Int_t GetNumberOfPileupVerticesSPD() const {
642f673b 350 return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
04d01397 351 }
352 Int_t GetNumberOfPileupVerticesTracks() const {
642f673b 353 return (fTrkPileupVertices?fTrkPileupVertices->GetEntriesFast():0);
04d01397 354 }
c017f53f 355 Int_t GetNumberOfTracks() const {return fTracks?fTracks->GetEntriesFast():0;}
af885e0f 356 Int_t GetNumberOfHLTConfMapTracks() const {return 0;}
357 // fHLTConfMapTracks->GetEntriesFast();}
358 Int_t GetNumberOfHLTHoughTracks() const {return 0; }
359 // fHLTHoughTracks->GetEntriesFast(); }
360
c017f53f 361 Int_t GetNumberOfMuonTracks() const {return fMuonTracks?fMuonTracks->GetEntriesFast():0;}
362 Int_t GetNumberOfPmdTracks() const {return fPmdTracks?fPmdTracks->GetEntriesFast():0;}
363 Int_t GetNumberOfTrdTracks() const {return fTrdTracks?fTrdTracks->GetEntriesFast():0;}
364 Int_t GetNumberOfV0s() const {return fV0s?fV0s->GetEntriesFast():0;}
365 Int_t GetNumberOfCascades() const {return fCascades?fCascades->GetEntriesFast():0;}
366 Int_t GetNumberOfKinks() const {return fKinks?fKinks->GetEntriesFast():0;}
e649177a 367
cd1d4ee0 368 Int_t GetEMCALClusters(TRefArray *clusters) const;
369 Int_t GetPHOSClusters(TRefArray *clusters) const;
c017f53f 370 Int_t GetNumberOfCaloClusters() const {return fCaloClusters?fCaloClusters->GetEntriesFast():0;}
af885e0f 371
a2fbb067 372 void SetUseOwnList(Bool_t b){fUseOwnList = b;}
b19cc8d0 373 Bool_t GetUseOwnList() const {return fUseOwnList;}
e649177a 374
c017f53f 375 TArrayF *GetEMCALTriggerPosition() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerPosition():0x0;}
376 TArrayF *GetEMCALTriggerAmplitudes() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerAmplitudes():0x0;}
377 TArrayF *GetPHOSTriggerPosition() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerPosition():0x0;}
378 TArrayF *GetPHOSTriggerAmplitudes() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerAmplitudes():0x0;}
af885e0f 379
c017f53f 380 void ResetV0s() { if(fV0s) fV0s->Clear(); }
381 void ResetCascades() { if(fCascades) fCascades->Clear(); }
af885e0f 382 void Reset();
383
384 void Print(Option_t *option="") const;
385
386 void AddObject(TObject* obj);
1d0dd492 387 void ReadFromTree(TTree *tree, Option_t* opt = "");
2811495d 388 TObject* FindListObject(const char *name) const;
af885e0f 389 AliESD *GetAliESDOld(){return fESDOld;}
f12d42ce 390 void WriteToTree(TTree* tree) const;
af885e0f 391 void GetStdContent();
392 void ResetStdContent();
393 void CreateStdContent();
a2fbb067 394 void CreateStdContent(Bool_t bUseThisList);
af885e0f 395 void SetStdNames();
396 void CopyFromOldESD();
024c7734 397 TList* GetList() const {return fESDObjects;}
af885e0f 398
399protected:
400 AliESDEvent(const AliESDEvent&);
102c56c8 401 static Bool_t ResetWithPlacementNew(TObject *pObject);
af885e0f 402
403 TList *fESDObjects; // List of esd Objects
404
405 AliESDRun *fESDRun; //! Run information tmp put in the Userdata
406 AliESDHeader *fHeader; //! ESD Event Header
407 AliESDZDC *fESDZDC; //! ZDC information
408 AliESDFMD *fESDFMD; //! FMD object containing rough multiplicity
409 AliESDVZERO *fESDVZERO; //! VZERO object containing rough multiplicity
410 AliESDTZERO *fESDTZERO; //! TZEROObject
06cc9d95 411 AliESDVertex *fTPCVertex; //! Primary vertex estimated by the TPC
af885e0f 412 AliESDVertex *fSPDVertex; //! Primary vertex estimated by the SPD
413 AliESDVertex *fPrimaryVertex; //! Primary vertex estimated using ESD tracks
414 AliMultiplicity *fSPDMult; //! SPD tracklet multiplicity
415 AliESDCaloTrigger* fPHOSTrigger; //! PHOS Trigger information
416 AliESDCaloTrigger* fEMCALTrigger; //! PHOS Trigger information
bd95bae7 417 AliESDACORDE *fESDACORDE; //! ACORDE ESD object caontaining bit pattern
af885e0f 418
04d01397 419 TClonesArray *fSPDPileupVertices;//! Pileup primary vertices reconstructed by SPD
420 TClonesArray *fTrkPileupVertices;//! Pileup primary vertices reconstructed using the tracks
af885e0f 421 TClonesArray *fTracks; //! ESD tracks
422 TClonesArray *fMuonTracks; //! MUON ESD tracks
423 TClonesArray *fPmdTracks; //! PMD ESD tracks
424 TClonesArray *fTrdTracks; //! TRD ESD tracks (triggered)
425 TClonesArray *fV0s; //! V0 vertices
426 TClonesArray *fCascades; //! Cascade vertices
427 TClonesArray *fKinks; //! Kinks
428 TClonesArray *fCaloClusters; //! Calorimeter clusters for PHOS/EMCAL
e649177a 429 AliESDCaloCells *fEMCALCells; //! EMCAL cell info
430 AliESDCaloCells *fPHOSCells; //! PHOS cell info
af885e0f 431 TClonesArray *fErrorLogs; //! Raw-data reading error messages
432
433
434
1bd10080 435 AliESD *fESDOld; //! Old esd Structure
436 AliESDfriend *fESDFriendOld; //! Old friend esd Structure
60e8f114 437 Bool_t fConnected; //! flag if leaves are alreday connected
a2fbb067 438 Bool_t fUseOwnList; //! Do not use the list from the esdTree but use the one created by this class
60e8f114 439
6989bff3 440 static const char* fgkESDListName[kESDListN]; //!
af885e0f 441
7a54a755 442 ClassDef(AliESDEvent,11) //ESDEvent class
af885e0f 443};
444#endif
445