]>
Commit | Line | Data |
---|---|---|
a8ad4709 | 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 | ||
17 | class TH1F; | |
18 | class TH2F; | |
19 | class AliESDtrackCuts; | |
20 | ||
21 | class AliAnalysisTaskK0sBayes : public AliAnalysisTaskSE { | |
22 | public: | |
23 | AliAnalysisTaskK0sBayes(); | |
24 | AliAnalysisTaskK0sBayes(const char *name); | |
25 | ||
26 | virtual ~AliAnalysisTaskK0sBayes(); | |
27 | ||
28 | virtual void UserCreateOutputObjects(); | |
29 | virtual void UserExec(Option_t *option); | |
30 | virtual void Terminate(Option_t *); | |
31 | ||
32 | Double_t GetVtxCut() { return fVtxCut; } | |
33 | Double_t GetEtaCut() { return fEtaCut; } | |
34 | Double_t GetMinPt() { return fMinPt; } | |
35 | ||
36 | virtual void SetVtxCut(Double_t vtxCut){fVtxCut = vtxCut;} | |
37 | virtual void SetEtaCut(Double_t etaCut){fEtaCut = etaCut;} | |
38 | virtual void SetMinPt(Double_t value) {fMinPt = value;} | |
39 | ||
40 | virtual void SetMC(Bool_t flag = kTRUE){fIsMC = flag;}; | |
41 | virtual void SetQA(Bool_t flag = kTRUE){fQAsw = flag;}; | |
42 | ||
43 | void SetTPCclusterN(Int_t ncl){fNcluster=ncl;}; | |
44 | ||
45 | static const Int_t nPtBin = 13; //! # pt ks bins | |
46 | ||
47 | void SetFilterBit(Int_t fb){fFilterBit=fb;}; | |
48 | Int_t GetFilterBit() const {return fFilterBit;}; | |
49 | ||
9c668341 | 50 | void SetTypeCollisions(Int_t type){fTypeCol = type;}; // 0=pp, 1=pPb, 2=PbPb |
51 | Int_t GetTypeCollisions() const {return fTypeCol;}; | |
52 | ||
a8ad4709 | 53 | private: |
54 | AliAnalysisTaskK0sBayes(const AliAnalysisTaskK0sBayes &old); | |
55 | AliAnalysisTaskK0sBayes& operator=(const AliAnalysisTaskK0sBayes &source); | |
56 | ||
57 | Int_t PassesAODCuts(AliAODv0 *myV0, AliAODEvent *tAOD,Int_t specie); | |
58 | Int_t FindDaugheterIndex(AliAODTrack *trk); | |
59 | ||
60 | virtual Float_t GetVertex(AliAODEvent* aod) const; | |
61 | virtual void Analyze(AliAODEvent* aodEvent); | |
62 | virtual void SelectK0s(); | |
63 | virtual Int_t IsChannelValid(Float_t etaAbs); | |
64 | ||
65 | Double_t fVtxCut; // Vtx cut on z position in cm | |
66 | Double_t fEtaCut; // Eta cut used to select particles | |
67 | Double_t fMinPt; // Min pt - for histogram limits | |
68 | ||
69 | Bool_t fIsMC; // if MC | |
70 | Bool_t fQAsw; // if QA | |
71 | ||
72 | static const Int_t nCentrBin = 9; //! # cenrality bins | |
73 | ||
74 | // | |
75 | // Cuts and options | |
76 | // | |
77 | ||
78 | Int_t fNcluster; // Numer of TPC cluster required | |
79 | Int_t fFilterBit; // filter bit to be used | |
80 | TList *fList; //! List for output objects | |
81 | TList *fList2; //! List for output objects | |
82 | TList *fList3; //! List for output objects | |
83 | ||
84 | // | |
85 | Float_t fCentrality; //! current centrality for the tree | |
86 | Float_t fPsi; //! current Psi from TPC | |
87 | ||
88 | Float_t fPtKs; //! variable to fill the tree | |
89 | Float_t fPhiKs; //! variable to fill the tree | |
90 | Float_t fEtaKs; //! variable to fill the tree | |
91 | Float_t fMassV0; //! variable to fill the tree | |
92 | Float_t fPtKp; //! variable to fill the tree | |
93 | Float_t fPhiKp; //! variable to fill the tree | |
94 | Float_t fEtaKp; //! variable to fill the tree | |
95 | Float_t fPtKn; //! variable to fill the tree | |
96 | Float_t fPhiKn; //! variable to fill the tree | |
97 | Float_t fEtaKn; //! variable to fill the tree | |
98 | Int_t fPidKp; //! variable to fill the tree | |
99 | Int_t fPidKn; //! variable to fill the tree | |
100 | ||
101 | TH2F *hMatching[4]; //! matching (all, pi, k ,p) | |
102 | TH2F *hTracking[4]; //! tracking (all, pi, k ,p) | |
103 | ||
104 | TH2F *fTOFTPCsignal; //! histo with tof signal | |
105 | TH1F *fCombsignal; //! histo with tof signal | |
106 | ||
107 | static Float_t fPtKsMin[nPtBin];// ptmin bin | |
108 | static Float_t fPtKsMax[nPtBin];// ptmax bin | |
109 | ||
110 | // QA plots | |
111 | TH2F *fPiTPC[nCentrBin];//! TPC dE/dx plot | |
112 | TH2F *fKaTPC[nCentrBin];//! TPC dE/dx plot | |
113 | TH2F *fPrTPC[nCentrBin];//! TPC dE/dx plot | |
114 | TH2F *fElTPC[nCentrBin];//! TPC dE/dx plot | |
115 | ||
116 | TH2F *fPiTOF[nCentrBin];//! TPC dE/dx plot | |
117 | TH2F *fKaTOF[nCentrBin];//! TPC dE/dx plot | |
118 | TH2F *fPrTOF[nCentrBin];//! TPC dE/dx plot | |
119 | TH2F *fElTOF[nCentrBin];//! TPC dE/dx plot | |
120 | ||
121 | AliESDtrackCuts *fCutsDaughter; | |
122 | ||
123 | AliPIDCombined *fPIDCombined; //! PID combined object | |
124 | AliPIDperfContainer* fContPid; //! results for positive | |
125 | AliPIDperfContainer* fContPid2; //! results for negative | |
126 | ||
127 | Int_t fNK0s; //! number of K0s in my private selection | |
128 | Float_t fPhiK0s[1000]; //! phi of K0s in my private selection | |
129 | Float_t fPtK0s[1000];//! pt of K0s in my private selection | |
130 | Int_t fNpiPos; //! number of positive pions for K0s selection | |
131 | Int_t fNpiNeg; //! number of negative pions for K0s selection | |
132 | Int_t fIPiPos[1000]; //! position in the AOD stack of positive pions candidates | |
133 | Int_t fIPiNeg[1000]; //! position in the AOD stack of negative pions candidates | |
134 | Int_t fIpiP[1000]; //! position in the AOD stack of positive pions for K0s | |
135 | Int_t fIpiN[1000]; //! position in the AOD stack of negative pions for K0s | |
136 | Float_t fMassKs[1000]; //! K0s mass | |
137 | ||
138 | TH1F *fHmismTOF; //! TOF mismatch distribution | |
139 | TH1D *fHchannelTOFdistr; //! TOF channel distance w.r.t. IP | |
140 | ||
9c668341 | 141 | Int_t fTypeCol; // type of collision system (0=pp, 1=pPb, 2=PbPb) |
142 | ||
143 | ClassDef(AliAnalysisTaskK0sBayes, 2); //Analysis task for bayesian (K0s) | |
a8ad4709 | 144 | }; |
145 | ||
146 | #endif |