1 #ifndef AliAnalysisTaskEmcalJetHadEPpid_h
2 #define AliAnalysisTaskEmcalJetHadEPpid_h
15 class AliEventPoolManager;
16 class AliLocalRhoParameter;
21 class AliEMCALGeometry;
22 class AliEMCALRecoUtils;
24 class AliESDtrackCuts;
27 class AliJetContainer;
28 class AliParticleContainer;
29 class AliClusterContainer;
32 #include <AliAnalysisTaskEmcalJet.h>
33 #include <AliEmcalJet.h>
34 #include <AliVEvent.h>
35 #include <AliVTrack.h>
36 #include <AliVCluster.h>
37 #include <TClonesArray.h>
41 #include "AliESDtrackCuts.h"
44 #include "AliAnalysisTaskLocalRho.h"
45 #include "AliLocalRhoParameter.h"
48 #include "AliPIDResponse.h"
50 #include "AliAnalysisFilter.h"
52 class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet {
54 AliAnalysisTaskEmcalJetHadEPpid();
55 AliAnalysisTaskEmcalJetHadEPpid(const char *name);
56 //virtual ~AliAnalysisTaskEmcalJetHadEPpid() {}
57 virtual ~AliAnalysisTaskEmcalJetHadEPpid();
59 virtual void UserCreateOutputObjects();
61 virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries);
62 virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
63 virtual THnSparse* NewTHnSparseFPID(const char* name, UInt_t entries);
64 virtual void GetDimParamsPID(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
65 virtual THnSparse* NewTHnSparseFCorr(const char* name, UInt_t entries);
66 virtual void GetDimParamsCorr(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
68 // set a bun of histogram switches up
69 void SetPlotGlobalRho(Bool_t g) { doPlotGlobalRho = g; } // plot global rho switch
70 void SetVariableBinning(Bool_t v) { doVariableBinning = v; } // do variable binning switch
71 void SetvarbinTHnSparse(Bool_t vb) { dovarbinTHnSparse = vb; } // variable THnSparse bin switch
72 void SetallpidAXIS(Bool_t allAXIS) { allpidAXIS = allAXIS; } // fill all PID sparse axis's
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
76 void SetoldJEThadhistos(Bool_t oldJH) { makeoldJEThadhistos = oldJH; } // make older JH histos for comparison
78 // set data, detectors type, and PID and PID w bias switches
79 void SetcutType(TString cut) { fcutType = cut; } // EMCAL / TPC acceptance cut
80 void SetdoPID(Bool_t p) { doPID = p; } // do PID switch
81 void SetdoPIDtrackBIAS(Bool_t PIDbias) { doPIDtrackBIAS = PIDbias; } // do PID track bias switch
83 // esd track cuts setters
84 void SetTrackCuts(AliESDtrackCuts *cuts) { fesdTrackCuts = cuts; }
86 // give comments setter
87 void SetdoComments(Bool_t comm) { doComments = comm; } // give comment switch
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 #
93 // setter for beamtype (needed for UserCreateObjects section)
94 virtual void SetCollType(BeamType bm) { fBeam = bm; } // set beamtype
97 TString GetLocalRhoName() const {return fLocalRhoName; }
99 // set names of some objects
100 virtual void SetLocalRhoName(const char *ln) { fLocalRhoName = ln; }
101 virtual void SetTracksName(const char *tn) { fTracksName = tn; }
102 virtual void SetTracksNameME(const char *MEtn) { fTracksNameME = MEtn; }
103 virtual void SetJetsName(const char *jn) { fJetsName = jn; }
105 // bias and cuts - setters
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
111 virtual void SetJetRad(Double_t jrad) { fJetRad = jrad; } // jet radius
112 virtual void SetConstituentCut(Double_t constCut) { fConstituentCut = constCut; } // constituent Cut
114 // eta and phi limits of jets - setters
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; }
118 // event mixing - setters
119 virtual void SetEventMixing(Int_t yesno) { fDoEventMixing=yesno; }
120 virtual void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
122 // jet container - setters
123 void SetContainerAllJets(Int_t c) { fContainerAllJets = c;}
124 void SetContainerPIDJets(Int_t c) { fContainerPIDJets = c;}
130 virtual void Terminate(Option_t *);
131 virtual Int_t AcceptMyJet(AliEmcalJet *jet); // applies basic jet tests/cuts before accepting
132 virtual Int_t GetCentBin(Double_t cent) const; // centrality bin of event
133 Double_t RelativePhi(Double_t mphi,Double_t vphi) const; // relative jet track angle
134 Double_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const; // relative jet event plane angle
135 virtual Int_t GetEtaBin(Double_t eta) const; // eta bins
136 virtual Int_t GetpTjetBin(Double_t pt) const; // jet pt bins
137 virtual Int_t GetpTtrackBin(Double_t pt) const; // track pt bins
138 virtual Int_t GetzVertexBin(Double_t zVtx) const; // zVertex bin
139 void SetfHistPIDcounterLabels(TH1* fHistPID) const; // PID counter
140 void SetfHistQAcounterLabels(TH1* h) const; // QA counter
141 //virtual Int_t AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM, Int_t NUM2, Int_t NUM3); // flavour jet acceptor
142 virtual Int_t AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM); // flavour jet acceptor
144 // parameters of detector to cut on for event
145 Double_t fPhimin; // phi min
146 Double_t fPhimax; // phi max
147 Double_t fEtamin; // eta min
148 Double_t fEtamax; // eta max
149 Double_t fAreacut; // area cut
150 Double_t fTrkBias; // track bias
151 Double_t fClusBias; // cluster bias
152 Double_t fTrkEta; // eta min/max of tracks
153 Double_t fJetPtcut; // jet pt to cut on for correlations
154 Double_t fJetRad; // jet radius
155 Double_t fConstituentCut; // jet constituent cut
158 AliESDtrackCuts *fesdTrackCuts; // esdTrackCuts
161 Int_t fDoEventMixing;
164 // switches for plots
165 Bool_t doPlotGlobalRho;
166 Bool_t doVariableBinning;
167 Bool_t dovarbinTHnSparse;
169 Bool_t makeBIAShistos;
170 Bool_t makeextraCORRhistos;
171 Bool_t makeoldJEThadhistos;
174 // Cut type (EMCAL/TPC acceptance)
179 Bool_t doPIDtrackBIAS;
184 // do flavour jet analysis switch, and set flavour jet tag
185 Bool_t doFlavourJetAnalysis;
192 Double_t fLocalRhoVal;
196 TString fTracksNameME;
202 // boolean functions for PID
203 Bool_t isPItpc, isKtpc, isPtpc;
204 Bool_t isPIits, isKits, isPits;
205 Bool_t isPItof, isKtof, isPtof;
208 TObjArray *CloneAndReduceTrackList(TObjArray* tracks);
209 AliEventPoolManager *fPoolMgr;//! // event pool Manager object
212 AliPIDResponse *fPIDResponse; // PID response object
213 AliTPCPIDResponse *fTPCResponse; // TPC pid response object
216 // needed for PID, track objects
217 AliESDEvent *fESD;//! // ESD object
218 AliAODEvent *fAOD;//! // AOD object
219 AliVEvent *fVevent;//! // Vevent object
221 TH1F *fHistEventQA;//!
223 TH2F *fHistTPCdEdX;//!
224 TH2F *fHistITSsignal;//!
225 // TH2F *fHistTOFsignal;//!
227 TH2F *fHistRhovsCent;//!
228 TH2F *fHistNjetvsCent;//! number of jets versus Centrality
229 TH2F *fHistJetPtvsTrackPt[6];//!
230 TH2F *fHistRawJetPtvsTrackPt[6];//!
231 TH1F *fHistTrackPt[6];//!
232 TH1F *fHistEP0[6];//!
233 TH1F *fHistEP0A[6];//!
234 TH1F *fHistEP0C[6];//!
235 TH2F *fHistEPAvsC[6];//!
236 TH1F *fHistJetPtcorrGlRho[6];//!
237 TH2F *fHistJetPtvsdEP[6];//!
238 TH2F *fHistJetPtvsdEPBias[6];//!
239 TH2F *fHistRhovsdEP[6];//!
240 TH3F *fHistJetEtaPhiPt[6];//!
241 TH3F *fHistJetEtaPhiPtBias[6];//!
242 TH2F *fHistJetPtArea[6];//!
243 TH2F *fHistJetPtAreaBias[6];//!
244 TH2F *fHistJetPtNcon[6];//!
245 TH2F *fHistJetPtNconBias[6];//!
246 TH2F *fHistJetPtNconCh[6];//!
247 TH2F *fHistJetPtNconBiasCh[6];//!
248 TH2F *fHistJetPtNconEm[6];//!
249 TH2F *fHistJetPtNconBiasEm[6];//!
250 TH1F *fHistJetHaddPhiINcent[6];//!
251 TH1F *fHistJetHaddPhiOUTcent[6];//!
252 TH1F *fHistJetHaddPhiMIDcent[6];//!
254 TH1 *fHistCentrality;//!
258 TH1 *fHistTrackPhi;//!
259 TH1 *fHistJetHaddPhiIN;//!
260 TH1 *fHistJetHaddPhiOUT;//!
261 TH1 *fHistJetHaddPhiMID;//!
262 TH1 *fHistJetHaddPhiBias;//!
263 TH1 *fHistJetHaddPhiINBias;//!
264 TH1 *fHistJetHaddPhiOUTBias;//!
265 TH1 *fHistJetHaddPhiMIDBias;//!
267 TH1 *fHistMEdPHI;//! // phi distrubtion of mixed events
268 TH1 *fHistTrackPtallcent;//!
270 TH2 *fHistJetEtaPhi;//!
271 TH2 *fHistTrackEtaPhi[4][7];//!
272 TH1 *fHistJetHadbindPhi[9];//!
273 TH1 *fHistJetHadbindPhiIN[9];//!
274 TH1 *fHistJetHadbindPhiMID[9];//!
275 TH1 *fHistJetHadbindPhiOUT[9];//!
276 TH2 *fHistJetHEtaPhi;//!
278 TH1 *fHistJetPt[6];//!
279 TH1 *fHistJetPtBias[6];//!
280 TH1 *fHistJetPtTT[6];//!
281 TH2 *fHistAreavsRawPt[6];//!
282 TH2 *fHistJetH[6][5][3];//!
283 TH2 *fHistJetHBias[6][5][3];//!
284 TH2 *fHistJetHTT[6][5][3];//!
285 TH1F *fHistJetHdPHI[11];//!
286 TH2F *fHistJetHdETAdPHI[11];//!
287 TH2F *fHistSEphieta;//! // single events phi-eta distributions
288 TH2F *fHistMEphieta;//! // mixed events phi-eta distributions
289 TH1F *fHistJetHaddPHI;//!
291 // PID status histo's
295 THnSparse *fhnPID;//! // PID sparse
296 THnSparse *fhnMixedEvents;//! // mixed events matrix
297 THnSparse *fhnJH;//! // jet hadron events matrix
298 THnSparse *fhnCorr;//! // sparse to get # jet triggers
301 AliJetContainer *fJetsCont; //!Jets
302 AliParticleContainer *fTracksCont; //!Tracks
303 AliClusterContainer *fCaloClustersCont; //!Clusters
305 // container specifier
306 Int_t fContainerAllJets; // number of container with all full jets
307 Int_t fContainerPIDJets; // number of container with full jets meeting Pt cut (for PID)
309 // ***********************************************************
311 //Declare it private to avoid compilation warning
312 AliAnalysisTaskEmcalJetHadEPpid(const AliAnalysisTaskEmcalJetHadEPpid & g) ; // cpy ctor
314 AliAnalysisTaskEmcalJetHadEPpid& operator=(const AliAnalysisTaskEmcalJetHadEPpid&); // not implemented
315 ClassDef(AliAnalysisTaskEmcalJetHadEPpid, 4); // Emcal jet hadron PID - Event plane dependence