]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/pid/AliAnalysisTaskK0sBayes.h
macro to run standalone ESD filtering
[u/mrichter/AliRoot.git] / PWGPP / pid / AliAnalysisTaskK0sBayes.h
1 #ifndef ALIANALYSISTASKK0SBAYES_H
2 #define ALIANALYSISTASKK0SBayes_H
3
4 // ROOT includes
5 #include <TObject.h>
6 #include <TClonesArray.h>
7 #include <TList.h>
8 #include <TProfile.h>
9 #include "AliPIDCombined.h"
10 #include "TF1.h"
11
12 // AliRoot includes
13 #include <AliAnalysisTaskSE.h>
14 #include <AliAODEvent.h>
15 #include "AliPIDperfContainer.h"
16 #include "AliPIDperfCut.h"
17
18 class TH1F;
19 class TH2F;
20 class AliESDtrackCuts;
21
22 class AliAnalysisTaskK0sBayes : public AliAnalysisTaskSE {
23  public:
24   AliAnalysisTaskK0sBayes();
25   AliAnalysisTaskK0sBayes(const char *name);
26
27   virtual ~AliAnalysisTaskK0sBayes();
28
29   virtual void   UserCreateOutputObjects();
30   virtual void   UserExec(Option_t *option);
31   virtual void   Terminate(Option_t *); 
32   
33   Double_t GetVtxCut() { return fVtxCut; }   
34   Double_t GetEtaCut() { return fEtaCut; }     
35   Double_t GetMinPt() { return fMinPt; }   
36
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;}   
40
41   virtual void SetMC(Bool_t flag = kTRUE){fIsMC = flag;};
42   virtual void SetQA(Bool_t flag = kTRUE){fQAsw = flag;};
43
44   void SetTPCclusterN(Int_t ncl){fNcluster=ncl;};
45
46   void SetCorrEP(Bool_t flag=kTRUE) {fToEP = flag;};
47
48   static const Int_t nPtBin = 13;  //! # pt ks bins
49
50   void SetFilterBit(Int_t fb){fFilterBit=fb;};
51   Int_t GetFilterBit() const {return fFilterBit;};
52
53   void SetTypeCollisions(Int_t type){fTypeCol = type;}; // 0=pp, 1=pPb, 2=PbPb
54   Int_t GetTypeCollisions() const {return fTypeCol;}; 
55
56   void SetPIDuserCut(AliPIDperfCut *usercut){fPIDuserCut = usercut;};
57
58   void SetRefSpecies(Int_t species) {fSpeciesRef = species;}
59
60  private:
61   AliAnalysisTaskK0sBayes(const AliAnalysisTaskK0sBayes &old); 
62   AliAnalysisTaskK0sBayes& operator=(const AliAnalysisTaskK0sBayes &source); 
63
64   Int_t PassesAODCuts(AliAODv0 *myV0, AliAODEvent *tAOD,Int_t specie);
65   Int_t FindDaugheterIndex(AliAODTrack *trk);
66
67   virtual Float_t GetVertex(AliAODEvent* aod) const;
68   virtual void Analyze(AliAODEvent* aodEvent); 
69   virtual void SelectK0s();
70   virtual Int_t IsChannelValid(Float_t etaAbs);
71
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
75
76   Bool_t fIsMC; // if MC
77   Bool_t fQAsw;   // if QA
78
79   static const Int_t nCentrBin = 9; //! # cenrality bins
80
81   //
82   // Cuts and options
83   //
84
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
90
91   //
92   Float_t fCentrality;  //! current centrality for the tree
93   Float_t fPsi;         //! current Psi from TPC
94
95   Float_t fPtKs;   //! variable to fill the tree
96   Float_t fPhiKs;  //! variable to fill the tree
97   Float_t fEtaKs;  //! 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
107
108   TH2F *hMatching[4]; //! matching (all, pi, k ,p)
109   TH2F *hTracking[4]; //! tracking (all, pi, k ,p)
110  
111   TH2F *fTOFTPCsignal;   //! histo with tof signal
112   TH1F *fCombsignal;   //! histo with tof signal
113
114   static Float_t fPtKsMin[nPtBin];// ptmin bin
115   static Float_t fPtKsMax[nPtBin];// ptmax bin
116
117   // QA plots
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
122
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
127
128   AliESDtrackCuts *fCutsDaughter;
129
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
135
136   Int_t fNK0s; //! number of K0s in my private selection
137   Float_t fPhiK0s[1000]; //! phi of K0s in my private selection
138   Float_t fPtK0s[1000];//! pt of K0s in my private selection
139   Int_t fNpiPos; //! number of positive pions for K0s selection
140   Int_t fNpiNeg; //! number of negative pions for K0s selection
141   Int_t fIPiPos[1000]; //! position in the AOD stack of positive pions candidates
142   Int_t fIPiNeg[1000]; //! position in the AOD stack of negative pions candidates
143   Int_t fIpiP[1000]; //! position in the AOD stack of positive pions for K0s
144   Int_t fIpiN[1000]; //! position in the AOD stack of negative pions for K0s
145   Float_t fMassKs[1000]; //! K0s mass
146
147   TH1F *fHmismTOF; //! TOF mismatch distribution
148   TH1D *fHchannelTOFdistr; //! TOF channel distance w.r.t. IP
149
150   Int_t fTypeCol; // type of collision system (0=pp, 1=pPb, 2=PbPb)
151   AliPIDperfCut *fPIDuserCut;  // pid user cut to be cheked
152
153   Bool_t fToEP;        // correlate to TPC EP
154
155   Int_t fSpeciesRef;    // reference species (default = 2, pion)
156   ClassDef(AliAnalysisTaskK0sBayes, 5);    //Analysis task for bayesian (K0s)
157 };
158
159 #endif