]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESD.h
Small scaling factor introduced in order to match measured and calculated
[u/mrichter/AliRoot.git] / STEER / AliESD.h
CommitLineData
9da38871 1// -*- mode: C++ -*-
af7ba10c 2#ifndef ALIESD_H
3#define ALIESD_H
8a8d023f 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
88cb7938 7
8/* $Id$ */
9
ae982df3 10//-------------------------------------------------------------------------
11// Class AliESD
12// This is the class to deal with during the physical analysis of data
13//
14// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
15//-------------------------------------------------------------------------
8a8d023f 16
af7ba10c 17#include <TClonesArray.h>
18#include <TObject.h>
53203d32 19#include <TNamed.h>
20#include <TList.h>
21#include <TTree.h>
64df000d 22#include <TArrayF.h>
53203d32 23#include <TRef.h>
af7ba10c 24
af7ba10c 25#include "AliESDMuonTrack.h"
26#include "AliESDPmdTrack.h"
0ee00e25 27#include "AliESDTrdTrack.h"
af7ba10c 28#include "AliESDVertex.h"
29#include "AliESDcascade.h"
51ad6848 30#include "AliESDkink.h"
af7ba10c 31#include "AliESDtrack.h"
53203d32 32#include "AliESDfriend.h"
482070f2 33#include "AliESDHLTtrack.h"
85c60a8e 34#include "AliESDCaloCluster.h"
af7ba10c 35#include "AliESDv0.h"
9da38871 36#include "AliESDFMD.h"
dd735cf0 37#include "AliESDVZERO.h"
32e449be 38#include "AliMultiplicity.h"
899ca440 39#include "AliRawDataErrorLog.h"
8a8d023f 40
d75007f6 41class AliESDfriend;
42
53203d32 43class AliESDRun: public TObject {
44public:
45
46 AliESDRun();
47 AliESDRun(const AliESDRun&);
48 AliESDRun& operator=(const AliESDRun&);
49
50
51 Int_t GetRunNumber() const {return fRunNumber;}
52 void SetRunNumber(Int_t n) {fRunNumber=n;}
53 void SetMagneticField(Float_t mf){fMagneticField = mf;}
54 Float_t GetMagneticField() const {return fMagneticField;}
55 Int_t GetPeriodNumber() const {return fPeriodNumber;}
56 void SetPeriodNumber(Int_t n) {fPeriodNumber=n;}
57 void Reset();
58 void Print(const Option_t *opt=0) const;
59
60 void SetDiamond(const AliESDVertex *vertex) {
61 fDiamondXY[0]=vertex->GetXv();
62 fDiamondXY[1]=vertex->GetYv();
63 Double32_t cov[6];
64 vertex->GetCovMatrix(cov);
65 fDiamondCovXY[0]=cov[0];
66 fDiamondCovXY[1]=cov[1];
67 fDiamondCovXY[2]=cov[2];
68 }
69 Float_t GetDiamondX() const {return fDiamondXY[0];}
70 Float_t GetDiamondY() const {return fDiamondXY[1];}
71 Float_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
72 Float_t GetSigma2DiamondY() const {return fDiamondCovXY[2];}
73 void GetDiamondCovXY(Float_t cov[3]) const {
74 for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return;
75 }
76private:
77 Int_t fRunNumber; // Run Number
78 Int_t fPeriodNumber; // PeriodNumber
79 Int_t fRecoVersion; // Version of reconstruction
80 Float_t fMagneticField; // Solenoid Magnetic Field in kG : for compatibility with AliMagF
81 Float_t fDiamondXY[2]; // Interaction diamond (x,y) in RUN
82 Float_t fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
83
84 ClassDef(AliESDRun,1)
85};
86
87
88
89
90
91class AliESDHeader: public TObject {
92public:
93 AliESDHeader();
94 AliESDHeader(const AliESDHeader&);
95 AliESDHeader& operator=(const AliESDHeader&);
96
97 void SetTriggerMask(ULong64_t n) {fTriggerMask=n;}
98 void SetOrbitNumber(UInt_t n) {fOrbitNumber=n;}
99 void SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;}
100 void SetEventType(UInt_t eventType){fEventType = eventType;}
101 void SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;}
102 void SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;}
103 void SetTriggerCluster(UChar_t n) {fTriggerCluster = n;}
104
105 ULong64_t GetTriggerMask() const {return fTriggerMask;}
106 UInt_t GetOrbitNumber() const {return fOrbitNumber;}
107 UInt_t GetTimeStamp() const { return fTimeStamp;}
108 UInt_t GetEventType() const { return fEventType;}
109 Int_t GetEventNumberInFile() const {return fEventNumberInFile;}
110 UShort_t GetBunchCrossNumber() const {return fBunchCrossNumber;}
111 UChar_t GetTriggerCluster() const {return fTriggerCluster;}
112
113
114
115 void Reset();
116 void Print(const Option_t *opt=0) const;
117private:
118
119 // Event Identification
120 ULong64_t fTriggerMask; // Trigger Type (mask)
121 UInt_t fOrbitNumber; // Orbit Number
122 UInt_t fTimeStamp; // Time stamp
123 UInt_t fEventType; // Type of Event
124 Int_t fEventNumberInFile; // running Event count in the file
125 UShort_t fBunchCrossNumber; // Bunch Crossing Number
126 UChar_t fTriggerCluster; // Trigger cluster (mask)
127
128 ClassDef(AliESDHeader,1)
129};
130
131class AliESDZDC: public TObject {
132public:
133 AliESDZDC();
134 AliESDZDC(const AliESDZDC&);
135 AliESDZDC& operator=(const AliESDZDC&);
136
137 Float_t GetZDCN1Energy() const {return fZDCN1Energy;}
138 Float_t GetZDCP1Energy() const {return fZDCP1Energy;}
139 Float_t GetZDCN2Energy() const {return fZDCN2Energy;}
140 Float_t GetZDCP2Energy() const {return fZDCP2Energy;}
141 Float_t GetZDCEMEnergy() const {return fZDCEMEnergy;}
142 Int_t GetZDCParticipants() const {return fZDCParticipants;}
143 void SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t emEnergy,
144 Float_t n2Energy, Float_t p2Energy, Int_t participants)
145 {fZDCN1Energy=n1Energy; fZDCP1Energy=p1Energy; fZDCEMEnergy=emEnergy;
146 fZDCN2Energy=n2Energy; fZDCP2Energy=p2Energy; fZDCParticipants=participants;}
147
148 void Reset();
149 void Print(const Option_t *opt=0) const;
150
151private:
152
153 Float_t fZDCN1Energy; // reconstructed energy in the neutron ZDC
154 Float_t fZDCP1Energy; // reconstructed energy in the proton ZDC
155 Float_t fZDCN2Energy; // reconstructed energy in the neutron ZDC
156 Float_t fZDCP2Energy; // reconstructed energy in the proton ZDC
157 Float_t fZDCEMEnergy; // reconstructed energy in the electromagnetic ZDC
158 Int_t fZDCParticipants; // number of participants estimated by the ZDC
159
160 ClassDef(AliESDZDC,1)
161};
162
163
164class AliESDTZERO: public TObject {
165public:
166 AliESDTZERO();
167 AliESDTZERO(const AliESDTZERO&);
168 AliESDTZERO& operator=(const AliESDTZERO&);
169
170 Float_t GetT0zVertex() const {return fT0zVertex;}
171 void SetT0zVertex(Float_t z) {fT0zVertex=z;}
172 Float_t GetT0() const {return fT0timeStart;}
173 void SetT0(Float_t timeStart) {fT0timeStart = timeStart;}
174 const Float_t * GetT0time() const {return fT0time;}
175 void SetT0time(Float_t time[24]) {
176 for (Int_t i=0; i<24; i++) fT0time[i] = time[i];
177 }
178 const Float_t * GetT0amplitude() const {return fT0amplitude;}
179 void SetT0amplitude(Float_t amp[24]) {
180 for (Int_t i=0; i<24; i++) fT0amplitude[i] = amp[i];
181 }
182
183 void Reset();
184 void Print(const Option_t *opt=0) const;
185
186private:
187
188 Float_t fT0zVertex; // vertex z position estimated by the T0
189 Float_t fT0timeStart; // interaction time estimated by the T0
190 Float_t fT0time[24]; // best TOF on each T0 PMT
191 Float_t fT0amplitude[24]; // number of particles(MIPs) on each T0 PMT
192
193 ClassDef(AliESDTZERO,1)
194};
195
196
197class AliESDCaloTrigger : public TNamed {
198public:
199 AliESDCaloTrigger();
200 AliESDCaloTrigger(const AliESDCaloTrigger&);
201 AliESDCaloTrigger& operator=(const AliESDCaloTrigger&);
202 virtual ~AliESDCaloTrigger();
203
204 // does this create mem leak? CKB use new with placement?
205 void AddTriggerPosition(const TArrayF array) { fTriggerPosition = new TArrayF(array); }
206 void AddTriggerAmplitudes(const TArrayF array) { fTriggerAmplitudes = new TArrayF(array); }
207
208 void Reset();
209
210 TArrayF* GetTriggerPosition() {return fTriggerPosition;}
211 TArrayF* GetTriggerAmplitudes() {return fTriggerPosition;}
212
213
214private:
215
216 TArrayF *fTriggerAmplitudes;
217 TArrayF *fTriggerPosition;
218
219 ClassDef(AliESDCaloTrigger,1)
220};
221
ae982df3 222class AliESD : public TObject {
8a8d023f 223public:
53203d32 224
225
226 enum ESDListIndex_t {kESDRun,
227 kHeader,
228 kESDZDC,
229 kESDFMD,
230 kESDVZERO,
231 kESDTZERO,
232 kSPDVertex,
233 kPrimaryVertex,
234 kSPDMult,
235 kPHOSTrigger,
236 kEMCALTrigger,
237 kTracks,
238 kMuonTracks,
239 kPmdTracks,
240 kTrdTracks,
241 kV0s,
242 kCascades,
243 kKinks,
244 kCaloClusters,
245 kErrorLogs,
246 kESDListN
247 };
248
ae982df3 249 AliESD();
af7ba10c 250 virtual ~AliESD();
8a8d023f 251
53203d32 252
253 // RUN
254 // move this to the UserData!!!
255 const AliESDRun* GetESDRun() {return fESDRun;}
256
257 // Delegated methods for fESDRun
258 void SetRunNumber(Int_t n) {fESDRun->SetRunNumber(n);}
259 Int_t GetRunNumber() const {return fESDRun->GetRunNumber();}
260 void SetPeriodNumber(Int_t n){fESDRun->SetPeriodNumber(n);}
261 Int_t GetPeriodNumber() const {return fESDRun->GetPeriodNumber();}
262 void SetMagneticField(Float_t mf){fESDRun->SetMagneticField(mf);}
263 Float_t GetMagneticField() const {return fESDRun->GetMagneticField();}
264 void SetDiamond(const AliESDVertex *vertex) { fESDRun->SetDiamond(vertex);}
265 Float_t GetDiamondX() const {return fESDRun->GetDiamondX();}
266 Float_t GetDiamondY() const {return fESDRun->GetDiamondY();}
267 Float_t GetSigma2DiamondX() const {return fESDRun->GetSigma2DiamondX();}
268 Float_t GetSigma2DiamondY() const {return fESDRun->GetSigma2DiamondY();}
269 void GetDiamondCovXY(Float_t cov[3]) const {fESDRun->GetDiamondCovXY(cov);}
270
271
272 // HEADER
273 const AliESDHeader* GetHeader() {return fHeader;}
274
275 // Delegated methods for fHeader
276 void SetTriggerMask(ULong64_t n) {fHeader->SetTriggerMask(n);}
277 void SetOrbitNumber(UInt_t n) {fHeader->SetOrbitNumber(n);}
278 void SetTimeStamp(UInt_t timeStamp){fHeader->SetTimeStamp(timeStamp);}
279 void SetEventType(UInt_t eventType){fHeader->SetEventType(eventType);}
280 void SetEventNumberInFile(Int_t n) {fHeader->SetEventNumberInFile(n);}
281 // void SetRunNumber(Int_t n) {fHeader->SetRunNumber(n);}
282 void SetBunchCrossNumber(UShort_t n) {fHeader->SetBunchCrossNumber(n);}
283 void SetTriggerCluster(UChar_t n) {fHeader->SetTriggerCluster(n);}
284 ULong64_t GetTriggerMask() const {return fHeader->GetTriggerMask();}
285 UInt_t GetOrbitNumber() const {return fHeader->GetOrbitNumber();}
286 UInt_t GetTimeStamp() const { return fHeader->GetTimeStamp();}
287 UInt_t GetEventType() const { return fHeader->GetEventType();}
288 Int_t GetEventNumberInFile() const {return fHeader->GetEventNumberInFile();}
289 UShort_t GetBunchCrossNumber() const {return fHeader->GetBunchCrossNumber();}
290 UChar_t GetTriggerCluster() const {return fHeader->GetTriggerCluster();}
291
292 // ZDC CKB: put this in the header?
293 const AliESDZDC* GetESDZDC() {return fESDZDC;}
294
295 // Delegated methods for fESDZDC
296 Float_t GetZDCN1Energy() const {return fESDZDC->GetZDCN1Energy();}
297 Float_t GetZDCP1Energy() const {return fESDZDC->GetZDCP1Energy();}
298 Float_t GetZDCN2Energy() const {return fESDZDC->GetZDCN2Energy();}
299 Float_t GetZDCP2Energy() const {return fESDZDC->GetZDCP2Energy();}
300 Float_t GetZDCEMEnergy() const {return fESDZDC->GetZDCEMEnergy();}
301 Int_t GetZDCParticipants() const {return fESDZDC->GetZDCParticipants();}
302 void SetZDC(Float_t n1Energy, Float_t p1Energy, Float_t emEnergy,
303 Float_t n2Energy, Float_t p2Energy, Int_t participants)
304 {fESDZDC->SetZDC(n1Energy, p1Energy, emEnergy, n2Energy, p2Energy, participants);}
305
306
307 // FMD
308 void SetFMDData(AliESDFMD * obj) { new(fESDFMD) AliESDFMD(*obj); /*CKB test vs 0*/ }
309 AliESDFMD *GetFMDData(){ return fESDFMD; }
310
311
312 // TZERO CKB: put this in the header?
313
314 const AliESDTZERO* GetESDTZERO() {return fESDTZERO;}
315 // delegetated methods for fESDTZERO
316
317 Float_t GetT0zVertex() const {return fESDTZERO->GetT0zVertex();}
318 void SetT0zVertex(Float_t z) {fESDTZERO->SetT0zVertex(z);}
319 Float_t GetT0() const {return fESDTZERO->GetT0();}
320 void SetT0(Float_t timeStart) {fESDTZERO->SetT0(timeStart);}
321 const Float_t * GetT0time() const {return fESDTZERO->GetT0time();}
322 void SetT0time(Float_t time[24]) {fESDTZERO->SetT0time(time);}
323 const Float_t * GetT0amplitude() const {return fESDTZERO->GetT0amplitude();}
324 void SetT0amplitude(Float_t amp[24]){fESDTZERO->SetT0amplitude(amp);}
325
326 // VZERO
327 AliESDVZERO *GetVZEROData(){ return fESDVZERO; }
328 void SetVZEROData(AliESDVZERO * obj) { new(fESDVZERO) AliESDVZERO(*obj); /*CKB test vs 0*/ }
329
330
d75007f6 331 void SetESDfriend(const AliESDfriend *f);
332 void GetESDfriend(AliESDfriend *f) const;
333
53203d32 334
335
336 void SetVertex(const AliESDVertex *vertex) {
337 *fSPDVertex = *vertex;
338 fSPDVertex->SetName("fSPDVertex");// error prone use class wide names?
339 //CKB or new with placement
482070f2 340 }
53203d32 341 const AliESDVertex *GetVertex() const {return fSPDVertex;}
342
343 void SetPrimaryVertex(const AliESDVertex *vertex) {
344 *fPrimaryVertex = *vertex;
345 fPrimaryVertex->SetName("fPrimaryVertex");// error prone use class wide names?
346 // ckb
347 // new (&fPrimaryVertex) AliESDVertex(*vertex);
482070f2 348 }
53203d32 349 const AliESDVertex *GetPrimaryVertex() const {return fPrimaryVertex;}
350
351 void SetMultiplicity(const AliMultiplicity *mul) {
352 *fSPDMult = *mul;
353 // CKB
354 // new (&fSPDMult) AliMultiplicity(*mul);
672b5f43 355 }
53203d32 356 const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
357
358 AliESDtrack *GetTrack(Int_t i) const {
359 return (AliESDtrack *)fTracks->UncheckedAt(i);
561b7b31 360 }
53203d32 361 Int_t AddTrack(const AliESDtrack *t) {
362 // CKB inline this or better in .cxx
363 TClonesArray &ftr = *fTracks;
364 AliESDtrack * track = new(ftr[fTracks->GetEntriesFast()])AliESDtrack(*t);
365 track->SetID(fTracks->GetEntriesFast()-1);
366 return track->GetID();
0ee00e25 367 }
672b5f43 368
53203d32 369
370 AliESDHLTtrack *GetHLTConfMapTrack(Int_t i) const {
371 // return (AliESDHLTtrack *)fHLTConfMapTracks->UncheckedAt(i);
372 return 0;
ae982df3 373 }
482070f2 374 void AddHLTConfMapTrack(const AliESDHLTtrack *t) {
53203d32 375 /*
376 TClonesArray &fhlt = *fHLTConfMapTracks;
377 new(fhlt[fHLTConfMapTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
378 */
379 printf("ESD:: AddHLTConfMapTrack do nothing \n");
380 }
381
382
383 AliESDHLTtrack *GetHLTHoughTrack(Int_t i) const {
384 // return (AliESDHLTtrack *)fHLTHoughTracks->UncheckedAt(i);
385 return 0;
482070f2 386 }
387 void AddHLTHoughTrack(const AliESDHLTtrack *t) {
53203d32 388 printf("ESD:: AddHLTHoughTrack do nothing \n");
389 /*
390 TClonesArray &fhlt = *fHLTHoughTracks;
391 new(fhlt[fHLTHoughTracks->GetEntriesFast()]) AliESDHLTtrack(*t);
392 */
393 }
394
395 AliESDMuonTrack *GetMuonTrack(Int_t i) const {
396 return (AliESDMuonTrack *)fMuonTracks->UncheckedAt(i);
482070f2 397 }
672b5f43 398 void AddMuonTrack(const AliESDMuonTrack *t) {
53203d32 399 TClonesArray &fmu = *fMuonTracks;
400 new(fmu[fMuonTracks->GetEntriesFast()]) AliESDMuonTrack(*t);
401 }
402
403 AliESDPmdTrack *GetPmdTrack(Int_t i) const {
404 return (AliESDPmdTrack *)fPmdTracks->UncheckedAt(i);
672b5f43 405 }
561b7b31 406 void AddPmdTrack(const AliESDPmdTrack *t) {
53203d32 407 TClonesArray &fpmd = *fPmdTracks;
408 new(fpmd[fPmdTracks->GetEntriesFast()]) AliESDPmdTrack(*t);
409 }
410
411 AliESDTrdTrack *GetTrdTrack(Int_t i) const {
412 return (AliESDTrdTrack *)fTrdTracks->UncheckedAt(i);
561b7b31 413 }
0ee00e25 414 void AddTrdTrack(const AliESDTrdTrack *t) {
53203d32 415 TClonesArray &ftrd = *fTrdTracks;
416 new(ftrd[fTrdTracks->GetEntriesFast()]) AliESDTrdTrack(*t);
0ee00e25 417 }
8a8d023f 418
873f1f73 419 AliESDv0 *GetV0(Int_t i) const {
53203d32 420 return (AliESDv0*)fV0s->UncheckedAt(i);
e23730c7 421 }
d6a49f20 422 Int_t AddV0(const AliESDv0 *v);
e23730c7 423
873f1f73 424 AliESDcascade *GetCascade(Int_t i) const {
53203d32 425 return (AliESDcascade *)fCascades->UncheckedAt(i);
e23730c7 426 }
427 void AddCascade(const AliESDcascade *c) {
53203d32 428 TClonesArray &fc = *fCascades;
429 new(fc[fCascades->GetEntriesFast()]) AliESDcascade(*c);
e23730c7 430 }
431
51ad6848 432 AliESDkink *GetKink(Int_t i) const {
53203d32 433 return (AliESDkink *)fKinks->UncheckedAt(i);
51ad6848 434 }
435 Int_t AddKink(const AliESDkink *c) {
53203d32 436 TClonesArray &fk = *fKinks;
437 AliESDkink * kink = new(fk[fKinks->GetEntriesFast()]) AliESDkink(*c);
438 kink->SetID(fKinks->GetEntriesFast()); // CKB different from the other imps..
439 return fKinks->GetEntriesFast()-1;
51ad6848 440 }
441
85c60a8e 442 AliESDCaloCluster *GetCaloCluster(Int_t i) const {
53203d32 443 return (AliESDCaloCluster *)fCaloClusters->UncheckedAt(i);
85c60a8e 444 }
445 Int_t AddCaloCluster(const AliESDCaloCluster *c) {
53203d32 446 TClonesArray &fc = *fCaloClusters;
447 AliESDCaloCluster *clus = new(fc[fCaloClusters->GetEntriesFast()]) AliESDCaloCluster(*c);
448 clus->SetID(fCaloClusters->GetEntriesFast()-1);
449 return fCaloClusters->GetEntriesFast()-1;
32e449be 450 }
32e449be 451
873f1f73 452
53203d32 453 AliRawDataErrorLog *GetErrorLog(Int_t i) const {
454 return (AliRawDataErrorLog *)fErrorLogs->UncheckedAt(i);
9f57c1aa 455 }
53203d32 456 void AddRawDataErrorLog(const AliRawDataErrorLog *log) {
457 // CKB inline this??
458 TClonesArray &errlogs = *fErrorLogs;
459 new(errlogs[errlogs.GetEntriesFast()]) AliRawDataErrorLog(*log);
9f57c1aa 460 }
53203d32 461 Int_t GetNumberOfErrorLogs() const {return fErrorLogs->GetEntriesFast();}
9f57c1aa 462
53203d32 463
464 void AddPHOSTriggerPosition(TArrayF array) { fPHOSTrigger->AddTriggerPosition(array); }
465 void AddPHOSTriggerAmplitudes(TArrayF array) { fPHOSTrigger->AddTriggerAmplitudes(array);}
466 void AddEMCALTriggerPosition(TArrayF array) { fEMCALTrigger->AddTriggerPosition(array); }
467 void AddEMCALTriggerAmplitudes(TArrayF array){ fEMCALTrigger->AddTriggerAmplitudes(array); }
468
469
470 Int_t GetNumberOfTracks() const {return fTracks->GetEntriesFast();}
471 Int_t GetNumberOfHLTConfMapTracks() const {return 0;}
472 // fHLTConfMapTracks->GetEntriesFast();}
473 Int_t GetNumberOfHLTHoughTracks() const {return 0; }
474 // fHLTHoughTracks->GetEntriesFast(); }
475
476 Int_t GetNumberOfMuonTracks() const {return fMuonTracks->GetEntriesFast();}
477 Int_t GetNumberOfPmdTracks() const {return fPmdTracks->GetEntriesFast();}
478 Int_t GetNumberOfTrdTracks() const {return fTrdTracks->GetEntriesFast();}
479 Int_t GetNumberOfV0s() const {return fV0s->GetEntriesFast();}
480 Int_t GetNumberOfCascades() const {return fCascades->GetEntriesFast();}
481 Int_t GetNumberOfKinks() const {return fKinks->GetEntriesFast();}
482 Int_t GetNumberOfCaloClusters() const {return fCaloClusters->GetEntriesFast();}
85c60a8e 483
484 Int_t GetNumberOfEMCALClusters() const {return fEMCALClusters;}
485 void SetNumberOfEMCALClusters(Int_t clus) {fEMCALClusters = clus;}
486 Int_t GetFirstEMCALCluster() const {return fFirstEMCALCluster;}
487 void SetFirstEMCALCluster(Int_t index) {fFirstEMCALCluster = index;}
53203d32 488 TArrayF *GetEMCALTriggerPosition() const {return fEMCALTrigger->GetTriggerPosition();}
489 TArrayF *GetEMCALTriggerAmplitudes() const {return fEMCALTrigger->GetTriggerAmplitudes();}
85c60a8e 490
491 Int_t GetNumberOfPHOSClusters() const {return fPHOSClusters;}
492 void SetNumberOfPHOSClusters(Int_t part) { fPHOSClusters = part ; }
493 void SetFirstPHOSCluster(Int_t index) { fFirstPHOSCluster = index ; }
494 Int_t GetFirstPHOSCluster() const { return fFirstPHOSCluster ; }
53203d32 495 TArrayF *GetPHOSTriggerPosition() const {return fPHOSTrigger->GetTriggerPosition();}
496 TArrayF *GetPHOSTriggerAmplitudes() const {return fPHOSTrigger->GetTriggerAmplitudes();}
ef278eae 497
53203d32 498 void ResetV0s() { fV0s->Clear(); }
499 void ResetCascades() { fCascades->Clear(); }
50ca5f39 500 void Reset();
bf25155c 501
ef278eae 502 void Print(Option_t *option="") const;
9da38871 503
53203d32 504 void AddObject(TObject* obj);
505 void ReadFromTree(TTree *tree);
506 void WriteToTree(TTree* tree) {tree->Branch(fESDObjects);}
507 void GetStdContent();
508 void CreateStdContent();
509 void SetStdNames();
510 TList* GetList(){return fESDObjects;}
899ca440 511
8a8d023f 512protected:
c028b974 513 AliESD(const AliESD&);
fe12e09c 514 AliESD &operator=(const AliESD& source);
8a8d023f 515
8a8d023f 516
53203d32 517 TList *fESDObjects; // List of esd Objects
518
519 AliESDRun *fESDRun; //! Run information tmp put in the Userdata
520 AliESDHeader *fHeader; //! ESD Event Header
521 AliESDZDC *fESDZDC; //! ZDC information
522 AliESDFMD *fESDFMD; //! FMD object containing rough multiplicity
523 AliESDVZERO *fESDVZERO; //! VZERO object containing rough multiplicity
524 AliESDTZERO *fESDTZERO; //! TZEROObject
525 AliESDVertex *fSPDVertex; //! Primary vertex estimated by the SPD
526 AliESDVertex *fPrimaryVertex; //! Primary vertex estimated using ESD tracks
527 AliMultiplicity *fSPDMult; //! SPD tracklet multiplicity
528 AliESDCaloTrigger* fPHOSTrigger; //! PHOS Trigger information
529 AliESDCaloTrigger* fEMCALTrigger; //! PHOS Trigger information
530
531 TClonesArray *fTracks; //! ESD tracks
532 // TClonesArray *fHLTConfMapTracks; //! HLT ESD tracks from Conformal Mapper method
533 // TClonesArray *fHLTHoughTracks; //! HLT ESD tracks from Hough Transform method
534 TClonesArray *fMuonTracks; //! MUON ESD tracks
535 TClonesArray *fPmdTracks; //! PMD ESD tracks
536 TClonesArray *fTrdTracks; //! TRD ESD tracks (triggered)
537 TClonesArray *fV0s; //! V0 vertices
538 TClonesArray *fCascades; //! Cascade vertices
539 TClonesArray *fKinks; //! Kinks
540 TClonesArray *fCaloClusters; //! Calorimeter clusters for PHOS/EMCAL
541 TClonesArray *fErrorLogs; //! Raw-data reading error messages
542
543
544 // Remove this stuff CKB
85c60a8e 545 Int_t fEMCALClusters; // Number of EMCAL clusters (subset of caloclusters)
546 Int_t fFirstEMCALCluster; // First EMCAL cluster in the fCaloClusters list
547
548 Int_t fPHOSClusters; // Number of PHOS clusters (subset of caloclusters)
549 Int_t fFirstPHOSCluster; // First PHOS cluster in the fCaloClusters list
899ca440 550
53203d32 551 ClassDef(AliESD,23) //ESD class
8a8d023f 552};
8a8d023f 553#endif
554