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