]>
Commit | Line | Data |
---|---|---|
9c758b88 | 1 | //----------------------------------------------------------------- |
2 | // AliAnalysisTaskV0ForRAA class | |
3 | // This task is for analysing Lambda and K0s pt spectra in PbPb and | |
4 | // pp as well as with MC. The flag for pp and MC must be set | |
5 | // accordingly, default is PbPb data. | |
6 | // It works with ESD files only. | |
7 | //----------------------------------------------------------------- | |
8 | ||
9 | #ifndef ALIANALYSISTASKV0FORRAA_H | |
10 | #define ALIANALYSISTASKV0FORRAA_H | |
11 | ||
692dbad9 | 12 | class TH1F; |
13 | class TH2F; | |
9c758b88 | 14 | class Tlist; |
15 | class AliESDv0; | |
692dbad9 | 16 | class AliESDtrack; |
9c758b88 | 17 | class AliESDtrackCuts; |
18 | class AliESDpid; | |
19 | class AliESDEvent; | |
20 | class AliMCEvent; | |
692dbad9 | 21 | class AliPIDResponse; |
22 | ||
23 | #ifndef ALIANALYSISTASKSE_H | |
24 | #include "AliAnalysisTaskSE.h" | |
25 | #endif | |
26 | ||
9c758b88 | 27 | |
28 | class AliAnalysisTaskV0ForRAA : public AliAnalysisTaskSE { | |
6cdc2a74 | 29 | public: |
9c758b88 | 30 | |
6cdc2a74 | 31 | AliAnalysisTaskV0ForRAA(const char *name="AliAnalysisTaskV0ForRAA"); |
32 | virtual ~AliAnalysisTaskV0ForRAA(); | |
9c758b88 | 33 | |
34 | ||
6cdc2a74 | 35 | virtual void UserCreateOutputObjects(); |
36 | virtual void UserExec(Option_t *option); | |
37 | virtual void Terminate(Option_t *); | |
38 | ||
39 | ||
40 | ||
41 | //-- MC truth/reco --// | |
42 | void SetMCMode(Bool_t mcmode) {fMCMode = mcmode; if(fMCMode) Printf("AliAnalysisTaskV0ForRAA::running mc mode: histos of MC reco");} | |
43 | void SetMCTruthMode(Bool_t mcmode) {fMCTruthMode = mcmode; if(fMCTruthMode) Printf("AliAnalysisTaskV0ForRAA::running mc mode: histos of MC truth");} | |
44 | void SelectInjected(Bool_t injected) {fSelectInjected = injected; if(fSelectInjected) Printf("AliAnalysisTaskV0ForRAA::only injected MC particles");} | |
45 | ||
46 | //-- Centrality --// | |
47 | // use centrality - if yes, which one | |
48 | void SetUseCentrality(Int_t cent) {fUseCentrality = cent; Printf("AliAnalysisTaskV0ForRAA::centrality selected for detector %i (0=off, 1=VZERO, 2=SPD)",cent);} | |
49 | // set range | |
50 | void SetUseCentralityRange(Int_t range) {fUseCentralityRange = range;if(fUseCentrality) Printf("AliAnalysisTaskV0::centrality range %i",fUseCentralityRange);} | |
51 | // centrality bin to be used | |
52 | void SetUseCentralityBin(Int_t bin) {fUseCentralityBin = bin; if(fUseCentrality) Printf("AliAnalysisTaskV0ForRAA::centrality selected for bin %i",fUseCentralityBin); } | |
53 | ||
54 | ||
55 | //-- event cuts --// | |
56 | void SetPrimVertexZCut(Double_t vtxcut,Bool_t status) {fVertexZCut = vtxcut;fVtxStatus = status; Printf("AliAnalysisTaskV0ForRAA::SetPrimVertexZCut %3.2f",vtxcut);} | |
57 | void SetAnapp(Bool_t anapp) {fAnapp = anapp ;if(fAnapp) Printf("AliAnalysisTaskV0ForRAA::analysing pp!!!");} | |
58 | void SelectWithSDD(Bool_t sdd) {fSelSDD =sdd; if(sdd) Printf("AliAnalysisTaskV0ForRAA:: only events with SDD selected!");} | |
59 | ||
60 | //-- track cuts --// | |
61 | void SetESDTrackCuts(AliESDtrackCuts *esdcuts) {fESDTrackCuts = esdcuts;Printf("AliAnalysisTaskV0ForRAA::AliESDtrackCuts for V0s set");} | |
62 | void SetESDTrackCutsCharged(AliESDtrackCuts *esdcuts) {fESDTrackCutsCharged = esdcuts;Printf("AliAnalysisTaskV0ForRAA::AliESDtrackCuts for charged particles set");} | |
63 | void SetUseOnthefly(Bool_t useonthefly) {fOntheFly = useonthefly; if(!fOntheFly) Printf("AliAnalysisTaskV0ForRAA::offline V0s");} | |
64 | void SetUsePID(Bool_t usepid,Double_t nsigma=100.0,Double_t pcut=100.0) {fUsePID = usepid;fNSigma = nsigma;fPPIDcut = pcut; if(fUsePID) Printf("AliAnalysisTaskV0ForRAA::PID! of %4.2f for p: %4.2f",fNSigma,pcut);} | |
65 | void SetCutMoreNclsThanRows(Bool_t cut) {fMoreNclsThanRows=cut; if(cut) Printf("AliAnalysisTaskV0ForRAA::cut on more ncls than crossed rows");} | |
66 | void SetCutMoreNclsThanFindable(Bool_t cut) {fMoreNclsThanFindable=cut; if(cut) Printf("AliAnalysisTaskV0ForRAA::cut on more ncls than ncls findable");} | |
67 | void SetMaxChi2PerITSCluster(Double_t chi2) {fChi2PerClusterITS = chi2; Printf("AliAnalysisTaskV0ForRAA::max chi2 per ITS cluster %3.2f",chi2);} | |
68 | void SetRapidityCutMother(Bool_t cut,Double_t val=5.0) {fRapCutV0 = cut; fRap = val; if(cut) Printf("AliAnalysisTaskV0ForRAA::cut on mother rapidity %2.2f",val);} | |
69 | void SetMinPt(Double_t minPt=0.0) {fMinPt = minPt; if(minPt>0.0) Printf("AliAnalysisTaskV0ForRAA::cut on min pt %2.2f",minPt);} | |
70 | /* void SetPtShift(const Double_t shiftVal) { | |
71 | //user defined shift in charge/pt | |
72 | if(shiftVal) { fShift=kTRUE; fDeltaInvP = shiftVal; Printf("AliAnalysisTaskV0::WARNING!!!!!!!!!!!!!! pt shift introduced!");} | |
73 | } | |
74 | */ | |
75 | void SetDCAV0ToVertexK0(Double_t dcaTovertex) {fDCAToVertexK0 = dcaTovertex; Printf("AliAnalysisTaskV0ForRAA::dca to vertex K0s %2.3f",dcaTovertex);} | |
76 | void SetDCAV0ToVertexL(Double_t dcaTovertex) {fDCAToVertexL = dcaTovertex; Printf("AliAnalysisTaskV0ForRAA::dca to vertex L/AL %2.3f",dcaTovertex);} | |
77 | void SetDCADaughtersL(Double_t dcaDaughters) {fDCADaughtersL = dcaDaughters; Printf("AliAnalysisTaskV0:ForRAA:dca daughters L %2.3f",dcaDaughters);} | |
78 | void SetDCADaughtersAL(Double_t dcaDaughters) {fDCADaughtersAL = dcaDaughters; Printf("AliAnalysisTaskV0ForRAA::dca daughters AL %2.3f",dcaDaughters);} | |
79 | void SetDCADaughtersK0(Double_t dcaDaughters) {fDCADaughtersK0 = dcaDaughters; Printf("AliAnalysisTaskV0ForRAA::dca daughters K0s %2.3f",dcaDaughters);} | |
80 | void SetDCADaughtersLargeToVertex(Double_t dcaDaughtersVtx) {fDCADaughtersToVtxLarge = dcaDaughtersVtx; Printf("AliAnalysisTaskV0ForRAA::dca daughters to vertex large %2.3f",dcaDaughtersVtx);} | |
81 | void SetDCADaughtersSmallToVertex(Double_t dcaDaughtersVtx) {fDCADaughtersToVtxSmall = dcaDaughtersVtx; Printf("AliAnalysisTaskV0ForRAA::dca daughters to vertex small %2.3f",dcaDaughtersVtx);} | |
82 | void SetDecayRadiusXYMinMax(Double_t decMin,Double_t decMax){fDecayRadXYMin = decMin;fDecayRadXYMax = decMax; Printf("AliAnalysisTaskV0ForRAA::min xy decay radius %2.3f max %2.3f",decMin,decMax);} | |
83 | void SetCosOfPointingAngleL(Double_t pointAng,Double_t ptMaxCut=100.0) {fCosPointAngL=pointAng;fCPAPtCutL = ptMaxCut;Printf("AliAnalysisTaskV0ForRAA::SetCosOfPointingAngleL %1.5f and pt max %2.2f",pointAng,ptMaxCut);} | |
84 | void SetCosOfPointingAngleK(Double_t pointAng,Double_t ptMaxCut=100.0) {fCosPointAngK=pointAng;fCPAPtCutK0 = ptMaxCut; Printf("AliAnalysisTaskV0ForRAA::SetCosOfPointingAngleK %1.5f and pt max %2.2f",pointAng,ptMaxCut);} | |
85 | void SetOpeningAngleCut(Double_t opang, Double_t maxpt) {fOpengAngleDaughters=opang; fOpAngPtCut=maxpt,Printf("AliAnalysisTaskV0::cut on opening angle %1.3f up to pt= %2.2f",opang,maxpt);} | |
86 | ||
87 | void SetMaxDecayLength(Double_t decLength) {fDecayLengthMax = decLength; Printf("AliAnalysisTaskV0ForRAA::SetMaxDecayLength %2.3f",decLength);} | |
88 | void SetMinDecayLength(Double_t decLength) {fDecayLengthMin = decLength; Printf("AliAnalysisTaskV0ForRAA::SetMinDecayLength %2.3f",decLength);} | |
89 | void SetDCAXK0(Double_t dcaXK) {fDCAXK = dcaXK; Printf("AliAnalysisTaskV0ForRAA::SetDCAXK0 %2.3f",dcaXK);} | |
90 | void SetDCAYK0(Double_t dcaYK) {fDCAYK = dcaYK; Printf("AliAnalysisTaskV0ForRAA::SetDCAYK0 %2.3f",dcaYK);} | |
91 | void SetDCAXLambda(Double_t dcaXL) {fDCAXL = dcaXL; Printf("AliAnalysisTaskV0ForRAA::SetDCAXLambda %2.3f",dcaXL);} | |
92 | void SetDCAYLambda(Double_t dcaYL) {fDCAXL = dcaYL; Printf("AliAnalysisTaskV0ForRAA::SetDCAYLambda %2.3f",dcaYL);} | |
93 | void SetDCAZ(Double_t dcaZ) {fDCAZ = dcaZ; Printf("AliAnalysisTaskV0ForRAA::SetDCAZ %2.3f",dcaZ);} | |
94 | void SetChi2CutKf(Bool_t chi2){ fChiCutKf = chi2; Printf("AliAnalysisTaskV0ForRAA::SetChi2CutKf %i",chi2);} | |
95 | //Double_t chi2) {fChiCutKf = chi2; Printf("AliAnalysisTaskV0ForRAA::SetChi2CutKf %3.2f",chi2);} | |
96 | void SetArmenterosCutAlpha(Double_t alfaMin) {fAlfaCut=alfaMin;Printf("AliAnalysisTaskV0ForRAA::SetArmenterosCut a=%1.3f",alfaMin);} | |
97 | void SetArmenterosCutQt(Double_t ptmin,Double_t ptmax,Bool_t k0s,Bool_t la){fQtCut = ptmax;fQtCutPtLow=ptmin, fArmCutK0=k0s;fArmCutL=la;Printf("AliAnalysisTaskV0ForRAA::SetArmenterosCut ptmin = %3.2f ptmax = %3.2f. Is K0s? %i La? %i",ptmin,ptmax,k0s,la);} | |
98 | void SetCtauCut(Double_t ctK0s, Double_t ctL,Double_t ptK0=100.0,Double_t ptL=100.0) {fCtauK0s = ctK0s*2.6842; fCtauL = ctL*7.89;fCtauPtCutK0=ptK0; fCtauPtCutL=ptL; | |
99 | Printf("AliAnalysisTaskV0ForRAA::SetCtauCut ctK=%2.2f, ctL = %2.2f for ptK= %5.2f ptL=%5.2f",ctK0s,ctL,ptK0,ptL);} | |
100 | void SetDoEtaOfMCDaughtersCut(Bool_t doCut,Double_t eta=5.0){fEtaCutMCDaughters =doCut; fEtaCutMCDaughtersVal=eta; Printf("AliAnalysisTaskV0ForRAA::eta cut on V0 (MC truth ? %i) daughters %1.3f !",doCut,eta);} | |
9c758b88 | 101 | |
102 | ||
6cdc2a74 | 103 | private: |
9c758b88 | 104 | |
6cdc2a74 | 105 | //----------------------------functions --------------------------------------------// |
9c758b88 | 106 | |
6cdc2a74 | 107 | void Process(); // process event |
108 | void V0RecoLoop(Int_t id0,Int_t id1,Int_t isSecd,Int_t what,Double_t ptV0MC,Int_t pdgMother,Double_t ptXiMother); // loop over reconstructed V0 (data or MC) | |
109 | void V0MCTruthLoop(); // loop over MC truth V0s | |
110 | Int_t CalculateCentralityBin(); // get the centrality bin from multiplicity | |
111 | Bool_t GetMCTruthPartner(AliESDtrack *pos,AliESDtrack *neg,Int_t id0,Int_t id1); // find MC truth partner for reconstructed track | |
9c758b88 | 112 | |
113 | ||
114 | ||
6cdc2a74 | 115 | //----------------------------- objects ----------------------------------------------// |
9c758b88 | 116 | |
6cdc2a74 | 117 | //event |
118 | AliESDEvent *fESD; //ESD event object | |
119 | AliMCEvent *fMCev; //MC event object | |
9c758b88 | 120 | |
6cdc2a74 | 121 | //PID and track cuts |
122 | AliPIDResponse *fESDpid; // pid object | |
123 | AliESDtrackCuts *fESDTrackCuts; //esd track cuts for daughters | |
124 | AliESDtrackCuts *fESDTrackCutsCharged;//esd track cuts for all charged particles | |
9c758b88 | 125 | |
6cdc2a74 | 126 | TList *fOutputContainer; // output data container |
9c758b88 | 127 | |
6cdc2a74 | 128 | //----------------------------histograms --------------------------------------------// |
129 | //-------------------event histos -------------------// | |
130 | ||
131 | TH1F *fHistNEvents; // count number of events for each event cut | |
132 | TH1F *fHistMuliplicity; // number of particles from centrality selection | |
133 | TH1F *fHistMuliplicityRaw; // number of particles from centrality selection before processing | |
134 | TH1F *fHistMultiplicityPrimary; // number of charged particles | |
135 | TH1F *fHistESDVertexZ; // primary TPC vertex position z before cuts | |
136 | TH1F *fHistPrimVtxZESD; // primary ESD vertex position z after cuts and processing | |
137 | TH2F *fHistPrimVtxZESDVSNContributors; // count contributors to ESD vertex | |
138 | TH1F *fHistNPrim; // number of contributors to the prim vertex | |
139 | ||
140 | TH1F *fHistITSLayerHits; // pp 2.76 TeV analysis: check hist on div. ITS layer | |
141 | TH1F *fHistOneHitWithSDD; // pp 2.76 TeV analysis: check hist on at least one ITS layer | |
142 | TH1F *fHistPrimVtxZESDTPC; // primary TPC vertex position z after cuts and processing | |
143 | TH1F *fHistPrimVtxZESDSPD; // primary SPD vertex position z after cuts and processing | |
144 | TH2F *fHistPrimVtxZESDTPCVSNContributors; // count contributors to TPC vertex | |
145 | TH2F *fHistPrimVtxZESDSPDVSNContributors; // count contributors to SPD vertex | |
146 | TH1F *fHistCentBinRaw; // events per centralitybin before centrality selection | |
147 | TH1F *fHistCentBin; // events per centralitybin | |
148 | TH2F *fHistPrimVtxZESDVSNContributorsMC; // count contributors to ESD vertex MC | |
149 | TH2F *fHistPrimVtxZESDTPCVSNContributorsMC; // count contributors to TPC vertex MC | |
150 | TH2F *fHistPrimVtxZESDSPDVSNContributorsMC; // count contributors to SPD vertex MC | |
151 | TH1F *fHistMCVertexZ; // primary MC vertex position z | |
152 | ||
153 | //------------------------ single V0 histos --------------------------// | |
154 | TH1F *fHistPiPiPDGCode; // PDG code of K0 mothers | |
155 | TH1F *fHistPiPPDGCode; // PDG code of Lambda mothers | |
156 | TH1F *fHistPiAPPDGCode; // PDG code of Lambda mothers | |
157 | ||
158 | TH2F *fHistPiPCosPointAngXiVsPt; // cosine of pointing angle of xis vs pt | |
159 | TH2F *fHistPiAPCosPointAngXiVsPt; // cosine of pointing angle of xis vs pt | |
160 | ||
161 | //--------------------- V0 histos ------------------------------------// | |
162 | TH2F *fHistV0RadiusZ[2]; // V0 decay radius z | |
163 | TH2F *fHistV0RadiusZVSPt[2]; // V0 decay radius z vs pt | |
164 | TH2F *fHistV0RadiusXY[2]; // V0 decay radius x vs y | |
165 | TH2F *fHistV0RadiusXYVSY[2]; // V0 decay radius xy vs rapidity | |
9c758b88 | 166 | |
6cdc2a74 | 167 | TH2F *fHistArmenteros[2]; // armenteros |
9c758b88 | 168 | |
6cdc2a74 | 169 | //-- K0 --// |
170 | TH1F *fHistPiPiMass[2]; // pi+pi- InvMass spectrum | |
171 | TH2F *fHistPiPiMassVSPt[2]; // pi+pi- InvMass spectrum vs pt | |
172 | TH2F *fHistPiPiMassVSPtMCTruth[2]; // pi+pi- InvMass spectrum vs pt MC truth | |
173 | TH2F *fHistPiPiPtVSY[2]; // pi+pi- InvMass spectrum vs rapidity | |
174 | TH2F *fHistPiPiDecayLengthVsPt[2]; // pi+pi- decay lenght vs pt | |
175 | // TH2F *fHistPiPiMassVSAlpha[2]; // pi+pi- InvMass spectrum vs armenteros alpha | |
176 | TH2F *fHistPiPiRadiusXY[2]; // pi+pi- opening angle vs mass | |
177 | TH2F *fHistPiPiCosPointAng[2]; // pi+pi- cosine of pointing angle vs pt or dca to vertex | |
178 | TH2F *fHistPiPiDCADaughterPosToPrimVtxVSMass[2];// dca of pos. K0s daughter to prim vtx vs mass | |
179 | TH2F *fHistPiPiDecayLengthVsMass[2]; // pi+pi- decay lenght vs pt | |
180 | //TH2F *fHistPiPiMassVSPtK0L[2]; // K0L InvMass vs pt distribution | |
181 | TH2F *fHistPiPiDCADaughters[2]; // pi+pi- dca between daughters | |
182 | // TH2F *fHistPiPiPtDaughters[2]; // pi+pi- daughters pt pos vs pt neg | |
183 | TH2F *fHistPiPiDCAVSMass[2]; // pi+pi- dca to prim vtx vs mass | |
184 | TH1F *fHistPiPiMonitorCuts[2]; // pi+pi- cut monitor | |
185 | ||
186 | //-- lambda --// | |
187 | TH1F *fHistPiPMass[2]; // p+pi- InvMass spectrum | |
188 | TH2F *fHistPiPMassVSPt[2]; // p+pi- InvMass spectrum vs pt | |
189 | TH2F *fHistPiPMassVSPtMCTruth[2]; // p+pi- InvMass spectrum vs pt MC truth | |
190 | TH2F *fHistPiPPtVSY[2]; // p+pi- InvMass spectrum vs rapidity | |
191 | TH2F *fHistPiPDecayLengthVsPt[2]; // p+pi- decay lenght vs pt | |
192 | TH2F *fHistPiPRadiusXY[2]; // p+pi- opening angle vs mass | |
193 | TH2F *fHistPiPCosPointAng[2]; // p+pi- cosine of pointing angle vs pt or dca to vertex | |
194 | TH2F *fHistPiPDCADaughterPosToPrimVtxVSMass[2];// dca of pos. Lambda daughter to prim vtx vs mass | |
195 | ||
196 | TH2F *fHistPiPDecayLengthVsMass[2]; // p+pi- decay lenght vs pt | |
197 | TH2F *fHistPiPDCADaughters[2]; // p+pi- dca between daughters | |
198 | //TH2F *fHistPiPPtDaughters[2]; // p+pi- daughters pt pos vs pt neg | |
199 | TH2F *fHistPiPDCAVSMass[2]; // p+pi- dca to prim vtx vs mass | |
200 | TH1F *fHistPiPMonitorCuts[2]; // p+pi- cut monitor | |
201 | TH2F *fHistPiPMassVSPtSecSigma[2]; // InvMass distribution vs pt of secondary lambdas from sigma truth(0) reco(1) | |
202 | TH2F *fHistPiPMassVSPtSecXi[2]; // InvMass distribution vs pt of secondary lambdas from xi MC truth(0) reco(1) | |
203 | TH2F *fHistPiPMassVSYSecXi[2]; // InvMass distribution vs rapidity of secondary lambdas from xi MC truth(0) reco(1) | |
204 | TH2F *fHistPiPXi0PtVSLambdaPt[2] ; // pt of xi0 vs pt lambda truth(0) reco(1) | |
205 | TH2F *fHistPiPXiMinusPtVSLambdaPt[2]; // pt of ximinus vs pt lambda truth(0) reco(1) | |
9c758b88 | 206 | |
9c758b88 | 207 | |
6cdc2a74 | 208 | //-- antilambda --// |
209 | TH1F *fHistPiAPMass[2]; // pi+p- InvMass spectrum | |
210 | TH2F *fHistPiAPMassVSPt[2]; // pi+p- InvMass spectrum vs pt | |
211 | TH2F *fHistPiAPMassVSPtMCTruth[2]; // pi+p- InvMass spectrum vs pt MC Truth | |
212 | TH2F *fHistPiAPPtVSY[2]; // pi+p- InvMass spectrum vs rapidity | |
213 | TH2F *fHistPiAPDecayLengthVsPt[2]; // pi+p- decay lenght vs pt | |
214 | TH2F *fHistPiAPRadiusXY[2]; // pi+p- opening angle vs mass | |
215 | TH2F *fHistPiAPCosPointAng[2]; // pi+p- cosine of pointing angle vs pt or dca to vertex | |
216 | TH2F *fHistPiAPDCADaughterPosToPrimVtxVSMass[2];// dca of pos. Lambda daughter to prim vtx vs mass | |
217 | TH2F *fHistPiAPDecayLengthVsMass[2]; // pi+p- decay lenght vs pt | |
218 | TH2F *fHistPiAPDCADaughters[2]; // pi+p- dca between daughters | |
219 | //TH2F *fHistPiAPPtDaughters[2]; // pi+p- daughters pt pos vs pt neg | |
220 | TH2F *fHistPiAPDCAVSMass[2]; // pi+p- dca to prim vtx vs mass | |
221 | TH1F *fHistPiAPMonitorCuts[2]; // pi+p- cut monitor | |
222 | TH2F *fHistPiAPMassVSPtSecSigma[2]; // InvMass distribution vs pt of secondary alambdas from sigma truth(0) reco(1) | |
223 | TH2F *fHistPiAPMassVSPtSecXi[2]; // InvMass distribution vs pt of secondary alambdas from xi MC truth(0) reco(1) | |
224 | TH2F *fHistPiAPMassVSYSecXi[2]; // InvMass distribution vs rapidity of secondary alambdas from xi MC truth(0) reco(1) | |
225 | TH2F *fHistPiAPXi0PtVSLambdaPt[2] ; // pt of xi0 vs pt alambda truth(0) reco(1) | |
226 | TH2F *fHistPiAPXiMinusPtVSLambdaPt[2]; // pt of ximinus vs pt alambda truth(0) reco(1) | |
9c758b88 | 227 | |
6cdc2a74 | 228 | //-- others --// |
229 | //dEdx | |
230 | TH2F *fHistDedxSecProt[2]; // dedx from proton cadidates vs pt | |
231 | TH2F *fHistDedxSecAProt[2]; // dedx from antiproton candidates vs pt | |
232 | TH2F *fHistDedxSecPiMinus[2]; // dedx from pi minus candidates vs pt | |
233 | TH2F *fHistDedxSecPiPlus[2]; // dedx from pi plus candidates vs pt | |
234 | ||
235 | //clusters | |
236 | TH1F *fHistNclsITSPosK0[2]; // number of clusters from ITS of positive K0s daughters | |
237 | TH1F *fHistNclsITSNegK0[2]; // number of clusters from ITS of negative K0s daughters | |
238 | TH1F *fHistNclsTPCPosK0[2]; // number of clusters from TPC of positive K0s daughters | |
239 | TH1F *fHistNclsTPCNegK0[2]; // number of clusters from TPC of negative K0s daughters | |
240 | TH1F *fHistChi2PerNclsITSPosK0[2]; // chi^2 per number of clusters ITS of positive K0s daughters | |
241 | TH1F *fHistChi2PerNclsITSNegK0[2]; // chi^2 per number of clusters ITS of negative K0s daughters | |
242 | TH1F *fHistNclsITSPosL[2]; // number of clusters from ITS of positive lambda daughters | |
243 | TH1F *fHistNclsITSNegL[2]; // number of clusters from ITS of negative lambda daughters | |
244 | TH1F *fHistNclsTPCPosL[2]; // number of clusters from TPC of positive lambda daughters | |
245 | TH1F *fHistNclsTPCNegL[2]; // number of clusters from TPC of negative lambda daughters | |
246 | TH1F *fHistChi2PerNclsITSPosL[2]; // chi^2 per number of clusters ITS of positive lambda daughters | |
247 | TH1F *fHistChi2PerNclsITSNegL[2]; // chi^2 per number of clusters ITS of negative lambda daughters | |
248 | TH2F *fHistNclsITSPos[2]; // number of clusters from ITS of positive daughters vs pt dautghter | |
249 | TH2F *fHistNclsITSNeg[2]; // number of clusters from ITS of negative daughters vs pt dautghter | |
250 | TH2F *fHistNclsTPCPos[2]; // number of clusters from TPC of positive daughters vs number of finabale clutsters | |
251 | TH2F *fHistNclsTPCNeg[2]; // number of clusters from TPC of negative daughters vs number of finabale clutsters | |
252 | TH2F *fHistChi2PerNclsITSPos[2]; // chi^2 per number of clusters ITS of positive daughters vs pt of daughter | |
253 | TH2F *fHistChi2PerNclsITSNeg[2]; // chi^2 per number of clusters ITS of negative daughters vs pt of daughter | |
254 | TH2F *fHistNclsITS[2]; // number of clusters ITS pos vs neg daughters | |
255 | TH2F *fHistNclsTPC[2]; // number of clusters TPC neg daughters vs number of crossed rows | |
256 | TH2F *fHistNCRowsTPCPos[2]; // number of crossed rows TPC pos. vs pt of daughter | |
257 | TH2F *fHistNCRowsTPCNeg[2]; // number of crossed rows TPC neg. vs pt of daughter | |
258 | ||
259 | TH2F *fHistPiPiEtaDMC[2]; // eta of daughters vs pt K0s MC truth raw(0) after cuts(1) | |
260 | TH2F *fHistPiPEtaDMC[2]; // eta of daughters vs pt lambda MC truth raw(0) after cuts(1) | |
261 | TH2F *fHistPiPiEtaDReco[2]; // eta of daughters ESD track vs eta AliESDv0 or vs pt K0s raw(0) after cuts(1) | |
262 | TH2F *fHistPiPEtaDReco[2]; // eta of daughters ESD track vs eta AliESDv0 or vs pt (a)lambda raw(0) after cuts(1) | |
263 | ||
264 | /* | |
265 | //user shift | |
266 | TH1F *fHistUserPtShift;//monitor user defined charge/pt shift | |
267 | */ | |
9c758b88 | 268 | |
269 | ||
270 | ||
6cdc2a74 | 271 | //---------------------------------- Variables--------------------------------------------// |
272 | ||
273 | //--cut options --// | |
274 | //MC only | |
275 | Bool_t fMCMode; // run over MC general yes/no | |
276 | Bool_t fMCTruthMode; // MC truth selection yes/no | |
277 | Bool_t fSelectInjected; // for MC with injected signals, select only injected | |
278 | ||
279 | // Calculate centrality | |
280 | Int_t fUseCentrality; // use centrality (0=off(default),1=VZERO,2=SPD) | |
281 | Int_t fUseCentralityBin; // centrality bin to be used | |
282 | Int_t fUseCentralityRange; // use centrality (0=off(default),1=VZERO,2=SPD) | |
283 | ||
284 | //pp analysis | |
285 | Bool_t fAnapp; // flag for pp analysis | |
286 | Bool_t fSelSDD; // select pp events with SDD (for pp 2.76TeV LHC11a) | |
287 | ||
288 | //onthefly | |
289 | Bool_t fOntheFly; // true if onfly finder shall be used | |
290 | ||
291 | //vertex | |
292 | Double_t fVertexZCut; // z vertex cut value | |
293 | Bool_t fVtxStatus; // vertex cut on/off | |
294 | ||
295 | //PID | |
296 | Bool_t fUsePID; // use pid yes/no | |
297 | Double_t fNSigma; // set nsigma value | |
298 | Double_t fPPIDcut; // set max momentum for pid cut usage | |
299 | Bool_t fMoreNclsThanRows; // cut on ncls>ncrossed rows yes/no | |
300 | Bool_t fMoreNclsThanFindable; // cut on ncls>nfindable cls yes/no | |
301 | Double_t fChi2PerClusterITS; // cut on chi2 per ITS cluster | |
9c758b88 | 302 | |
6cdc2a74 | 303 | //rapidity |
304 | Bool_t fRapCutV0; // use rapidity cut for V0 yes/no | |
305 | Double_t fRap; // user defined value for rapidity cut | |
306 | ||
307 | //eta and pt | |
308 | Double_t fEtaCutMCDaughters; // eta cut for MC daughters on/off | |
309 | Double_t fEtaCutMCDaughtersVal; // eta cut value for MC daughters | |
310 | Double_t fMinPt; // pt min cut value | |
311 | ||
312 | //armenteros | |
313 | Double_t fAlfaCut; // set alpha armenteros cut value | |
314 | Double_t fQtCut; // set ptmax for qt armenteros cut | |
315 | Double_t fQtCutPtLow; // set ptmin for qt armenteros cut | |
316 | Bool_t fArmCutK0; // set armenteros cut on/off for K0s | |
317 | Bool_t fArmCutL; // set armenteros cut on/off for Lambda | |
318 | ||
319 | //others | |
320 | Double_t fDCAToVertexK0; // dca of V0 to vertex cut value K0s | |
321 | Double_t fDCAToVertexL; // dca of V0 to vertex cut value L/AL | |
322 | Double_t fDCAXK; // dca in x of K0s to vertex cut value | |
323 | Double_t fDCAYK; // dca in y of K0s to vertex cut value | |
324 | Double_t fDCAXL; // dca in x of Lambda to vertex cut value | |
325 | Double_t fDCAYL; // dca in y of Lambda to vertex cut value | |
326 | Double_t fDCAZ; // dca in z of V0 to vertex cut value | |
9c758b88 | 327 | |
6cdc2a74 | 328 | Double_t fDCADaughtersL; // dca between Lambda daughters cut value |
329 | Double_t fDCADaughtersAL; // dca between ALambda daughters cut value | |
330 | Double_t fDCADaughtersK0; // dca between K0s daughters cut value | |
9c758b88 | 331 | |
6cdc2a74 | 332 | Double_t fDCADaughtersToVtxLarge;// dca large between V0 daughters and vertex cut value |
333 | Double_t fDCADaughtersToVtxSmall;// dca small between V0 daughters and vertex cut value | |
9c758b88 | 334 | |
6cdc2a74 | 335 | Double_t fDecayRadXYMin; // minmal decay radius in x-y cut value |
336 | Double_t fDecayRadXYMax; // maximal decay radius in x-y cut value | |
9c758b88 | 337 | |
6cdc2a74 | 338 | Double_t fCosPointAngL; // cosine of pointing angle cut value for Lambda and ALambda |
339 | Double_t fCosPointAngK; // cosine of pointing angle cut value for K0s | |
340 | Double_t fCPAPtCutK0; // pt max for cosine of pointing angle cut K0s | |
341 | Double_t fCPAPtCutL; // pt max for cosine of pointing angle cut Lambda | |
342 | Double_t fOpengAngleDaughters; // cut on opening angle between V0 daughters | |
343 | Double_t fOpAngPtCut; // max pt for using the opening angle between V0 daughters cut | |
5117e418 | 344 | |
6cdc2a74 | 345 | Double_t fDecayLengthMax; // maximal decay length in x-y-z cut value |
346 | Double_t fDecayLengthMin; // minimal decay length in x-y-z cut value | |
9c758b88 | 347 | |
6cdc2a74 | 348 | //ctau |
349 | Double_t fCtauK0s; // multiple of ctau cut value for K0s | |
350 | Double_t fCtauL; // multiple of ctau cut value for Lambda | |
351 | Double_t fCtauPtCutK0; // pt max for ctau cut usage for K0s | |
352 | Double_t fCtauPtCutL; // pt max for ctau cut usage for Lambda | |
9c758b88 | 353 | |
6cdc2a74 | 354 | //KF particle chi cut |
355 | // Double_t fChiCutKf; //cut value of chi2 of AliKFParticle | |
356 | Bool_t fChiCutKf; //cut value of chi2 of AliKFParticle | |
9c758b88 | 357 | |
358 | ||
6cdc2a74 | 359 | /* |
360 | // option for user defined charge/pt shift | |
361 | Bool_t fShift;// shift yes/no | |
362 | Double_t fDeltaInvP;//define shift value | |
363 | */ | |
9c758b88 | 364 | |
365 | ||
6cdc2a74 | 366 | AliAnalysisTaskV0ForRAA(const AliAnalysisTaskV0ForRAA&); |
367 | AliAnalysisTaskV0ForRAA&operator=(const AliAnalysisTaskV0ForRAA&); | |
9c758b88 | 368 | |
6cdc2a74 | 369 | ClassDef(AliAnalysisTaskV0ForRAA, 1); |
9c758b88 | 370 | }; |
371 | #endif |