]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDEvent.h
Keep track of missing DCS points in DDL maps (flagged by 'x')
[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;
158a76dd 157 UInt_t GetOrbitNumber() const {return fHeader?fHeader->GetOrbitNumber():0;}
c017f53f 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
adf36b9d 192 Double32_t GetT0zVertex() const {return fESDTZERO?fESDTZERO->GetT0zVertex():0;}
193 void SetT0zVertex(Double32_t z) {if(fESDTZERO) fESDTZERO->SetT0zVertex(z);}
194 Double32_t GetT0() const {return fESDTZERO?fESDTZERO->GetT0():0;}
195 void SetT0(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0(timeStart);}
196 Double32_t GetT0clock() const {return fESDTZERO?fESDTZERO->GetT0clock():0;}
197 void SetT0clock(Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0clock(timeStart);}
198 Double32_t GetT0TOF(Int_t icase) const {return fESDTZERO?fESDTZERO->GetT0TOF(icase):0;}
199 const Double32_t * GetT0TOF() const {return fESDTZERO?fESDTZERO->GetT0TOF():0x0;}
200 void SetT0TOF(Int_t icase,Double32_t timeStart) {if(fESDTZERO) fESDTZERO->SetT0TOF(icase,timeStart);}
201 const Double32_t * GetT0time() const {return fESDTZERO?fESDTZERO->GetT0time():0x0;}
202 void SetT0time(Double32_t time[24]) {if(fESDTZERO) fESDTZERO->SetT0time(time);}
203 const Double32_t * GetT0amplitude() const {return fESDTZERO?fESDTZERO->GetT0amplitude():0x0;}
204 void SetT0amplitude(Double32_t amp[24]){if(fESDTZERO) fESDTZERO->SetT0amplitude(amp);}
205 Int_t GetT0Trig() const { return fESDTZERO?fESDTZERO->GetT0Trig():0;}
206 void SetT0Trig(Int_t tvdc) {if(fESDTZERO) fESDTZERO->SetT0Trig(tvdc);}
af885e0f 207
208 // VZERO
209 AliESDVZERO *GetVZEROData() const { return fESDVZERO; }
210 void SetVZEROData(AliESDVZERO * obj);
211
bd95bae7 212 // ACORDE
213 AliESDACORDE *GetACORDEData() const { return fESDACORDE;}
214 void SetACORDEData(AliESDACORDE * obj);
af885e0f 215
7d44c466 216 void SetESDfriend(const AliESDfriend *f) const;
af885e0f 217 void GetESDfriend(AliESDfriend *f) const;
218
219
220
06cc9d95 221 void SetPrimaryVertexTPC(const AliESDVertex *vertex);
222 const AliESDVertex *GetPrimaryVertexTPC() const {return fTPCVertex;}
223
224 void SetPrimaryVertexSPD(const AliESDVertex *vertex);
225 const AliESDVertex *GetPrimaryVertexSPD() const {return fSPDVertex;}
226 const AliESDVertex *GetVertex() const {
227 //For the backward compatibily only
228 return GetPrimaryVertexSPD();
229 }
af885e0f 230
c264b61b 231 void SetPrimaryVertexTracks(const AliESDVertex *vertex);
232 const AliESDVertex *GetPrimaryVertexTracks() const {return fPrimaryVertex;}
518573d7 233 AliESDVertex *PrimaryVertexTracksUnconstrained() const;
c264b61b 234
235 const AliESDVertex *GetPrimaryVertex() const;
af885e0f 236
f0106218 237 void SetMultiplicity(const AliMultiplicity *mul);
238
af885e0f 239 const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
f0106218 240
241
7f68891d 242 Bool_t Clean(Float_t *cleanPars);
7d44c466 243 Bool_t RemoveKink(Int_t i) const;
244 Bool_t RemoveV0(Int_t i) const;
245 Bool_t RemoveTrack(Int_t i) const;
d64bd07d 246
04d01397 247 const AliESDVertex *GetPileupVertexSPD(Int_t i) const {
c017f53f 248 return (const AliESDVertex *)(fSPDPileupVertices?fSPDPileupVertices->UncheckedAt(i):0x0);
04d01397 249 }
6dc21f57 250 Char_t AddPileupVertexSPD(const AliESDVertex *vtx);
5b05543b 251 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 252
253 const AliESDVertex *GetPileupVertexTracks(Int_t i) const {
c017f53f 254 return (const AliESDVertex *)(fTrkPileupVertices?fTrkPileupVertices->UncheckedAt(i):0x0);
04d01397 255 }
6dc21f57 256 Char_t AddPileupVertexTracks(const AliESDVertex *vtx);
04d01397 257
af885e0f 258 AliESDtrack *GetTrack(Int_t i) const {
c017f53f 259 return (AliESDtrack *)(fTracks?fTracks->UncheckedAt(i):0x0);
af885e0f 260 }
261 Int_t AddTrack(const AliESDtrack *t);
262
263
264 AliESDHLTtrack *GetHLTConfMapTrack(Int_t /*i*/) const {
265 // return (AliESDHLTtrack *)fHLTConfMapTracks->UncheckedAt(i);
266 return 0;
267 }
268 void AddHLTConfMapTrack(const AliESDHLTtrack */*t*/) {
269 printf("ESD:: AddHLTConfMapTrack do nothing \n");
270 // TClonesArray &fhlt = *fHLTConfMapTracks;
271 // new(fhlt[fHLTConfMapTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
272 }
273
274
275 AliESDHLTtrack *GetHLTHoughTrack(Int_t /*i*/) const {
276 // return (AliESDHLTtrack *)fHLTHoughTracks->UncheckedAt(i);
277 return 0;
278 }
279 void AddHLTHoughTrack(const AliESDHLTtrack */*t*/) {
280 printf("ESD:: AddHLTHoughTrack do nothing \n");
281 // TClonesArray &fhlt = *fHLTHoughTracks;
282 // new(fhlt[fHLTHoughTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
283 }
284
285 AliESDMuonTrack *GetMuonTrack(Int_t i) const {
c017f53f 286 return (AliESDMuonTrack *)(fMuonTracks?fMuonTracks->UncheckedAt(i):0x0);
af885e0f 287 }
f0106218 288
289 void AddMuonTrack(const AliESDMuonTrack *t);
af885e0f 290
291 AliESDPmdTrack *GetPmdTrack(Int_t i) const {
c017f53f 292 return (AliESDPmdTrack *)(fPmdTracks?fPmdTracks->UncheckedAt(i):0x0);
af885e0f 293 }
f0106218 294
295 void AddPmdTrack(const AliESDPmdTrack *t);
296
af885e0f 297
298 AliESDTrdTrack *GetTrdTrack(Int_t i) const {
c017f53f 299 return (AliESDTrdTrack *)(fTrdTracks?fTrdTracks->UncheckedAt(i):0x0);
af885e0f 300 }
f0106218 301
302
303 void AddTrdTrack(const AliESDTrdTrack *t);
af885e0f 304
305 AliESDv0 *GetV0(Int_t i) const {
c017f53f 306 return (AliESDv0*)(fV0s?fV0s->UncheckedAt(i):0x0);
af885e0f 307 }
308 Int_t AddV0(const AliESDv0 *v);
309
310 AliESDcascade *GetCascade(Int_t i) const {
c017f53f 311 return (AliESDcascade *)(fCascades?fCascades->UncheckedAt(i):0x0);
af885e0f 312 }
f0106218 313
314 void AddCascade(const AliESDcascade *c);
af885e0f 315
316 AliESDkink *GetKink(Int_t i) const {
c017f53f 317 return (AliESDkink *)(fKinks?fKinks->UncheckedAt(i):0x0);
af885e0f 318 }
319 Int_t AddKink(const AliESDkink *c);
320
321 AliESDCaloCluster *GetCaloCluster(Int_t i) const {
c017f53f 322 return (AliESDCaloCluster *)(fCaloClusters?fCaloClusters->UncheckedAt(i):0x0);
af885e0f 323 }
e649177a 324
af885e0f 325 Int_t AddCaloCluster(const AliESDCaloCluster *c);
326
e649177a 327 AliESDCaloCells *GetEMCALCells() const {return fEMCALCells; }
328 AliESDCaloCells *GetPHOSCells() const {return fPHOSCells; }
329
af885e0f 330 AliRawDataErrorLog *GetErrorLog(Int_t i) const {
c017f53f 331 return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
af885e0f 332 }
7d44c466 333 void AddRawDataErrorLog(const AliRawDataErrorLog *log) const;
f0106218 334
c017f53f 335 Int_t GetNumberOfErrorLogs() const {return fErrorLogs?fErrorLogs->GetEntriesFast():0;}
af885e0f 336
337
c017f53f 338 void AddPHOSTriggerPosition(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerPosition(array); }
339 void AddPHOSTriggerAmplitudes(TArrayF array) { if(fPHOSTrigger) fPHOSTrigger->AddTriggerAmplitudes(array);}
340 void AddEMCALTriggerPosition(TArrayF array) { if(fEMCALTrigger) fEMCALTrigger->AddTriggerPosition(array); }
341 void AddEMCALTriggerAmplitudes(TArrayF array){ if(fEMCALTrigger) fEMCALTrigger->AddTriggerAmplitudes(array); }
af885e0f 342
04d01397 343 Int_t GetNumberOfPileupVerticesSPD() const {
642f673b 344 return (fSPDPileupVertices?fSPDPileupVertices->GetEntriesFast():0);
04d01397 345 }
346 Int_t GetNumberOfPileupVerticesTracks() const {
642f673b 347 return (fTrkPileupVertices?fTrkPileupVertices->GetEntriesFast():0);
04d01397 348 }
c017f53f 349 Int_t GetNumberOfTracks() const {return fTracks?fTracks->GetEntriesFast():0;}
af885e0f 350 Int_t GetNumberOfHLTConfMapTracks() const {return 0;}
351 // fHLTConfMapTracks->GetEntriesFast();}
352 Int_t GetNumberOfHLTHoughTracks() const {return 0; }
353 // fHLTHoughTracks->GetEntriesFast(); }
354
c017f53f 355 Int_t GetNumberOfMuonTracks() const {return fMuonTracks?fMuonTracks->GetEntriesFast():0;}
356 Int_t GetNumberOfPmdTracks() const {return fPmdTracks?fPmdTracks->GetEntriesFast():0;}
357 Int_t GetNumberOfTrdTracks() const {return fTrdTracks?fTrdTracks->GetEntriesFast():0;}
358 Int_t GetNumberOfV0s() const {return fV0s?fV0s->GetEntriesFast():0;}
359 Int_t GetNumberOfCascades() const {return fCascades?fCascades->GetEntriesFast():0;}
360 Int_t GetNumberOfKinks() const {return fKinks?fKinks->GetEntriesFast():0;}
e649177a 361
cd1d4ee0 362 Int_t GetEMCALClusters(TRefArray *clusters) const;
363 Int_t GetPHOSClusters(TRefArray *clusters) const;
c017f53f 364 Int_t GetNumberOfCaloClusters() const {return fCaloClusters?fCaloClusters->GetEntriesFast():0;}
af885e0f 365
a2fbb067 366 void SetUseOwnList(Bool_t b){fUseOwnList = b;}
b19cc8d0 367 Bool_t GetUseOwnList() const {return fUseOwnList;}
e649177a 368
369 // Remove this stuff CKB?
370 //---------------------------------------------------
af885e0f 371 Int_t GetNumberOfEMCALClusters() const {return fEMCALClusters;}
372 void SetNumberOfEMCALClusters(Int_t clus) {fEMCALClusters = clus;}
373 Int_t GetFirstEMCALCluster() const {return fFirstEMCALCluster;}
374 void SetFirstEMCALCluster(Int_t index) {fFirstEMCALCluster = index;}
e649177a 375
af885e0f 376 Int_t GetNumberOfPHOSClusters() const {return fPHOSClusters;}
377 void SetNumberOfPHOSClusters(Int_t part) { fPHOSClusters = part ; }
378 void SetFirstPHOSCluster(Int_t index) { fFirstPHOSCluster = index ; }
379 Int_t GetFirstPHOSCluster() const { return fFirstPHOSCluster ; }
e649177a 380 //-------------------------------------------------------
381
c017f53f 382 TArrayF *GetEMCALTriggerPosition() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerPosition():0x0;}
383 TArrayF *GetEMCALTriggerAmplitudes() const {return fEMCALTrigger?fEMCALTrigger->GetTriggerAmplitudes():0x0;}
384 TArrayF *GetPHOSTriggerPosition() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerPosition():0x0;}
385 TArrayF *GetPHOSTriggerAmplitudes() const {return fPHOSTrigger?fPHOSTrigger->GetTriggerAmplitudes():0x0;}
af885e0f 386
c017f53f 387 void ResetV0s() { if(fV0s) fV0s->Clear(); }
388 void ResetCascades() { if(fCascades) fCascades->Clear(); }
af885e0f 389 void Reset();
390
391 void Print(Option_t *option="") const;
392
393 void AddObject(TObject* obj);
1d0dd492 394 void ReadFromTree(TTree *tree, Option_t* opt = "");
2811495d 395 TObject* FindListObject(const char *name) const;
af885e0f 396 AliESD *GetAliESDOld(){return fESDOld;}
f12d42ce 397 void WriteToTree(TTree* tree) const;
af885e0f 398 void GetStdContent();
399 void ResetStdContent();
400 void CreateStdContent();
a2fbb067 401 void CreateStdContent(Bool_t bUseThisList);
af885e0f 402 void SetStdNames();
403 void CopyFromOldESD();
024c7734 404 TList* GetList() const {return fESDObjects;}
af885e0f 405
406protected:
407 AliESDEvent(const AliESDEvent&);
102c56c8 408 static Bool_t ResetWithPlacementNew(TObject *pObject);
af885e0f 409
410 TList *fESDObjects; // List of esd Objects
411
412 AliESDRun *fESDRun; //! Run information tmp put in the Userdata
413 AliESDHeader *fHeader; //! ESD Event Header
414 AliESDZDC *fESDZDC; //! ZDC information
415 AliESDFMD *fESDFMD; //! FMD object containing rough multiplicity
416 AliESDVZERO *fESDVZERO; //! VZERO object containing rough multiplicity
417 AliESDTZERO *fESDTZERO; //! TZEROObject
06cc9d95 418 AliESDVertex *fTPCVertex; //! Primary vertex estimated by the TPC
af885e0f 419 AliESDVertex *fSPDVertex; //! Primary vertex estimated by the SPD
420 AliESDVertex *fPrimaryVertex; //! Primary vertex estimated using ESD tracks
421 AliMultiplicity *fSPDMult; //! SPD tracklet multiplicity
422 AliESDCaloTrigger* fPHOSTrigger; //! PHOS Trigger information
423 AliESDCaloTrigger* fEMCALTrigger; //! PHOS Trigger information
bd95bae7 424 AliESDACORDE *fESDACORDE; //! ACORDE ESD object caontaining bit pattern
af885e0f 425
04d01397 426 TClonesArray *fSPDPileupVertices;//! Pileup primary vertices reconstructed by SPD
427 TClonesArray *fTrkPileupVertices;//! Pileup primary vertices reconstructed using the tracks
af885e0f 428 TClonesArray *fTracks; //! ESD tracks
429 TClonesArray *fMuonTracks; //! MUON ESD tracks
430 TClonesArray *fPmdTracks; //! PMD ESD tracks
431 TClonesArray *fTrdTracks; //! TRD ESD tracks (triggered)
432 TClonesArray *fV0s; //! V0 vertices
433 TClonesArray *fCascades; //! Cascade vertices
434 TClonesArray *fKinks; //! Kinks
435 TClonesArray *fCaloClusters; //! Calorimeter clusters for PHOS/EMCAL
e649177a 436 AliESDCaloCells *fEMCALCells; //! EMCAL cell info
437 AliESDCaloCells *fPHOSCells; //! PHOS cell info
af885e0f 438 TClonesArray *fErrorLogs; //! Raw-data reading error messages
439
440
441
1bd10080 442 AliESD *fESDOld; //! Old esd Structure
443 AliESDfriend *fESDFriendOld; //! Old friend esd Structure
60e8f114 444 Bool_t fConnected; //! flag if leaves are alreday connected
a2fbb067 445 Bool_t fUseOwnList; //! Do not use the list from the esdTree but use the one created by this class
60e8f114 446
6989bff3 447 static const char* fgkESDListName[kESDListN]; //!
af885e0f 448
af885e0f 449 // Remove this stuff CKB
450 Int_t fEMCALClusters; // Number of EMCAL clusters (subset of caloclusters)
451 Int_t fFirstEMCALCluster; // First EMCAL cluster in the fCaloClusters list
452
453 Int_t fPHOSClusters; // Number of PHOS clusters (subset of caloclusters)
454 Int_t fFirstPHOSCluster; // First PHOS cluster in the fCaloClusters list
455
04d01397 456 ClassDef(AliESDEvent,10) //ESDEvent class
af885e0f 457};
458#endif
459