]>
Commit | Line | Data |
---|---|---|
9bcef488 | 1 | /* Leading Charged Track+V0 Correlation.(Works for Real,Monte Carlo Data) |
2 | * Sandun Jayarathna | |
3 | * University of Houston | |
4 | * sandun.pahula.hewage@cern.ch | |
5 | *****************************************************************************************/ | |
ff0805a7 | 6 | |
7 | #ifndef ALILEADINGV0CORRELATIONH | |
8 | #define ALILEADINGV0CORRELATIONH | |
9 | ||
10 | #include "AliAnalysisTask.h" | |
ff0805a7 | 11 | #include "TString.h" |
12 | #include "AliVParticle.h" | |
13 | #include "AliLog.h" | |
14 | #include "AliPID.h" | |
da6ac661 | 15 | #include "THnSparse.h" |
ff0805a7 | 16 | |
17 | class TList; | |
ff0805a7 | 18 | class AliAODEvent; |
19 | class AliEventPoolManager; | |
ff0805a7 | 20 | class AliVParticle; |
21 | class AliPIDResponse; | |
22 | class AliPID; | |
23 | class AliAODv0; | |
da6ac661 | 24 | class AliAnalyseLeadingTrackUE; |
ff0805a7 | 25 | |
26 | ||
27 | #ifndef ALIANALYSISTASKSEH | |
28 | #include "AliAnalysisTaskSE.h" | |
29 | #endif | |
30 | ||
31 | //--------------------------------------------------------------------------------------- | |
32 | class AliLeadingV0Correlation : public AliAnalysisTaskSE { | |
33 | public: | |
34 | AliLeadingV0Correlation(); | |
35 | AliLeadingV0Correlation(const char *name); | |
36 | virtual ~AliLeadingV0Correlation(); | |
37 | ||
38 | virtual void UserCreateOutputObjects(); | |
39 | virtual void UserExec(Option_t *option); | |
40 | virtual void Terminate(Option_t *); | |
41 | ||
42 | void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;} | |
43 | void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;} | |
44 | void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;} | |
45 | ||
46 | void SetPoolPVzBinLimits(Int_t Nzvtxbins,const Double_t *ZvtxBins){ | |
47 | fNzVtxBins = Nzvtxbins; | |
48 | for(int ix = 0;ix<fNzVtxBins+1;ix++){fZvtxBins[ix] = ZvtxBins[ix];} | |
49 | } | |
50 | ||
51 | void SetPoolCentBinLimits(Int_t Ncentbins,const Double_t *CentBins){ | |
52 | fNCentBins = Ncentbins; | |
53 | for(int ix = 0;ix<fNCentBins+1;ix++){fCentBins[ix] = CentBins[ix];} | |
54 | } | |
55 | ||
56 | void SetCollidingSystem(TString system){fcollidingSys = system;} | |
57 | void SetPrimeryVertexCut(Double_t pvzcut){fpvzcut = pvzcut;} | |
58 | void SetEatCut(Double_t TrackEtaCut){fTrackEtaCut = TrackEtaCut;} | |
59 | void SetFilterBit(UInt_t filterBit){fFilterBit = filterBit;} | |
ff0805a7 | 60 | void SetMCAnalysis(Bool_t aAnalysisMC){fAnalysisMC=aAnalysisMC;} |
da6ac661 | 61 | void SetCase(Int_t aCase){fCase=aCase;} |
62 | void SetRemovePileUp(Bool_t aRemovePileUP){fRemovePileUP=aRemovePileUP;} | |
63 | void SetRemoveAutoCorr(Bool_t aRemoveAutoCorr){fRemoveAutoCorr=aRemoveAutoCorr;} | |
9bcef488 | 64 | void SetCutRap(Double_t aRapidityCut){fRapidityCut=aRapidityCut;} |
da6ac661 | 65 | void SetV0Radius(Double_t aV0radius){fV0radius=aV0radius;} |
66 | void SetV0PostoPVz(Double_t aV0PostoPVz){fV0PostoPVz=aV0PostoPVz;} | |
67 | void SetV0NegtoPVz(Double_t aV0NegtoPVz){fV0NegtoPVz=aV0NegtoPVz;} | |
68 | void SetDCAV0Daughters(Double_t aDCAV0Daughters){fDCAV0Daughters=aDCAV0Daughters;} | |
69 | void SetCPAK0(Double_t aCPAK0){fCPAK0=aCPAK0;} | |
70 | void SetCPALam(Double_t aCPALam){fCPALam=aCPALam;} | |
71 | void SetRejectLamK0(Double_t aRejectLamK0){fRejectLamK0=aRejectLamK0;} | |
72 | void SetRejectK0Lam(Double_t aRejectK0Lam){fRejectK0Lam=aRejectK0Lam;} | |
73 | void SetSigmaPID(Double_t aSigmaPID){fSigmaPID=aSigmaPID;} | |
74 | void SetCTK0(Double_t aCutCTK0){fCutCTK0=aCutCTK0;} | |
75 | void SetCTLa(Double_t aCutCTLa){fCutCTLa=aCutCTLa;} | |
76 | void SetMassCutK0(Double_t aMassCutK0){fMassCutK0=aMassCutK0;} | |
77 | void SetMassCutLa(Double_t aMassCutLambda){fMassCutLa=aMassCutLambda;} | |
ff0805a7 | 78 | |
79 | private: | |
9bcef488 | 80 | AliLeadingV0Correlation(const AliLeadingV0Correlation &det); |
81 | AliLeadingV0Correlation& operator=(const AliLeadingV0Correlation &det); | |
82 | ||
ff0805a7 | 83 | Bool_t IsAcseptedDaughterTrack(const AliAODTrack *itrack); |
da6ac661 | 84 | Bool_t IsAcseptedV0(const AliAODv0* aodV0, const AliAODTrack* myTrackPos, const AliAODTrack* myTrackNeg); |
85 | Bool_t IsAcseptedK0(Double_t v0rad, | |
86 | Double_t dcaptp, | |
87 | Double_t dcantp, | |
88 | Double_t dcav0d, | |
89 | Double_t cpa, | |
90 | Double_t massLa, | |
91 | Double_t massALa); | |
92 | Bool_t IsAcseptedLA(Double_t v0rad, | |
93 | Double_t dcaptp, | |
94 | Double_t dcantp, | |
95 | Double_t dcav0d, | |
96 | Double_t cpa, | |
97 | Double_t massK0); | |
ff0805a7 | 98 | Bool_t IsK0InvMass(const Double_t mass)const; |
99 | Bool_t IsLambdaInvMass(const Double_t mass) const; | |
da6ac661 | 100 | Double_t RangePhi(Double_t DPhi); |
101 | Bool_t IsTrackFromV0(AliAODTrack* track); | |
102 | void FillCorrelationSibling(Double_t MultipOrCent, | |
103 | TObjArray*triggerArray,TObjArray*selectedV0Array, | |
104 | THnSparse*triggerHist,THnSparse*associateHist); | |
105 | void FillCorrelationMixing(Double_t MultipOrCentMix,Double_t pvxMix, | |
106 | Double_t poolmax,Double_t poolmin, | |
107 | TObjArray*triggerArray,TObjArray*selectedV0Array, | |
108 | THnSparse*triggerHist,THnSparse*associateHist); | |
109 | Bool_t IsFeedDownV0(UInt_t lIdxPosV0, | |
110 | UInt_t lIdxNegV0, | |
111 | Double_t lInvMassXiMinus, | |
112 | Double_t lInvMassXiPlus, | |
113 | TH1F*HistXiMinus); | |
114 | ||
115 | AliAODEvent * fAODEvent; // AOD Event | |
116 | AliEventPoolManager * fPoolMgr; // event pool manager for Event Mixing | |
ff0805a7 | 117 | AliPIDResponse * fPIDResponse; // PID response |
da6ac661 | 118 | AliAnalyseLeadingTrackUE * fAnalyseUE; // Leading Track Underling Event |
ff0805a7 | 119 | |
120 | Int_t fPoolMaxNEvents; // set maximum number of events in the pool | |
121 | Int_t fPoolMinNTracks; // set minimum number of tracks in the pool | |
122 | Int_t fMinEventsToMix; // set the minimum number of events want to mix | |
123 | Int_t fNzVtxBins; // number of z vrtx bins | |
124 | Double_t fZvtxBins[100]; // [fNzVtxBinsDim] | |
125 | Int_t fNCentBins; // number of centrality bins | |
126 | Double_t fCentBins[100]; // [fNCentBinsDim] | |
127 | ||
da6ac661 | 128 | TString fcollidingSys; // "PP" or "PbPb2010,2011" |
ff0805a7 | 129 | Double_t fpvzcut; // PVz cut of event |
130 | Double_t fTrackEtaCut; // Eta cut on particles | |
131 | UInt_t fFilterBit; // Select tracks from an specific track cut (default 0xFF all track selected) | |
da6ac661 | 132 | Bool_t fAnalysisMC; // MC or Not |
133 | Int_t fCase; // Case number | |
134 | Bool_t fRemovePileUP; // 1Remove or 0 Not Remove | |
135 | Bool_t fRemoveAutoCorr; // 1Remove or 0 Not Remove | |
136 | ||
ff0805a7 | 137 | Double_t fRapidityCut; // Rapidity cut V0 |
da6ac661 | 138 | Double_t fV0radius; // Topological selection for systamatics |
139 | Double_t fV0PostoPVz; // Topological selection for systamatics | |
140 | Double_t fV0NegtoPVz; // Topological selection for systamatics | |
141 | Double_t fDCAV0Daughters; // Topological selection for systamatics | |
142 | Double_t fCPAK0; // Topological selection for systamatics | |
143 | Double_t fCPALam; // Topological selection for systamatics | |
144 | Double_t fRejectLamK0; // selection for systamatics | |
145 | Double_t fRejectK0Lam; // selection for systamatics | |
146 | Double_t fSigmaPID; // selection for systamatics | |
147 | Double_t fCutCTK0; // selection for systamatics | |
148 | Double_t fCutCTLa; // selection for systamatics | |
ff0805a7 | 149 | |
da6ac661 | 150 | Double_t fMassCutK0; // selection for systamatics |
151 | Double_t fMassCutLa; // selection for systamatics | |
ff0805a7 | 152 | |
da6ac661 | 153 | Bool_t fUseChargeHadrons; // Only pi,k,and proton |
154 | Double_t fPtMin; // 0.15 | |
ff0805a7 | 155 | |
156 | ||
da6ac661 | 157 | TList * fOutputList; // Output list |
9bcef488 | 158 | |
da6ac661 | 159 | THnSparse *fHistEventViceGen; |
160 | THnSparse *fHistEventViceReconst; | |
161 | THnSparse *fHistMCGenK0; | |
162 | THnSparse *fHistMCGenLAM; | |
163 | THnSparse *fHistMCGenALAM; | |
164 | THnSparse *fHistReconstK0; | |
165 | THnSparse *fHistReconstLA; | |
166 | THnSparse *fHistReconstALA; | |
167 | THnSparse *fHistMCAssoK0; | |
168 | THnSparse *fHistMCAssoLA; | |
169 | THnSparse *fHistMCAssoALA; | |
ff0805a7 | 170 | |
da6ac661 | 171 | THnSparse *fHistReconstSib; |
172 | THnSparse *fHistReconstMix; | |
173 | THnSparse *fHistReconstSibMC; | |
174 | THnSparse *fHistReconstMixMC; | |
175 | THnSparse *fHistReconstSibMCAssoc; | |
176 | THnSparse *fHistReconstMixMCAssoc; | |
177 | THnSparse *fHistTriggerSib; | |
178 | THnSparse *fHistTriggerMix; | |
179 | THnSparse *fHistTriggerSibMC; | |
180 | THnSparse *fHistTriggerMixMC; | |
181 | ||
ff0805a7 | 182 | ClassDef(AliLeadingV0Correlation, 1); |
183 | }; | |
184 | //--------------------------------------------------------------------------------------- | |
da6ac661 | 185 | class V0Correlationparticle : public AliVParticle |
ff0805a7 | 186 | { |
da6ac661 | 187 | public: |
188 | V0Correlationparticle(Float_t eta, | |
189 | Float_t phi, | |
190 | Float_t pt, | |
191 | Short_t candidate): | |
192 | fEta(eta), | |
193 | fPhi(phi), | |
194 | fpT(pt), | |
195 | fCandidate(candidate) | |
ff0805a7 | 196 | { |
197 | } | |
da6ac661 | 198 | virtual ~V0Correlationparticle(){} |
ff0805a7 | 199 | |
da6ac661 | 200 | virtual Double_t Px() const { AliFatal("Not implemented"); return 0;} |
201 | virtual Double_t Py() const { AliFatal("Not implemented"); return 0;} | |
202 | virtual Double_t Pz() const { AliFatal("Not implemented"); return 0;} | |
203 | virtual Double_t Pt() const { return fpT;} | |
204 | virtual Double_t P() const { AliFatal("Not implemented"); return 0;} | |
205 | virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0;} | |
206 | virtual Double_t Xv() const { AliFatal("Not implemented"); return 0;} | |
207 | virtual Double_t Yv() const { AliFatal("Not implemented"); return 0;} | |
208 | virtual Double_t Zv() const { AliFatal("Not implemented"); return 0;} | |
209 | virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0;} | |
210 | virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0;} | |
211 | virtual Double_t Phi() const { return fPhi;} | |
212 | virtual Double_t Theta() const { AliFatal("Not implemented"); return 0;} | |
213 | virtual Double_t E() const { AliFatal("Not implemented"); return 0;} | |
214 | virtual Double_t M() const { AliFatal("Not implemented"); return 0;} | |
215 | virtual Double_t Eta() const { return fEta;} | |
216 | virtual Double_t Y() const { AliFatal("Not implemented"); return 0;} | |
217 | virtual Short_t Charge() const { AliFatal("Not implemented"); return 0;} | |
218 | virtual Int_t GetLabel() const { AliFatal("Not implemented"); return 0;} | |
219 | virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0;} | |
220 | virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0;} | |
221 | virtual Short_t WhichCandidate() const { return fCandidate;} | |
ff0805a7 | 222 | |
da6ac661 | 223 | |
224 | private: | |
225 | Float_t fEta; // Eta | |
226 | Float_t fPhi; // Phi | |
227 | Float_t fpT; // pT | |
228 | Short_t fCandidate; // 1-K0,2-Lam,3-Alam | |
229 | ||
230 | ||
231 | ClassDef( V0Correlationparticle, 1); | |
ff0805a7 | 232 | }; |
233 | ||
da6ac661 | 234 | #endif |