1 #ifndef AliAnalysisTaskEmcalJetHadEPpid_h
2 #define AliAnalysisTaskEmcalJetHadEPpid_h
15 class AliEventPoolManager;
16 class AliLocalRhoParameter;
21 class AliEMCALGeometry;
22 class AliEMCALRecoUtils;
26 class AliJetContainer;
27 class AliParticleContainer;
28 class AliClusterContainer;
31 #include <AliAnalysisTaskEmcalJet.h>
32 #include <AliEmcalJet.h>
33 #include <AliVEvent.h>
34 #include <AliVTrack.h>
35 #include <AliVCluster.h>
36 #include <TClonesArray.h>
42 #include "AliAnalysisTaskLocalRho.h"
43 #include "AliLocalRhoParameter.h"
46 #include "AliPIDResponse.h"
48 #include "AliAnalysisFilter.h"
50 class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet {
52 AliAnalysisTaskEmcalJetHadEPpid();
53 AliAnalysisTaskEmcalJetHadEPpid(const char *name);
54 //virtual ~AliAnalysisTaskEmcalJetHadEPpid() {}
55 virtual ~AliAnalysisTaskEmcalJetHadEPpid();
57 virtual void UserCreateOutputObjects();
59 virtual THnSparse* NewTHnSparseD(const char* name, UInt_t entries);
60 virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
61 virtual THnSparse* NewTHnSparseDPID(const char* name, UInt_t entries);
62 virtual void GetDimParamsPID(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
63 virtual THnSparse* NewTHnSparseDCorr(const char* name, UInt_t entries);
64 virtual void GetDimParamsCorr(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
66 // set a bun of histogram switches up
67 void SetPlotGlobalRho(Bool_t g) { doPlotGlobalRho = g; } // plot global rho switch
68 void SetVariableBinning(Bool_t v) { doVariableBinning = v; } // do variable binning switch
69 void SetvarbinTHnSparse(Bool_t vb) { dovarbinTHnSparse = vb; } // variable THnSparse bin switch
70 void SetmakeQAhistos(Bool_t QAhist) { makeQAhistos = QAhist; } // make QA histos
71 void SetmakeBIAShistos(Bool_t BIAShist) { makeBIAShistos = BIAShist; } // make bias histos
72 void SetmakeextraCORRhistos(Bool_t Xhist) { makeextraCORRhistos = Xhist; } // make extra correlations histos
73 void SetoldJEThadhistos(Bool_t oldJH) { makeoldJEThadhistos = oldJH; } // make older JH histos for comparison
75 // set data, detectors type, and PID and PID w bias switches
76 void SetDataType(Bool_t data) { useAOD = data; } // data type switch
77 void SetcutType(TString cut) { fcutType = cut; } // EMCAL / TPC acceptance cut
78 void SetdoPID(Bool_t p) { doPID = p; } // do PID switch
79 void SetdoPIDtrackBIAS(Bool_t PIDbias) { doPIDtrackBIAS = PIDbias; } // do PID track bias switch
81 // give comments setter
82 void SetdoComments(Bool_t comm) { doComments = comm; } // give comment switch
85 TString GetLocalRhoName() const {return fLocalRhoName; }
87 // set names of some objects
88 virtual void SetLocalRhoName(const char *ln) { fLocalRhoName = ln; }
89 virtual void SetTracksName(const char *tn) { fTracksName = tn; }
90 virtual void SetJetsName(const char *jn) { fJetsName = jn; }
92 // bias and cuts - setters
93 virtual void SetAreaCut(Double_t a) { fAreacut = a; }
94 virtual void SetTrkBias(Double_t b) { fTrkBias = b; } //require a track with pt > b in jet
95 virtual void SetClusBias(Double_t b) { fClusBias = b; } //require a cluster with pt > b in jet
96 virtual void SetTrkEta(Double_t e) { fTrkEta = e; } //eta range of the associated tracks
97 virtual void SetJetPtcut(Double_t jpt) { fJetPtcut = jpt; } // jet pt cut
98 virtual void SetJetRad(Double_t jrad) { fJetRad = jrad; } // jet radius
99 virtual void SetConstituentCut(Double_t constCut) { fConstituentCut = constCut; } // constituent Cut
101 // eta and phi limits of jets - setters
102 virtual void SetJetEta(Double_t emin, Double_t emax) { fEtamin = emin; fEtamax = emax; }
103 virtual void SetJetPhi(Double_t pmin, Double_t pmax) { fPhimin = pmin; fPhimax = pmax; }
105 // event mixing - setters
106 virtual void SetEventMixing(Int_t yesno) { fDoEventMixing=yesno; }
107 virtual void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
109 // jet container - setters
110 void SetContainerAllJets(Int_t c) { fContainerAllJets = c;}
111 void SetContainerPIDJets(Int_t c) { fContainerPIDJets = c;}
117 virtual void Terminate(Option_t *);
118 virtual Int_t AcceptMyJet(AliEmcalJet *jet); // applies basic jet tests/cuts before accepting
119 virtual Int_t GetCentBin(Double_t cent) const; // centrality bin of event
120 Double_t RelativePhi(Double_t mphi,Double_t vphi) const; // relative jet track angle
121 Double_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const; // relative jet event plane angle
122 virtual Int_t GetEtaBin(Double_t eta) const; // eta bins
123 virtual Int_t GetpTjetBin(Double_t pt) const; // jet pt bins
124 virtual Int_t GetpTtrackBin(Double_t pt) const; // track pt bins
125 virtual Int_t GetzVertexBin(Double_t zVtx) const; // zVertex bin
126 void SetfHistPIDcounterLabels(TH1* fHistPID) const; // PID counter
128 // parameters of detector to cut on for event
129 Double_t fPhimin; // phi min
130 Double_t fPhimax; // phi max
131 Double_t fEtamin; // eta min
132 Double_t fEtamax; // eta max
133 Double_t fAreacut; // area cut
134 Double_t fTrkBias; // track bias
135 Double_t fClusBias; // cluster bias
136 Double_t fTrkEta; // eta min/max of tracks
137 Double_t fJetPtcut; // jet pt to cut on for correlations
138 Double_t fJetRad; // jet radius
139 Double_t fConstituentCut; // jet constituent cut
142 Int_t fDoEventMixing;
145 // switches for plots
146 Bool_t doPlotGlobalRho;
147 Bool_t doVariableBinning;
148 Bool_t dovarbinTHnSparse;
150 Bool_t makeBIAShistos;
151 Bool_t makeextraCORRhistos;
152 Bool_t makeoldJEThadhistos;
157 // Cut type (EMCAL/TPC acceptance)
162 Bool_t doPIDtrackBIAS;
168 Double_t fLocalRhoVal;
177 // boolean functions for PID
178 Bool_t isPItpc, isKtpc, isPtpc;
179 Bool_t isPIits, isKits, isPits;
180 Bool_t isPItof, isKtof, isPtof;
183 TObjArray* CloneAndReduceTrackList(TObjArray* tracks);
184 AliEventPoolManager *fPoolMgr; // event pool Manager object
187 AliPIDResponse *fPIDResponse; // PID response object
188 AliTPCPIDResponse *fTPCResponse; // TPC pid response object
191 // needed for PID, track objects
192 AliESDEvent *fESD; // ESD object
193 AliAODEvent *fAOD; // AOD object
196 TH2F *fHistITSsignal;
197 // TH2F *fHistTOFsignal;
199 TH2F *fHistRhovsCent; //!
200 TH2F *fHistNjetvsCent;//! number of jets versus Centrality
201 TH2F *fHistJetPtvsTrackPt[6];//!
202 TH2F *fHistRawJetPtvsTrackPt[6];//!
203 TH1F *fHistTrackPt[6];//!
204 TH1F *fHistEP0[6];//!
205 TH1F *fHistEP0A[6];//!
206 TH1F *fHistEP0C[6];//!
207 TH2F *fHistEPAvsC[6];//!
208 TH1F *fHistJetPtcorrGlRho[6];//!
209 TH2F *fHistJetPtvsdEP[6];//!
210 TH2F *fHistJetPtvsdEPBias[6];//!
211 TH2F *fHistRhovsdEP[6]; //!
212 TH3F *fHistJetEtaPhiPt[6];//!
213 TH3F *fHistJetEtaPhiPtBias[6];//!
214 TH2F *fHistJetPtArea[6];//!
215 TH2F *fHistJetPtAreaBias[6];//!
216 TH2F *fHistJetPtNcon[6]; //!
217 TH2F *fHistJetPtNconBias[6]; //!
218 TH2F *fHistJetPtNconCh[6]; //!
219 TH2F *fHistJetPtNconBiasCh[6]; //!
220 TH2F *fHistJetPtNconEm[6]; //!
221 TH2F *fHistJetPtNconBiasEm[6]; //!
222 TH1F *fHistJetHaddPhiINcent[6];
223 TH1F *fHistJetHaddPhiOUTcent[6];
224 TH1F *fHistJetHaddPhiMIDcent[6];
226 TH1 *fHistCentrality;
231 TH1 *fHistJetHaddPhiIN;
232 TH1 *fHistJetHaddPhiOUT;
233 TH1 *fHistJetHaddPhiMID;
234 TH1 *fHistJetHaddPhiBias;
235 TH1 *fHistJetHaddPhiINBias;
236 TH1 *fHistJetHaddPhiOUTBias;
237 TH1 *fHistJetHaddPhiMIDBias;
239 TH1 *fHistMEdPHI; // phi distrubtion of mixed events
240 TH1 *fHistTrackPtallcent;
243 TH2 *fHistTrackEtaPhi[4][7];
244 TH1 *fHistJetHadbindPhi[9];
245 TH1 *fHistJetHadbindPhiIN[9];
246 TH1 *fHistJetHadbindPhiMID[9];
247 TH1 *fHistJetHadbindPhiOUT[9];
248 TH2 *fHistJetHEtaPhi;
251 TH1 *fHistJetPtBias[6];
252 TH1 *fHistJetPtTT[6];
253 TH2 *fHistAreavsRawPt[6];
254 TH2 *fHistJetH[6][5][3];
255 TH2 *fHistJetHBias[6][5][3];
256 TH2 *fHistJetHTT[6][5][3];
257 TH1F *fHistJetHdPHI[11];
258 TH2F *fHistJetHdETAdPHI[11];
259 TH2F *fHistSEphieta; // single events phi-eta distributions
260 TH2F *fHistMEphieta; // mixed events phi-eta distributions
261 TH1F *fHistJetHaddPHI;
263 // PID status histo's
267 THnSparse *fhnPID; // PID sparse
268 THnSparse *fhnMixedEvents; // mixed events matrix
269 THnSparse *fhnJH; // jet hadron events matrix
270 THnSparse *fhnCorr; // sparse to get # jet triggers
273 AliJetContainer *fJetsCont; //!Jets
274 AliParticleContainer *fTracksCont; //!Tracks
275 AliClusterContainer *fCaloClustersCont; //!Clusters
277 // container specifier
278 Int_t fContainerAllJets; // number of container with all full jets
279 Int_t fContainerPIDJets; // number of container with full jets meeting Pt cut (for PID)
281 // ***********************************************************
283 //Declare it private to avoid compilation warning
284 AliAnalysisTaskEmcalJetHadEPpid(const AliAnalysisTaskEmcalJetHadEPpid & g) ; // cpy ctor
286 AliAnalysisTaskEmcalJetHadEPpid& operator=(const AliAnalysisTaskEmcalJetHadEPpid&); // not implemented
287 ClassDef(AliAnalysisTaskEmcalJetHadEPpid, 4); // Emcal jet hadron PID - Event plane dependence