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