]>
Commit | Line | Data |
---|---|---|
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 | 41 | class AliESDfriend; |
42 | ||
53203d32 | 43 | class AliESDRun: public TObject { |
44 | public: | |
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 | } | |
76 | private: | |
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 | ||
91 | class AliESDHeader: public TObject { | |
92 | public: | |
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; | |
117 | private: | |
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 | ||
131 | class AliESDZDC: public TObject { | |
132 | public: | |
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 | ||
151 | private: | |
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 | ||
164 | class AliESDTZERO: public TObject { | |
165 | public: | |
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 | ||
186 | private: | |
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 | ||
197 | class AliESDCaloTrigger : public TNamed { | |
198 | public: | |
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 | ||
214 | private: | |
215 | ||
216 | TArrayF *fTriggerAmplitudes; | |
217 | TArrayF *fTriggerPosition; | |
218 | ||
219 | ClassDef(AliESDCaloTrigger,1) | |
220 | }; | |
221 | ||
ae982df3 | 222 | class AliESD : public TObject { |
8a8d023f | 223 | public: |
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 | 512 | protected: |
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 |