18 #include <TClonesArray.h>
26 #include <TLorentzVector.h>
29 #include "AliMCEvent.h"
30 #include "AliPythia.h"
32 #include "AliVTrack.h"
33 #include "AliVHeader.h"
39 #include "AliAODTrack.h"
41 #include "AliVParticle.h"
75 fExtractionPercentage(0),
78 fEventExtractionPercentage(0),
79 fEventExtractionMinJetPt(0),
80 fEventExtractionMaxJetPt(0),
81 fConstPtFilterBit(1024),
82 fNumberOfCentralityBins(10),
85 fJetParticleArrayName("JetsDPhiBasicParticles"),
86 fTrackParticleArrayName(""),
88 fJetEmbeddingArrayName(""),
89 fJetEmbeddingTrackArrayName(""),
90 fJetEmbeddingMaxDistance(0.3),
91 fJetEmbeddingNumMatchedJets(2),
92 fJetEmbeddingUsePerTrackMCPercentage(kTRUE),
93 fJetEmbeddingUseBgrdForMCPercentage(kFALSE),
94 fJetEmbeddingCreatePtPlotPerCut(kFALSE),
97 fJetVetoArrayName(""),
102 fPythiaExtractionMode(0),
103 fUsePYTHIABugWorkaround(0),
106 fInitialPartonMatchedJet1(0),
107 fInitialPartonMatchedJet2(0),
112 SetMakeGeneralHistograms(kTRUE);
113 fRandom =
new TRandom3(0);
124 fExtractionPercentage(0),
127 fEventExtractionPercentage(0),
128 fEventExtractionMinJetPt(0),
129 fEventExtractionMaxJetPt(0),
130 fConstPtFilterBit(1024),
131 fNumberOfCentralityBins(10),
134 fJetParticleArrayName(
"JetsDPhiBasicParticles"),
135 fTrackParticleArrayName(
""),
136 fJetEmbeddingArray(),
137 fJetEmbeddingArrayName(
""),
138 fJetEmbeddingTrackArrayName(
""),
139 fJetEmbeddingMaxDistance(0.3),
140 fJetEmbeddingNumMatchedJets(2),
141 fJetEmbeddingUsePerTrackMCPercentage(kTRUE),
142 fJetEmbeddingUseBgrdForMCPercentage(kFALSE),
143 fJetEmbeddingCreatePtPlotPerCut(kFALSE),
146 fJetVetoArrayName(
""),
151 fPythiaExtractionMode(0),
152 fUsePYTHIABugWorkaround(0),
155 fInitialPartonMatchedJet1(0),
156 fInitialPartonMatchedJet2(0),
190 AddHistogram2D<TH2D>(
"hTrackPt",
"Tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
191 AddHistogram2D<TH2D>(
"hTrackPhi",
"Track angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
192 AddHistogram2D<TH2D>(
"hTrackEta",
"Track angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
193 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");
195 AddHistogram2D<TH2D>(
"hLeadingTrackPt",
"Leading tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
196 AddHistogram2D<TH2D>(
"hLeadingTrackPhi",
"Leading tracks angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
197 AddHistogram2D<TH2D>(
"hLeadingTrackEta",
"Leading tracks angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
198 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");
200 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})");
201 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})");
206 const char* appendix =
"";
210 appendix = Form(
"_%s", currentCut.
fCutName.Data());
213 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hJetPtRaw%s", appendix))) )
217 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}");
218 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}");
219 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");
220 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");
221 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}");
222 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}");
223 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");
224 AddHistogram2D<TH2D>(Form(
"hJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
225 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}");
226 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}");
229 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}");
230 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}");
231 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");
232 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");
233 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}");
234 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}");
235 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");
236 AddHistogram2D<TH2D>(Form(
"hLeadingJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
237 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}");
238 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}");
240 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}");
241 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}");
242 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");
243 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");
244 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}");
245 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}");
246 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");
247 AddHistogram2D<TH2D>(Form(
"hSubleadingJetArea%s", appendix),
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
248 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}");
249 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}");
251 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}");
252 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}");
253 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}");
254 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}");
255 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}");
257 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}");
258 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}");
259 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}");
260 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}");
261 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}");
263 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}");
264 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}");
276 const char* appendix =
"";
280 appendix = Form(
"_%s", currentCut.
fCutName.Data());
283 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hEmbeddingDeltaR%s", appendix))) )
286 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");
287 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");
288 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");
289 AddHistogram1D<TH1D>(Form(
"hEmbeddingJetPt%s", appendix),
"Embedded jets p_{T} distribution",
"", 200, -50., 150.,
"p_{T, jet} (GeV/c)",
"dN/dp_{T}");
290 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");
294 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");
295 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");
296 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");
297 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");
301 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");
302 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");
303 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");
304 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");
310 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");
311 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");
312 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");
313 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");
318 AddHistogram2D<TH2D>(
"hRandomConePt",
"Random cone p_{T} distribution",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
319 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}");
320 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}");
321 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}");
323 AddHistogram2D<TH2D>(
"hTrackCount",
"Number of tracks in acceptance vs. centrality",
"LEGO2", 500, 0., 5000.,
fNumberOfCentralityBins, 0, 100,
"N tracks",
"Centrality",
"dN^{Events}/dN^{Tracks}");
324 AddHistogram2D<TH2D>(
"hJetCount",
"Number of jets in acceptance vs. centrality",
"LEGO2", 100, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"N Jets",
"Centrality",
"dN^{Events}/dN^{Jets}");
325 AddHistogram2D<TH2D>(
"hBackgroundPt",
"Background p_{T} distribution",
"", 150, 0., 150.,
fNumberOfCentralityBins, 0, 100,
"Background p_{T} (GeV/c)",
"Centrality",
"dN^{Events}/dp_{T}");
330 const char* appendix =
"";
334 appendix = Form(
"_%s", currentCut.
fCutName.Data());
337 if( static_cast<TH1*>(
fOutput->FindObject(Form(
"hBackgroundPtJetPt_Cent0_100%s", appendix))) )
340 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}");
341 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}");
342 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}");
343 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}");
357 (AliPythia::Instance())->SetMSTU(22, 1000000000);
363 fJetsOutput.push_back(
new TClonesArray(
"AliPicoTrack"));
368 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetParticleArrayName.Data())));
375 if (fInputEvent->FindListObject(Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())))
376 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())));
381 if (!fInputEvent->FindListObject(Form(
"%s",
fJetEmbeddingCuts.at(i).fOutputName.Data())))
383 fJetsOutput.push_back(
new TClonesArray(
"AliPicoTrack"));
414 AliFatal(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fTrackParticleArrayName.Data())));
422 AliFatal(Form(
"Importing jets for embedding failed! Array '%s' not found!",
fJetEmbeddingArrayName.Data()));
425 AliFatal(Form(
"fJetEmbeddingArrayName must be set in jet output mode 4 or 5."));
432 AliFatal(Form(
"Importing jets for veto failed! Array '%s' not found!",
fJetVetoArrayName.Data()));
483 appendix = Form(
"_%s", cutName);
534 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
538 Bool_t filterConditionFulfilled = kFALSE;
539 AliAODTrack* aodTrack =
static_cast<AliAODTrack*
>(constituent);
545 if(filterConditionFulfilled)
550 if(filterConditionFulfilled)
556 if(filterConditionFulfilled)
562 if(filterConditionFulfilled)
568 if(filterConditionFulfilled)
586 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-refJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-refJet->
Phi()));
587 if(jet->
Phi() < refJet->
Phi())
588 deltaPhi = -deltaPhi;
590 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
594 FillHistogram(Form(
"hEmbeddingJetPt%s", appendix.Data()), refJet->
Pt());
595 FillHistogram(Form(
"hEmbeddingJetPhiEta%s", appendix.Data()), refJet->
Phi(), refJet->
Eta());
649 jetsAlreadyInArray++;
669 AliVHeader* eventIDHeader = InputEvent()->GetHeader();
672 eventID = eventIDHeader->GetEventIdAsLong();
679 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
698 const AliVVertex* myVertex = InputEvent()->GetPrimaryVertex();
699 if(!myVertex && MCEvent())
700 myVertex = MCEvent()->GetPrimaryVertex();
703 vtxX = myVertex->GetX();
704 vtxY = myVertex->GetY();
705 vtxZ = myVertex->GetZ();
712 AliBasicJet basicJet(jet->
Eta(), jet->
Phi(), jet->
Pt(), jet->
Charge(),
fJetsCont->
GetJetRadius(), jet->
Area(), partid,
fJetsCont->
GetRhoVal(), InputEvent()->GetMagneticField(), vtxX, vtxY, vtxZ, eventID,
fCent);
717 AliVParticle* particle =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
718 if(!particle)
continue;
720 AliAODTrack* aodtrack =
static_cast<AliAODTrack*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
725 if(TMath::Abs(particle->PdgCode()) == 2212)
727 else if (TMath::Abs(particle->PdgCode()) == 211)
729 else if (TMath::Abs(particle->PdgCode()) == 321)
731 else if (TMath::Abs(particle->PdgCode()) == 11)
733 else if (TMath::Abs(particle->PdgCode()) == 13)
737 constid = aodtrack->GetMostProbablePID();
739 basicJet.
AddJetConstituent(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge(), constid, particle->Xv(), particle->Yv(), particle->Zv());
759 static Int_t numSavedEvents = 0;
763 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");
766 FillHistogram(Form(
"Event%i", numSavedEvents), track->Phi(), track->Eta(), track->Pt());
809 vetoJetPt = vetoJet->
Pt();
832 Int_t trackcount = 0;
840 tmpRandConePt += track->Pt();
841 if (track->Pt() > 3.0)
842 tmpRandConePt3GeV += track->Pt();
870 FillHistogram(
"hLeadingTrackPhiEta", leadTrack->Phi(), leadTrack->Eta());
884 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
898 Double_t deltaR1 = TMath::Sqrt(deltaEta1*deltaEta1 + deltaPhi1*deltaPhi1);
899 Double_t deltaR2 = TMath::Sqrt(deltaEta2*deltaEta2 + deltaPhi2*deltaPhi2);
901 if(deltaR1 < bestMatchDeltaR1)
903 bestMatchDeltaR1 = deltaR1;
906 if(deltaR2 < bestMatchDeltaR2)
908 bestMatchDeltaR2 = deltaR2;
913 if(bestMatchDeltaR1 > 0.3)
915 if(bestMatchDeltaR2 > 0.3)
934 probeJet = jetLeading;
936 probeJet = jetSubLeading;
948 Double_t deltaEta = (embeddedJet->Eta()-probeJet->
Eta());
949 Double_t deltaPhi = TMath::Min(TMath::Abs(embeddedJet->Phi()-probeJet->
Phi()),TMath::TwoPi() - TMath::Abs(embeddedJet->Phi()-probeJet->
Phi()));
950 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
957 if(deltaR < bestMatchDeltaR)
959 bestMatchDeltaR = deltaR;
960 matchedJet = embeddedJet;
961 matchedJetReference = probeJet;
965 if(matchedJet && matchedJetReference)
976 Int_t tracksFromMC = 0;
977 Int_t tracksTotal = 0;
985 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(j,
fTracksCont->GetArray()));
990 Bool_t foundInMC = kFALSE;
993 AliVParticle* mcConstituent =
static_cast<AliVParticle*
>(mcJet->
TrackAt(k, mcArray));
996 if(mcConstituent->GetLabel() == constituent->GetLabel())
1006 ptFromMC += constituent->Pt();
1009 ptTotal += constituent->Pt();
1017 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(j,
fTracksCont->GetArray()));
1022 if(constituent->GetLabel() > 10000)
1025 ptFromMC += constituent->Pt();
1028 ptTotal += constituent->Pt();
1035 trackRatio = tracksFromMC/((
Double_t)tracksTotal);
1042 ptRatio = ptFromMC/ptTotal;
1065 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-vetoJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-vetoJet->
Phi()));
1066 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
1070 leadingVetoJetPt = vetoPt;
1071 leadingVetoJet = vetoJet;
1076 return leadingVetoJet;
1097 if (vetoPt > leadingVetoJetPt)
1099 leadingVetoJetPt = vetoPt;
1100 leadingVetoJet = vetoJet;
1104 return leadingVetoJet;
1112 if (track->Phi() > (TMath::TwoPi() - (radius-phi)))
1113 trackPhi = track->Phi() - TMath::TwoPi();
1114 else if (track->Phi() < (phi+radius - TMath::TwoPi()))
1115 trackPhi = track->Phi() + TMath::TwoPi();
1117 trackPhi = track->Phi();
1119 if ( TMath::Abs(trackPhi-phi)*TMath::Abs(trackPhi-phi) + TMath::Abs(track->Eta()-eta)*TMath::Abs(track->Eta()-eta) <= radius*radius)
1153 if (option.Contains(
"rho")) {
1157 jetSubLeading = jetLeading;
1159 tmpSubleadingPt = tmpLeadingPt;
1164 jetSubLeading = jet;
1171 if ( (jet->Pt()) > tmpLeadingPt )
1173 jetSubLeading = jetLeading;
1175 tmpSubleadingPt = tmpLeadingPt;
1176 tmpLeadingPt = jet->
Pt();
1178 else if ( (jet->Pt()) > tmpSubleadingPt )
1180 jetSubLeading = jet;
1181 tmpSubleadingPt = jet->
Pt();
1201 for(
Int_t i=0; i<arr->GetEntries(); i++)
1209 if (option.Contains(
"rho"))
1212 if ( jetPt > tmpLeadingPt )
1214 jetSubLeading = jetLeading;
1216 tmpSubleadingPt = tmpLeadingPt;
1217 tmpLeadingPt = jetPt;
1219 else if ( jetPt > tmpSubleadingPt )
1221 jetSubLeading = jet;
1222 tmpSubleadingPt = jetPt;
1233 TAxis *axis = h->GetAxis(axisNumber);
1234 int bins = axis->GetNbins();
1241 Double_t factor = pow(to/from, 1./bins);
1243 for (
int i = 1; i <= bins; i++) {
1244 newBins[i] = factor * newBins[i-1];
1246 axis->Set(bins, newBins);
1253 std::vector<AliEmcalJet*>::iterator matchedJetFindResult = std::find(
fMatchedJets.begin(),
fMatchedJets.end(), jet);
1256 AliError(
"Checked for a reference jet but it was not found. Check code.");
1271 AliError(Form(
"Cannot find histogram <%s> ",key)) ;
1284 AliError(Form(
"Cannot find histogram <%s> ",key));
1288 if (tmpHist->IsA()->GetBaseClass(
"TH1"))
1289 static_cast<TH1*>(tmpHist)->Fill(x,y);
1290 else if (tmpHist->IsA()->GetBaseClass(
"TH2"))
1291 static_cast<TH2*>(tmpHist)->Fill(x,y);
1300 AliError(Form(
"Cannot find histogram <%s> ",key));
1304 tmpHist->Fill(x,y,add);
1313 AliError(Form(
"Cannot find histogram <%s> ",key));
1318 tmpHist->Fill(x,y,z,add);
1320 tmpHist->Fill(x,y,z);
1327 T* tmpHist =
new T(name, title, xBins, xMin, xMax);
1329 tmpHist->GetXaxis()->SetTitle(xTitle);
1330 tmpHist->GetYaxis()->SetTitle(yTitle);
1331 tmpHist->SetOption(options);
1332 tmpHist->SetMarkerStyle(kFullCircle);
1341 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)
1343 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax);
1344 tmpHist->GetXaxis()->SetTitle(xTitle);
1345 tmpHist->GetYaxis()->SetTitle(yTitle);
1346 tmpHist->GetZaxis()->SetTitle(zTitle);
1347 tmpHist->SetOption(options);
1348 tmpHist->SetMarkerStyle(kFullCircle);
1357 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)
1359 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax, zBins, zMin, zMax);
1360 tmpHist->GetXaxis()->SetTitle(xTitle);
1361 tmpHist->GetYaxis()->SetTitle(yTitle);
1362 tmpHist->GetZaxis()->SetTitle(zTitle);
1363 tmpHist->SetOption(options);
1364 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 AddJetConstituent(Float_t eta, Float_t phi, Float_t pt, Short_t charge, Short_t pid=0, Float_t vx=0, Float_t vy=0, Float_t vz=0)
Double_t GetRhoVal() const
void AddJetToTree(AliEmcalJet *jet)
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)
void * fJetsTreeBuffer
! buffer for one jet (that will be saved to the tree)
Container with name, TClonesArray and cuts for particles.
Support task for (charged) jet-hadron correlations.
Bool_t fUsePYTHIABugWorkaround
Workaround for PYTHIA bug.
Int_t fPythiaExtractionMode
Mode which PYTHIA-jets to extract for fJetOutputMode==6: 0: all, 1: quark-jets, 2: gluon jets...
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)
~AliBasicJetConstituent()
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)
Int_t GetPartonFlag7() const
AliEmcalJet * fSubleadingJet
! subleading jet (calculated event-by-event)
Simple class containing basic information for a jet.
void FillHistogram3D(const char *key, Double_t x, Double_t y, Double_t z, Double_t add=0)
Float_t GetPartonPhi6() const
Container class of cuts for AliAnalysisTaskChargedJetsHadronCF.
UShort_t GetNumberOfTracks() const
UShort_t T(UShort_t m, UShort_t t)
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
Int_t GetPartonFlag6() const
void GetTrackMCRatios(AliEmcalJet *jet, AliEmcalJet *mcJet, Double_t &trackRatio, Double_t &ptRatio)
AliParticleContainer * GetParticleContainer() const
void FillHistogram(const char *key, Double_t x)
AliAnalysisTaskChargedJetsHadronCF()
Bool_t fJetEmbeddingCreatePtPlotPerCut
create TH3 per cut or only once
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.
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 fExtractionPercentage
percentage that is recorded
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)
Double_t fExtractionMinPt
minimum pt of recorded jets
AliEmcalJet * GetNextAcceptJet()
void AddJetToOutputArray(AliEmcalJet *jet, Int_t arrayIndex, Int_t &jetsAlreadyInArray)
TTree * fJetsTree
! Jets that will be saved to a tree (optionally)
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.
Float_t GetJetRadius() const
AliEmcalList * fOutput
!output list
Int_t fJetEmbeddingNumMatchedJets
Number of matched leading jets that will be used.
Short_t TrackAt(Int_t idx) const
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.
Double_t fExtractionMaxPt
maximum pt of recorded jets
AliTrackContainer * fTracksCont
! Tracks
void UserCreateOutputObjects()
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")
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 fConstPtFilterBit
For const pt plot, filter bit.