]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaParticleJetFinderCorrelation.h
change axis title style to italics
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaParticleJetFinderCorrelation.h
CommitLineData
1c5acb87 1#ifndef ALIANAPARTICLEJETFINDERCORRELATION_H
2#define ALIANAPARTICLEJETFINDERCORRELATION_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
1c5acb87 5
6//_________________________________________________________________________
7// Class that contains the algorithm for the analysis of particle (direct gamma) - jet
8// (standard jet found with JETAN) correlation
9// Particle and jet for correlation found by independent algorithms.
10// For Example direct isolated photon found in AliAnaGammaDirect and the jet with JETAN
11//
12//-- Author: Gustavo Conesa (INFN-LNF)
290c1e1b 13//-- Modified by Adam Matyja (INP PAN, Krakow)
1c5acb87 14
15// --- ROOT system ---
16class TH2F;
290c1e1b 17class TTree;
18class TRandom2;
1c5acb87 19//---- Analysis system ----
745913ae 20#include "AliAnaCaloTrackCorrBaseClass.h"
1c5acb87 21
745913ae 22class AliAnaParticleJetFinderCorrelation : public AliAnaCaloTrackCorrBaseClass {
1c5acb87 23
78219bac 24 public:
745913ae 25 AliAnaParticleJetFinderCorrelation() ; // default ctor
290c1e1b 26 virtual ~AliAnaParticleJetFinderCorrelation() ; // virtual dtor
78219bac 27
c5693f62 28 // General methods
477d6cee 29
c5693f62 30 void InitParameters();
477d6cee 31
c5693f62 32 TList * GetCreateOutputObjects();
33
34 void MakeAnalysisFillAOD() ;
477d6cee 35
c5693f62 36 void MakeAnalysisFillHistograms() ;
477d6cee 37
290c1e1b 38 Int_t SelectJet(AliAODPWG4Particle * particle, TClonesArray * aodRecJets) ;//to access non standard branch
c5693f62 39
40 void Print(const Option_t * opt) const;
477d6cee 41
c5693f62 42 // Settings
477d6cee 43
c5693f62 44 Bool_t OnlyIsolated() const { return fSelectIsolated ; }
45 void SelectIsolated(Bool_t select) { fSelectIsolated = select ; }
477d6cee 46
c5693f62 47 Float_t GetConeSize() const { return fConeSize ; }
48 Float_t GetPtThresholdInCone() const { return fPtThresholdInCone ; }
49 Double_t GetDeltaPhiMaxCut() const { return fDeltaPhiMaxCut ; }
50 Double_t GetDeltaPhiMinCut() const { return fDeltaPhiMinCut ; }
51 Double_t GetRatioMaxCut() const { return fRatioMaxCut ; }
52 Double_t GetRatioMinCut() const { return fRatioMinCut ; }
53 Bool_t AreJetRefTracks() const { return fUseJetRefTracks ; }
54 Bool_t IsCorrelationMadeInHistoMaker() const { return fMakeCorrelationInHistoMaker ; }
290c1e1b 55 Double_t GetJetConeSize() const { return fJetConeSize ; }
56 Double_t GetJetMinPt() const { return fJetMinPt ; }
57 Double_t GetJetAreaFraction() const { return fJetAreaFraction ; }
58 Double_t GetGammaConeSize() const { return fGammaConeSize ; }
59
c5693f62 60 void SetConeSize(Float_t cone) { fConeSize = cone ; }
61 void SetPtThresholdInCone(Float_t pt) { fPtThresholdInCone = pt ; }
62 void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
63 { fDeltaPhiMaxCut =phimax; fDeltaPhiMinCut =phimin ; }
64 void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
65 { fRatioMaxCut =ratiomax; fRatioMinCut = ratiomin ; }
66 void UseJetRefTracks(Bool_t use) { fUseJetRefTracks = use ; }
290c1e1b 67 void SetMakeCorrelationInHistoMaker(Bool_t make) { fMakeCorrelationInHistoMaker = make ; }
68 void SetJetConeSize(Double_t cone) { fJetConeSize = cone ; }
69 void SetJetMinPt(Double_t minpt) { fJetMinPt = minpt ; }
70 void SetJetAreaFraction(Double_t areafr) { fJetAreaFraction = areafr ; }
71 void SetGammaConeSize(Float_t cone) { fGammaConeSize = cone ; }
72
73 // Settings for non standard jet branch
74 TString GetJetBranchName() const { return fJetBranchName ; }
75 void SetJetBranchName(const char *name) { fJetBranchName = name ; }
76 void SwitchOnNonStandardJetFromReader() { fNonStandardJetFromReader = kTRUE ; }
77 void SwitchOffNonStandardJetFromReader() { fNonStandardJetFromReader = kFALSE; }
78 Bool_t IsNonStandardJetFromReader() { return fNonStandardJetFromReader ; }
79
80 TString GetBkgJetBranchName() const { return fBkgJetBranchName ; }
81 void SetBkgJetBranchName(const char *name) { fBkgJetBranchName = name ; }
82 void SwitchOnBackgroundJetFromReader() { fBackgroundJetFromReader = kTRUE ; }
83 void SwitchOffBackgroundJetFromReader() { fBackgroundJetFromReader = kFALSE ; }
84 Bool_t IsBackgroundJetFromReader() { return fBackgroundJetFromReader ; }
85
86 //switches for photons
87 void SwitchOnBackgroundSubtractionGamma() { fUseBackgroundSubtractionGamma = kTRUE ; }
88 void SwitchOffBackgroundSubtractionGamma() { fUseBackgroundSubtractionGamma = kFALSE; }
89 Bool_t IsBackgroundSubtractionGamma() { return fUseBackgroundSubtractionGamma ; }
90
91 void CalculateBkg(TVector3 gamma, TVector3 jet,Double_t *vector,Int_t type);
92
93 void SwitchOnSaveGJTree() { fSaveGJTree = kTRUE ; }
94 void SwitchOffSaveGJTree() { fSaveGJTree = kFALSE; }
95 Bool_t IsSaveGJTree() { return fSaveGJTree ; }
96
97 void SwitchOnMostEnergetic() { fMostEnergetic = kTRUE ; fMostOpposite = kFALSE; }
98 void SwitchOffMostEnergetic() { fMostEnergetic = kFALSE; fMostOpposite = kTRUE ; }
99 void SwitchOffMostOpposite() { fMostEnergetic = kTRUE ; fMostOpposite = kFALSE; }
100 void SwitchOnMostOpposite() { fMostEnergetic = kFALSE; fMostOpposite = kTRUE ; }
101 Bool_t IsMostEnergetic() { return fMostEnergetic ; }
102 Bool_t IsMostOpposite() { return fMostOpposite; }
103
104 //switches for histograms
105 void SwitchOnHistogramJetBkg() { fUseHistogramJetBkg = kTRUE ; }
106 void SwitchOffHistogramJetBkg() { fUseHistogramJetBkg = kFALSE; }
107 Bool_t IsHistogramJetBkg() { return fUseHistogramJetBkg ; }
108
109 void SwitchOnHistogramTracks() { fUseHistogramTracks = kTRUE ; }
110 void SwitchOffHistogramTracks() { fUseHistogramTracks = kFALSE; }
111 Bool_t IsHistogramTracks() { return fUseHistogramTracks ; }
112
113 void SwitchOnHistogramJetTracks() { fUseHistogramJetTracks = kTRUE ; }
114 void SwitchOffHistogramJetTracks() { fUseHistogramJetTracks = kFALSE; }
115 Bool_t IsHistogramJetTracks() { return fUseHistogramJetTracks ; }
116
c5693f62 117private:
118
477d6cee 119 //selection parameters
c5693f62 120 Double_t fDeltaPhiMaxCut ; //! Minimum Delta Phi Gamma-Leading
290c1e1b 121 Double_t fDeltaPhiMinCut ; //! Maximum Delta Phi Gamma-Leading
122 Double_t fRatioMaxCut ; //! Jet/particle Ratio cut maximum
c5693f62 123 Double_t fRatioMinCut ; //! Jet/particle Ratio cut minimum
477d6cee 124
290c1e1b 125 Double_t fConeSize ; //! Jet cone size to calculate fragmentation function
477d6cee 126 Double_t fPtThresholdInCone ; //! Jet pT threshold in jet cone
290c1e1b 127 Bool_t fUseJetRefTracks ; //! Use track references from JETAN not the AOD tracks to calculate fragmentation function
128 Bool_t fMakeCorrelationInHistoMaker ; //!Make particle-jet correlation in histogram maker
129 Bool_t fSelectIsolated ; //! Select only trigger particles isolated
c5693f62 130
290c1e1b 131 Double_t fJetConeSize ; //! Reconstructed jet cone size
132 Double_t fJetMinPt ; //! Minumum jet pt, default 5GeV/c
133 Double_t fJetAreaFraction ; //! Jet area fraction X in X*pi*R^2, default 0.6
134 Bool_t fNonStandardJetFromReader; //! use non standard jet from reader //new
135 TString fJetBranchName ;//! name of jet branch not set in reader part //new
136 Bool_t fBackgroundJetFromReader; //! use background jet from reader //new
137 TString fBkgJetBranchName ;//! name of background jet branch not set in reader part //new
138
139 Double_t fGammaConeSize ; //! Isolation cone radius
140 Bool_t fUseBackgroundSubtractionGamma;//! flag to use backgrouind subtraction for photons or not
141 Bool_t fSaveGJTree;//! flag to save gamma-jet tree
142 Bool_t fMostEnergetic;//! flag to choose gamma-jet pairs most energetic
143 Bool_t fMostOpposite;//! flag to choose gamma-jet pairs most opposite
144
145 Bool_t fUseHistogramJetBkg;//! flag to save bkg jet histograms
146 Bool_t fUseHistogramTracks;//! flag to save CTS tracks features
147 Bool_t fUseHistogramJetTracks;//! flag to save jet tracks features
148
149 TRandom2 * fGenerator;//! pointer to random generator object
150
c5693f62 151 // Histograms
290c1e1b 152 TH2F * fhDeltaEta; //! Difference of jet eta and trigger particle eta as function of trigger particle pT
153 //TH2F * fhDeltaPhi; //! Difference of jet phi and trigger particle phi as function of trigger particle pT
154 TH2F * fhDeltaPhiCorrect; //! Difference of jet phi and trigger particle phi as function of trigger particle pT
155 TH2F * fhDeltaPhi0PiCorrect; //! Difference of jet phi and trigger particle phi as function of trigger particle pT
156
c5693f62 157 TH2F * fhDeltaPt; //! Difference of jet pT and trigger particle pT as function of trigger particle pT
158 TH2F * fhPtRatio; //! Ratio of jet pT and trigger particle pT as function of trigger particle pT
159 TH2F * fhPt; //! jet pT vs trigger particle pT
477d6cee 160
290c1e1b 161 TH2F * fhFFz ; //! Accepted reconstructed jet fragmentation function, z=pt^particle,jet/pttrig
162 TH2F * fhFFxi; //! Accepted reconstructed jet fragmentation function, xsi = ln(pttrig/pt^particle,jet)
c5693f62 163 TH2F * fhFFpt; //! Jet particle pt distribution in cone
164 TH2F * fhNTracksInCone; //! jet multiplicity in cone
477d6cee 165
290c1e1b 166 TH2F * fhJetFFz ; //! Accepted reconstructed jet fragmentation function, z=pt^particle,jet/ptjet
167 TH2F * fhJetFFxi; //! Accepted reconstructed jet fragmentation function, xsi = ln(ptjet/pt^particle,jet)
168 TH2F * fhJetFFpt; //! Jet particle pt distribution in jet cone
169 TH2F * fhJetFFzCor ; //! Accepted reconstructed jet fragmentation function, z=pt^particle,jet*-cos(jet,trig)/ptjet
170 TH2F * fhJetFFxiCor; //! Accepted reconstructed jet fragmentation function, xsi = ln(ptjet/pt^particle*-cos(jet,trig),jet)
171
172 //background from RC
173 TH2F * fhBkgFFz[5] ; //! Background fragmentation function, z=ptjet/pttrig
174 TH2F * fhBkgFFxi[5]; //! Background fragmentation function, xsi = ln(pttrig/ptjet)
175 TH2F * fhBkgFFpt[5]; //! Background particle pt distribution in cone
176 TH2F * fhBkgNTracksInCone[5]; //! Background multiplicity in cone
177 TH2F * fhBkgSumPtInCone[5]; //! Background sum pt in cone
178 TH2F * fhBkgSumPtnTracksInCone[5];//! Background sum pt over ntracks in cone
179
180 //temporary histograms
181 TH2F * fhNjetsNgammas; //! Number of jets vs number of photons in the event
182 TH1F * fhCuts; //! Number of events after cuts
183
184 TH2F * fhDeltaEtaBefore; //! Difference of jet eta and trigger particle eta as function of trigger particle pT
185 TH2F * fhDeltaPhiBefore; //! Difference of jet phi and trigger particle phi as function of trigger particle pT
186 TH2F * fhDeltaPtBefore; //! Difference of jet pT and trigger particle pT as function of trigger particle pT
187 TH2F * fhPtRatioBefore; //! Ratio of jet pT and trigger particle pT as function of trigger particle pT
188 TH2F * fhPtBefore; //! jet pT vs trigger particle pT
189 TH2F * fhDeltaPhi0PiCorrectBefore; //! Difference of jet phi and trigger particle phi (0,pi) as function of trigger particle pT
190
191 //temporary jet histograms
192 TH1F * fhJetPtBefore; //! Pt of all jets
193 TH1F * fhJetPt; //! Pt of all jets after bkg correction
194 TH1F * fhJetPtMostEne; //! Pt of the most energetic jet
195 TH1F * fhJetPhi; //! Phi of all jets
196 TH1F * fhJetEta; //! Eta of all jets
197 TH2F * fhJetEtaVsPt; //! Eta of all jets vs pt
198 TH2F * fhJetPhiVsEta; //! Phi vs eta of all jets
199 TH2F * fhJetEtaVsNpartInJet; //! Eta vs number of particles in jet for all jets
200 TH2F * fhJetEtaVsNpartInJetBkg; //! Eta vs number of particles in jet for background subtracted jets
201 TH2F * fhJetChBkgEnergyVsPt; //! background energy of each charged jet vs jet pt
202 TH2F * fhJetChAreaVsPt; //! area of each charged jet vs jet pt
203 TH2F * fhTrackPhiVsEta; //! Phi vs eta of all chosen tracks in all events
204 TH1F * fhTrackAveTrackPt; //! average track pt in event
205 TH1F * fhJetNjetOverPtCut[10]; //! number of reconstructed jets in event over pT threshold
206 TH2F * fhJetChBkgEnergyVsArea; //! area of each charged jet vs jet background
207 TH2F * fhJetRhoVsPt; //! jet energy density vs jet pt
208 TH2F * fhJetRhoVsCentrality; //! jet energy density vs centrality
209 TH1F * fhJetNparticlesInJet; //! number of particles in jets
210 TH2F * fhJetDeltaEtaDeltaPhi; //! delta eta vs delta phi for (jet-track) <-0.8,0.8>
211 TH2F * fhJetDeltaEtaDeltaPhiAllTracks;//! delta eta vs delta phi for (jet-track) <-pi,pi>
212
213
214
215 TH1F * fhJetAveTrackPt; //! average track from jets pt in event
216 TH2F * fhJetNtracksInJetAboveThr[6]; //! number of tracks in jet with pt above 0,1,2,3,4,5GeV
217 TH2F * fhJetRatioNTrkAboveToNTrk[5]; //! ratio tracks in jet with pt above 1,2,3,4,5GeV to ntracks
218 TH2F * fhJetNtrackRatioMostEne[5]; //! the same for most energetic jet
219 TH2F * fhJetNtrackRatioJet5GeV[5]; //! the same for pt jet above 5 GeV
220 TH2F * fhJetNtrackRatioLead5GeV[5]; //! the same for jet with leading particle pt>5GeV
221
222 //temporary background jet histograms
223 TH1F * fhBkgJetBackground[4]; //! background from jet bkg branch
224 TH1F * fhBkgJetSigma[4]; //! sigma of jet in backgroud branch
225 TH1F * fhBkgJetArea[4]; //! area of jet in bkg branch
226
227 //temporary photon histograms
228 TH1F * fhPhotonPtMostEne; //! most pt photon
229 TH1F * fhPhotonAverageEnergy; //! average energy of photon
230 TH1F * fhPhotonRatioAveEneToMostEne; //! ratio average energy to most energetic photon
231 TH1F * fhPhotonAverageEnergyMinus1; //! average energy of photon w/o most ene photon
232 TH1F * fhPhotonRatioAveEneMinus1ToMostEne; //! ratio average energy of photon w/o most ene photon to most energetic photon
233 TH1F * fhPhotonNgammaMoreAverageToNgamma; //! number of gammas with ene. more than average ene divided by no. of gammas
234 TH1F * fhPhotonNgammaMoreAverageMinus1ToNgamma; //! number of gammas with ene. more than average ene (w/o most ene gamma) divided by no. of gammas
235 TH1F * fhPhotonNgammaOverPtCut[10]; //! number of photons in event over pT threshold
236 TH2F * fhPhotonBkgRhoVsNtracks; //! average energy in one cell vs n tracks
237 TH2F * fhPhotonBkgRhoVsNclusters; //! average energy in one cell vs n clusters
238 TH2F * fhPhotonBkgRhoVsCentrality; //! average energy in one cell vs centrality
239 TH2F * fhPhotonBkgRhoVsNcells; //! average energy in one cell vs n cells
240 TH1F * fhPhotonPt; //! pt of gamma before bkg correction
241 TH1F * fhPhotonPtCorrected; //! pt of gamma after background correction
242 TH1F * fhPhotonPtCorrectedZoom; //! pt of gamma after background correction in +-5 GeV/c
243 TH1F * fhPhotonPtDiff; //! bkg correction = n_cells * median_rho
244 TH2F * fhPhotonPtDiffVsCentrality; //! correction vs centrality
245 TH2F * fhPhotonPtDiffVsNcells; //! correction vs Ncells
246 TH2F * fhPhotonPtDiffVsNtracks; //! correction vs Ntracks
247 TH2F * fhPhotonPtDiffVsNclusters; //! correction vs Nclustres
248
249 TH1F * fhPhotonSumPtInCone; //! sum pt in cone before correction
250 TH1F * fhPhotonSumPtCorrectInCone; //! sum pt in cone afrer correction
251 TH1F * fhPhotonSumPtChargedInCone; //! sum pt of charged tracks in the cone before correction
252
253
254 //temporary jet histograms after selection
255 TH2F * fhSelectedJetPhiVsEta; //! phi vs eta of selected jet
256 TH2F * fhSelectedJetChBkgEnergyVsPtJet; //! background energy of selected charged jet vs jet pt
257 TH2F * fhSelectedJetChAreaVsPtJet; //! area of selected charged jet vs jet pt
258 TH1F * fhSelectedJetNjet; //! number of jets in selected event
259 TH1F * fhSelectedNtracks; //! number of tracks in selected event
260 TH2F * fhSelectedTrackPhiVsEta; //! Phi vs eta of all chosen tracks in selected events
261
262 TH1F * fhCuts2; //! efficienct cuts
263
264 //temporary photon histogram after selection
265 TH2F * fhSelectedPhotonNLMVsPt; //! nlm vs pt for selected photons
266 TH2F * fhSelectedPhotonLambda0VsPt; //! lambda0 vs pt for selected photons
267 TH2F * fhRandomPhiEta[5]; //! eta and phi from random generator
268
269 //tree with data gamma and jet
270 TTree * fTreeGJ; //! gamma-jet tree
271 Double_t fGamPt; //! pt
272 Double_t fGamLambda0; //! lambda 0
273 Int_t fGamNLM; //! NLM
274 Double_t fGamSumPtCh; //! energy in isolation cone charged
275 Double_t fGamTime; //! time
276 Int_t fGamNcells; //! ncells
277 Double_t fGamEta; //! eta photon
278 Double_t fGamPhi; //! phi photon
279 Double_t fGamSumPtNeu; //! energy in isolation cone neutral
280 Int_t fGamNtracks; //! number of tracks in iso cone
281 Int_t fGamNclusters; //! number of clusters in iso cone
282 Double_t fGamAvEne; //! average energy of photons (without most ene)
283 Double_t fJetPhi; //! jet phi
284 Double_t fJetEta; //! eta phi
285 Double_t fJetPt; //! jet pt
286 Double_t fJetBkgChEne; //! bkg energy of jet
287 Double_t fJetArea; //! jet area
288 Int_t fJetNtracks; //! number of jet tracks
289 Int_t fJetNtracks1; //! number of jet tracks with pt>1 GeV/c
290 Int_t fJetNtracks2; //! number of jet tracks with pt>2 GeV/c
291 Double_t fJetRho; //! jet rho in event
292 Int_t fEventNumber; //! event number
293 Int_t fNtracks; //! n tracks in event
294 Double_t fZvertex; //! z vertex
295 Double_t fCentrality; //! centrality
296 Bool_t fIso; //! flag isolated or not
297 Double_t fGamRho; //! background energy for photons per cell in EMCal
298
745913ae 299 AliAnaParticleJetFinderCorrelation( const AliAnaParticleJetFinderCorrelation & g) ; // cpy ctor
c5693f62 300 AliAnaParticleJetFinderCorrelation & operator = (const AliAnaParticleJetFinderCorrelation & g) ; // cpy assignment
477d6cee 301
290c1e1b 302 ClassDef(AliAnaParticleJetFinderCorrelation,3)
c5693f62 303
1c5acb87 304 } ;
305
1c5acb87 306#endif //ALIANAPARTICLEJETFINDERCORRELATION_H
307
308
309