1 #ifndef ALIANALYSISTASKLAMBDABAYES_H
2 #define ALIANALYSISTASKLAMBDABayes_H
6 #include <TClonesArray.h>
9 #include "AliPIDCombined.h"
13 #include <AliAnalysisTaskSE.h>
14 #include <AliAODEvent.h>
15 #include "AliPIDperfContainer.h"
16 #include "AliPIDperfCut.h"
20 class AliESDtrackCuts;
22 class AliAnalysisTaskLambdaBayes : public AliAnalysisTaskSE {
24 AliAnalysisTaskLambdaBayes();
25 AliAnalysisTaskLambdaBayes(const char *name);
27 virtual ~AliAnalysisTaskLambdaBayes();
29 virtual void UserCreateOutputObjects();
30 virtual void UserExec(Option_t *option);
31 virtual void Terminate(Option_t *);
33 Double_t GetVtxCut() { return fVtxCut; }
34 Double_t GetEtaCut() { return fEtaCut; }
35 Double_t GetMinPt() { return fMinPt; }
37 virtual void SetVtxCut(Double_t vtxCut){fVtxCut = vtxCut;}
38 virtual void SetEtaCut(Double_t etaCut){fEtaCut = etaCut;}
39 virtual void SetMinPt(Double_t value) {fMinPt = value;}
41 virtual void SetMC(Bool_t flag = kTRUE){fIsMC = flag;};
42 virtual void SetQA(Bool_t flag = kTRUE){fQAsw = flag;};
44 void SetTPCclusterN(Int_t ncl){fNcluster=ncl;};
46 void SetCorrEP(Bool_t flag=kTRUE) {fToEP = flag;};
48 static const Int_t nPtBin = 13; //! # pt ks bins
50 void SetFilterBit(Int_t fb){fFilterBit=fb;};
51 Int_t GetFilterBit() const {return fFilterBit;};
53 void SetTypeCollisions(Int_t type){fTypeCol = type;}; // 0=pp, 1=pPb, 2=PbPb
54 Int_t GetTypeCollisions() const {return fTypeCol;};
56 void SetPIDuserCut(AliPIDperfCut *usercut){fPIDuserCut = usercut;};
58 void SetRefSpecies(Int_t species) {fSpeciesRef = species;}
61 AliAnalysisTaskLambdaBayes(const AliAnalysisTaskLambdaBayes &old);
62 AliAnalysisTaskLambdaBayes& operator=(const AliAnalysisTaskLambdaBayes &source);
64 Int_t PassesAODCuts(AliAODv0 *myV0, AliAODEvent *tAOD,Int_t specie);
65 Int_t FindDaugheterIndex(AliAODTrack *trk);
67 virtual Float_t GetVertex(AliAODEvent* aod) const;
68 virtual void Analyze(AliAODEvent* aodEvent);
69 virtual Int_t IsChannelValid(Float_t etaAbs);
70 virtual void SelectLambda();
72 Double_t fVtxCut; // Vtx cut on z position in cm
73 Double_t fEtaCut; // Eta cut used to select particles
74 Double_t fMinPt; // Min pt - for histogram limits
76 Bool_t fIsMC; // if MC
77 Bool_t fQAsw; // if QA
79 static const Int_t nCentrBin = 9; //! # cenrality bins
85 Int_t fNcluster; // Numer of TPC cluster required
86 Int_t fFilterBit; // filter bit to be used
87 TList *fList; //! List for output objects
88 TList *fList2; //! List for output objects
89 TList *fList3; //! List for output objects
92 Float_t fCentrality; //! current centrality for the tree
93 Float_t fPsi; //! current Psi from TPC
95 Float_t fPtLambdaC; //! variable to fill the tree
96 Float_t fPhiLambdaC; //! variable to fill the tree
97 Float_t fEtaLambda; //! variable to fill the tree
98 Float_t fMassV0; //! variable to fill the tree
99 Float_t fPtKp; //! variable to fill the tree
100 Float_t fPhiKp; //! variable to fill the tree
101 Float_t fEtaKp; //! variable to fill the tree
102 Float_t fPtKn; //! variable to fill the tree
103 Float_t fPhiKn; //! variable to fill the tree
104 Float_t fEtaKn; //! variable to fill the tree
105 Int_t fPidKp; //! variable to fill the tree
106 Int_t fPidKn; //! variable to fill the tree
108 TH2F *hMatching[4]; //! matching (all, pi, k ,p)
109 TH2F *hTracking[4]; //! tracking (all, pi, k ,p)
111 TH2F *fTOFTPCsignal; //! histo with tof signal
112 TH1F *fCombsignal; //! histo with tof signal
114 static Float_t fPtLambdaMin[nPtBin];// ptmin bin
115 static Float_t fPtLambdaMax[nPtBin];// ptmax bin
118 TH2F *fPiTPC[nCentrBin];//! TPC dE/dx plot
119 TH2F *fKaTPC[nCentrBin];//! TPC dE/dx plot
120 TH2F *fPrTPC[nCentrBin];//! TPC dE/dx plot
121 TH2F *fElTPC[nCentrBin];//! TPC dE/dx plot
123 TH2F *fPiTOF[nCentrBin];//! TPC dE/dx plot
124 TH2F *fKaTOF[nCentrBin];//! TPC dE/dx plot
125 TH2F *fPrTOF[nCentrBin];//! TPC dE/dx plot
126 TH2F *fElTOF[nCentrBin];//! TPC dE/dx plot
128 AliESDtrackCuts *fCutsDaughter;
130 AliPIDCombined *fPIDCombined; //! PID combined object
131 AliPIDperfContainer* fContPid; //! results for positive
132 AliPIDperfContainer* fContPid2; //! results for negative
133 AliPIDperfContainer* fContUser; //! results for positive user cut
134 AliPIDperfContainer* fContUser2; //! results for negative user cut
136 Int_t fNLambda; //! number of Lambda in my private selection
137 Float_t fPhiLambda[1000]; //! phi of Lambda in my private selection
138 Float_t fPtLambda[1000];//! pt of Lambda in my private selection
139 Int_t fNpPos; //! number of positive pions for Lambda selection
140 Int_t fNpNeg; //! number of negative pions for Lambda selection
141 Int_t fIPPos[1000]; //! position in the AOD stack of positive pions candidates
142 Int_t fIPNeg[1000]; //! position in the AOD stack of negative pions candidates
143 Int_t fIpP[1000]; //! position in the AOD stack of positive pions for Lambda
144 Int_t fIpN[1000]; //! position in the AOD stack of negative pions for Lambda
145 Float_t fMassLambda[1000]; //! Lambda mass
147 TH1F *fHmismTOF; //! TOF mismatch distribution
148 TH1D *fHchannelTOFdistr; //! TOF channel distance w.r.t. IP
150 Int_t fTypeCol; // type of collision system (0=pp, 1=pPb, 2=PbPb)
151 AliPIDperfCut *fPIDuserCut; // pid user cut to be cheked
153 Bool_t fToEP; // correlate to TPC EP
154 Int_t fSpeciesRef; // reference species (default = 4, proton)
156 ClassDef(AliAnalysisTaskLambdaBayes, 5); //Analysis task for Bayesian (Lambda)