1 #ifndef ALIANALYSISTASKBF_CXX
\r
2 #define ALIANALYSISTASKBF_CXX
\r
4 // Analysis task for the BF code
\r
5 // Authors: Panos Cristakoglou@cern.ch
\r
13 class AliESDtrackCuts;
\r
15 #include "AliAnalysisTaskSE.h"
\r
16 #include "AliBalance.h"
\r
19 class AliAnalysisTaskBF : public AliAnalysisTaskSE {
\r
21 AliAnalysisTaskBF(const char *name = "AliAnalysisTaskBF");
\r
22 virtual ~AliAnalysisTaskBF();
\r
25 virtual void UserCreateOutputObjects();
\r
26 virtual void UserExec(Option_t *option);
\r
27 virtual void FinishTaskOutput();
\r
28 virtual void Terminate(Option_t *);
\r
30 void SetAnalysisObject(AliBalance *const analysis) {
\r
31 fBalance = analysis;
\r
33 void SetShufflingObject(AliBalance *const analysisShuffled) {
\r
34 fRunShuffling = kTRUE;
\r
35 fShuffledBalance = analysisShuffled;
\r
37 void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
\r
38 fESDtrackCuts = trackCuts;}
\r
39 void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
\r
45 //==============AOD analysis==============//
\r
46 void SetAODtrackCutBit(Int_t bit){
\r
47 nAODtrackCutBit = bit;
\r
50 void SetKinematicsCutsAOD(Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax){
\r
58 void SetExtraDCACutsAOD(Double_t DCAxy, Double_t DCAz){
\r
63 void SetExtraTPCCutsAOD(Double_t maxTPCchi2, Int_t minNClustersTPC){
\r
64 fTPCchi2Cut = maxTPCchi2;
\r
65 fNClustersTPCCut = minNClustersTPC;
\r
68 //==============MC analysis==============//
\r
69 void SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,
\r
70 Double_t etamin, Double_t etamax){
\r
71 fPtMin = ptmin; fPtMax = ptmax;
\r
72 fEtaMin = etamin; fEtaMax = etamax;
\r
75 void ExcludeResonancesInMC() {fExcludeResonancesInMC = kTRUE;}
\r
77 void SetPDGCode(Int_t gPdgCode) {
\r
78 fUseMCPdgCode = kTRUE;
\r
79 fPDGCodeToBeAnalyzed = gPdgCode;
\r
83 void SetCentralityEstimator(const char* centralityEstimator) {fCentralityEstimator = centralityEstimator;}
\r
84 const char* GetCentralityEstimator(void) {return fCentralityEstimator;}
\r
85 void SetCentralityPercentileRange(Double_t min, Double_t max) {
\r
86 fUseCentrality = kTRUE;
\r
87 fCentralityPercentileMin=min;
\r
88 fCentralityPercentileMax=max;
\r
90 void SetImpactParameterRange(Double_t min, Double_t max) {
\r
91 fUseCentrality = kTRUE;
\r
92 fImpactParameterMin=min;
\r
93 fImpactParameterMax=max;
\r
97 void SetMultiplicityRange(Int_t min, Int_t max) {
\r
98 fUseMultiplicity = kTRUE;
\r
99 fNumberOfAcceptedTracksMin = min;
\r
100 fNumberOfAcceptedTracksMax = max;}
\r
102 void UseOfflineTrigger() {fUseOfflineTrigger = kTRUE;}
\r
104 //Acceptance filter
\r
105 void SetAcceptanceParameterization(TF1 *parameterization) {
\r
106 fAcceptanceParameterization = parameterization;}
\r
109 AliBalance *fBalance; //BF object
\r
110 Bool_t fRunShuffling;//run shuffling or not
\r
111 AliBalance *fShuffledBalance; //BF object (shuffled)
\r
112 TList *fList; //fList object
\r
113 TList *fListBF; //fList object
\r
114 TList *fListBFS; //fList object
\r
116 TH1F *fHistEventStats; //event stats
\r
117 TH2F *fHistCentStats; //centrality stats
\r
118 TH1F *fHistTriggerStats; //trigger stats
\r
119 TH1F *fHistTrackStats; //Track filter bit stats
\r
120 TH1F *fHistVx; //x coordinate of the primary vertex
\r
121 TH1F *fHistVy; //y coordinate of the primary vertex
\r
122 TH1F *fHistVz; //z coordinate of the primary vertex
\r
131 TH2F *fHistRefTracks;
\r
133 AliESDtrackCuts *fESDtrackCuts; //ESD track cuts
\r
135 TString fCentralityEstimator; //"V0M","TRK","TKL","ZDC","FMD"
\r
136 Bool_t fUseCentrality;//use the centrality (PbPb) or not (pp)
\r
137 Double_t fCentralityPercentileMin;//centrality percentile min
\r
138 Double_t fCentralityPercentileMax;//centrality percentile max
\r
139 Double_t fImpactParameterMin;//impact parameter min (used for MC)
\r
140 Double_t fImpactParameterMax;//impact parameter max (used for MC)
\r
142 Bool_t fUseMultiplicity;//use the multiplicity cuts
\r
143 Int_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp)
\r
144 Int_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp)
\r
145 TH1F *fHistNumberOfAcceptedTracks;//hisot to store the number of accepted tracks
\r
147 Bool_t fUseOfflineTrigger;//Usage of the offline trigger selection
\r
149 Double_t fVxMax;//vxmax
\r
150 Double_t fVyMax;//vymax
\r
151 Double_t fVzMax;//vzmax
\r
153 Int_t nAODtrackCutBit;//track cut bit from track selection (only used for AODs)
\r
155 Double_t fPtMin;//only used for AODs
\r
156 Double_t fPtMax;//only used for AODs
\r
157 Double_t fEtaMin;//only used for AODs
\r
158 Double_t fEtaMax;//only used for AODs
\r
160 Double_t fDCAxyCut;//only used for AODs
\r
161 Double_t fDCAzCut;//only used for AODs
\r
163 Double_t fTPCchi2Cut;//only used for AODs
\r
164 Int_t fNClustersTPCCut;//only used for AODs
\r
166 TF1 *fAcceptanceParameterization;//acceptance filter used for MC
\r
168 Bool_t fExcludeResonancesInMC;//flag to exclude the resonances' decay products from the MC analysis
\r
169 Bool_t fUseMCPdgCode; //Boolean to analyze a set of particles in MC
\r
170 Int_t fPDGCodeToBeAnalyzed; //Analyze a set of particles in MC
\r
172 AliAnalysisTaskBF(const AliAnalysisTaskBF&); // not implemented
\r
173 AliAnalysisTaskBF& operator=(const AliAnalysisTaskBF&); // not implemented
\r
175 ClassDef(AliAnalysisTaskBF, 5); // example of analysis
\r