]>
Commit | Line | Data |
---|---|---|
1 | #ifndef AliAnalysisTaskEmcalJetHadEPpid_h | |
2 | #define AliAnalysisTaskEmcalJetHadEPpid_h | |
3 | ||
4 | // root classes | |
5 | class TClonesArray; | |
6 | class TH1F; | |
7 | class TH2F; | |
8 | class TH3F; | |
9 | class THnSparse; | |
10 | class TList; | |
11 | class TLorentzVector; | |
12 | class TGraph; | |
13 | ||
14 | // AliROOT classes | |
15 | class AliEventPoolManager; | |
16 | class AliLocalRhoParameter; | |
17 | class AliEMCALTrack; | |
18 | class AliMagF; | |
19 | class AliESDEvent; | |
20 | class AliAODEvent; | |
21 | class AliEMCALGeometry; | |
22 | class AliEMCALRecoUtils; | |
23 | class AliESDtrack; | |
24 | ||
25 | // container classes | |
26 | class AliJetContainer; | |
27 | class AliParticleContainer; | |
28 | class AliClusterContainer; | |
29 | ||
30 | // includes | |
31 | #include <AliAnalysisTaskEmcalJet.h> | |
32 | #include <AliEmcalJet.h> | |
33 | #include <AliVEvent.h> | |
34 | #include <AliVTrack.h> | |
35 | #include <AliVCluster.h> | |
36 | #include <TClonesArray.h> | |
37 | #include <TMath.h> | |
38 | #include <TRandom3.h> | |
39 | #include <AliLog.h> | |
40 | ||
41 | // Local Rho includes | |
42 | #include "AliAnalysisTaskLocalRho.h" | |
43 | #include "AliLocalRhoParameter.h" | |
44 | ||
45 | // PID includes | |
46 | #include "AliPIDResponse.h" | |
47 | ||
48 | #include "AliAnalysisFilter.h" | |
49 | ||
50 | class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet { | |
51 | public: | |
52 | AliAnalysisTaskEmcalJetHadEPpid(); | |
53 | AliAnalysisTaskEmcalJetHadEPpid(const char *name); | |
54 | //virtual ~AliAnalysisTaskEmcalJetHadEPpid() {} | |
55 | virtual ~AliAnalysisTaskEmcalJetHadEPpid(); | |
56 | ||
57 | virtual void UserCreateOutputObjects(); | |
58 | virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries); | |
59 | virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax); | |
60 | virtual THnSparse* NewTHnSparseFPID(const char* name, UInt_t entries); | |
61 | virtual void GetDimParamsPID(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax); | |
62 | void SetPlotGlobalRho(Bool_t g) { doPlotGlobalRho = g; } // plot global rho switch | |
63 | void SetVariableBinning(Bool_t v) { doVariableBinning = v; } // do variable binning switch | |
64 | void SetvarbinTHnSparse(Bool_t vb) { dovarbinTHnSparse = vb; } // variable THnSparse bin switch | |
65 | void SetmakeQAhistos(Bool_t QAhist) { makeQAhistos = QAhist; } // make QA histos | |
66 | void SetmakeBIAShistos(Bool_t BIAShist) { makeBIAShistos = BIAShist; } // make bias histos | |
67 | void SetmakeextraCORRhistos(Bool_t Xhist) { makeextraCORRhistos = Xhist; } // make extra correlations histos | |
68 | void SetDataType(Bool_t data) { useAOD = data; } // data type switch | |
69 | void SetcutType(TString cut) { fcutType = cut; } // EMCAL / TPC acceptance cut | |
70 | void SetdoPID(Bool_t p) { doPID = p; } // do PID switch | |
71 | void SetdoPIDtrackBIAS(Bool_t PIDbias) { doPIDtrackBIAS = PIDbias; } // do PID track bias switch | |
72 | ||
73 | // getters | |
74 | TString GetLocalRhoName() const {return fLocalRhoName; } | |
75 | ||
76 | // set names of some objects | |
77 | virtual void SetLocalRhoName(const char *ln) { fLocalRhoName = ln; } | |
78 | virtual void SetTracksName(const char *tn) { fTracksName = tn; } | |
79 | virtual void SetJetsName(const char *jn) { fJetsName = jn; } | |
80 | ||
81 | // bias and cuts - setters | |
82 | virtual void SetAreaCut(Double_t a) { fAreacut = a; } | |
83 | virtual void SetTrkBias(Double_t b) { fTrkBias = b; } //require a track with pt > b in jet | |
84 | virtual void SetClusBias(Double_t b) { fClusBias = b; } //require a cluster with pt > b in jet | |
85 | virtual void SetTrkEta(Double_t e) { fTrkEta = e; } //eta range of the associated tracks | |
86 | virtual void SetJetPtcut(Double_t jpt) { fJetPtcut = jpt; } // jet pt cut | |
87 | virtual void SetJetRad(Double_t jrad) { fJetRad = jrad; } // jet radius | |
88 | ||
89 | // eta and phi limits of jets - setters | |
90 | virtual void SetJetEta(Double_t emin, Double_t emax) { fEtamin = emin; fEtamax = emax; } | |
91 | virtual void SetJetPhi(Double_t pmin, Double_t pmax) { fPhimin = pmin; fPhimax = pmax; } | |
92 | ||
93 | // event mixing - setters | |
94 | virtual void SetEventMixing(Int_t yesno) { fDoEventMixing=yesno; } | |
95 | virtual void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; } | |
96 | ||
97 | // jet container - setters | |
98 | void SetContainerAllJets(Int_t c) { fContainerAllJets = c;} | |
99 | void SetContainerPIDJets(Int_t c) { fContainerPIDJets = c;} | |
100 | ||
101 | protected: | |
102 | // functions | |
103 | void ExecOnce(); | |
104 | Bool_t Run(); | |
105 | virtual void Terminate(Option_t *); | |
106 | virtual Int_t AcceptMyJet(AliEmcalJet *jet); | |
107 | virtual Int_t GetCentBin(Double_t cent) const; // centrality bin of event | |
108 | Float_t RelativePhi(Double_t mphi,Double_t vphi) const; // relative jet track angle | |
109 | Float_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const; // relative jet event plane angle | |
110 | virtual Int_t GetEtaBin(Double_t eta) const; // eta bins | |
111 | virtual Int_t GetpTjetBin(Double_t pt) const; // jet pt bins | |
112 | virtual Int_t GetpTtrackBin(Double_t pt) const; // track pt bins | |
113 | virtual Int_t GetzVertexBin(Double_t zVtx) const; // zVertex bin | |
114 | void SetfHistPIDcounterLabels(TH1* fHistPID) const; // PID counter | |
115 | ||
116 | // parameters of detector to cut on for event | |
117 | Double_t fPhimin; // phi min | |
118 | Double_t fPhimax; // phi max | |
119 | Double_t fEtamin; // eta min | |
120 | Double_t fEtamax; // eta max | |
121 | Double_t fAreacut; // area cut | |
122 | Double_t fTrkBias; // track bias | |
123 | Double_t fClusBias; // cluster bias | |
124 | Double_t fTrkEta; // eta min/max of tracks | |
125 | Double_t fJetPtcut; // jet pt to cut on for correlations | |
126 | Double_t fJetRad; // jet radius | |
127 | ||
128 | // event mixing | |
129 | Int_t fDoEventMixing; | |
130 | Int_t fMixingTracks; | |
131 | ||
132 | // switches for plots | |
133 | Bool_t doPlotGlobalRho; | |
134 | Bool_t doVariableBinning; | |
135 | Bool_t dovarbinTHnSparse; | |
136 | Bool_t makeQAhistos; | |
137 | Bool_t makeBIAShistos; | |
138 | Bool_t makeextraCORRhistos; | |
139 | ||
140 | // data type switch | |
141 | Bool_t useAOD; | |
142 | ||
143 | // Cut type (EMCAL/TPC acceptance) | |
144 | TString fcutType; | |
145 | ||
146 | // switches for PID | |
147 | Bool_t doPID; | |
148 | Bool_t doPIDtrackBIAS; | |
149 | ||
150 | // local rho value | |
151 | Double_t fLocalRhoVal; | |
152 | ||
153 | // object names | |
154 | TString fTracksName; | |
155 | TString fJetsName; | |
156 | ||
157 | // event counter | |
158 | Int_t event; | |
159 | ||
160 | // boolean functions for PID | |
161 | Bool_t isPItpc, isKtpc, isPtpc; | |
162 | Double_t nPIDtpc; | |
163 | ||
164 | Bool_t isPIits, isKits, isPits; | |
165 | Double_t nPIDits; | |
166 | ||
167 | Bool_t isPItof, isKtof, isPtof; | |
168 | Double_t nPIDtof; | |
169 | ||
170 | // event pool | |
171 | TObjArray* CloneAndReduceTrackList(TObjArray* tracks); | |
172 | AliEventPoolManager *fPoolMgr; // event pool Manager object | |
173 | ||
174 | // PID | |
175 | AliPIDResponse *fPIDResponse; // PID response object | |
176 | AliTPCPIDResponse *fTPCResponse; // TPC pid response object | |
177 | ||
178 | private: | |
179 | // needed for PID, track objects | |
180 | AliESDEvent *fESD; // ESD object | |
181 | AliAODEvent *fAOD; // AOD object | |
182 | ||
183 | TH2F *fHistTPCdEdX; | |
184 | TH2F *fHistITSsignal; | |
185 | // TH2F *fHistTOFsignal; | |
186 | ||
187 | TH2F *fHistRhovsCent; //! | |
188 | TH2F *fHistNjetvsCent;//! number of jets versus Centrality | |
189 | TH2F *fHistJetPtvsTrackPt[6];//! | |
190 | TH2F *fHistRawJetPtvsTrackPt[6];//! | |
191 | TH1F *fHistTrackPt[6];//! | |
192 | TH1F *fHistEP0[6];//! | |
193 | TH1F *fHistEP0A[6];//! | |
194 | TH1F *fHistEP0C[6];//! | |
195 | TH2F *fHistEPAvsC[6];//! | |
196 | TH1F *fHistJetPtcorrGlRho[6];//! | |
197 | TH2F *fHistJetPtvsdEP[6];//! | |
198 | TH2F *fHistJetPtvsdEPBias[6];//! | |
199 | TH2F *fHistRhovsdEP[6]; //! | |
200 | TH3F *fHistJetEtaPhiPt[6];//! | |
201 | TH3F *fHistJetEtaPhiPtBias[6];//! | |
202 | TH2F *fHistJetPtArea[6];//! | |
203 | TH2F *fHistJetPtAreaBias[6];//! | |
204 | TH2F *fHistJetPtNcon[6]; //! | |
205 | TH2F *fHistJetPtNconBias[6]; //! | |
206 | TH2F *fHistJetPtNconCh[6]; //! | |
207 | TH2F *fHistJetPtNconBiasCh[6]; //! | |
208 | TH2F *fHistJetPtNconEm[6]; //! | |
209 | TH2F *fHistJetPtNconBiasEm[6]; //! | |
210 | TH1F *fHistJetHaddPhiINcent[6]; | |
211 | TH1F *fHistJetHaddPhiOUTcent[6]; | |
212 | TH1F *fHistJetHaddPhiMIDcent[6]; | |
213 | ||
214 | TH1 *fHistCentrality; | |
215 | TH1 *fHistZvtx; | |
216 | TH1 *fHistMult; | |
217 | TH1 *fHistJetPhi; | |
218 | TH1 *fHistTrackPhi; | |
219 | TH1 *fHistJetHaddPhiIN; | |
220 | TH1 *fHistJetHaddPhiOUT; | |
221 | TH1 *fHistJetHaddPhiMID; | |
222 | TH1 *fHistJetHaddPhiBias; | |
223 | TH1 *fHistJetHaddPhiINBias; | |
224 | TH1 *fHistJetHaddPhiOUTBias; | |
225 | TH1 *fHistJetHaddPhiMIDBias; | |
226 | ||
227 | TH1 *fHistMEdPHI; // phi distrubtion of mixed events | |
228 | TH1 *fHistTrackPtallcent; | |
229 | ||
230 | TH2 *fHistJetEtaPhi; | |
231 | TH2 *fHistTrackEtaPhi[4][7]; | |
232 | TH1 *fHistJetHadbindPhi[9]; | |
233 | TH1 *fHistJetHadbindPhiIN[9]; | |
234 | TH1 *fHistJetHadbindPhiMID[9]; | |
235 | TH1 *fHistJetHadbindPhiOUT[9]; | |
236 | TH2 *fHistJetHEtaPhi; | |
237 | ||
238 | TH1 *fHistJetPt[2]; | |
239 | TH1 *fHistJetPtBias[2]; | |
240 | TH1 *fHistJetPtTT[2]; | |
241 | TH2 *fHistAreavsRawPt[2]; | |
242 | TH2 *fHistJetH[2][5][3]; | |
243 | TH2 *fHistJetHBias[2][5][3]; | |
244 | TH2 *fHistJetHTT[2][5][3]; | |
245 | TH1F *fHistJetHdPHI[11]; | |
246 | TH2F *fHistJetHdETAdPHI[11]; | |
247 | TH2F *fHistSEphieta; // single events phi-eta distributions | |
248 | TH2F *fHistMEphieta; // mixed events phi-eta distributions | |
249 | TH1F *fHistJetHaddPHI; | |
250 | ||
251 | // PID status histo's | |
252 | TH1 *fHistPID; | |
253 | ||
254 | // THn Sparse's | |
255 | THnSparse *fhnPID; // PID sparse | |
256 | THnSparse *fhnMixedEvents; // mixed events matrix | |
257 | THnSparse *fhnJH; // jet hadron events matrix | |
258 | ||
259 | // container objects | |
260 | AliJetContainer *fJetsCont; //!Jets | |
261 | AliParticleContainer *fTracksCont; //!Tracks | |
262 | AliClusterContainer *fCaloClustersCont; //!Clusters | |
263 | ||
264 | // container specifier | |
265 | Int_t fContainerAllJets; // number of container with all full jets | |
266 | Int_t fContainerPIDJets; // number of container with full jets meeting Pt cut (for PID) | |
267 | ||
268 | // *********************************************************** | |
269 | ||
270 | //Declare it private to avoid compilation warning | |
271 | AliAnalysisTaskEmcalJetHadEPpid(const AliAnalysisTaskEmcalJetHadEPpid & g) ; // cpy ctor | |
272 | ||
273 | AliAnalysisTaskEmcalJetHadEPpid& operator=(const AliAnalysisTaskEmcalJetHadEPpid&); // not implemented | |
274 | ClassDef(AliAnalysisTaskEmcalJetHadEPpid, 4); // Emcal jet hadron PID - Event plane dependence | |
275 | }; | |
276 | #endif |