]>
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> | |
19 | ||
af7ba10c | 20 | #include "AliESDMuonTrack.h" |
21 | #include "AliESDPmdTrack.h" | |
22 | #include "AliESDVertex.h" | |
23 | #include "AliESDcascade.h" | |
51ad6848 | 24 | #include "AliESDkink.h" |
af7ba10c | 25 | #include "AliESDtrack.h" |
482070f2 | 26 | #include "AliESDHLTtrack.h" |
85c60a8e | 27 | #include "AliESDCaloCluster.h" |
af7ba10c | 28 | #include "AliESDv0.h" |
51ad6848 | 29 | #include "AliESDV0MI.h" |
9da38871 | 30 | #include "AliESDFMD.h" |
8a8d023f | 31 | |
ae982df3 | 32 | class AliESD : public TObject { |
8a8d023f | 33 | public: |
ae982df3 | 34 | AliESD(); |
af7ba10c | 35 | virtual ~AliESD(); |
8a8d023f | 36 | |
ae982df3 | 37 | void SetEventNumber(Int_t n) {fEventNumber=n;} |
5121f0b3 | 38 | void SetRunNumber(Int_t n) {fRunNumber=n;} |
2257f27e | 39 | void SetTrigger(Long_t n) {fTrigger=n;} |
a866ac60 | 40 | void SetMagneticField(Float_t mf){fMagneticField = mf;} |
41 | Float_t GetMagneticField() const {return fMagneticField;} | |
42 | ||
873f1f73 | 43 | AliESDtrack *GetTrack(Int_t i) const { |
ae982df3 | 44 | return (AliESDtrack *)fTracks.UncheckedAt(i); |
45 | } | |
482070f2 | 46 | AliESDHLTtrack *GetHLTConfMapTrack(Int_t i) const { |
47 | return (AliESDHLTtrack *)fHLTConfMapTracks.UncheckedAt(i); | |
48 | } | |
49 | AliESDHLTtrack *GetHLTHoughTrack(Int_t i) const { | |
50 | return (AliESDHLTtrack *)fHLTHoughTracks.UncheckedAt(i); | |
51 | } | |
873f1f73 | 52 | AliESDMuonTrack *GetMuonTrack(Int_t i) const { |
672b5f43 | 53 | return (AliESDMuonTrack *)fMuonTracks.UncheckedAt(i); |
54 | } | |
561b7b31 | 55 | AliESDPmdTrack *GetPmdTrack(Int_t i) const { |
56 | return (AliESDPmdTrack *)fPmdTracks.UncheckedAt(i); | |
57 | } | |
672b5f43 | 58 | |
51ad6848 | 59 | Int_t AddTrack(const AliESDtrack *t) { |
60 | AliESDtrack * track = new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t); | |
61 | track->SetID(fTracks.GetEntriesFast()-1); | |
62 | return track->GetID(); | |
63 | ||
ae982df3 | 64 | } |
482070f2 | 65 | void AddHLTConfMapTrack(const AliESDHLTtrack *t) { |
66 | new(fHLTConfMapTracks[fHLTConfMapTracks.GetEntriesFast()]) AliESDHLTtrack(*t); | |
67 | } | |
68 | void AddHLTHoughTrack(const AliESDHLTtrack *t) { | |
69 | new(fHLTHoughTracks[fHLTHoughTracks.GetEntriesFast()]) AliESDHLTtrack(*t); | |
70 | } | |
672b5f43 | 71 | void AddMuonTrack(const AliESDMuonTrack *t) { |
72 | new(fMuonTracks[fMuonTracks.GetEntriesFast()]) AliESDMuonTrack(*t); | |
73 | } | |
561b7b31 | 74 | void AddPmdTrack(const AliESDPmdTrack *t) { |
75 | new(fPmdTracks[fPmdTracks.GetEntriesFast()]) AliESDPmdTrack(*t); | |
76 | } | |
8a8d023f | 77 | |
873f1f73 | 78 | AliESDv0 *GetV0(Int_t i) const { |
e23730c7 | 79 | return (AliESDv0 *)fV0s.UncheckedAt(i); |
80 | } | |
81 | void AddV0(const AliESDv0 *v) { | |
82 | new(fV0s[fV0s.GetEntriesFast()]) AliESDv0(*v); | |
83 | } | |
51ad6848 | 84 | void UpdateV0PIDs(); |
e23730c7 | 85 | |
873f1f73 | 86 | AliESDcascade *GetCascade(Int_t i) const { |
e23730c7 | 87 | return (AliESDcascade *)fCascades.UncheckedAt(i); |
88 | } | |
89 | void AddCascade(const AliESDcascade *c) { | |
90 | new(fCascades[fCascades.GetEntriesFast()]) AliESDcascade(*c); | |
91 | } | |
92 | ||
51ad6848 | 93 | AliESDkink *GetKink(Int_t i) const { |
94 | return (AliESDkink *)fKinks.UncheckedAt(i); | |
95 | } | |
96 | Int_t AddKink(const AliESDkink *c) { | |
97 | AliESDkink * kink = new(fKinks[fKinks.GetEntriesFast()]) AliESDkink(*c); | |
98 | kink->SetID(fKinks.GetEntriesFast()); | |
99 | return fKinks.GetEntriesFast()-1; | |
100 | } | |
101 | ||
102 | AliESDV0MI *GetV0MI(Int_t i) const { | |
103 | return (AliESDV0MI *)fV0MIs.UncheckedAt(i); | |
104 | } | |
105 | Int_t AddV0MI(const AliESDV0MI *c) { | |
106 | AliESDV0MI * v0 = new(fV0MIs[fV0MIs.GetEntriesFast()]) AliESDV0MI(*c); | |
107 | v0->SetID(fV0MIs.GetEntriesFast()-1); | |
108 | return fV0MIs.GetEntriesFast()-1; | |
109 | } | |
110 | ||
85c60a8e | 111 | AliESDCaloCluster *GetCaloCluster(Int_t i) const { |
112 | return (AliESDCaloCluster *)fCaloClusters.UncheckedAt(i); | |
113 | } | |
114 | Int_t AddCaloCluster(const AliESDCaloCluster *c) { | |
115 | AliESDCaloCluster *clus = new(fCaloClusters[fCaloClusters.GetEntriesFast()]) AliESDCaloCluster(*c); | |
116 | clus->SetID(fCaloClusters.GetEntriesFast()-1); | |
117 | return fCaloClusters.GetEntriesFast()-1; | |
118 | } | |
119 | ||
1f46a9ae | 120 | void SetVertex(const AliESDVertex* vertex) { |
2257f27e | 121 | new(&fPrimaryVertex) AliESDVertex(*vertex); |
122 | } | |
123 | const AliESDVertex* GetVertex() const {return &fPrimaryVertex;}; | |
873f1f73 | 124 | |
ae982df3 | 125 | Int_t GetEventNumber() const {return fEventNumber;} |
126 | Int_t GetRunNumber() const {return fRunNumber;} | |
127 | Long_t GetTrigger() const {return fTrigger;} | |
8a8d023f | 128 | |
672b5f43 | 129 | Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();} |
482070f2 | 130 | Int_t GetNumberOfHLTConfMapTracks() const {return fHLTConfMapTracks.GetEntriesFast();} |
131 | Int_t GetNumberOfHLTHoughTracks() const {return fHLTHoughTracks.GetEntriesFast();} | |
672b5f43 | 132 | Int_t GetNumberOfMuonTracks() const {return fMuonTracks.GetEntriesFast();} |
561b7b31 | 133 | Int_t GetNumberOfPmdTracks() const {return fPmdTracks.GetEntriesFast();} |
e23730c7 | 134 | Int_t GetNumberOfV0s() const {return fV0s.GetEntriesFast();} |
135 | Int_t GetNumberOfCascades() const {return fCascades.GetEntriesFast();} | |
51ad6848 | 136 | Int_t GetNumberOfKinks() const {return fKinks.GetEntriesFast();} |
137 | Int_t GetNumberOfV0MIs() const {return fV0MIs.GetEntriesFast();} | |
85c60a8e | 138 | Int_t GetNumberOfCaloClusters() const {return fCaloClusters.GetEntriesFast();} |
139 | ||
140 | Int_t GetNumberOfEMCALClusters() const {return fEMCALClusters;} | |
141 | void SetNumberOfEMCALClusters(Int_t clus) {fEMCALClusters = clus;} | |
142 | Int_t GetFirstEMCALCluster() const {return fFirstEMCALCluster;} | |
143 | void SetFirstEMCALCluster(Int_t index) {fFirstEMCALCluster = index;} | |
144 | ||
145 | Int_t GetNumberOfPHOSClusters() const {return fPHOSClusters;} | |
146 | void SetNumberOfPHOSClusters(Int_t part) { fPHOSClusters = part ; } | |
147 | void SetFirstPHOSCluster(Int_t index) { fFirstPHOSCluster = index ; } | |
148 | Int_t GetFirstPHOSCluster() const { return fFirstPHOSCluster ; } | |
a2882fb4 | 149 | |
4a78b8c5 | 150 | Float_t GetT0zVertex() const {return fT0zVertex;} |
151 | void SetT0zVertex(Float_t z) {fT0zVertex=z;} | |
ef278eae | 152 | |
878bc0c2 | 153 | Float_t GetZDCNEnergy() const {return fZDCNEnergy;} |
154 | Float_t GetZDCPEnergy() const {return fZDCPEnergy;} | |
155 | Float_t GetZDCEMEnergy() const {return fZDCEMEnergy;} | |
156 | Int_t GetZDCParticipants() const {return fZDCParticipants;} | |
157 | void SetZDC(Float_t nEnergy, Float_t pEnergy, Float_t emEnergy, | |
158 | Int_t participants) | |
159 | {fZDCNEnergy=nEnergy; fZDCPEnergy=pEnergy; fZDCEMEnergy=emEnergy; | |
160 | fZDCParticipants=participants;} | |
161 | ||
50ca5f39 | 162 | void ResetV0s() { fV0s.Clear(); } |
163 | void ResetCascades() { fCascades.Clear(); } | |
164 | void Reset(); | |
bf25155c | 165 | |
ef278eae | 166 | void Print(Option_t *option="") const; |
9da38871 | 167 | |
168 | void SetFMDData(AliESDFMD * obj) { | |
169 | fESDFMD = new AliESDFMD(*obj); | |
170 | } | |
171 | ||
172 | AliESDFMD * GetFMDData(){ return fESDFMD;} | |
ef278eae | 173 | |
8a8d023f | 174 | protected: |
175 | ||
176 | // Event Identification | |
ae982df3 | 177 | Int_t fEventNumber; // Event Number |
178 | Int_t fRunNumber; // Run Number | |
179 | Long_t fTrigger; // Trigger Type | |
180 | Int_t fRecoVersion; // Version of reconstruction | |
a866ac60 | 181 | Float_t fMagneticField; // Solenoid Magnetic Field in kG : for compatibility with AliMagF |
8a8d023f | 182 | |
878bc0c2 | 183 | Float_t fZDCNEnergy; // reconstructed energy in the neutron ZDC |
184 | Float_t fZDCPEnergy; // reconstructed energy in the proton ZDC | |
185 | Float_t fZDCEMEnergy; // reconstructed energy in the electromagnetic ZDC | |
186 | Int_t fZDCParticipants; // number of participants estimated by the ZDC | |
187 | ||
4a78b8c5 | 188 | Float_t fT0zVertex; // vertex z position estimated by the START |
8bbc564d | 189 | AliESDVertex fPrimaryVertex; // Primary vertex estimated by the ITS |
190 | ||
191 | TClonesArray fTracks; // ESD tracks | |
192 | TClonesArray fHLTConfMapTracks;// HLT ESD tracks from Conformal Mapper method | |
193 | TClonesArray fHLTHoughTracks; // HLT ESD tracks from Hough Transform method | |
194 | TClonesArray fMuonTracks; // MUON ESD tracks | |
195 | TClonesArray fPmdTracks; // PMD ESD tracks | |
196 | TClonesArray fV0s; // V0 vertices | |
197 | TClonesArray fCascades; // Cascade vertices | |
51ad6848 | 198 | TClonesArray fKinks; // Kinks |
199 | TClonesArray fV0MIs; // V0MI | |
85c60a8e | 200 | TClonesArray fCaloClusters; // Calorimeter clusters for PHOS/EMCAL |
201 | Int_t fEMCALClusters; // Number of EMCAL clusters (subset of caloclusters) | |
202 | Int_t fFirstEMCALCluster; // First EMCAL cluster in the fCaloClusters list | |
203 | ||
204 | Int_t fPHOSClusters; // Number of PHOS clusters (subset of caloclusters) | |
205 | Int_t fFirstPHOSCluster; // First PHOS cluster in the fCaloClusters list | |
704be597 | 206 | |
9da38871 | 207 | AliESDFMD * fESDFMD; // FMD object containing rough multiplicity |
208 | ||
209 | ClassDef(AliESD,9) //ESD class | |
8a8d023f | 210 | }; |
8a8d023f | 211 | #endif |
212 |