]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/pid/AliAnalysisTaskLambdaBayes.h
Made temporary array pointers non-persistent
[u/mrichter/AliRoot.git] / PWGPP / pid / AliAnalysisTaskLambdaBayes.h
CommitLineData
a8ad4709 1#ifndef ALIANALYSISTASKLAMBDABAYES_H
2#define ALIANALYSISTASKLAMBDABayes_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
17class TH1F;
18class TH2F;
19class AliESDtrackCuts;
20
21class AliAnalysisTaskLambdaBayes : public AliAnalysisTaskSE {
22 public:
23 AliAnalysisTaskLambdaBayes();
24 AliAnalysisTaskLambdaBayes(const char *name);
25
26 virtual ~AliAnalysisTaskLambdaBayes();
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 AliAnalysisTaskLambdaBayes(const AliAnalysisTaskLambdaBayes &old);
55 AliAnalysisTaskLambdaBayes& operator=(const AliAnalysisTaskLambdaBayes &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 Int_t IsChannelValid(Float_t etaAbs);
63 virtual void SelectLambda();
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 fPtLambdaC; //! variable to fill the tree
89 Float_t fPhiLambdaC; //! variable to fill the tree
90 Float_t fEtaLambda; //! 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 fPtLambdaMin[nPtBin];// ptmin bin
108 static Float_t fPtLambdaMax[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 fNLambda; //! number of Lambda in my private selection
128 Float_t fPhiLambda[1000]; //! phi of Lambda in my private selection
129 Float_t fPtLambda[1000];//! pt of Lambda in my private selection
130 Int_t fNpPos; //! number of positive pions for Lambda selection
131 Int_t fNpNeg; //! number of negative pions for Lambda selection
132 Int_t fIPPos[1000]; //! position in the AOD stack of positive pions candidates
133 Int_t fIPNeg[1000]; //! position in the AOD stack of negative pions candidates
134 Int_t fIpP[1000]; //! position in the AOD stack of positive pions for Lambda
135 Int_t fIpN[1000]; //! position in the AOD stack of negative pions for Lambda
136 Float_t fMassLambda[1000]; //! Lambda 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(AliAnalysisTaskLambdaBayes, 2); //Analysis task for Bayesian (Lambda)
a8ad4709 144};
145
146#endif