]>
Commit | Line | Data |
---|---|---|
6bf90832 | 1 | #ifndef AliAnalysisTaskEMCALPi0PbPb_h |
2 | #define AliAnalysisTaskEMCALPi0PbPb_h | |
ea3fd2d5 | 3 | |
4 | // $Id$ | |
5 | ||
fa443410 | 6 | class TAxis; |
f5d4ab70 | 7 | class TClonesArray; |
296ea9b4 | 8 | class TH1; |
9 | class TH2; | |
f5d4ab70 | 10 | class TNtuple; |
717fe7de | 11 | class TObjArray; |
12 | class AliAODCaloCells; | |
13 | class AliAODCaloCluster; | |
ea3fd2d5 | 14 | class AliAODEvent; |
296ea9b4 | 15 | class AliAODTrack; |
788ca675 | 16 | class AliAODVertex; |
2ef5608f | 17 | class AliEMCALGeometry; |
296ea9b4 | 18 | class AliEMCALRecoUtils; |
717fe7de | 19 | class AliESDCaloCells; |
ea3fd2d5 | 20 | class AliESDCaloCluster; |
717fe7de | 21 | class AliESDEvent; |
0ec74551 | 22 | class AliESDTrack; |
788ca675 | 23 | class AliESDVertex; |
0ec74551 | 24 | class AliESDtrackCuts; |
807016ea | 25 | class AliMCEvent; |
38727e64 | 26 | class AliMCParticle; |
788ca675 | 27 | class AliStaHeader; |
28 | class AliStaVertex; | |
ea3fd2d5 | 29 | |
30 | #include "AliAnalysisTaskSE.h" | |
31 | ||
32 | class AliAnalysisTaskEMCALPi0PbPb : public AliAnalysisTaskSE { | |
33 | public: | |
4ea96211 | 34 | AliAnalysisTaskEMCALPi0PbPb(); |
35 | AliAnalysisTaskEMCALPi0PbPb(const char *name); | |
ea3fd2d5 | 36 | virtual ~AliAnalysisTaskEMCALPi0PbPb(); |
37 | ||
286b47a5 | 38 | void UserCreateOutputObjects(); |
39 | void UserExec(Option_t *option); | |
40 | void Terminate(Option_t *); | |
717fe7de | 41 | |
b6c599fe | 42 | void SetAsymMax(Double_t asymMax) { fAsymMax = asymMax; } |
43 | void SetCentrality(const char *n) { fCentVar = n; } | |
286b47a5 | 44 | void SetCentralityRange(Double_t from, Double_t to) { fCentFrom=from; fCentTo=to; } |
b6c599fe | 45 | void SetClusName(const char *n) { fClusName = n; } |
a49742b5 | 46 | void SetDoAfterburner(Bool_t b) { fDoAfterburner = b; } |
469b2bff | 47 | void SetDoPhysicsSelection(Bool_t b) { fDoPSel = b; } |
b6c599fe | 48 | void SetDoTrackMatWithGeom(Bool_t b) { fDoTrMatGeom = b; } |
469b2bff | 49 | void SetEmbedMode(Bool_t b) { fEmbedMode = b; } |
b6c599fe | 50 | void SetFillNtuple(Bool_t b) { fDoNtuple = b; } |
51 | void SetGeoName(const char *n) { fGeoName = n; } | |
2ef5608f | 52 | void SetGeoUtils(AliEMCALGeometry *geo) { fGeom = geo; } |
b6c599fe | 53 | void SetIsoDist(Double_t d) { fIsoDist = d; } |
38727e64 | 54 | void SetL0TimeRange(Int_t l, Int_t h) { fMinL0Time=l; fMaxL0Time=h; } |
3a952328 | 55 | void SetMarkCells(const char *n) { fMarkCells = n; } |
38727e64 | 56 | void SetMcMode(Bool_t b) { fMcMode = b; } |
b6c599fe | 57 | void SetMinClusEnergy(Double_t e) { fMinE = e; } |
58 | void SetMinEcc(Double_t ecc) { fMinEcc = ecc; } | |
59 | void SetMinErat(Double_t erat) { fMinErat = erat; } | |
3a952328 | 60 | void SetMinNClustersPerTrack(Double_t m) { fMinNClusPerTr = m; } |
b6c599fe | 61 | void SetNminCells(Int_t n) { fNminCells = n; } |
3a952328 | 62 | void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrimTrCuts = c; } |
38727e64 | 63 | void SetRecoUtils(AliEMCALRecoUtils *reco) { fReco = reco; } |
b6c599fe | 64 | void SetTrClassNames(const char *n) { fTrClassNames = n; } |
65 | void SetTrackCuts(AliESDtrackCuts *c) { fTrCuts = c; } | |
3a952328 | 66 | void SetTrainMode(Bool_t b) { fTrainMode = b; } |
469b2bff | 67 | void SetTrigName(const char *n) { fTrigName = n; } |
b6c599fe | 68 | void SetUseQualFlag(Bool_t b) { fUseQualFlag = b; } |
d595acbb | 69 | void SetVertexRange(Double_t z1, Double_t z2) { fVtxZMin=z1; fVtxZMax=z2; } |
717fe7de | 70 | |
71 | protected: | |
38727e64 | 72 | virtual void CalcCaloTriggers(); |
296ea9b4 | 73 | virtual void CalcClusterProps(); |
b6c599fe | 74 | virtual void CalcPrimTracks(); |
38727e64 | 75 | virtual void CalcMcInfo(); |
3a952328 | 76 | virtual void CalcTracks(); |
323834f0 | 77 | virtual void ClusterAfterburner(); |
76332037 | 78 | virtual void FillCellHists(); |
79 | virtual void FillClusHists(); | |
788ca675 | 80 | virtual void FillNtuple(); |
323834f0 | 81 | virtual void FillOtherHists(); |
788ca675 | 82 | virtual void FillPionHists(); |
38727e64 | 83 | virtual void FillMcHists(); |
f5e0f1e2 | 84 | virtual void FillTrackHists(); |
788ca675 | 85 | void FillVertex(AliStaVertex *v, const AliESDVertex *esdv); |
86 | void FillVertex(AliStaVertex *v, const AliAODVertex *aodv); | |
0fbe8d4f | 87 | Double_t GetCellIsolation(Double_t cEta, Double_t cPhi, Double_t radius=0.2) const; |
5fc7508c | 88 | Double_t GetCellIsoNxM(Double_t cEta, Double_t cPhi, Int_t N, Int_t M) const; |
0fbe8d4f | 89 | Double_t GetCellEnergy(const AliVCluster *c) const; |
90 | Double_t GetMaxCellEnergy(const AliVCluster *c) const { Short_t id=-1; return GetMaxCellEnergy(c,id); } | |
91 | Double_t GetMaxCellEnergy(const AliVCluster *c, Short_t &id) const; | |
469b2bff | 92 | Double_t GetSecondMaxCell(AliVCluster *clus) const; |
0fbe8d4f | 93 | Int_t GetNCells(const AliVCluster *c, Double_t emin=0.) const; |
2ee7bda4 | 94 | Int_t GetNCells(Int_t sm, Double_t emin=0.) const; |
0fbe8d4f | 95 | void GetSigma(const AliVCluster *c, Double_t &sigmaMax, Double_t &sigmaMin) const; |
5fc7508c | 96 | void GetSigmaEtaEta(const AliVCluster *c, Double_t &sigmaEtaEta, Double_t &sigmaPhiPhi) const; |
0fbe8d4f | 97 | Double_t GetTrackIsolation(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.) const; |
5fc7508c | 98 | Double_t GetTrackIsoStrip(Double_t cEta, Double_t cPhi, Double_t dEta=0.015, Double_t dPhi=0.3, Double_t pt=0.) const; |
0fbe8d4f | 99 | Double_t GetTrigEnergy(const AliVCluster *c) const; |
100 | Bool_t IsShared(const AliVCluster *c) const; | |
2ee7bda4 | 101 | Bool_t IsIdPartOfCluster(const AliVCluster *c, Short_t id) const; |
807016ea | 102 | void PrintDaughters(const AliVParticle *p, const TObjArray *arr, Int_t level=0) const; |
103 | void PrintDaughters(const AliMCParticle *p, const AliMCEvent *arr, Int_t level=0) const; | |
38727e64 | 104 | void PrintTrackRefs(AliMCParticle *p) const; |
807016ea | 105 | void ProcessDaughters(AliVParticle *p, Int_t index, const TObjArray *arr); |
106 | void ProcessDaughters(AliMCParticle *p, Int_t index, const AliMCEvent *arr); | |
286b47a5 | 107 | |
717fe7de | 108 | // input members |
6eb6260e | 109 | TString fCentVar; // variable for centrality determination |
110 | Double_t fCentFrom; // min centrality (def=0) | |
111 | Double_t fCentTo; // max centrality (def=100) | |
112 | Double_t fVtxZMin; // min primary vertex z (def=-10cm) | |
113 | Double_t fVtxZMax; // max primary vertex z (def=+10cm) | |
114 | Bool_t fUseQualFlag; // if true use quality flag for centrality | |
115 | TString fClusName; // cluster branch name (def="") | |
116 | Bool_t fDoNtuple; // if true write out ntuple | |
a49742b5 | 117 | Bool_t fDoAfterburner; // if true run after burner |
f224d35b | 118 | Double_t fAsymMax; // maximum energy asymmetry (def=1) |
119 | Int_t fNminCells; // minimum number of cells attached to cluster (def=1) | |
296ea9b4 | 120 | Double_t fMinE; // minimum cluster energy (def=0.1 GeV/c) |
f224d35b | 121 | Double_t fMinErat; // minimum emax/ec ratio (def=0) |
122 | Double_t fMinEcc; // minimum eccentricity (def=0) | |
6bf90832 | 123 | TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1) |
b6c599fe | 124 | Double_t fMinNClusPerTr; // minimum number of cluster per track (def=50) |
296ea9b4 | 125 | Double_t fIsoDist; // isolation distance (def=0.2) |
b3ee6797 | 126 | TString fTrClassNames; // trigger class names |
127 | AliESDtrackCuts *fTrCuts; // track cuts | |
3a952328 | 128 | AliESDtrackCuts *fPrimTrCuts; // track cuts |
b6c599fe | 129 | Bool_t fDoTrMatGeom; // track matching including geometry |
3a952328 | 130 | Bool_t fTrainMode; // train mode with minimal number of resources |
131 | TString fMarkCells; // list of mark cells to monitor | |
132 | Int_t fMinL0Time; // minimum accepted time for trigger | |
133 | Int_t fMaxL0Time; // maximum accepted time for trigger | |
38727e64 | 134 | Bool_t fMcMode; // monte carlo mode |
cfd7d5b2 | 135 | Bool_t fEmbedMode; // embedding mode |
2ef5608f | 136 | AliEMCALGeometry *fGeom; // geometry utils |
38727e64 | 137 | AliEMCALRecoUtils *fReco; // reco utils |
2ee7bda4 | 138 | TString fTrigName; // trigger name |
807016ea | 139 | Bool_t fDoPSel; // if false then accept all events |
f5d4ab70 | 140 | // derived members (ie with ! after //) |
27c2e3d9 | 141 | Bool_t fIsGeoMatsSet; //!indicate that geo matrices are set |
d9f26424 | 142 | ULong64_t fNEvs; //!accepted events |
6eb6260e | 143 | TList *fOutput; //!container of output histograms |
b3ee6797 | 144 | TObjArray *fTrClassNamesArr; //!array of trig class names |
6eb6260e | 145 | AliESDEvent *fEsdEv; //!pointer to input esd event |
146 | AliAODEvent *fAodEv; //!pointer to input aod event | |
a2de5ca1 | 147 | const TObjArray *fRecPoints; //!pointer to rec points (AliAnalysisTaskEMCALClusterizeFast) |
148 | const TClonesArray *fDigits; //!pointer to digits (AliAnalysisTaskEMCALClusterizeFast) | |
6eb6260e | 149 | TObjArray *fEsdClusters; //!pointer to esd clusters |
150 | AliESDCaloCells *fEsdCells; //!pointer to esd cells | |
151 | TObjArray *fAodClusters; //!pointer to aod clusters | |
152 | AliAODCaloCells *fAodCells; //!pointer to aod cells | |
153 | TAxis *fPtRanges; //!pointer to pt ranges | |
296ea9b4 | 154 | TObjArray *fSelTracks; //!pointer to selected tracks |
3a952328 | 155 | TObjArray *fSelPrimTracks; //!pointer to selected primary tracks |
788ca675 | 156 | // ntuple |
157 | TTree *fNtuple; //!pointer to ntuple | |
158 | AliStaHeader *fHeader; //!pointer to header | |
159 | AliStaVertex *fPrimVert; //!pointer to primary vertex | |
160 | AliStaVertex *fSpdVert; //!pointer to SPD vertex | |
161 | AliStaVertex *fTpcVert; //!pointer to TPC vertex | |
162 | TClonesArray *fClusters; //!pointer to clusters | |
3a952328 | 163 | TClonesArray *fTriggers; //!pointer to triggers |
807016ea | 164 | TClonesArray *fMcParts; //!pointer to mc particles |
717fe7de | 165 | // histograms |
296ea9b4 | 166 | TH1 *fHCuts; //!histo for cuts |
167 | TH1 *fHVertexZ; //!histo for vtxz | |
168 | TH1 *fHVertexZ2; //!histo for vtxz after vtx cuts | |
169 | TH1 *fHCent; //!histo for cent | |
170 | TH1 *fHCentQual; //!histo for cent after quality flag cut | |
b3ee6797 | 171 | TH1 *fHTclsBeforeCuts; //!histo for trigger classes before cuts |
172 | TH1 *fHTclsAfterCuts; //!histo for trigger classes after cuts | |
173 | ||
d595acbb | 174 | // histograms for cells |
296ea9b4 | 175 | TH2 **fHColuRow; //!histo for cell column and row |
176 | TH2 **fHColuRowE; //!histo for cell column and row weight energy | |
177 | TH1 **fHCellMult; //!histo for cell multiplicity in module | |
178 | TH1 *fHCellE; //!histo for cell energy | |
179 | TH1 *fHCellH; //!histo for highest cell energy | |
180 | TH1 *fHCellM; //!histo for mean cell energy (normalized to hit cells) | |
181 | TH1 *fHCellM2; //!histo for mean cell energy (normalized to all cells) | |
182 | TH1 **fHCellFreqNoCut; //!histo for cell frequency without cut | |
2e4d8148 | 183 | TH1 **fHCellFreqCut100M; //!histo for cell frequency with cut 100MeV |
184 | TH1 **fHCellFreqCut300M; //!histo for cell frequency with cut 300MeV | |
185 | TH1 **fHCellFreqE; //!histo for cell frequency weighted with energy | |
296ea9b4 | 186 | TH1 **fHCellCheckE; //!histo for cell E distribution for given channels |
fa443410 | 187 | // histograms for clusters |
296ea9b4 | 188 | TH1 *fHClustEccentricity; //!histo for cluster eccentricity |
189 | TH2 *fHClustEtaPhi; //!histo for cluster eta vs. phi | |
190 | TH2 *fHClustEnergyPt; //!histo for cluster energy vs. pT | |
191 | TH2 *fHClustEnergySigma; //!histo for cluster energy vs. variance over long axis | |
192 | TH2 *fHClustSigmaSigma; //!histo for sigma vs. lambda_0 comparison | |
f5e0f1e2 | 193 | TH2 *fHClustNCellEnergyRatio; //!histo for cluster n cells vs. energy ratio |
194 | TH2 *fHClustEnergyNCell; //!histo for cluster energy vs. cluster n cells | |
195 | // histograms for primary tracks | |
196 | TH1 *fHPrimTrackPt; //!histo for primary track pt | |
197 | TH1 *fHPrimTrackEta; //!histo for primary track eta | |
198 | TH1 *fHPrimTrackPhi; //!histo for primary track phi | |
b6c599fe | 199 | // histograms for track matching |
200 | TH1 *fHMatchDr; //!histo for dR track cluster matching | |
201 | TH1 *fHMatchDz; //!histo for dZ track cluster matching | |
202 | TH1 *fHMatchEp; //!histo for E/p track cluster matching | |
fa443410 | 203 | // histograms for pion candidates |
296ea9b4 | 204 | TH2 *fHPionEtaPhi; //!histo for pion eta vs. phi |
205 | TH2 *fHPionMggPt; //!histo for pion mass vs. pT | |
206 | TH2 *fHPionMggAsym; //!histo for pion mass vs. asym | |
207 | TH2 *fHPionMggDgg; //!histo for pion mass vs. opening angle | |
208 | TH1 *fHPionInvMasses[21]; //!histos for invariant mass plots | |
38727e64 | 209 | // histograms for MC |
ea3fd2d5 | 210 | |
ea3fd2d5 | 211 | private: |
717fe7de | 212 | AliAnalysisTaskEMCALPi0PbPb(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented |
213 | AliAnalysisTaskEMCALPi0PbPb &operator=(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented | |
ea3fd2d5 | 214 | |
2ee7bda4 | 215 | ClassDef(AliAnalysisTaskEMCALPi0PbPb, 12) // Analysis task for neutral pions in Pb+Pb |
ea3fd2d5 | 216 | }; |
ea3fd2d5 | 217 | #endif |
788ca675 | 218 | |
219 | #ifndef AliStaObjs_h | |
220 | #define AliStaObjs_h | |
221 | class AliStaHeader | |
222 | { | |
223 | public: | |
224 | AliStaHeader() : fRun(0), fOrbit(0), fPeriod(0), fBx(0), fL0(0), fL1(0), fL2(0), | |
225 | fTrClassMask(0), fTrCluster(0), fOffTriggers(0), fFiredTriggers(), | |
469b2bff | 226 | fTcls(0), fV0And(0), fIsHT(0), fIsPileup(0), fIsPileup2(0), fIsPileup4(0), fIsPileup8(0), |
227 | fNSpdVertices(0), fNTpcVertices(0), fV0Cent(0), fV0(0), fCl1Cent(0), fCl1(0), fTrCent(0), | |
2ee7bda4 | 228 | fTr(0), fCqual(-1), fPsi(0), fPsiRes(0), fNSelTr(0), fNSelPrimTr(0), fNSelPrimTr1(0), |
c0d2e1f2 | 229 | fNSelPrimTr2(0), fNCells(0), fNCells0(0), fNCells01(0), fNCells03(0), |
230 | fNCells1(0), fNCells2(0), fNCells5(0), fNClus(0), fNClus1(0), fNClus2(0), fNClus5(0), | |
2ee7bda4 | 231 | fMaxCellE(0), fMaxClusE(0), fMaxTrE(0), fNcSM0(0), fNcSM1(0), fNcSM2(0), fNcSM3(0), |
232 | fNcSM4(0), fNcSM5(0), fNcSM6(0),fNcSM7(0),fNcSM8(0),fNcSM9(0) {;} | |
233 | virtual ~AliStaHeader() {;} | |
c0d2e1f2 | 234 | |
807016ea | 235 | ULong64_t GetEventId() const { |
236 | return (((ULong64_t)fPeriod << 36) | | |
237 | ((ULong64_t)fOrbit << 12) | | |
238 | (ULong64_t)fBx); | |
239 | } | |
788ca675 | 240 | |
241 | public: | |
242 | Int_t fRun; // run number | |
243 | UInt_t fOrbit; // orbit number | |
244 | UInt_t fPeriod; // period number | |
245 | UShort_t fBx; // bunch crossing id | |
246 | UInt_t fL0; // l0 trigger bits | |
247 | UInt_t fL1; // l1 trigger bits | |
248 | UShort_t fL2; // l2 trigger bits | |
249 | ULong64_t fTrClassMask; // trigger class mask | |
250 | UChar_t fTrCluster; // trigger cluster mask | |
251 | UInt_t fOffTriggers; // fired offline triggers for this event | |
252 | TString fFiredTriggers; // string with fired triggers | |
253 | UInt_t fTcls; // custom trigger definition | |
2ee7bda4 | 254 | Bool_t fV0And; // if V0AND (from AliTriggerAnalysis) |
255 | Bool_t fIsHT; // if EMCAL L0 (from AliTriggerAnalysis) | |
469b2bff | 256 | Bool_t fIsPileup; // indicate pileup from IsPileupFromSPD with 0.8 minzdist |
257 | Bool_t fIsPileup2; // indicate pileup from IsPileupFromSPD with 0.4 minzdist | |
258 | Bool_t fIsPileup4; // indicate pileup from IsPileupFromSPD with 0.2 minzdist | |
259 | Bool_t fIsPileup8; // indicate pileup from IsPileupFromSPD with 0.1 minzdist | |
260 | UShort_t fNSpdVertices; // number of pileup vertices (spd) | |
261 | UShort_t fNTpcVertices; // number of pileup vertices (tpc) | |
788ca675 | 262 | Double32_t fV0Cent; //[0,0,16] v0 cent |
5fe1ca23 | 263 | Double32_t fV0; //[0,0,16] v0 result used for cent |
788ca675 | 264 | Double32_t fCl1Cent; //[0,0,16] cl1 cent |
5fe1ca23 | 265 | Double32_t fCl1; //[0,0,16] cl1 result used for cent |
788ca675 | 266 | Double32_t fTrCent; //[0,0,16] tr cent |
5fe1ca23 | 267 | Double32_t fTr; //[0,0,16] tr result used for cent |
788ca675 | 268 | Int_t fCqual; // centrality quality |
b6c599fe | 269 | Double32_t fPsi; //[0,0,16] event-plane angle |
270 | Double32_t fPsiRes; //[0,0,16] event-plane ange resolution | |
5fe1ca23 | 271 | UShort_t fNSelTr; // # selected tracks |
272 | UShort_t fNSelPrimTr; // # selected tracks (primary) | |
f5e0f1e2 | 273 | UShort_t fNSelPrimTr1; // # selected tracks (primary) pt > 1 GeV/c |
274 | UShort_t fNSelPrimTr2; // # selected tracks (primary) pt > 2 GeV/c | |
5fe1ca23 | 275 | UShort_t fNCells; // # cells |
c0d2e1f2 | 276 | UShort_t fNCells0; // # cells > 0.45 GeV |
277 | UShort_t fNCells01; // # cells > 0.1 GeV | |
278 | UShort_t fNCells03; // # cells > 0.3 GeV | |
279 | UShort_t fNCells1; // # cells > 1 GeV | |
280 | UShort_t fNCells2; // # cells > 2 GeV | |
281 | UShort_t fNCells5; // # cells > 5 GeV | |
5fe1ca23 | 282 | UShort_t fNClus; // # clus |
283 | UShort_t fNClus1; // # clus > 1 GeV | |
284 | UShort_t fNClus2; // # clus > 2 GeV | |
285 | UShort_t fNClus5; // # clus > 5 GeV | |
286 | Double32_t fMaxCellE; //[0,0,16] maximum cell energy | |
287 | Double32_t fMaxClusE; //[0,0,16] maximum clus energy | |
2ee7bda4 | 288 | Double32_t fMaxTrE; //[0,0,16] maximum trigger energy |
289 | UShort_t fNcSM0; // # cells > 0.1 GeV in SM 0 | |
290 | UShort_t fNcSM1; // # cells > 0.1 GeV in SM 1 | |
291 | UShort_t fNcSM2; // # cells > 0.1 GeV in SM 2 | |
292 | UShort_t fNcSM3; // # cells > 0.1 GeV in SM 3 | |
293 | UShort_t fNcSM4; // # cells > 0.1 GeV in SM 4 | |
294 | UShort_t fNcSM5; // # cells > 0.1 GeV in SM 5 | |
295 | UShort_t fNcSM6; // # cells > 0.1 GeV in SM 6 | |
296 | UShort_t fNcSM7; // # cells > 0.1 GeV in SM 7 | |
297 | UShort_t fNcSM8; // # cells > 0.1 GeV in SM 8 | |
298 | UShort_t fNcSM9; // # cells > 0.1 GeV in SM 9 | |
788ca675 | 299 | |
469b2bff | 300 | ClassDef(AliStaHeader,6) // Header class |
788ca675 | 301 | }; |
302 | ||
303 | class AliStaVertex | |
304 | { | |
305 | public: | |
306 | AliStaVertex(Double_t x=0, Double_t y=0, Double_t z=0) : fVx(x), fVy(y), fVz(z), fVc(-1), fDisp(0), fZres(0), | |
307 | fChi2(0), fSt(0), fIs3D(0), fIsZ(0) {;} | |
308 | virtual ~AliStaVertex() {;} | |
309 | ||
310 | public: | |
311 | Double_t fVx; //[0,0,16] vertex x | |
312 | Double_t fVy; //[0,0,16] vertex y | |
313 | Double_t fVz; //[0,0,16] vertex z | |
314 | Double_t fVc; //[0,0,16] number of contributors to vertex | |
315 | Double_t fDisp; //[0,0,16] dispersion | |
316 | Double_t fZres; //[0,0,16] z-resolution | |
317 | Double_t fChi2; //[0,0,16] chi2 of fit | |
318 | Bool_t fSt; // status bit | |
319 | Bool_t fIs3D; // is vertex from 3D | |
320 | Bool_t fIsZ; // is vertex from Z only | |
321 | ||
322 | ClassDef(AliStaVertex,1) // Vertex class | |
323 | }; | |
324 | ||
325 | class AliStaCluster : public TObject | |
326 | { | |
327 | public: | |
2ee7bda4 | 328 | AliStaCluster() : TObject(), |
329 | fE(0), fR(0), fEta(0), fPhi(0), fN(0), fN1(0), fN3(0), fIdMax(-1), fSM(-1), fEmax(0), fE2max(0), | |
330 | fTmax(0), fDbc(-1), fDisp(-1), fM20(-1), fM02(-1), fEcc(-1), fSig(-1), fSigEtaEta(-1), fSigPhiPhi(-1), | |
5fc7508c | 331 | fIsTrackM(0), fTrDz(0), fTrDr(-1), fTrEp(0), fTrDedx(0), fTrIso(0), fTrIso1(0), fTrIso2(0), |
332 | fTrIsoD1(0), fTrIso1D1(0), fTrIso2D1(0), fTrIsoD3(0), fTrIso1D3(0), fTrIso2D3(0),fTrIsoStrip(0), | |
333 | fCeIso(0), fCeIso1(0), fCeIso3(0), fCeIso4x4(0), fCeIso5x5(0), fCeCore(0), fCeIso3x22(0), | |
2ee7bda4 | 334 | fIsShared(0), fTrigId(-1), fTrigE(0), fMcLabel(-1), fEmbE(0) {;} |
788ca675 | 335 | |
336 | public: | |
337 | Double32_t fE; //[0,0,16] energy | |
38727e64 | 338 | Double32_t fR; //[0,0,16] radius (cylinder) |
788ca675 | 339 | Double32_t fEta; //[0,0,16] eta |
340 | Double32_t fPhi; //[0,0,16] phi | |
341 | UChar_t fN; // number of cells | |
342 | UChar_t fN1; // number of cells > 100 MeV | |
343 | UChar_t fN3; // number of cells > 300 MeV | |
2ee7bda4 | 344 | Short_t fIdMax; // id maximum cell |
345 | Char_t fSM; // super module number (from maximum cell) | |
788ca675 | 346 | Double32_t fEmax; //[0,0,16] energy of maximum cell |
5fc7508c | 347 | Double32_t fE2max; //[0,0,16] energy of second maximum cell |
2ee7bda4 | 348 | Double32_t fTmax; //[0,0,16] time of maximum cell |
788ca675 | 349 | Double32_t fDbc; //[0,0,16] distance to nearest bad channel |
350 | Double32_t fDisp; //[0,0,16] cluster dispersion, for shape analysis | |
351 | Double32_t fM20; //[0,0,16] 2-nd moment along the main eigen axis | |
352 | Double32_t fM02; //[0,0,16] 2-nd moment along the second eigen axis | |
353 | Double32_t fEcc; //[0,0,16] eccentricity | |
354 | Double32_t fSig; //[0,0,16] sigma | |
5fc7508c | 355 | Double32_t fSigEtaEta; //[0,0,16] sigma eta-eta |
356 | Double32_t fSigPhiPhi; //[0,0,16] sigma phi-phi | |
f3582e89 | 357 | Bool_t fIsTrackM; // if true then track values are set |
788ca675 | 358 | Double32_t fTrDz; //[0,0,16] dZ to nearest track |
3a952328 | 359 | Double32_t fTrDr; //[0,0,16] dR to nearest track (in x,y) |
788ca675 | 360 | Double32_t fTrEp; //[0,0,16] E/P to nearest track |
5fc7508c | 361 | Double32_t fTrDedx; //[0,0,16] dE/dx (TPC signal) to nearest track |
788ca675 | 362 | Double32_t fTrIso; //[0,0,16] track isolation |
b6c599fe | 363 | Double32_t fTrIso1; //[0,0,16] track isolation (pt>1GeV/c) |
364 | Double32_t fTrIso2; //[0,0,16] track isolation (pt>2GeV/c) | |
5fc7508c | 365 | Double32_t fTrIsoD1; //[0,0,16] track isolation, iso dist 0.25 |
366 | Double32_t fTrIso1D1; //[0,0,16] track isolation (pt>1GeV/c), iso dist 0.1 | |
367 | Double32_t fTrIso2D1; //[0,0,16] track isolation (pt>2GeV/c), iso dist 0.1 | |
368 | Double32_t fTrIsoD3; //[0,0,16] track isolation, iso dist 0.3 | |
369 | Double32_t fTrIso1D3; //[0,0,16] track isolation (pt>1GeV/c), iso dist 0.3 | |
370 | Double32_t fTrIso2D3; //[0,0,16] track isolation (pt>2GeV/c), iso dist 0.3 | |
371 | Double32_t fTrIsoStrip; //[0,0,16] track isolation strip, dEtaXdPhi=0.015x0.3 | |
372 | Double32_t fCeIso; //[0,0,16] cell isolation in R=0.20 | |
373 | Double32_t fCeIso1; //[0,0,16] cell isolation in R=0.10 | |
2ee7bda4 | 374 | Double32_t fCeIso3; //[0,0,16] cell isolation in R=0.30 |
375 | Double32_t fCeIso4x4; //[0,0,16] cell isolation in 4x4 cells | |
376 | Double32_t fCeIso5x5; //[0,0,16] cell isolation in 5x5 cells | |
5fc7508c | 377 | Double32_t fCeCore; //[0,0,16] cell content in R=0.05 |
378 | Double32_t fCeIso3x22; //[0,0,16] cell isolation in rectangular strip of dEtaXdPhi=0.042x0.308 | |
0fbe8d4f | 379 | Bool_t fIsShared; // =true then extends across more than one super module |
2ee7bda4 | 380 | Short_t fTrigId; // index of matched trigger tower |
381 | Double32_t fTrigE; //[0,0,16] energy (FEE) of matched trigger tower | |
56fd6cb2 | 382 | Short_t fMcLabel; // index of closest MC particle |
c2fe5f0e | 383 | Double32_t fEmbE; //[0,0,16] sum of energy of embedded (MC) cells in cluster |
3a952328 | 384 | |
2ee7bda4 | 385 | ClassDef(AliStaCluster,7) // Cluster class |
3a952328 | 386 | }; |
387 | ||
388 | class AliStaTrigger : public TObject | |
389 | { | |
390 | public: | |
2ee7bda4 | 391 | AliStaTrigger() : TObject(), fE(0), fEta(0), fPhi(0), fIdMax(-1) {} |
3a952328 | 392 | |
393 | public: | |
394 | Double32_t fE; //[0,0,16] energy | |
395 | Double32_t fEta; //[0,0,16] eta | |
396 | Double32_t fPhi; //[0,0,16] phi | |
2ee7bda4 | 397 | Short_t fIdMax; // id maximum cell |
788ca675 | 398 | |
2ee7bda4 | 399 | ClassDef(AliStaTrigger,2) // Trigger class |
788ca675 | 400 | }; |
38727e64 | 401 | |
38727e64 | 402 | class AliStaPart : public TObject |
403 | { | |
404 | public: | |
8c56d760 | 405 | AliStaPart() : TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fPid(0), fMo(-1), fDet(-2), |
5fc7508c | 406 | fLab(-1), fNs(0) { memset(fDs,-1,sizeof(Short_t)*99); } |
8c56d760 | 407 | |
408 | Int_t OnEmcal() const { return (fDet==8); } | |
409 | Int_t IsSim() const { return (fDet!=-2); } | |
807016ea | 410 | |
38727e64 | 411 | public: |
807016ea | 412 | Double32_t fPt; //[0,0,16] pt |
38727e64 | 413 | Double32_t fEta; //[0,0,16] eta |
414 | Double32_t fPhi; //[0,0,16] phi | |
807016ea | 415 | Double32_t fVR; //[0,0,16] prod r (cylinder) |
416 | Double32_t fVEta; //[0,0,16] prod eta | |
417 | Double32_t fVPhi; //[0,0,16] prod phi | |
418 | Short_t fPid; // pid | |
419 | Short_t fMo; // index of mother | |
8c56d760 | 420 | Short_t fDet; // detector in which particle left trace (8 for EMCAL, see AliTrackReference.h) |
421 | // the following must be filled before first usage | |
422 | Short_t fLab; //! label (index in array) | |
807016ea | 423 | Short_t fNs; //! number of daughters |
5fc7508c | 424 | Short_t fDs[99]; //! daughters |
38727e64 | 425 | |
56fd6cb2 | 426 | ClassDef(AliStaPart,1) // Particle class |
38727e64 | 427 | }; |
788ca675 | 428 | #endif |