changed order of adding histograms to the TList
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AliAnalysisTaskV0ForRAA.h
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
12 class TH1F;
13 class TH2F;
14 class Tlist;
15 class AliESDv0;
16 class AliESDtrack;
17 class AliESDtrackCuts;
18 class AliESDpid;
19 class AliESDEvent;
20 class AliMCEvent;
21 class AliPIDResponse;
22
23 #ifndef ALIANALYSISTASKSE_H
24 #include "AliAnalysisTaskSE.h"
25 #endif
26
27
28 class AliAnalysisTaskV0ForRAA : public AliAnalysisTaskSE {
29 public:
30    
31    AliAnalysisTaskV0ForRAA(const char *name="AliAnalysisTaskV0ForRAA");
32    virtual ~AliAnalysisTaskV0ForRAA();
33   
34
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(Double_t chi2)                            {fChiCutKf = chi2; Printf("AliAnalysisTaskV0ForRAA::SetChi2CutKf %3.2f",chi2);}
95    void SetArmenterosCutAlpha(Double_t alfaMin)                {fAlfaCut=alfaMin;Printf("AliAnalysisTaskV0ForRAA::SetArmenterosCut a=%1.3f",alfaMin);}
96    void SetArmenterosCutQt(Double_t qtmax,Bool_t k0s,Bool_t la){fQtCut = qtmax; fArmCutK0=k0s;fArmCutL=la;Printf("AliAnalysisTaskV0ForRAA::SetArmenterosCut qt=%1.3f K0s? %i La? %i",qtmax,k0s,la);}
97    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;
98       Printf("AliAnalysisTaskV0ForRAA::SetCtauCut ctK=%2.2f, ctL = %2.2f for ptK= %5.2f ptL=%5.2f",ctK0s,ctL,ptK0,ptL);}
99    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);}
100   
101    
102 private:
103    
104    //----------------------------functions --------------------------------------------//
105
106    void   Process();                                                                                                   // process event
107    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)
108    void   V0MCTruthLoop();                                                                                             // loop over MC truth V0s
109    Int_t  CalculateCentralityBin();                                                                                    // get the centrality bin from multiplicity
110    Bool_t GetMCTruthPartner(AliESDtrack *pos,AliESDtrack *neg,Int_t id0,Int_t id1);                                    // find MC truth partner for reconstructed track
111
112
113    
114    //----------------------------- objects ----------------------------------------------//
115
116    //event
117    AliESDEvent     *fESD;                //ESD event object
118    AliMCEvent      *fMCev;               //MC event object
119    
120    //PID and track cuts
121    AliPIDResponse  *fESDpid;             // pid object
122    AliESDtrackCuts *fESDTrackCuts;       //esd track cuts for daughters
123    AliESDtrackCuts *fESDTrackCutsCharged;//esd track cuts for all charged particles
124
125    TList           *fOutputContainer;    // output data container
126    
127    //----------------------------histograms --------------------------------------------//
128    //-------------------event histos -------------------//
129    TH1F   *fHistITSLayerHits;                        // pp 2.76 TeV analysis: check hist on div. ITS layer
130    TH1F   *fHistOneHitWithSDD;                       // pp 2.76 TeV analysis: check hist on at least one ITS layer
131    TH1F   *fHistNEvents;                             // count number of events for each event cut
132    TH2F   *fHistPrimVtxZESDVSNContributors;          // count contributors to ESD vertex
133    TH2F   *fHistPrimVtxZESDTPCVSNContributors;       // count contributors to TPC vertex
134    TH2F   *fHistPrimVtxZESDSPDVSNContributors;       // count contributors to SPD vertex
135
136    TH2F   *fHistPrimVtxZESDVSNContributorsMC;        // count contributors to ESD vertex MC
137    TH2F   *fHistPrimVtxZESDTPCVSNContributorsMC;     // count contributors to TPC vertex MC
138    TH2F   *fHistPrimVtxZESDSPDVSNContributorsMC;     // count contributors to SPD vertex MC
139
140    TH1F   *fHistPrimVtxZESD;                         // primary ESD vertex position z after cuts and processing
141    TH1F   *fHistPrimVtxZESDTPC;                      // primary TPC vertex position z after cuts and processing
142    TH1F   *fHistPrimVtxZESDSPD;                      // primary SPD vertex position z after cuts and processing
143
144    TH1F   *fHistESDVertexZ;                          // primary TPC vertex position z before cuts
145    TH1F   *fHistMCVertexZ;                           // primary MC vertex position z 
146    
147    TH1F   *fHistMuliplicity;                         // number of particles from centrality selection
148    TH1F   *fHistMuliplicityRaw;                      // number of particles from centrality selection before processing
149    TH1F   *fHistCentBinRaw;                          // events per centralitybin before centrality selection
150    TH1F   *fHistCentBin;                             // events per centralitybin
151    TH1F   *fHistMultiplicityPrimary;                 // number of charged particles
152    
153    TH1F   *fHistNPrim;                               // number of contributors to the prim vertex
154
155    //------------------------ single V0 histos --------------------------//
156    TH1F   *fHistPiPiPDGCode;                         // PDG code of K0 mothers
157    TH1F   *fHistPiPPDGCode;                          // PDG code of Lambda mothers
158    TH1F   *fHistPiAPPDGCode;                         // PDG code of Lambda mothers
159
160    TH2F   *fHistPiPCosPointAngXiVsPt;                // cosine of pointing angle of xis vs pt
161    TH2F   *fHistPiAPCosPointAngXiVsPt;               // cosine of pointing angle of xis vs pt
162
163    //--------------------- V0 histos ------------------------------------//
164    TH2F   *fHistV0RadiusZ[2];                        // V0 decay radius z
165    TH2F   *fHistV0RadiusZVSPt[2];                    // V0 decay radius z vs pt
166    TH2F   *fHistV0RadiusXY[2];                       // V0 decay radius x vs y
167    TH2F   *fHistV0RadiusXYVSY[2];                    // V0 decay radius xy vs rapidity
168    
169    TH2F   *fHistArmenteros[2];                       // armenteros
170      
171    //-- K0 --//
172    TH1F   *fHistPiPiMass[2];                         // pi+pi- InvMass spectrum
173    TH2F   *fHistPiPiPtVSY[2];                        // pi+pi- InvMass spectrum vs rapidity
174    TH2F   *fHistPiPiMassVSPt[2];                     // pi+pi- InvMass spectrum vs pt
175    TH2F   *fHistPiPiMassVSPtMCTruth[2];              // pi+pi- InvMass spectrum vs pt MC truth
176    // TH2F   *fHistPiPiMassVSAlpha[2];                  // pi+pi- InvMass spectrum vs armenteros alpha
177    TH2F   *fHistPiPiRadiusXY[2];                     // pi+pi- opening angle vs mass
178    TH2F   *fHistPiPiCosPointAng[2];                  // pi+pi- cosine of pointing angle vs pt or dca to vertex
179    TH2F   *fHistPiPiDCADaughterPosToPrimVtxVSMass[2];// dca of pos. K0s daughter to prim vtx vs mass
180    TH2F   *fHistPiPiDecayLengthVsPt[2];              // pi+pi- decay lenght vs pt
181    TH2F   *fHistPiPiDecayLengthVsMass[2];            // pi+pi- decay lenght vs pt
182    //TH2F   *fHistPiPiMassVSPtK0L[2];                  // K0L InvMass vs pt distribution
183    TH2F   *fHistPiPiDCADaughters[2];                 // pi+pi- dca between daughters
184    TH2F   *fHistPiPiPtDaughters[2];                  // pi+pi- daughters pt pos vs pt neg 
185    TH2F   *fHistPiPiDCAVSMass[2];                    // pi+pi- dca to prim vtx vs mass
186    TH1F   *fHistPiPiMonitorCuts[2];                  // pi+pi- cut monitor
187
188    //-- lambda --//
189    TH1F   *fHistPiPMass[2];                         // p+pi- InvMass spectrum
190    TH2F   *fHistPiPPtVSY[2];                        // p+pi- InvMass spectrum vs rapidity
191    TH2F   *fHistPiPMassVSPt[2];                     // p+pi- InvMass spectrum vs pt
192    TH2F   *fHistPiPMassVSPtMCTruth[2];              // p+pi- InvMass spectrum vs pt MC truth
193    TH2F   *fHistPiPRadiusXY[2];                     // p+pi- opening angle vs mass
194    TH2F   *fHistPiPCosPointAng[2];                  // p+pi- cosine of pointing angle vs pt  or dca to vertex
195    TH2F   *fHistPiPDCADaughterPosToPrimVtxVSMass[2];// dca of pos. Lambda daughter to prim vtx vs mass
196    TH2F   *fHistPiPDecayLengthVsPt[2];              // p+pi- decay lenght vs pt
197    TH2F   *fHistPiPDecayLengthVsMass[2];            // p+pi- decay lenght vs pt
198    TH2F   *fHistPiPDCADaughters[2];                 // p+pi- dca between daughters
199    TH2F   *fHistPiPPtDaughters[2];                  // p+pi- daughters pt pos vs pt neg 
200    TH2F   *fHistPiPDCAVSMass[2];                    // p+pi- dca to prim vtx vs mass
201    TH1F   *fHistPiPMonitorCuts[2];                  // p+pi- cut monitor
202    TH2F   *fHistPiPMassVSPtSecSigma[2];             // InvMass distribution vs pt of secondary lambdas from sigma truth(0) reco(1)
203    TH2F   *fHistPiPMassVSPtSecXi[2];                // InvMass distribution vs pt of secondary lambdas from xi MC truth(0) reco(1)
204    TH2F   *fHistPiPMassVSYSecXi[2];                 // InvMass distribution vs rapidity of secondary lambdas from xi MC truth(0) reco(1)
205    TH2F   *fHistPiPXi0PtVSLambdaPt[2] ;             // pt of xi0 vs pt lambda truth(0) reco(1)
206    TH2F   *fHistPiPXiMinusPtVSLambdaPt[2];          // pt of ximinus vs pt lambda truth(0) reco(1)
207  
208    
209    //-- antilambda --//
210    TH1F   *fHistPiAPMass[2];                         // pi+p- InvMass spectrum
211    TH2F   *fHistPiAPPtVSY[2];                        // pi+p- InvMass spectrum vs rapidity
212    TH2F   *fHistPiAPMassVSPt[2];                     // pi+p- InvMass spectrum vs pt
213    TH2F   *fHistPiAPMassVSPtMCTruth[2];              // pi+p- InvMass spectrum vs pt MC Truth
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   *fHistPiAPDecayLengthVsPt[2];              // pi+p- decay lenght vs pt
218    TH2F   *fHistPiAPDecayLengthVsMass[2];            // pi+p- decay lenght vs pt
219    TH2F   *fHistPiAPDCADaughters[2];                 // pi+p- dca between daughters
220    TH2F   *fHistPiAPPtDaughters[2];                  // pi+p- daughters pt pos vs pt neg 
221    TH2F   *fHistPiAPDCAVSMass[2];                    // pi+p- dca to prim vtx vs mass
222    TH1F   *fHistPiAPMonitorCuts[2];                  // pi+p- cut monitor
223    TH2F   *fHistPiAPMassVSPtSecSigma[2];             // InvMass distribution vs pt of secondary alambdas from sigma truth(0) reco(1)
224    TH2F   *fHistPiAPMassVSPtSecXi[2];                // InvMass distribution vs pt of secondary alambdas from xi MC truth(0) reco(1)
225    TH2F   *fHistPiAPMassVSYSecXi[2];                 // InvMass distribution vs rapidity of secondary alambdas from xi MC truth(0) reco(1)
226    TH2F   *fHistPiAPXi0PtVSLambdaPt[2] ;             // pt of xi0 vs pt alambda truth(0) reco(1)
227    TH2F   *fHistPiAPXiMinusPtVSLambdaPt[2];          // pt of ximinus vs pt alambda truth(0) reco(1)
228    
229    //-- others --//
230    //dEdx
231    TH2F   *fHistDedxSecProt[2];                      // dedx from proton cadidates vs pt
232    TH2F   *fHistDedxSecAProt[2];                     // dedx from antiproton candidates vs pt
233    TH2F   *fHistDedxSecPiMinus[2];                   // dedx from pi minus candidates vs pt
234    TH2F   *fHistDedxSecPiPlus[2];                    // dedx from pi plus candidates vs pt
235
236    //clusters
237    TH1F   *fHistNclsITSPosK0[2];                     // number of clusters from ITS of positive K0s daughters
238    TH1F   *fHistNclsITSNegK0[2];                     // number of clusters from ITS of negative K0s daughters
239    TH1F   *fHistNclsTPCPosK0[2];                     // number of clusters from TPC of positive K0s daughters
240    TH1F   *fHistNclsTPCNegK0[2];                     // number of clusters from TPC of negative K0s daughters
241    TH1F   *fHistChi2PerNclsITSPosK0[2];              // chi^2 per number of clusters ITS of positive K0s daughters
242    TH1F   *fHistChi2PerNclsITSNegK0[2];              // chi^2 per number of clusters ITS of negative K0s daughters
243    TH1F   *fHistNclsITSPosL[2];                      // number of clusters from ITS of positive lambda daughters
244    TH1F   *fHistNclsITSNegL[2];                      // number of clusters from ITS of negative lambda daughters
245    TH1F   *fHistNclsTPCPosL[2];                      // number of clusters from TPC of positive lambda daughters
246    TH1F   *fHistNclsTPCNegL[2];                      // number of clusters from TPC of negative lambda daughters
247    TH1F   *fHistChi2PerNclsITSPosL[2];               // chi^2 per number of clusters ITS of positive lambda daughters
248    TH1F   *fHistChi2PerNclsITSNegL[2];               // chi^2 per number of clusters ITS of negative lambda daughters
249    TH2F   *fHistNclsITSPos[2];                       // number of clusters from ITS of positive daughters vs pt dautghter
250    TH2F   *fHistNclsITSNeg[2];                       // number of clusters from ITS of negative daughters vs pt dautghter
251    TH2F   *fHistNclsTPCPos[2];                       // number of clusters from TPC of positive daughters vs number of finabale clutsters
252    TH2F   *fHistNclsTPCNeg[2];                       // number of clusters from TPC of negative daughters vs number of finabale clutsters
253    TH2F   *fHistChi2PerNclsITSPos[2];                // chi^2 per number of clusters ITS of positive daughters vs pt of daughter
254    TH2F   *fHistChi2PerNclsITSNeg[2];                // chi^2 per number of clusters ITS of negative daughters  vs pt of daughter
255    TH2F   *fHistNclsITS[2];                          // number of clusters ITS pos vs neg daughters
256    TH2F   *fHistNclsTPC[2];                          // number of clusters TPC  neg daughters vs number of crossed rows
257    TH2F   *fHistNCRowsTPCPos[2];                     // number of crossed rows TPC pos. vs pt of daughter
258    TH2F   *fHistNCRowsTPCNeg[2];                     // number of crossed rows TPC neg. vs pt of daughter
259
260    TH2F   *fHistPiPiEtaDMC[2];                       // eta of daughters vs pt K0s MC truth raw(0) after cuts(1)
261    TH2F   *fHistPiPEtaDMC[2];                        // eta of daughters vs pt lambda MC truth raw(0) after cuts(1)
262    TH2F   *fHistPiPiEtaDReco[2];                     // eta of daughters ESD track vs eta AliESDv0 or vs pt K0s raw(0) after cuts(1)
263    TH2F   *fHistPiPEtaDReco[2];                      // eta of daughters ESD track vs eta AliESDv0 or vs  pt (a)lambda raw(0) after cuts(1)
264
265    /*
266    //user shift
267    TH1F   *fHistUserPtShift;//monitor user defined charge/pt shift
268    */
269
270
271    
272    //---------------------------------- Variables--------------------------------------------//
273
274    //--cut options --//
275    //MC only
276    Bool_t    fMCMode;                // run over MC general yes/no
277    Bool_t    fMCTruthMode;           // MC truth selection yes/no
278    Bool_t    fSelectInjected;        // for MC with injected signals, select only injected
279
280    // Calculate centrality
281    Int_t     fUseCentrality;         // use centrality (0=off(default),1=VZERO,2=SPD)
282    Int_t     fUseCentralityBin;      // centrality bin to be used 
283    Int_t     fUseCentralityRange;    // use centrality (0=off(default),1=VZERO,2=SPD) 
284
285    //pp analysis
286    Bool_t    fAnapp;                 // flag for pp analysis
287    Bool_t    fSelSDD;                // select pp events with SDD (for pp 2.76TeV LHC11a)
288
289    //onthefly
290    Bool_t    fOntheFly;              // true if onfly finder shall be used
291
292    //vertex
293    Double_t  fVertexZCut;            // z vertex cut value
294    Bool_t    fVtxStatus;             // vertex cut on/off
295
296    //PID
297    Bool_t    fUsePID;                // use pid yes/no
298    Double_t  fNSigma;                // set nsigma value
299    Double_t  fPPIDcut;               // set max momentum for pid cut usage 
300    Bool_t    fMoreNclsThanRows;      // cut on ncls>ncrossed rows yes/no
301    Bool_t    fMoreNclsThanFindable;  // cut on ncls>nfindable cls yes/no
302    Double_t  fChi2PerClusterITS;      // cut on chi2 per ITS cluster
303    
304    //rapidity
305    Bool_t    fRapCutV0;              // use rapidity cut for V0 yes/no
306    Double_t  fRap;                   // user defined value for rapidity cut
307
308    //eta and pt
309    Double_t  fEtaCutMCDaughters;     // eta cut for MC daughters on/off
310    Double_t  fEtaCutMCDaughtersVal;  // eta cut value for MC daughters
311    Double_t  fMinPt;                 // pt min cut value 
312
313    //armenteros
314    Double_t  fAlfaCut;               // set alpha armenteros cut value
315    Double_t  fQtCut;                 // set qt armenteros cut value
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
327   
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
331   
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
334   
335    Double_t  fDecayRadXYMin;         // minmal decay radius in x-y cut value
336    Double_t  fDecayRadXYMax;         // maximal decay radius in x-y cut value
337   
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
344     
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
347
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
353
354    //KF particle chi cut
355    Double_t  fChiCutKf;              //cut value of chi2 of AliKFParticle
356
357   
358    /*
359    // option for user defined charge/pt shift
360    Bool_t     fShift;// shift yes/no
361    Double_t   fDeltaInvP;//define shift value
362    */
363  
364
365    AliAnalysisTaskV0ForRAA(const AliAnalysisTaskV0ForRAA&);
366    AliAnalysisTaskV0ForRAA&operator=(const AliAnalysisTaskV0ForRAA&);
367    
368    ClassDef(AliAnalysisTaskV0ForRAA, 0); 
369 };
370 #endif