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