18 #include <TClonesArray.h>
26 #include <TLorentzVector.h>
29 #include "AliMCEvent.h"
30 #include "AliPythia.h"
33 #include "AliVTrack.h"
34 #include "AliVHeader.h"
40 #include "AliAODTrack.h"
41 #include "AliAODMCParticle.h"
42 #include "AliAODPid.h"
44 #include "AliVParticle.h"
65 fEventExtractionPercentage(0),
66 fEventExtractionMinJetPt(0),
67 fEventExtractionMaxJetPt(0),
68 fConstPtFilterBit(1024),
69 fNumberOfCentralityBins(10),
72 fJetParticleArrayName("JetsDPhiBasicParticles"),
73 fTrackParticleArrayName(""),
75 fJetEmbeddingArrayName(""),
76 fJetEmbeddingTrackArrayName(""),
77 fJetEmbeddingMaxDistance(0.3),
78 fJetEmbeddingNumMatchedJets(2),
79 fJetEmbeddingUsePerTrackMCPercentage(kTRUE),
80 fJetEmbeddingUseBgrdForMCPercentage(kFALSE),
81 fJetEmbeddingCreatePtPlotPerCut(kFALSE),
84 fJetVetoArrayName(""),
92 fTrackExtractionPercentagePower(0),
93 fNumRandomConesPerEvent(10),
97 fInitialPartonMatchedJet1(0),
98 fInitialPartonMatchedJet2(0),
103 SetMakeGeneralHistograms(kTRUE);
104 fRandom =
new TRandom3(0);
113 fEventExtractionPercentage(0),
114 fEventExtractionMinJetPt(0),
115 fEventExtractionMaxJetPt(0),
116 fConstPtFilterBit(1024),
117 fNumberOfCentralityBins(10),
120 fJetParticleArrayName(
"JetsDPhiBasicParticles"),
121 fTrackParticleArrayName(
""),
122 fJetEmbeddingArray(),
123 fJetEmbeddingArrayName(
""),
124 fJetEmbeddingTrackArrayName(
""),
125 fJetEmbeddingMaxDistance(0.3),
126 fJetEmbeddingNumMatchedJets(2),
127 fJetEmbeddingUsePerTrackMCPercentage(kTRUE),
128 fJetEmbeddingUseBgrdForMCPercentage(kFALSE),
129 fJetEmbeddingCreatePtPlotPerCut(kFALSE),
132 fJetVetoArrayName(
""),
140 fTrackExtractionPercentagePower(0),
141 fNumRandomConesPerEvent(10),
145 fInitialPartonMatchedJet1(0),
146 fInitialPartonMatchedJet2(0),
180 AddHistogram2D<TH2D>(
"hTrackPt",
"Tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
181 AddHistogram2D<TH2D>(
"hTrackPhi",
"Track angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
182 AddHistogram2D<TH2D>(
"hTrackEta",
"Track angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
183 AddHistogram2D<TH2D>(
"hTrackPhiEta",
"Track angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Tracks}/d#phi d#eta");
185 AddHistogram2D<TH2D>(
"hLeadingTrackPt",
"Leading tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
186 AddHistogram2D<TH2D>(
"hLeadingTrackPhi",
"Leading tracks angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
187 AddHistogram2D<TH2D>(
"hLeadingTrackEta",
"Leading tracks angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
188 AddHistogram2D<TH2D>(
"hLeadingTrackPhiEta",
"Track angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Tracks}/d#phi d#eta");
190 AddHistogram2D<TH2D>(
"hTrackEtaPt",
"Track angular distribution in #eta vs. p_{T}",
"LEGO2", 100, -2.5, 2.5, 300, 0., 300.,
"#eta",
"p_{T} (GeV/c)",
"dN^{Tracks}/(d#eta dp_{T})");
191 AddHistogram2D<TH2D>(
"hTrackPhiPt",
"Track angular distribution in #phi vs. p_{T}",
"LEGO2", 180, 0, 2*TMath::Pi(), 300, 0., 300.,
"#phi",
"p_{T} (GeV/c)",
"dN^{Tracks}/(d#phi dp_{T})");
196 const char* appendix =
"";
200 appendix = Form(
"_%s", currentCut.
fCutName.Data());
203 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hJetPtRaw%s", appendix))) )
207 AddHistogram2D<TH2D>(Form(
"hJetPtRaw%s", appendix),
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
208 AddHistogram2D<TH2D>(Form(
"hJetPt%s", appendix),
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
209 AddHistogram2D<TH2D>(Form(
"hJetPhi%s", appendix),
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
210 AddHistogram2D<TH2D>(Form(
"hJetEta%s", appendix),
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
211 AddHistogram2D<TH2D>(Form(
"hJetPhiPt%s", appendix),
"Jet angular distribution #phi vs. p_{T}",
"LEGO2", 180, 0., 2*TMath::Pi(), 400, -100., 300.,
"#phi",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#phi dp_{T}");
212 AddHistogram2D<TH2D>(Form(
"hJetEtaPt%s", appendix),
"Jet angular distribution #eta vs. p_{T}",
"LEGO2", 100, -2.5, 2.5, 400, -100., 300.,
"#eta",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#eta dp_{T}");
213 AddHistogram2D<TH2D>(Form(
"hJetPhiEta%s", appendix),
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
214 AddHistogram2D<TH2D>(Form(
"hJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
215 AddHistogram2D<TH2D>(Form(
"hJetAreaPt%s", appendix),
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
216 AddHistogram2D<TH2D>(Form(
"hJetPtLeadingHadron%s", appendix),
"Jet leading hadron p_{T} distribution vs. jet p_{T}",
"", 300, 0., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T,lead had} (GeV/c)",
"dN^{Jets}/dp_{T}dp_{T,had}");
219 AddHistogram2D<TH2D>(Form(
"hLeadingJetPtRaw%s", appendix),
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
220 AddHistogram2D<TH2D>(Form(
"hLeadingJetPt%s", appendix),
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
221 AddHistogram2D<TH2D>(Form(
"hLeadingJetPhi%s", appendix),
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
222 AddHistogram2D<TH2D>(Form(
"hLeadingJetEta%s", appendix),
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
223 AddHistogram2D<TH2D>(Form(
"hLeadingJetPhiPt%s", appendix),
"Jet angular distribution #phi vs. p_{T}",
"LEGO2", 180, 0., 2*TMath::Pi(), 400, -100., 300.,
"#phi",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#phi dp_{T}");
224 AddHistogram2D<TH2D>(Form(
"hLeadingJetEtaPt%s", appendix),
"Jet angular distribution #eta vs. p_{T}",
"LEGO2", 100, -2.5, 2.5, 400, -100., 300.,
"#eta",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#eta dp_{T}");
225 AddHistogram2D<TH2D>(Form(
"hLeadingJetPhiEta%s", appendix),
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
226 AddHistogram2D<TH2D>(Form(
"hLeadingJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
227 AddHistogram2D<TH2D>(Form(
"hLeadingJetAreaPt%s", appendix),
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
228 AddHistogram2D<TH2D>(Form(
"hLeadingJetPtLeadingHadron%s", appendix),
"Jet leading hadron p_{T} distribution vs. jet p_{T}",
"", 300, 0., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T,lead had} (GeV/c)",
"dN^{Jets}/dp_{T}dp_{T,had}");
230 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPtRaw%s", appendix),
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
231 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPt%s", appendix),
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
232 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPhi%s", appendix),
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
233 AddHistogram2D<TH2D>(Form(
"hSubleadingJetEta%s", appendix),
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
234 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPhiPt%s", appendix),
"Jet angular distribution #phi vs. p_{T}",
"LEGO2", 180, 0., 2*TMath::Pi(), 400, -100., 300.,
"#phi",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#phi dp_{T}");
235 AddHistogram2D<TH2D>(Form(
"hSubleadingJetEtaPt%s", appendix),
"Jet angular distribution #eta vs. p_{T}",
"LEGO2", 100, -2.5, 2.5, 400, -100., 300.,
"#eta",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/d#eta dp_{T}");
236 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPhiEta%s", appendix),
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
237 AddHistogram2D<TH2D>(Form(
"hSubleadingJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
238 AddHistogram2D<TH2D>(Form(
"hSubleadingJetAreaPt%s", appendix),
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
239 AddHistogram2D<TH2D>(Form(
"hSubleadingJetPtLeadingHadron%s", appendix),
"Jet leading hadron p_{T} distribution vs. jet p_{T}",
"", 300, 0., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T,lead had} (GeV/c)",
"dN^{Jets}/dp_{T}dp_{T,had}");
241 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent0_100%s", appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted)",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
242 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent0_10%s", appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 0-10 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
243 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent10_30%s", appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 10-30 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
244 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent30_50%s", appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 30-50 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
245 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent50_90%s", appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 50-90 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
247 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent0_100_FilterBit%i%s",
fConstPtFilterBit, appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted)",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
248 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent0_10_FilterBit%i%s",
fConstPtFilterBit, appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 0-10 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
249 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent10_30_FilterBit%i%s",
fConstPtFilterBit, appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 10-30 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
250 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent30_50_FilterBit%i%s",
fConstPtFilterBit, appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 30-50 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
251 AddHistogram2D<TH2D>(Form(
"hJetConstituentPt_Cent50_90_FilterBit%i%s",
fConstPtFilterBit, appendix),
"Jet constituent p_{T} distribution vs. jet p_T (background subtracted), 50-90 centrality",
"", 400, -100., 300., 300, 0., 300.,
"p_{T, jet} (GeV/c)",
"p_{T, track} (GeV/c)",
"dN^{Tracks}/d^{2}p_{T}");
253 AddHistogram2D<TH2D>(Form(
"hJetConstituentCount_Cent0_100%s", appendix),
"Jet constituent count vs. jet p_T (background subtracted)",
"", 400, -100., 300., 200, 0., 200.,
"p_{T, jet} (GeV/c)",
"Count",
"dN^{Jets}/dNdp_{T}");
254 AddHistogram2D<TH2D>(Form(
"hJetConstituentCount_Cent0_10%s", appendix),
"Jet constituent count vs. jet p_T (background subtracted), 0-10 centrality",
"", 400, -100., 300., 200, 0., 200.,
"p_{T, jet} (GeV/c)",
"Count",
"dN^{Jets}/dNdp_{T}");
266 const char* appendix =
"";
270 appendix = Form(
"_%s", currentCut.
fCutName.Data());
273 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hEmbeddingDeltaR%s", appendix))) )
276 AddHistogram2D<TH2D>(Form(
"hEmbeddingDeltaR%s", appendix),
"Matched jet #Delta R distribution",
"", 200, -50., 150., 100, 0, 1.0,
"p_{T, jet} (GeV/c)",
"#Delta R",
"dN^{Matched}/dp_{T}dR");
277 AddHistogram2D<TH2D>(Form(
"hEmbeddingDeltaEta%s", appendix),
"Matched jet #Delta #eta distribution",
"", 200, -50., 150., 100, -1.0, 1.0,
"p_{T, jet} (GeV/c)",
"#Delta #eta",
"dN^{Matched}/dp_{T}d#eta");
278 AddHistogram2D<TH2D>(Form(
"hEmbeddingDeltaPhi%s", appendix),
"Matched jet #Delta #phi distribution",
"", 200, -50., 150., 100, -1.0, 1.0,
"p_{T, jet} (GeV/c)",
"#Delta #phi",
"dN^{Matched}/dp_{T}d#phi");
279 AddHistogram1D<TH1D>(Form(
"hEmbeddingJetPt%s", appendix),
"Embedded jets p_{T} distribution",
"", 200, -50., 150.,
"p_{T, jet} (GeV/c)",
"dN/dp_{T}");
280 AddHistogram2D<TH2D>(Form(
"hEmbeddingJetPhiEta%s", appendix),
"Embedded jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
284 AddHistogram3D<TH3D>(Form(
"hEmbeddingPtCorr010%s", appendix),
"Matched jet p_{T} distributions (0-10% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
285 AddHistogram3D<TH3D>(Form(
"hEmbeddingPtCorr1030%s", appendix),
"Matched jet p_{T} distributions (10-30% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
286 AddHistogram3D<TH3D>(Form(
"hEmbeddingPtCorr3050%s", appendix),
"Matched jet p_{T} distributions (30-50% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
287 AddHistogram3D<TH3D>(Form(
"hEmbeddingPtCorr5090%s", appendix),
"Matched jet p_{T} distributions (50-90% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
291 AddHistogram2D<TH2D>(Form(
"hEmbeddingPtCorr010_Above20%s", appendix),
"Matched jet p_{T} distributions, MC ratio > 20% (0-10% centrality)",
"", 150, 0., 150., 150, 0., 150.,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
292 AddHistogram2D<TH2D>(Form(
"hEmbeddingPtCorr1030_Above20%s", appendix),
"Matched jet p_{T} distributions, MC ratio > 20% (10-30% centrality)",
"", 150, 0., 150., 150, 0., 150.,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
293 AddHistogram2D<TH2D>(Form(
"hEmbeddingPtCorr3050_Above20%s", appendix),
"Matched jet p_{T} distributions, MC ratio > 20% (30-50% centrality)",
"", 150, 0., 150., 150, 0., 150.,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
294 AddHistogram2D<TH2D>(Form(
"hEmbeddingPtCorr5090_Above20%s", appendix),
"Matched jet p_{T} distributions, MC ratio > 20% (50-90% centrality)",
"", 150, 0., 150., 150, 0., 150.,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
300 AddHistogram3D<TH3D>(
"hEmbeddingPtCorr010",
"Matched jet p_{T} distributions (0-10% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
301 AddHistogram3D<TH3D>(
"hEmbeddingPtCorr1030",
"Matched jet p_{T} distributions (10-30% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
302 AddHistogram3D<TH3D>(
"hEmbeddingPtCorr3050",
"Matched jet p_{T} distributions (30-50% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
303 AddHistogram3D<TH3D>(
"hEmbeddingPtCorr5090",
"Matched jet p_{T} distributions (50-90% centrality)",
"", 150, 0., 150., 150, 0., 150., 100, 0., maxRatio,
"p_{T, MC jet} (GeV/c)",
"p_{T, emb} (GeV/c)",
"% MC");
308 AddHistogram2D<TH2D>(
"hRandomConePt",
"Random cone p_{T} distribution",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
309 AddHistogram2D<TH2D>(
"hRandomConePtCut3GeV",
"Random cone p_{T} distribution, cut p_{T} > 3 GeV/c",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
310 AddHistogram2D<TH2D>(
"hRandomConeRawPt",
"Random cone p_{T} distribution (no bgrd. correction)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
311 AddHistogram2D<TH2D>(
"hRandomConeRawPtCut3GeV",
"Random cone p_{T} distribution (no bgrd. correction), cut p_{T} > 3 GeV/c",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
313 AddHistogram2D<TH2D>(
"hTrackCount",
"Number of tracks in acceptance vs. centrality",
"LEGO2", 500, 0., 5000.,
fNumberOfCentralityBins, 0, 100,
"N tracks",
"Centrality",
"dN^{Events}/dN^{Tracks}");
314 AddHistogram2D<TH2D>(
"hJetCount",
"Number of jets in acceptance vs. centrality",
"LEGO2", 100, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"N Jets",
"Centrality",
"dN^{Events}/dN^{Jets}");
315 AddHistogram2D<TH2D>(
"hBackgroundPt",
"Background p_{T} distribution",
"", 150, 0., 150.,
fNumberOfCentralityBins, 0, 100,
"Background p_{T} (GeV/c)",
"Centrality",
"dN^{Events}/dp_{T}");
320 const char* appendix =
"";
324 appendix = Form(
"_%s", currentCut.
fCutName.Data());
327 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hBackgroundPtJetPt_Cent0_100%s", appendix))) )
330 AddHistogram2D<TH2D>(Form(
"hBackgroundPtJetPt_Cent0_100%s", appendix),
"Background p_{T} distribution vs. jet p_{T}",
"", 150, 0., 150., 400, -100., 300.,
"Background p_{T} (GeV/c)",
"Jet p_{T} (GeV/c)",
"dN^{Events}/dp_{T}");
331 AddHistogram2D<TH2D>(Form(
"hBackgroundPtJetPt_Cent0_10%s", appendix),
"Background p_{T} distribution vs. jet p_{T}",
"", 150, 0., 150., 400, -100., 300.,
"Background p_{T} (GeV/c)",
"Jet p_{T} (GeV/c)",
"dN^{Events}/dp_{T}");
332 AddHistogram2D<TH2D>(Form(
"hBackgroundPtConstCount_Cent0_100%s", appendix),
"Background p_{T} distribution vs. const. count",
"", 150, 0., 150., 200, 0., 200.,
"Background p_{T} (GeV/c)",
"Count",
"dN^{Events}/dp_{T}");
333 AddHistogram2D<TH2D>(Form(
"hBackgroundPtConstCount_Cent0_10%s", appendix),
"Background p_{T} distribution vs. const. count",
"", 150, 0., 150., 200, 0., 200.,
"Background p_{T} (GeV/c)",
"Count",
"dN^{Events}/dp_{T}");
350 fJetsOutput.push_back(
new TClonesArray(
"AliPicoTrack"));
355 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetParticleArrayName.Data())));
362 if (fInputEvent->FindListObject(Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())))
363 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())));
368 if (!fInputEvent->FindListObject(Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())))
370 fJetsOutput.push_back(
new TClonesArray(
"AliPicoTrack"));
411 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fTrackParticleArrayName.Data())));
419 AliFatal(Form(
"Importing jets for embedding failed! Array '%s' not found!",
fJetEmbeddingArrayName.Data()));
422 AliFatal(Form(
"fJetEmbeddingArrayName must be set in jet output mode 4 or 5."));
429 AliFatal(Form(
"Importing jets for veto failed! Array '%s' not found!",
fJetVetoArrayName.Data()));
470 appendix = Form(
"_%s", cutName);
521 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
525 Bool_t filterConditionFulfilled = kFALSE;
526 AliAODTrack* aodTrack =
static_cast<AliAODTrack*
>(constituent);
532 if(filterConditionFulfilled)
537 if(filterConditionFulfilled)
543 if(filterConditionFulfilled)
549 if(filterConditionFulfilled)
555 if(filterConditionFulfilled)
573 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-refJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-refJet->
Phi()));
574 if(jet->
Phi() < refJet->
Phi())
575 deltaPhi = -deltaPhi;
577 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
581 FillHistogram(Form(
"hEmbeddingJetPt%s", appendix.Data()), refJet->
Pt());
582 FillHistogram(Form(
"hEmbeddingJetPhiEta%s", appendix.Data()), refJet->
Phi(), refJet->
Eta());
636 jetsAlreadyInArray++;
653 AliAODTrack* aodtrack =
dynamic_cast<AliAODTrack*
>(track);
658 if(track->Pt() < 20.)
668 TClonesArray* fTruthParticleArray =
dynamic_cast<TClonesArray*
>(InputEvent()->FindListObject(
"mcparticles"));
669 if(fTruthParticleArray)
671 for(
Int_t i=0; i<fTruthParticleArray->GetEntries();i++)
673 AliAODMCParticle* mcParticle =
dynamic_cast<AliAODMCParticle*
>(fTruthParticleArray->At(i));
674 if(!mcParticle)
continue;
676 if (mcParticle->GetLabel() == aodtrack->GetLabel())
678 truthPID = mcParticle->PdgCode();
686 AliBasicParticle basicParticle(aodtrack->Eta(), aodtrack->Phi(), aodtrack->Pt(), aodtrack->Charge());
703 static Int_t numSavedEvents = 0;
707 AddHistogram2D<TH2D>(Form(
"Event%i", numSavedEvents),
"Event display",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Tracks}/d#phi d#eta");
710 FillHistogram(Form(
"Event%i", numSavedEvents), track->Phi(), track->Eta(), track->Pt());
766 Int_t trackcount = 0;
795 tmpRandConePt += track->Pt();
796 if (track->Pt() > 3.0)
797 tmpRandConePt3GeV += track->Pt();
817 FillHistogram(
"hLeadingTrackPhiEta", leadTrack->Phi(), leadTrack->Eta());
831 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
845 Double_t deltaR1 = TMath::Sqrt(deltaEta1*deltaEta1 + deltaPhi1*deltaPhi1);
846 Double_t deltaR2 = TMath::Sqrt(deltaEta2*deltaEta2 + deltaPhi2*deltaPhi2);
848 if(deltaR1 < bestMatchDeltaR1)
850 bestMatchDeltaR1 = deltaR1;
853 if(deltaR2 < bestMatchDeltaR2)
855 bestMatchDeltaR2 = deltaR2;
860 if(bestMatchDeltaR1 > 0.3)
862 if(bestMatchDeltaR2 > 0.3)
881 probeJet = jetLeading;
883 probeJet = jetSubLeading;
895 Double_t deltaEta = (embeddedJet->Eta()-probeJet->
Eta());
896 Double_t deltaPhi = TMath::Min(TMath::Abs(embeddedJet->Phi()-probeJet->
Phi()),TMath::TwoPi() - TMath::Abs(embeddedJet->Phi()-probeJet->
Phi()));
897 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
904 if(deltaR < bestMatchDeltaR)
906 bestMatchDeltaR = deltaR;
907 matchedJet = embeddedJet;
908 matchedJetReference = probeJet;
912 if(matchedJet && matchedJetReference)
924 Int_t tracksFromMC = 0;
925 Int_t tracksTotal = 0;
933 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(j,
fTracksCont->GetArray()));
938 Bool_t foundInMC = kFALSE;
941 AliVParticle* mcConstituent =
static_cast<AliVParticle*
>(mcJet->
TrackAt(k, mcArray));
944 if(mcConstituent->GetLabel() == constituent->GetLabel())
954 ptFromMC += constituent->Pt();
957 ptTotal += constituent->Pt();
965 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(j,
fTracksCont->GetArray()));
970 if(constituent->GetLabel() > 10000)
973 ptFromMC += constituent->Pt();
976 ptTotal += constituent->Pt();
983 trackRatio = tracksFromMC/((
Double_t)tracksTotal);
990 ptRatio = ptFromMC/ptTotal;
1013 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-vetoJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-vetoJet->
Phi()));
1014 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
1018 leadingVetoJetPt = vetoPt;
1019 leadingVetoJet = vetoJet;
1024 return leadingVetoJet;
1045 if (vetoPt > leadingVetoJetPt)
1047 leadingVetoJetPt = vetoPt;
1048 leadingVetoJet = vetoJet;
1052 return leadingVetoJet;
1060 if (track->Phi() > (TMath::TwoPi() - (radius-phi)))
1061 trackPhi = track->Phi() - TMath::TwoPi();
1062 else if (track->Phi() < (phi+radius - TMath::TwoPi()))
1063 trackPhi = track->Phi() + TMath::TwoPi();
1065 trackPhi = track->Phi();
1067 if ( TMath::Abs(trackPhi-phi)*TMath::Abs(trackPhi-phi) + TMath::Abs(track->Eta()-eta)*TMath::Abs(track->Eta()-eta) <= radius*radius)
1101 if (option.Contains(
"rho")) {
1105 jetSubLeading = jetLeading;
1107 tmpSubleadingPt = tmpLeadingPt;
1112 jetSubLeading = jet;
1119 if ( (jet->Pt()) > tmpLeadingPt )
1121 jetSubLeading = jetLeading;
1123 tmpSubleadingPt = tmpLeadingPt;
1124 tmpLeadingPt = jet->
Pt();
1126 else if ( (jet->Pt()) > tmpSubleadingPt )
1128 jetSubLeading = jet;
1129 tmpSubleadingPt = jet->
Pt();
1149 for(
Int_t i=0; i<arr->GetEntries(); i++)
1157 if (option.Contains(
"rho"))
1160 if ( jetPt > tmpLeadingPt )
1162 jetSubLeading = jetLeading;
1164 tmpSubleadingPt = tmpLeadingPt;
1165 tmpLeadingPt = jetPt;
1167 else if ( jetPt > tmpSubleadingPt )
1169 jetSubLeading = jet;
1170 tmpSubleadingPt = jetPt;
1181 TAxis *axis = h->GetAxis(axisNumber);
1182 int bins = axis->GetNbins();
1189 Double_t factor = pow(to/from, 1./bins);
1191 for (
int i = 1; i <= bins; i++) {
1192 newBins[i] = factor * newBins[i-1];
1194 axis->Set(bins, newBins);
1201 std::vector<AliEmcalJet*>::iterator matchedJetFindResult = std::find(
fMatchedJets.begin(),
fMatchedJets.end(), jet);
1204 AliError(
"Checked for a reference jet but it was not found. Check code.");
1219 AliError(Form(
"Cannot find histogram <%s> ",key)) ;
1232 AliError(Form(
"Cannot find histogram <%s> ",key));
1236 if (tmpHist->IsA()->GetBaseClass(
"TH1"))
1237 static_cast<TH1*>(tmpHist)->Fill(x,y);
1238 else if (tmpHist->IsA()->GetBaseClass(
"TH2"))
1239 static_cast<TH2*>(tmpHist)->Fill(x,y);
1248 AliError(Form(
"Cannot find histogram <%s> ",key));
1252 tmpHist->Fill(x,y,add);
1261 AliError(Form(
"Cannot find histogram <%s> ",key));
1266 tmpHist->Fill(x,y,z,add);
1268 tmpHist->Fill(x,y,z);
1275 T* tmpHist =
new T(name, title, xBins, xMin, xMax);
1277 tmpHist->GetXaxis()->SetTitle(xTitle);
1278 tmpHist->GetYaxis()->SetTitle(yTitle);
1279 tmpHist->SetOption(options);
1280 tmpHist->SetMarkerStyle(kFullCircle);
1289 template <
class T>
T*
AliAnalysisTaskChargedJetsHadronCF::AddHistogram2D(
const char* name,
const char*
title,
const char* options,
Int_t xBins,
Double_t xMin,
Double_t xMax,
Int_t yBins,
Double_t yMin,
Double_t yMax,
const char* xTitle,
const char* yTitle,
const char* zTitle)
1291 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax);
1292 tmpHist->GetXaxis()->SetTitle(xTitle);
1293 tmpHist->GetYaxis()->SetTitle(yTitle);
1294 tmpHist->GetZaxis()->SetTitle(zTitle);
1295 tmpHist->SetOption(options);
1296 tmpHist->SetMarkerStyle(kFullCircle);
1305 template <
class T>
T*
AliAnalysisTaskChargedJetsHadronCF::AddHistogram3D(
const char* name,
const char*
title,
const char* options,
Int_t xBins,
Double_t xMin,
Double_t xMax,
Int_t yBins,
Double_t yMin,
Double_t yMax,
Int_t zBins,
Double_t zMin,
Double_t zMax,
const char* xTitle,
const char* yTitle,
const char* zTitle)
1307 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax, zBins, zMin, zMax);
1308 tmpHist->GetXaxis()->SetTitle(xTitle);
1309 tmpHist->GetYaxis()->SetTitle(yTitle);
1310 tmpHist->GetZaxis()->SetTitle(zTitle);
1311 tmpHist->SetOption(options);
1312 tmpHist->SetMarkerStyle(kFullCircle);
Int_t fArrayIndex
array index that holds the output array index
virtual ~AliAnalysisTaskChargedJetsHadronCF()
Double_t fEventExtractionMaxJetPt
maximum jet pt of recorded events
void ExecOnce()
Perform steps needed to initialize the analysis.
Double_t GetRhoVal() const
void AddTrackToOutputArray(AliVTrack *track)
TString fCutName
name of this cut
Bool_t fJetVetoJetByJet
If true, the jet veto will be applied on a jet-by-jet basis.
Double_t GetJetEtaMin() const
T * AddHistogram1D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis")
void GetLeadingJets(const char *opt, AliEmcalJet *&jetLeading, AliEmcalJet *&jetSubLeading)
Float_t GetPartonEta6() const
AliEmcalPythiaInfo * fPythiaInfo
!event parton info
AliJetContainer * GetJetContainer(Int_t i=0) const
Float_t GetPartonEta7() const
std::vector< AliChargedJetsHadronCFCuts > fJetEmbeddingCuts
Cuts used in jet embedding.
void UserCreateOutputObjects()
AliEmcalJet * GetVetoJet(AliEmcalJet *jet)
Container with name, TClonesArray and cuts for particles.
Support task for (charged) jet-hadron correlations.
AliBasicParticle * fTreeBufferTrack
! Tree of extracted jets (buffer)
Double_t GetJetEtaMax() const
Float_t GetPartonPhi7() const
virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const
void BinLogAxis(const THn *h, Int_t axisNumber)
Int_t fJetOutputMode
mode which jets are written to array (0: all accepted, 1: leading, 2: subleading, 3: leading+subleadi...
Double_t fEventExtractionMinJetPt
minimum jet pt of recorded events
std::vector< AliEmcalJet * > fMatchedJetsReference
Jets matched in an event (reference)
Double_t fEventExtractionPercentage
percentage of events that is recorded
std::vector< TClonesArray * > fJetsOutput
! vector of arrays of basic correlation particles attached to the event (jets)
AliEmcalJet * fSubleadingJet
! subleading jet (calculated event-by-event)
void FillHistogram3D(const char *key, Double_t x, Double_t y, Double_t z, Double_t add=0)
Float_t GetPartonPhi6() const
Int_t TrackAt(Int_t idx) const
Container class of cuts for AliAnalysisTaskChargedJetsHadronCF.
UShort_t GetNumberOfTracks() const
UShort_t T(UShort_t m, UShort_t t)
void AddTrackToTree(AliVTrack *track)
void CalculateEventProperties()
void GetLeadingJetsInArray(TClonesArray *arr, const char *opt, AliEmcalJet *&jetLeading, AliEmcalJet *&jetSubLeading)
TClonesArray * fJetEmbeddingArray
! Array of generated jets imported into task (for embedding)
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Get particle container attached to this task.
void GetTrackMCRatios(AliEmcalJet *jet, AliEmcalJet *mcJet, Double_t &trackRatio, Double_t &ptRatio)
AliParticleContainer * GetParticleContainer() const
void FillHistogram(const char *key, Double_t x)
AliAnalysisTaskChargedJetsHadronCF()
Double_t fTrackExtractionPercentagePower
Extraction percentage for tracks.
Bool_t fJetEmbeddingCreatePtPlotPerCut
create TH3 per cut or only once
AliAODPid * fTreeBufferPID
! Tree of extracted jets (buffer)
TString fJetParticleArrayName
Name of fJetsOutput array (if one uses only one)
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
T * AddHistogram3D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, Int_t yBins=100, Double_t yMin=0.0, Double_t yMax=20.0, Int_t zBins=100, Double_t zMin=0.0, Double_t zMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis", const char *zTitle="z axis")
TString fJetEmbeddingArrayName
Name of array used to match jets.
Int_t fNumberOfCentralityBins
Number of centrality bins.
Int_t fTreeBufferPDG
! Tree of extracted jets (buffer)
virtual AliVParticle * GetLeadingParticle(const char *opt="")
std::vector< AliEmcalJet * > fMatchedJets
Jets matched in an event (embedded)
TString fJetEmbeddingTrackArrayName
Name of array used to match tracks of jets.
~AliChargedJetsHadronCFCuts()
Double_t fCent
!event centrality
TString fTrackParticleArrayName
Name of fTracksOutput array.
void Terminate(Option_t *option)
TClonesArray * fTracksOutput
! Array of basic correlation particles attached to the event (tracks)
AliEmcalJet * fLeadingJet
! leading jet (calculated event-by-event)
AliEmcalJet * GetNextAcceptJet()
void AddJetToOutputArray(AliEmcalJet *jet, Int_t arrayIndex, Int_t &jetsAlreadyInArray)
Bool_t IsTrackInCone(AliVParticle *track, Double_t eta, Double_t phi, Double_t radius)
Bool_t fJetEmbeddingUsePerTrackMCPercentage
When cutting on MC percentage, calculate it per track and not for all MC tracks.
Int_t fAcceptedJets
temporary var that holds how many jets passed
TString fJetVetoArrayName
Name of array used for veto jets.
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Float_t GetJetRadius() const
AliEmcalList * fOutput
!output list
Int_t fJetEmbeddingNumMatchedJets
Number of matched leading jets that will be used.
AliEmcalJet * fInitialPartonMatchedJet1
! On PYTHIA data and fJetOutputMode=6, this holds the PDG code of the initial collisions that was mat...
AliEmcalJet * fInitialPartonMatchedJet2
! On PYTHIA data and fJetOutputMode=6, this holds the PDG code of the initial collisions that was mat...
AliEmcalJet * GetReferenceJet(AliEmcalJet *jet)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
TRandom3 * fRandom
random number generator
TH1 * fHistEventRejection
!book keep reasons for rejecting event
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Bool_t IsCutFulfilled(Double_t pt, Double_t mcPt, Double_t cent, Double_t ptRatio, Double_t vetoPt)
Represent a jet reconstructed using the EMCal jet framework.
Bool_t fJetEmbeddingUseBgrdForMCPercentage
When cutting on MC percentage, use bgrd. corr to calculate MC percentage.
Declaration of class AliEmcalPythiaInfo.
AliTrackContainer * fTracksCont
! Tracks
void UserCreateOutputObjects()
Main initialization function on the worker.
virtual AliVParticle * GetNextAcceptParticle()
Double_t fJetEmbeddingMaxDistance
Max distance allowed to accept an embedded jet.
void FillHistogramsJets(AliEmcalJet *jet, const char *cutName)
void GetInitialCollisionJets()
void FillHistogramsTracks(AliVTrack *track)
AliEmcalJet * GetLeadingVetoJet()
Int_t fAcceptedJets
! number accepted jets (calculated event-by-event)
AliJetContainer * fJetsCont
! Jets
T * AddHistogram2D(const char *name="CustomHistogram", const char *title="NO_TITLE", const char *options="", Int_t xBins=100, Double_t xMin=0.0, Double_t xMax=20.0, Int_t yBins=100, Double_t yMin=0.0, Double_t yMax=20.0, const char *xTitle="x axis", const char *yTitle="y axis", const char *zTitle="z axis")
TTree * fTracksTree
! Tree of extracted jets
TClonesArray * fJetVetoArray
! Array of jets imported into task used for veto a matching/embedding
Bool_t IsJetSelected(AliEmcalJet *jet)
Int_t fAcceptedTracks
! number accepted tracks (calculated event-by-event)
Int_t fNumRandomConesPerEvent
Number of random cones thrown in one event.
Int_t fConstPtFilterBit
For const pt plot, filter bit.