]>
Commit | Line | Data |
---|---|---|
fc392675 | 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; | |
fc392675 | 17 | class AliEMCALTrack; |
18 | class AliMagF; | |
19 | class AliESDEvent; | |
20 | class AliAODEvent; | |
21 | class AliEMCALGeometry; | |
22 | class AliEMCALRecoUtils; | |
23 | class AliESDtrack; | |
3263f852 | 24 | class AliESDtrackCuts; |
fc392675 | 25 | |
8ee2d316 | 26 | // container classes |
27 | class AliJetContainer; | |
28 | class AliParticleContainer; | |
29 | class AliClusterContainer; | |
30 | ||
31 | // includes | |
fc392675 | 32 | #include <AliAnalysisTaskEmcalJet.h> |
33 | #include <AliEmcalJet.h> | |
34 | #include <AliVEvent.h> | |
35 | #include <AliVTrack.h> | |
36 | #include <AliVCluster.h> | |
37 | #include <TClonesArray.h> | |
38 | #include <TMath.h> | |
39 | #include <TRandom3.h> | |
40 | #include <AliLog.h> | |
3263f852 | 41 | #include "AliESDtrackCuts.h" |
fc392675 | 42 | |
8ee2d316 | 43 | // Local Rho includes |
fc392675 | 44 | #include "AliAnalysisTaskLocalRho.h" |
45 | #include "AliLocalRhoParameter.h" | |
46 | ||
8ee2d316 | 47 | // PID includes |
fc392675 | 48 | #include "AliPIDResponse.h" |
49 | ||
50 | #include "AliAnalysisFilter.h" | |
51 | ||
52 | class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet { | |
53 | public: | |
54 | AliAnalysisTaskEmcalJetHadEPpid(); | |
55 | AliAnalysisTaskEmcalJetHadEPpid(const char *name); | |
56 | //virtual ~AliAnalysisTaskEmcalJetHadEPpid() {} | |
57 | virtual ~AliAnalysisTaskEmcalJetHadEPpid(); | |
58 | ||
59 | virtual void UserCreateOutputObjects(); | |
daa728b0 | 60 | // THnSparse Setup |
e56c3f6e | 61 | virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries); |
fc392675 | 62 | virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax); |
e56c3f6e | 63 | virtual THnSparse* NewTHnSparseFPID(const char* name, UInt_t entries); |
fc392675 | 64 | virtual void GetDimParamsPID(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax); |
e56c3f6e | 65 | virtual THnSparse* NewTHnSparseFCorr(const char* name, UInt_t entries); |
daa728b0 | 66 | virtual void GetDimParamsCorr(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax); |
67 | ||
f1ce4cc3 | 68 | // set a bun of histogram switches up |
fc392675 | 69 | void SetPlotGlobalRho(Bool_t g) { doPlotGlobalRho = g; } // plot global rho switch |
70 | void SetVariableBinning(Bool_t v) { doVariableBinning = v; } // do variable binning switch | |
8ee2d316 | 71 | void SetvarbinTHnSparse(Bool_t vb) { dovarbinTHnSparse = vb; } // variable THnSparse bin switch |
139e13f4 | 72 | void SetallpidAXIS(Bool_t allAXIS) { allpidAXIS = allAXIS; } // fill all PID sparse axis's |
8ee2d316 | 73 | void SetmakeQAhistos(Bool_t QAhist) { makeQAhistos = QAhist; } // make QA histos |
74 | void SetmakeBIAShistos(Bool_t BIAShist) { makeBIAShistos = BIAShist; } // make bias histos | |
75 | void SetmakeextraCORRhistos(Bool_t Xhist) { makeextraCORRhistos = Xhist; } // make extra correlations histos | |
daa728b0 | 76 | void SetoldJEThadhistos(Bool_t oldJH) { makeoldJEThadhistos = oldJH; } // make older JH histos for comparison |
f1ce4cc3 | 77 | |
78 | // set data, detectors type, and PID and PID w bias switches | |
8ee2d316 | 79 | void SetcutType(TString cut) { fcutType = cut; } // EMCAL / TPC acceptance cut |
fc392675 | 80 | void SetdoPID(Bool_t p) { doPID = p; } // do PID switch |
8ee2d316 | 81 | void SetdoPIDtrackBIAS(Bool_t PIDbias) { doPIDtrackBIAS = PIDbias; } // do PID track bias switch |
fc392675 | 82 | |
3263f852 | 83 | // esd track cuts setters |
84 | void SetTrackCuts(AliESDtrackCuts *cuts) { fesdTrackCuts = cuts; } | |
85 | ||
f1ce4cc3 | 86 | // give comments setter |
87 | void SetdoComments(Bool_t comm) { doComments = comm; } // give comment switch | |
88 | ||
56523939 | 89 | // setter switch for flavour jet analysis |
90 | void SetFlavourJetAnalysis(Bool_t flj) { doFlavourJetAnalysis = flj; } // set on flavour jet analysis | |
91 | virtual void SetJETFlavourTag(Int_t fltag) { fJetFlavTag = fltag; } // set manual tag # | |
92 | ||
93 | // setter for beamtype (needed for UserCreateObjects section) | |
94 | virtual void SetCollType(BeamType bm) { fBeam = bm; } // set beamtype | |
ac1be2ef | 95 | |
fc392675 | 96 | // getters |
3badfe33 | 97 | TString GetLocalRhoName() const {return fLocalRhoName; } |
fc392675 | 98 | |
99 | // set names of some objects | |
8ee2d316 | 100 | virtual void SetLocalRhoName(const char *ln) { fLocalRhoName = ln; } |
101 | virtual void SetTracksName(const char *tn) { fTracksName = tn; } | |
3badfe33 | 102 | virtual void SetTracksNameME(const char *MEtn) { fTracksNameME = MEtn; } |
8ee2d316 | 103 | virtual void SetJetsName(const char *jn) { fJetsName = jn; } |
fc392675 | 104 | |
8ee2d316 | 105 | // bias and cuts - setters |
fc392675 | 106 | virtual void SetAreaCut(Double_t a) { fAreacut = a; } |
107 | virtual void SetTrkBias(Double_t b) { fTrkBias = b; } //require a track with pt > b in jet | |
108 | virtual void SetClusBias(Double_t b) { fClusBias = b; } //require a cluster with pt > b in jet | |
109 | virtual void SetTrkEta(Double_t e) { fTrkEta = e; } //eta range of the associated tracks | |
110 | virtual void SetJetPtcut(Double_t jpt) { fJetPtcut = jpt; } // jet pt cut | |
8ee2d316 | 111 | virtual void SetJetRad(Double_t jrad) { fJetRad = jrad; } // jet radius |
daa728b0 | 112 | virtual void SetConstituentCut(Double_t constCut) { fConstituentCut = constCut; } // constituent Cut |
8ee2d316 | 113 | |
114 | // eta and phi limits of jets - setters | |
fc392675 | 115 | virtual void SetJetEta(Double_t emin, Double_t emax) { fEtamin = emin; fEtamax = emax; } |
116 | virtual void SetJetPhi(Double_t pmin, Double_t pmax) { fPhimin = pmin; fPhimax = pmax; } | |
117 | ||
8ee2d316 | 118 | // event mixing - setters |
fc392675 | 119 | virtual void SetEventMixing(Int_t yesno) { fDoEventMixing=yesno; } |
120 | virtual void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; } | |
a409c5ba | 121 | virtual void SetNMixedTr(Int_t nmt) { fNMIXtracks = nmt; } |
d60e724e | 122 | virtual void SetNMixedEvt(Int_t nme) { fNMIXevents = nme; } |
123 | ||
124 | // event trigger/mixed selection - setters | |
125 | virtual void SetTriggerEventType(UInt_t te) { fTriggerEventType = te; } | |
126 | virtual void SetMixedEventType(UInt_t me) { fMixingEventType = me; } | |
fc392675 | 127 | |
8ee2d316 | 128 | // jet container - setters |
129 | void SetContainerAllJets(Int_t c) { fContainerAllJets = c;} | |
130 | void SetContainerPIDJets(Int_t c) { fContainerPIDJets = c;} | |
131 | ||
fc392675 | 132 | protected: |
133 | // functions | |
8ee2d316 | 134 | void ExecOnce(); |
135 | Bool_t Run(); | |
fc392675 | 136 | virtual void Terminate(Option_t *); |
f1ce4cc3 | 137 | virtual Int_t AcceptMyJet(AliEmcalJet *jet); // applies basic jet tests/cuts before accepting |
fc392675 | 138 | virtual Int_t GetCentBin(Double_t cent) const; // centrality bin of event |
daa728b0 | 139 | Double_t RelativePhi(Double_t mphi,Double_t vphi) const; // relative jet track angle |
140 | Double_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const; // relative jet event plane angle | |
fc392675 | 141 | virtual Int_t GetEtaBin(Double_t eta) const; // eta bins |
142 | virtual Int_t GetpTjetBin(Double_t pt) const; // jet pt bins | |
143 | virtual Int_t GetpTtrackBin(Double_t pt) const; // track pt bins | |
144 | virtual Int_t GetzVertexBin(Double_t zVtx) const; // zVertex bin | |
145 | void SetfHistPIDcounterLabels(TH1* fHistPID) const; // PID counter | |
f9b4eee4 | 146 | void SetfHistQAcounterLabels(TH1* h) const; // QA counter |
d60e724e | 147 | void SetfHistEvtSelQALabels(TH1* h) const; // Event Selection Counter |
56523939 | 148 | //virtual Int_t AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM, Int_t NUM2, Int_t NUM3); // flavour jet acceptor |
149 | virtual Int_t AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM); // flavour jet acceptor | |
fc392675 | 150 | |
151 | // parameters of detector to cut on for event | |
152 | Double_t fPhimin; // phi min | |
153 | Double_t fPhimax; // phi max | |
154 | Double_t fEtamin; // eta min | |
155 | Double_t fEtamax; // eta max | |
156 | Double_t fAreacut; // area cut | |
157 | Double_t fTrkBias; // track bias | |
158 | Double_t fClusBias; // cluster bias | |
159 | Double_t fTrkEta; // eta min/max of tracks | |
8ee2d316 | 160 | Double_t fJetPtcut; // jet pt to cut on for correlations |
161 | Double_t fJetRad; // jet radius | |
f1ce4cc3 | 162 | Double_t fConstituentCut; // jet constituent cut |
fc392675 | 163 | |
3263f852 | 164 | // esd track cuts |
165 | AliESDtrackCuts *fesdTrackCuts; // esdTrackCuts | |
166 | ||
fc392675 | 167 | // event mixing |
168 | Int_t fDoEventMixing; | |
169 | Int_t fMixingTracks; | |
a409c5ba | 170 | Int_t fNMIXtracks; |
d60e724e | 171 | Int_t fNMIXevents; |
172 | ||
173 | // event selection types | |
174 | UInt_t fTriggerEventType; | |
175 | UInt_t fMixingEventType; | |
fc392675 | 176 | |
177 | // switches for plots | |
178 | Bool_t doPlotGlobalRho; | |
179 | Bool_t doVariableBinning; | |
8ee2d316 | 180 | Bool_t dovarbinTHnSparse; |
181 | Bool_t makeQAhistos; | |
182 | Bool_t makeBIAShistos; | |
183 | Bool_t makeextraCORRhistos; | |
daa728b0 | 184 | Bool_t makeoldJEThadhistos; |
139e13f4 | 185 | Bool_t allpidAXIS; |
8ee2d316 | 186 | |
187 | // Cut type (EMCAL/TPC acceptance) | |
188 | TString fcutType; | |
fc392675 | 189 | |
190 | // switches for PID | |
191 | Bool_t doPID; | |
8ee2d316 | 192 | Bool_t doPIDtrackBIAS; |
fc392675 | 193 | |
f1ce4cc3 | 194 | // do comment switch |
195 | Bool_t doComments; | |
196 | ||
56523939 | 197 | // do flavour jet analysis switch, and set flavour jet tag |
198 | Bool_t doFlavourJetAnalysis; | |
199 | Int_t fJetFlavTag; | |
200 | ||
201 | // beam type | |
202 | BeamType fBeam; | |
ac1be2ef | 203 | |
fc392675 | 204 | // local rho value |
205 | Double_t fLocalRhoVal; | |
206 | ||
207 | // object names | |
208 | TString fTracksName; | |
3badfe33 | 209 | TString fTracksNameME; |
fc392675 | 210 | TString fJetsName; |
211 | ||
212 | // event counter | |
213 | Int_t event; | |
214 | ||
215 | // boolean functions for PID | |
216 | Bool_t isPItpc, isKtpc, isPtpc; | |
fc392675 | 217 | Bool_t isPIits, isKits, isPits; |
fc392675 | 218 | Bool_t isPItof, isKtof, isPtof; |
fc392675 | 219 | |
220 | // event pool | |
ac1be2ef | 221 | TObjArray *CloneAndReduceTrackList(TObjArray* tracks); |
222 | AliEventPoolManager *fPoolMgr;//! // event pool Manager object | |
fc392675 | 223 | |
224 | // PID | |
225 | AliPIDResponse *fPIDResponse; // PID response object | |
226 | AliTPCPIDResponse *fTPCResponse; // TPC pid response object | |
227 | ||
228 | private: | |
8ee2d316 | 229 | // needed for PID, track objects |
ac1be2ef | 230 | AliESDEvent *fESD;//! // ESD object |
231 | AliAODEvent *fAOD;//! // AOD object | |
3badfe33 | 232 | AliVEvent *fVevent;//! // Vevent object |
fc392675 | 233 | |
f9b4eee4 | 234 | TH1F *fHistEventQA;//! |
d60e724e | 235 | TH1F *fHistEventSelectionQA;//! |
f9b4eee4 | 236 | |
a409c5ba | 237 | TH2F *fHistCentZvertGA;//! |
238 | TH2F *fHistCentZvertJE;//! | |
239 | TH2F *fHistCentZvertMB;//! | |
240 | TH2F *fHistCentZvertAny;//! | |
241 | ||
37d10286 | 242 | TH2F *fHistTPCdEdX;//! |
243 | TH2F *fHistITSsignal;//! | |
244 | // TH2F *fHistTOFsignal;//! | |
fc392675 | 245 | |
37d10286 | 246 | TH2F *fHistRhovsCent;//! |
fc392675 | 247 | TH2F *fHistNjetvsCent;//! number of jets versus Centrality |
248 | TH2F *fHistJetPtvsTrackPt[6];//! | |
249 | TH2F *fHistRawJetPtvsTrackPt[6];//! | |
250 | TH1F *fHistTrackPt[6];//! | |
251 | TH1F *fHistEP0[6];//! | |
252 | TH1F *fHistEP0A[6];//! | |
253 | TH1F *fHistEP0C[6];//! | |
254 | TH2F *fHistEPAvsC[6];//! | |
8ee2d316 | 255 | TH1F *fHistJetPtcorrGlRho[6];//! |
fc392675 | 256 | TH2F *fHistJetPtvsdEP[6];//! |
257 | TH2F *fHistJetPtvsdEPBias[6];//! | |
37d10286 | 258 | TH2F *fHistRhovsdEP[6];//! |
fc392675 | 259 | TH3F *fHistJetEtaPhiPt[6];//! |
260 | TH3F *fHistJetEtaPhiPtBias[6];//! | |
261 | TH2F *fHistJetPtArea[6];//! | |
262 | TH2F *fHistJetPtAreaBias[6];//! | |
37d10286 | 263 | TH2F *fHistJetPtNcon[6];//! |
264 | TH2F *fHistJetPtNconBias[6];//! | |
265 | TH2F *fHistJetPtNconCh[6];//! | |
266 | TH2F *fHistJetPtNconBiasCh[6];//! | |
267 | TH2F *fHistJetPtNconEm[6];//! | |
268 | TH2F *fHistJetPtNconBiasEm[6];//! | |
269 | TH1F *fHistJetHaddPhiINcent[6];//! | |
270 | TH1F *fHistJetHaddPhiOUTcent[6];//! | |
271 | TH1F *fHistJetHaddPhiMIDcent[6];//! | |
272 | ||
273 | TH1 *fHistCentrality;//! | |
274 | TH1 *fHistZvtx;//! | |
275 | TH1 *fHistMult;//! | |
276 | TH1 *fHistJetPhi;//! | |
277 | TH1 *fHistTrackPhi;//! | |
d60e724e | 278 | TH1 *fHistLocalRhoJetpt;//! |
37d10286 | 279 | TH1 *fHistJetHaddPhiIN;//! |
280 | TH1 *fHistJetHaddPhiOUT;//! | |
281 | TH1 *fHistJetHaddPhiMID;//! | |
282 | TH1 *fHistJetHaddPhiBias;//! | |
283 | TH1 *fHistJetHaddPhiINBias;//! | |
284 | TH1 *fHistJetHaddPhiOUTBias;//! | |
285 | TH1 *fHistJetHaddPhiMIDBias;//! | |
286 | ||
287 | TH1 *fHistMEdPHI;//! // phi distrubtion of mixed events | |
288 | TH1 *fHistTrackPtallcent;//! | |
289 | ||
290 | TH2 *fHistJetEtaPhi;//! | |
291 | TH2 *fHistTrackEtaPhi[4][7];//! | |
292 | TH1 *fHistJetHadbindPhi[9];//! | |
293 | TH1 *fHistJetHadbindPhiIN[9];//! | |
294 | TH1 *fHistJetHadbindPhiMID[9];//! | |
295 | TH1 *fHistJetHadbindPhiOUT[9];//! | |
296 | TH2 *fHistJetHEtaPhi;//! | |
297 | ||
298 | TH1 *fHistJetPt[6];//! | |
299 | TH1 *fHistJetPtBias[6];//! | |
300 | TH1 *fHistJetPtTT[6];//! | |
301 | TH2 *fHistAreavsRawPt[6];//! | |
302 | TH2 *fHistJetH[6][5][3];//! | |
303 | TH2 *fHistJetHBias[6][5][3];//! | |
304 | TH2 *fHistJetHTT[6][5][3];//! | |
305 | TH1F *fHistJetHdPHI[11];//! | |
306 | TH2F *fHistJetHdETAdPHI[11];//! | |
307 | TH2F *fHistSEphieta;//! // single events phi-eta distributions | |
308 | TH2F *fHistMEphieta;//! // mixed events phi-eta distributions | |
309 | TH1F *fHistJetHaddPHI;//! | |
fc392675 | 310 | |
311 | // PID status histo's | |
37d10286 | 312 | TH1 *fHistPID;//! |
fc392675 | 313 | |
314 | // THn Sparse's | |
37d10286 | 315 | THnSparse *fhnPID;//! // PID sparse |
316 | THnSparse *fhnMixedEvents;//! // mixed events matrix | |
317 | THnSparse *fhnJH;//! // jet hadron events matrix | |
318 | THnSparse *fhnCorr;//! // sparse to get # jet triggers | |
fc392675 | 319 | |
8ee2d316 | 320 | // container objects |
321 | AliJetContainer *fJetsCont; //!Jets | |
322 | AliParticleContainer *fTracksCont; //!Tracks | |
323 | AliClusterContainer *fCaloClustersCont; //!Clusters | |
324 | ||
325 | // container specifier | |
326 | Int_t fContainerAllJets; // number of container with all full jets | |
327 | Int_t fContainerPIDJets; // number of container with full jets meeting Pt cut (for PID) | |
328 | ||
fc392675 | 329 | // *********************************************************** |
330 | ||
331 | //Declare it private to avoid compilation warning | |
332 | AliAnalysisTaskEmcalJetHadEPpid(const AliAnalysisTaskEmcalJetHadEPpid & g) ; // cpy ctor | |
333 | ||
334 | AliAnalysisTaskEmcalJetHadEPpid& operator=(const AliAnalysisTaskEmcalJetHadEPpid&); // not implemented | |
335 | ClassDef(AliAnalysisTaskEmcalJetHadEPpid, 4); // Emcal jet hadron PID - Event plane dependence | |
336 | }; | |
337 | #endif |