AliPhysics  e59a9ba (e59a9ba)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskVnV0.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKVNV0_H
2 #define ALIANALYSISTASKVNV0_H
3 
4 // ROOT includes
5 #include <TObject.h>
6 #include <TClonesArray.h>
7 #include "TTree.h"
8 #include <TList.h>
9 #include <TProfile.h>
10 
11 // AliRoot includes
12 #include <AliAnalysisTaskSE.h>
13 #include <AliAODEvent.h>
14 #include "AliFlowBayesianPID.h"
15 #include "AliFlowVZEROResults.h"
16 #include "AliFlowVZEROQA.h"
17 
18 class TH2F;
19 class AliESDtrackCuts;
20 class TProfile2D;
21 
22 class AliAnalysisTaskVnV0 : public AliAnalysisTaskSE {
23  public:
25  AliAnalysisTaskVnV0(const char *name);
26 
27  virtual ~AliAnalysisTaskVnV0();
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  virtual void SetMinDistV0(Double_t value){fMinDistV0=value;}
41  virtual void SetMaxDistV0(Double_t value){fMaxDistV0=value;}
42  virtual void SetV2(Bool_t val){fV2 = val;};
43  virtual void SetV3(Bool_t val){fV3 = val;};
44 
45  virtual void SetMC(Bool_t flag = kTRUE){fIsMC = flag;};
46  virtual void SetQA(Bool_t flag = kTRUE){fQAsw = flag;};
47 
48  void OpenInfoCalbration(Int_t run);
49 
50  void SetFillDCAinfo(Bool_t flag=kTRUE){fFillDCA = flag;};
51 
52  void SetModulationDEDx(Bool_t flag=kTRUE){fModulationDEDx=flag;};
53 
54  void SetAfter2011(Bool_t stat=kTRUE){fIsAfter2011=stat;};
55  Bool_t GetAfter2011() const {return fIsAfter2011;};
56 
57  void SetTPCclusterN(Int_t ncl){fNcluster=ncl;};
58  static Bool_t IsPsiComputed(){return fgIsPsiComputed;};
59  static Float_t GetPsi2V0A(){return fgPsi2v0a;};
60  static Float_t GetPsi2V0C(){return fgPsi2v0c;};
61  static Float_t GetPsi2TPC(){return fgPsi2tpc;};
62  static Float_t GetPsi3V0A(){return fgPsi3v0a;};
63  static Float_t GetPsi3V0C(){return fgPsi3v0c;};
64  static Float_t GetPsi3TPC(){return fgPsi3tpc;};
65  static Float_t GetPsi2V0AMC(){return fgPsi2v0aMC;};
66  static Float_t GetPsi2V0CMC(){return fgPsi2v0cMC;};
67  static Float_t GetPsi2TPCMC(){return fgPsi2tpcMC;};
68  static Float_t GetPsi3V0AMC(){return fgPsi3v0aMC;};
69  static Float_t GetPsi3V0CMC(){return fgPsi3v0cMC;};
70  static Float_t GetPsi3TPCMC(){return fgPsi3tpcMC;};
71 
72  private:
75 
76  Int_t PassesAODCuts(AliAODv0 *myV0, AliAODEvent *tAOD,Int_t specie);
77 
78  static Bool_t fgIsPsiComputed; // flag which return if event was processed
79  static Float_t fgPsi2v0a,fgPsi2v0c,fgPsi2tpc; // current Psi2
80  static Float_t fgPsi3v0a,fgPsi3v0c,fgPsi3tpc; // current Psi3
81  static Float_t fgPsi2v0aMC,fgPsi2v0cMC,fgPsi2tpcMC; // current Psi2
82  static Float_t fgPsi3v0aMC,fgPsi3v0cMC,fgPsi3tpcMC; // current Psi3
83 
84  virtual Float_t GetVertex(AliAODEvent* aod) const;
85  virtual void Analyze(AliAODEvent* aodEvent, Float_t v0Centr);
86  virtual void SelectK0s();
87 
88  Double_t fVtxCut; // Vtx cut on z position in cm
89  Double_t fEtaCut; // Eta cut used to select particles
90  Double_t fMinPt; // Min pt - for histogram limits
91  Double_t fMinDistV0; // Minimal distance for V0s
92  Double_t fMaxDistV0; // Maximal distance for V0s
93 
94  Bool_t fV2; // switch to set the armonics
95  Bool_t fV3; // switch to set the armonics
96  Bool_t fIsMC; // if MC
97  Bool_t fQAsw; // if QA
98  Bool_t fIsAfter2011; // switch for 2011 and later runs
99 
100  static const Int_t nCentrBin = 9;
101 
102  //
103  // Cuts and options
104  //
105 
106  Int_t fRun;
107 
108  Int_t fNcluster; // Numer of TPC cluster required
109  TList *fList;
110  TList *fList2;
111  TList *fList3;
112  TList *fList4;
113  //
114  // Output objects
115  TProfile *fMultV0;
116  Float_t fV0Cpol;
117  Float_t fV0Apol;
118  Float_t fMeanQ[nCentrBin][2][2];
119  Float_t fWidthQ[nCentrBin][2][2];
120  Float_t fMeanQv3[nCentrBin][2][2];
121  Float_t fWidthQv3[nCentrBin][2][2];
122 
123  TProfile *fHResTPCv0A2;
124  TProfile *fHResTPCv0C2;
125  TProfile *fHResv0Cv0A2;
126  TProfile *fHResTPCv0A3;
127  TProfile *fHResTPCv0C3;
128  TProfile *fHResv0Cv0A3;
129 
130  TH2F *fPhiRPv0A;
131  TH2F *fPhiRPv0C;
132  TH2F *fPhiRPv0Av3;
133  TH2F *fPhiRPv0Cv3;
134 
139 
141 
142  TTree *fTree;
143 
144  Float_t fCentrality;
145  Float_t evPlAngV0ACor2;
146  Float_t evPlAngV0CCor2;
147  Float_t evPlAng2;
148  Float_t evPlAngV0ACor3;
149  Float_t evPlAngV0CCor3;
150  Float_t evPlAng3;
151 
157 
158  // MC
159  TProfile *fHResMA2;
160  TProfile *fHResMC2;
161  TProfile *fHResAC2;
162  TProfile *fHResMA3;
163  TProfile *fHResMC3;
164  TProfile *fHResAC3;
165 
170 
171  Bool_t fFillDCA; // require to fill also DCA info
172  TH2D *fHdcaPt[nCentrBin][7];
173  TH2D *fHdcaPtSec[nCentrBin][7];
175 
176  Bool_t fModulationDEDx; //add a modulation on the dE/dx response w.r.t. EP (kFALSE default)
177 
178  Float_t fZvtx;
179  Int_t fNK0s;
180  Float_t fPhiK0s[1000];
181  Float_t fPtK0s[1000];
182  Int_t fNpiPos;
183  Int_t fNpiNeg;
184  Int_t fIPiPos[1000];
185  Int_t fIPiNeg[1000];
186 
187  TH2D *fHKsPhi;
188  TH2D *fHKsPhiEP;
189  TH2D *fHK0sMass;
190  TH2D *fHK0sMass2;
191  TH2D *fHK0vsLambda;
192  TProfile2D *fHctauPtEP;
193  TH2F *fHctauAt1EP;
194 
195  AliESDtrackCuts *fCutsDaughter; // daughter cut for K0s standard selection
196  ClassDef(AliAnalysisTaskVnV0, 8); //Analysis task v2 and v3 analysis on AOD
197 };
198 
199 #endif
void SetFillDCAinfo(Bool_t flag=kTRUE)
Bool_t fModulationDEDx
QA pid object.
static Float_t GetPsi2TPCMC()
AliFlowVZEROResults * fContAllChargesV0Cv3
results
Int_t fNpiPos
pt of K0s in my private selection
Float_t fPhiK0s[1000]
number of K0s in my private selection
TProfile * fHResTPCv0C3
also for v3
TProfile * fHResMA3
TProfile for subevent resolution (output)
Float_t fWidthQv3[nCentrBin][2][2]
also for v3
static Float_t GetPsi3V0CMC()
static Float_t fgPsi3tpcMC
static Float_t GetPsi3TPC()
static Float_t fgPsi2v0c
static Float_t fgPsi2v0a
virtual void SetQA(Bool_t flag=kTRUE)
Float_t evPlAngV0ACor2
current centrality for the tree
TList * fList2
List for output objects.
static Bool_t fgIsPsiComputed
TProfile * fHResAC2
TProfile for subevent resolution (output)
TProfile * fHResTPCv0A2
...
static Float_t fgPsi2tpcMC
Float_t fPtK0s[1000]
phi of K0s in my private selection
Float_t evPlAngV0CCor2
subevent EPs (v2)
virtual void SetV3(Bool_t val)
Int_t fNpiNeg
number of positive pions for K0s selection
virtual void UserCreateOutputObjects()
virtual void Terminate(Option_t *)
static Float_t GetPsi3TPCMC()
virtual void Analyze(AliAODEvent *aodEvent, Float_t v0Centr)
Float_t evPlAng2
subevent EPs (v2)
void OpenInfoCalbration(Int_t run)
virtual void SetVtxCut(Double_t vtxCut)
ClassDef(AliAnalysisTaskVnV0, 8)
virtual void SetEtaCut(Double_t etaCut)
TProfile * fHResMA2
results
static Float_t GetPsi2TPC()
Int_t PassesAODCuts(AliAODv0 *myV0, AliAODEvent *tAOD, Int_t specie)
static Float_t fgPsi2tpc
TH2F * fHctauAt1EP
ctau vs DeltaPhi,pt
TH2D * fHdcaPt[nCentrBin][7]
Float_t fWidthQ[nCentrBin][2][2]
and recentering
static Float_t fgPsi3tpc
static Float_t fgPsi2v0cMC
TProfile * fHResv0Cv0A2
TProfile for subevent resolution (output)
TList * fList4
List for output objects.
AliFlowVZEROResults * fContAllChargesMCC
results
TH2D * fHK0vsLambda
K0s mass vs. pt (standard selection)
TProfile * fHResTPCv0C2
TProfile for subevent resolution (output)
static Float_t GetPsi3V0A()
virtual void SetMinDistV0(Double_t value)
Float_t evPlAng3
subevent EPs (v3)
TTree * fTree
PID class for the Bayesian probabilities.
AliFlowVZEROResults * fContAllChargesMC
results
TH2D * fHK0sMass
EP distribution.
TH2D * fHdcaPtSec[nCentrBin][7]
DCA distribution (for MC primary)
TProfile * fHResMC3
also for v3
TH2D * fHKsPhiEP
Ks phi distribution.
static Float_t GetPsi2V0C()
virtual void SetMaxDistV0(Double_t value)
Int_t fNK0s
primary vertex z coordinate
AliFlowVZEROResults * fContAllChargesMCAv3
results
static Float_t GetPsi2V0A()
Int_t fIPiPos[1000]
number of negative pions for K0s selection
void SetTPCclusterN(Int_t ncl)
virtual void SetMC(Bool_t flag=kTRUE)
void SetAfter2011(Bool_t stat=kTRUE)
static Float_t fgPsi2v0aMC
static Float_t GetPsi3V0C()
AliFlowVZEROResults * fContAllChargesV0A
subevent EPs (v3)
TList * fList3
List for output objects.
TH2F * fPhiRPv0C
EP distribution vs. centrality (v2)
AliFlowVZEROQA * fQAv3
QA histos (v2)
TProfile * fHResAC3
also for v3
Float_t fMeanQ[nCentrBin][2][2]
loaded by OADB
AliFlowVZEROQA * fQA
EP distribution vs. centrality (v3)
TH2F * fPhiRPv0Cv3
EP distribution vs. centrality (v3)
Float_t evPlAngV0CCor3
subevent EPs (v3)
Int_t fNcluster
current run checked to load VZERO calibrations
TProfile * fHResv0Cv0A3
also for v3
AliFlowVZEROResults * fContAllChargesMCCv3
results
Int_t fRun
cenrality bins
Float_t evPlAngV0ACor3
subevent EPs (v2)
Int_t fIPiNeg[1000]
position in the AOD stack of positive pions for K0s
AliFlowVZEROQA * fQA2v3
QA histos (v3)
static Float_t fgPsi3v0aMC
AliFlowVZEROResults * fContAllChargesV0C
results
AliFlowVZEROResults * fContAllChargesMCA
also for v3
static Float_t GetPsi3V0AMC()
TProfile * fHResMC2
TProfile for subevent resolution (output)
TProfile * fHResTPCv0A3
TProfile for subevent resolution (output)
Float_t fCentrality
tree to debug EP (if needed)
Bool_t GetAfter2011() const
static Float_t fgPsi3v0cMC
TH2D * fHK0sMass2
K0s mass vs. pt (private selection)
AliFlowVZEROResults * fContAllChargesV0Av3
results
virtual void UserExec(Option_t *option)
virtual void SetV2(Bool_t val)
TProfile2D * fHctauPtEP
K0s vs lambda mass (in private K0s selection)
static Float_t GetPsi2V0AMC()
static Bool_t IsPsiComputed()
Float_t fV0Apol
loaded by OADB
AliFlowVZEROResults * fContQApid
DCA distribution (for MC secondary, not used for data)
TH2F * fPhiRPv0A
also for v3
AliESDtrackCuts * fCutsDaughter
ctau vs. DeltaPhi at 1 GeV/c
AliFlowBayesianPID * fPID
QA histos (v3)
static Float_t fgPsi3v0c
static Float_t GetPsi2V0CMC()
virtual Float_t GetVertex(AliAODEvent *aod) const
void SetModulationDEDx(Bool_t flag=kTRUE)
AliFlowVZEROQA * fQA2
QA histos (v2)
TH2F * fPhiRPv0Av3
EP distribution vs. centrality (v2)
AliAnalysisTaskVnV0 & operator=(const AliAnalysisTaskVnV0 &source)
Float_t fMeanQv3[nCentrBin][2][2]
...
static Float_t fgPsi3v0a
Float_t fV0Cpol
object containing VZERO calibration information
virtual void SetMinPt(Double_t value)
TH2D * fHKsPhi
position in the AOD stack of negative pions for K0s
TProfile * fMultV0
List for output objects.
static const Int_t nCentrBin