Triggered Balance Function analysis (multidimensions)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliAnalysisTaskTriggeredBF.h
CommitLineData
f8b2d882 1#ifndef ALIANALYSISTASKTRIGGEREDBF_CXX\r
2#define ALIANALYSISTASKTRIGGEREDBF_CXX\r
3\r
4// Analysis task for the TriggeredBF code\r
5// Authors: Panos Cristakoglou@cern.ch, m.weber@cern.ch\r
6\r
7class TList;\r
8class TH1F;\r
9class TH2F;\r
10class TF1;\r
11\r
12class AliBalanceTriggered;\r
13class AliESDtrackCuts;\r
14\r
15#include "AliAnalysisTaskSE.h"\r
16#include "AliBalanceTriggered.h"\r
17\r
18 \r
19\r
20class AliAnalysisTaskTriggeredBF : public AliAnalysisTaskSE {\r
21 public:\r
22 AliAnalysisTaskTriggeredBF(const char *name = "AliAnalysisTaskTriggeredBF");\r
23 virtual ~AliAnalysisTaskTriggeredBF(); \r
24 \r
25 \r
26 virtual void UserCreateOutputObjects();\r
27 virtual void UserExec(Option_t *option);\r
28 virtual void UserExecMix(Option_t*);\r
29 virtual void FinishTaskOutput();\r
30 virtual void Terminate(Option_t *);\r
31\r
32 void SetAnalysisObject(AliBalanceTriggered *const analysis) {\r
33 fBalance = analysis;\r
34 }\r
35 void SetShufflingObject(AliBalanceTriggered *const analysisShuffled) {\r
36 fRunShuffling = kTRUE;\r
37 fShuffledBalance = analysisShuffled;\r
38 }\r
39 \r
40 void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {\r
41 fVxMax = vx;\r
42 fVyMax = vy;\r
43 fVzMax = vz;\r
44 }\r
45\r
46 //==============AOD analysis==============//\r
47 void SetAODtrackCutBit(Int_t bit){\r
48 nAODtrackCutBit = bit;\r
49 }\r
50\r
51 void SetKinematicsCutsAOD(Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax){\r
52 fPtMin = ptmin;\r
53 fPtMax = ptmax;\r
54 fEtaMin = etamin;\r
55 fEtaMax = etamax;\r
56\r
57 }\r
58\r
59 void SetExtraDCACutsAOD(Double_t DCAxy, Double_t DCAz){\r
60 fDCAxyCut = DCAxy;\r
61 fDCAzCut = DCAz;\r
62 }\r
63\r
64 void SetExtraTPCCutsAOD(Double_t maxTPCchi2, Int_t minNClustersTPC){\r
65 fTPCchi2Cut = maxTPCchi2;\r
66 fNClustersTPCCut = minNClustersTPC;\r
67 }\r
68\r
69 //Centrality\r
70 void SetCentralityEstimator(const char* centralityEstimator) {fCentralityEstimator = centralityEstimator;}\r
71 const char* GetCentralityEstimator(void) {return fCentralityEstimator;}\r
72 void SetCentralityPercentileRange(Double_t min, Double_t max) { \r
73 fUseCentrality = kTRUE;\r
74 fCentralityPercentileMin=min;\r
75 fCentralityPercentileMax=max;\r
76 }\r
77 void SetImpactParameterRange(Double_t min, Double_t max) { \r
78 fUseCentrality = kTRUE;\r
79 fImpactParameterMin=min;\r
80 fImpactParameterMax=max;\r
81 }\r
82\r
83 //multiplicity\r
84 void SetMultiplicityRange(Int_t min, Int_t max) {\r
85 fUseMultiplicity = kTRUE;\r
86 fNumberOfAcceptedTracksMin = min;\r
87 fNumberOfAcceptedTracksMax = max;}\r
88 \r
89 void UseOfflineTrigger() {fUseOfflineTrigger = kTRUE;}\r
90 \r
91\r
92 private:\r
93 AliBalanceTriggered *fBalance; //TriggeredBF object\r
94 Bool_t fRunShuffling;//run shuffling or not\r
95 AliBalanceTriggered *fShuffledBalance; //TriggeredBF object (shuffled)\r
96 TList *fList; //fList object\r
97 TList *fListTriggeredBF; //fList object\r
98 TList *fListTriggeredBFS; //fList object\r
99 TList *fHistListPIDQA; //! list of histograms\r
100\r
101 TH1F *fHistEventStats; //event stats\r
102 TH2F *fHistCentStats; //centrality stats\r
103 TH1F *fHistTriggerStats; //trigger stats\r
104 TH1F *fHistTrackStats; //Track filter bit stats\r
105 TH1F *fHistVx; //x coordinate of the primary vertex\r
106 TH1F *fHistVy; //y coordinate of the primary vertex\r
107 TH1F *fHistVz; //z coordinate of the primary vertex\r
108\r
109 TH2F *fHistClus;//\r
110 TH2F *fHistDCA;//\r
111 TH1F *fHistChi2;//\r
112 TH1F *fHistPt;//\r
113 TH1F *fHistEta;//\r
114 TH1F *fHistPhi;//\r
115 TH1F *fHistPhiBefore;//\r
116 TH1F *fHistPhiAfter;//\r
117 TH2F *fHistV0M;//\r
118 TH2F *fHistRefTracks;//\r
119\r
120 \r
121 TString fCentralityEstimator; //"V0M","TRK","TKL","ZDC","FMD"\r
122 Bool_t fUseCentrality;//use the centrality (PbPb) or not (pp)\r
123 Double_t fCentralityPercentileMin;//centrality percentile min\r
124 Double_t fCentralityPercentileMax;//centrality percentile max\r
125 Double_t fImpactParameterMin;//impact parameter min (used for MC)\r
126 Double_t fImpactParameterMax;//impact parameter max (used for MC)\r
127\r
128 Bool_t fUseMultiplicity;//use the multiplicity cuts\r
129 Int_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
130 Int_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
131 TH1F *fHistNumberOfAcceptedTracks;//hisot to store the number of accepted tracks\r
132\r
133 Bool_t fUseOfflineTrigger;//Usage of the offline trigger selection\r
134\r
135 Double_t fVxMax;//vxmax\r
136 Double_t fVyMax;//vymax\r
137 Double_t fVzMax;//vzmax\r
138\r
139 Int_t nAODtrackCutBit;//track cut bit from track selection (only used for AODs)\r
140\r
141 Double_t fPtMin;//only used for AODs\r
142 Double_t fPtMax;//only used for AODs\r
143 Double_t fEtaMin;//only used for AODs\r
144 Double_t fEtaMax;//only used for AODs\r
145\r
146 Double_t fDCAxyCut;//only used for AODs\r
147 Double_t fDCAzCut;//only used for AODs\r
148\r
149 Double_t fTPCchi2Cut;//only used for AODs\r
150 Int_t fNClustersTPCCut;//only used for AODs\r
151\r
152 \r
153 AliAnalysisTaskTriggeredBF(const AliAnalysisTaskTriggeredBF&); // not implemented\r
154 AliAnalysisTaskTriggeredBF& operator=(const AliAnalysisTaskTriggeredBF&); // not implemented\r
155 \r
156 ClassDef(AliAnalysisTaskTriggeredBF, 1); // example of analysis\r
157};\r
158\r
159#endif\r