16 #include <TClonesArray.h>
24 #include <TLorentzVector.h>
26 #include "AliVTrack.h"
33 #include "AliVParticle.h"
67 fExtractionPercentage(0),
70 fNumberOfCentralityBins(10),
74 fJetParticleArrayName("JetsDPhiBasicParticles"),
75 fTrackParticleArrayName(""),
76 fJetMatchingArrayName(""),
79 fMinFakeFactorPercentage(0),
80 fMaxFakeFactorPercentage(0),
81 fEventCriteriumMode(0),
82 fEventCriteriumMinBackground(0),
83 fEventCriteriumMaxBackground(0),
84 fEventCriteriumMinLeadingJetPt(0),
85 fEventCriteriumMinSubleadingJetPt(0),
86 fEventCriteriumMinJetDeltaPhi(0),
94 SetMakeGeneralHistograms(kTRUE);
95 fRandom =
new TRandom3(0);
106 fExtractionPercentage(0),
109 fNumberOfCentralityBins(10),
113 fJetParticleArrayName(
"JetsDPhiBasicParticles"),
114 fTrackParticleArrayName(
""),
115 fJetMatchingArrayName(
""),
118 fMinFakeFactorPercentage(0),
119 fMaxFakeFactorPercentage(0),
120 fEventCriteriumMode(0),
121 fEventCriteriumMinBackground(0),
122 fEventCriteriumMaxBackground(0),
123 fEventCriteriumMinLeadingJetPt(0),
124 fEventCriteriumMinSubleadingJetPt(0),
125 fEventCriteriumMinJetDeltaPhi(0),
164 AddHistogram2D<TH2D>(
"hTrackPt",
"Tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
165 AddHistogram2D<TH2D>(
"hTrackPhi",
"Track angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
166 AddHistogram2D<TH2D>(
"hTrackEta",
"Track angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
167 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");
169 AddHistogram2D<TH2D>(
"hLeadingTrackPt",
"Leading tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
170 AddHistogram2D<TH2D>(
"hLeadingTrackPhi",
"Leading tracks angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
171 AddHistogram2D<TH2D>(
"hLeadingTrackEta",
"Leading tracks angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
172 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");
174 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})");
175 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})");
179 AddHistogram2D<TH2D>(
"hJetPtRaw",
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
180 AddHistogram2D<TH2D>(
"hJetPt",
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
181 AddHistogram2D<TH2D>(
"hJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
182 AddHistogram2D<TH2D>(
"hJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
183 AddHistogram2D<TH2D>(
"hJetPhiPt",
"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}");
184 AddHistogram2D<TH2D>(
"hJetEtaPt",
"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}");
185 AddHistogram2D<TH2D>(
"hJetPhiEta",
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
186 AddHistogram2D<TH2D>(
"hJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
187 AddHistogram2D<TH2D>(
"hJetAreaPt",
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
188 AddHistogram2D<TH2D>(
"hJetPtLeadingHadron",
"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}");
190 AddHistogram2D<TH2D>(
"hJetConstituentPt_Cent0_100",
"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}");
191 AddHistogram2D<TH2D>(
"hJetConstituentPt_Cent0_10",
"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}");
193 AddHistogram2D<TH2D>(
"hJetConstituentCount_Cent0_100",
"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}");
194 AddHistogram2D<TH2D>(
"hJetConstituentCount_Cent0_10",
"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}");
197 AddHistogram2D<TH2D>(
"hRandomConePt",
"Random cone p_{T} distribution",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
198 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}");
202 AddHistogram2D<TH2D>(
"hLeadingJetPtRaw",
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
203 AddHistogram2D<TH2D>(
"hLeadingJetPt",
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
204 AddHistogram2D<TH2D>(
"hLeadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
205 AddHistogram2D<TH2D>(
"hLeadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
206 AddHistogram2D<TH2D>(
"hLeadingJetPhiPt",
"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}");
207 AddHistogram2D<TH2D>(
"hLeadingJetEtaPt",
"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}");
208 AddHistogram2D<TH2D>(
"hLeadingJetPhiEta",
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
209 AddHistogram2D<TH2D>(
"hLeadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
210 AddHistogram2D<TH2D>(
"hLeadingJetAreaPt",
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
211 AddHistogram2D<TH2D>(
"hLeadingJetPtLeadingHadron",
"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}");
213 AddHistogram2D<TH2D>(
"hSubleadingJetPtRaw",
"Jets p_{T} distribution (no bgrd. corr.)",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
214 AddHistogram2D<TH2D>(
"hSubleadingJetPt",
"Jets p_{T} distribution (background subtracted)",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, jet} (GeV/c)",
"Centrality",
"dN^{Jets}/dp_{T}");
215 AddHistogram2D<TH2D>(
"hSubleadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
216 AddHistogram2D<TH2D>(
"hSubleadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
217 AddHistogram2D<TH2D>(
"hSubleadingJetPhiPt",
"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}");
218 AddHistogram2D<TH2D>(
"hSubleadingJetEtaPt",
"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}");
219 AddHistogram2D<TH2D>(
"hSubleadingJetPhiEta",
"Jet angular distribution #phi/#eta",
"COLZ", 180, 0., 2*TMath::Pi(), 100, -2.5, 2.5,
"#phi",
"#eta",
"dN^{Jets}/d#phi d#eta");
220 AddHistogram2D<TH2D>(
"hSubleadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
221 AddHistogram2D<TH2D>(
"hSubleadingJetAreaPt",
"Jet area vs. p_{T}",
"LEGO2", 200, 0., 2., 400, -100., 300.,
"Jet A",
"p_{T, jet} (GeV/c)",
"dN^{Jets}/dA dp_{T}");
222 AddHistogram2D<TH2D>(
"hSubleadingJetPtLeadingHadron",
"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}");
224 AddHistogram2D<TH2D>(
"hTrackCount",
"Number of tracks in acceptance vs. centrality",
"LEGO2", 500, 0., 5000.,
fNumberOfCentralityBins, 0, 100,
"N tracks",
"Centrality",
"dN^{Events}/dN^{Tracks}");
225 AddHistogram2D<TH2D>(
"hJetCount",
"Number of jets in acceptance vs. centrality",
"LEGO2", 100, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"N Jets",
"Centrality",
"dN^{Events}/dN^{Jets}");
226 AddHistogram2D<TH2D>(
"hFakeFactor",
"Fake factor distribution",
"LEGO2", 1000, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"Fake factor",
"Centrality",
"dN^{Jets}/df");
227 AddHistogram2D<TH2D>(
"hFakeFactorJetPt_Cent0_100",
"Fake factor distribution vs. jet p_{T}",
"LEGO2", 1000, 0., 100., 400, -100., 300.,
"Fake factor",
"Jet p_{T} (GeV/c)",
"dN^{Jets}/df");
228 AddHistogram2D<TH2D>(
"hFakeFactorJetPt_Cent0_10",
"Fake factor distribution vs. jet p_{T}",
"LEGO2", 1000, 0., 100., 400, -100., 300.,
"Fake factor",
"Jet p_{T} (GeV/c)",
"dN^{Jets}/df");
230 AddHistogram2D<TH2D>(
"hBackgroundPt",
"Background p_{T} distribution",
"", 150, 0., 150.,
fNumberOfCentralityBins, 0, 100,
"Background p_{T} (GeV/c)",
"Centrality",
"dN^{Events}/dp_{T}");
231 AddHistogram2D<TH2D>(
"hBackgroundPtJetPt_Cent0_100",
"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}");
232 AddHistogram2D<TH2D>(
"hBackgroundPtJetPt_Cent0_10",
"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}");
233 AddHistogram2D<TH2D>(
"hBackgroundPtConstCount_Cent0_100",
"Background p_{T} distribution vs. const. count",
"", 150, 0., 150., 200, 0., 200.,
"Background p_{T} (GeV/c)",
"Count",
"dN^{Events}/dp_{T}");
234 AddHistogram2D<TH2D>(
"hBackgroundPtConstCount_Cent0_10",
"Background p_{T} distribution vs. const. count",
"", 150, 0., 150., 200, 0., 200.,
"Background p_{T} (GeV/c)",
"Count",
"dN^{Events}/dp_{T}");
253 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetParticleArrayName.Data())));
265 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fTrackParticleArrayName.Data())));
273 AliFatal(Form(
"Importing jets for matching failed! Array '%s' not found!",
fJetMatchingArrayName.Data()));
279 fJetsTree =
new TTree(
"ExtractedJets",
"ExtractedJets");
365 Bool_t matchedFound = kFALSE;
371 Double_t leadingPt = -999.;
372 for(Int_t i=0; i<
fJetsInput->GetEntries(); i++)
379 if(tmpJet->
Pt() > leadingPt)
382 leadingPt = tmpJet->
Pt();
388 Double_t bestMatchDeltaR = 999.;
389 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-leadingJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-leadingJet->
Phi()));
390 Double_t deltaEta = TMath::Abs(jet->
Eta() - leadingJet->
Eta());
391 Double_t deltaR = TMath::Sqrt((deltaPhi*deltaPhi) + (deltaEta*deltaEta));
393 if(deltaR < bestMatchDeltaR)
394 bestMatchDeltaR = deltaR;
398 matchedFound = kTRUE;
408 return !matchedFound;
488 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
536 Long64_t eventID = InputEvent()->GetHeader()->GetEventIdAsLong();
541 AliVParticle* particle =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
542 if(!particle)
continue;
543 basicJet.
AddJetConstituent(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge());
582 Double_t tmpRandConePhi =
fRandom->Rndm()*TMath::TwoPi();
583 Double_t tmpRandConePt = 0;
587 Int_t trackcount = 0;
594 tmpRandConePt += track->Pt();
615 FillHistogram(
"hLeadingTrackPhiEta", leadTrack->Phi(), leadTrack->Eta());
630 Double_t trackPhi = 0.0;
631 if (track->Phi() > (TMath::TwoPi() - (radius-phi)))
632 trackPhi = track->Phi() - TMath::TwoPi();
633 else if (track->Phi() < (phi+radius - TMath::TwoPi()))
634 trackPhi = track->Phi() + TMath::TwoPi();
636 trackPhi = track->Phi();
638 if ( TMath::Abs(trackPhi-phi)*TMath::Abs(trackPhi-phi) + TMath::Abs(track->Eta()-eta)*TMath::Abs(track->Eta()-eta) <= radius*radius)
655 Double_t fakeFactor = 0;
660 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
662 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-constituent->Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-constituent->Phi()));
663 Double_t deltaR = TMath::Sqrt( (jet->
Eta() - constituent->Eta())*(jet->
Eta() - constituent->Eta()) + deltaPhi*deltaPhi );
664 fakeFactor += constituent->Pt() * TMath::Sin(deltaR);
676 AliWarning(
"Set event criterium to 'default' -- no further selection criterium.");
678 AliWarning(
"Set event criterium to 'background' -- select events with certain backgrounds");
680 AliWarning(
"Set event criterium to 'simple jet trigger' -- select events with certain minimum leading jet pT (bgrd corr.)");
682 AliWarning(
"Set event criterium to 'simple dijet trigger' -- select events with certain minimum leading + subleading jet pT (bgrd corr.)");
685 AliFatal(
"Event criterium not valid.");
703 Double_t tmpLeadingPt = 0;
704 Double_t tmpSubleadingPt = 0;
706 if (option.Contains(
"rho")) {
710 jetSubLeading = jetLeading;
712 tmpSubleadingPt = tmpLeadingPt;
724 if ( (jet->Pt()) > tmpLeadingPt )
726 jetSubLeading = jetLeading;
728 tmpSubleadingPt = tmpLeadingPt;
729 tmpLeadingPt = jet->
Pt();
731 else if ( (jet->Pt()) > tmpSubleadingPt )
734 tmpSubleadingPt = jet->
Pt();
744 TAxis *axis = h->GetAxis(axisNumber);
745 int bins = axis->GetNbins();
747 Double_t from = axis->GetXmin();
748 Double_t to = axis->GetXmax();
749 Double_t *newBins =
new Double_t[bins + 1];
752 Double_t factor = pow(to/from, 1./bins);
754 for (
int i = 1; i <= bins; i++) {
755 newBins[i] = factor * newBins[i-1];
757 axis->Set(bins, newBins);
764 TH1* tmpHist =
static_cast<TH1*
>(
fOutput->FindObject(key));
767 AliError(Form(
"Cannot find histogram <%s> ",key)) ;
777 TH1* tmpHist =
static_cast<TH1*
>(
fOutput->FindObject(key));
780 AliError(Form(
"Cannot find histogram <%s> ",key));
784 if (tmpHist->IsA()->GetBaseClass(
"TH1"))
785 static_cast<TH1*>(tmpHist)->Fill(x,y);
786 else if (tmpHist->IsA()->GetBaseClass(
"TH2"))
787 static_cast<TH2*>(tmpHist)->Fill(x,y);
793 TH2* tmpHist =
static_cast<TH2*
>(
fOutput->FindObject(key));
796 AliError(Form(
"Cannot find histogram <%s> ",key));
800 tmpHist->Fill(x,y,add);
806 TH3* tmpHist =
static_cast<TH3*
>(
fOutput->FindObject(key));
809 AliError(Form(
"Cannot find histogram <%s> ",key));
814 tmpHist->Fill(x,y,z,add);
816 tmpHist->Fill(x,y,z);
823 T* tmpHist =
new T(name, title, xBins, xMin, xMax);
825 tmpHist->GetXaxis()->SetTitle(xTitle);
826 tmpHist->GetYaxis()->SetTitle(yTitle);
827 tmpHist->SetOption(options);
828 tmpHist->SetMarkerStyle(kFullCircle);
837 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)
839 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax);
840 tmpHist->GetXaxis()->SetTitle(xTitle);
841 tmpHist->GetYaxis()->SetTitle(yTitle);
842 tmpHist->GetZaxis()->SetTitle(zTitle);
843 tmpHist->SetOption(options);
844 tmpHist->SetMarkerStyle(kFullCircle);
853 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)
855 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax, zBins, zMin, zMax);
856 tmpHist->GetXaxis()->SetTitle(xTitle);
857 tmpHist->GetYaxis()->SetTitle(yTitle);
858 tmpHist->GetZaxis()->SetTitle(zTitle);
859 tmpHist->SetOption(options);
860 tmpHist->SetMarkerStyle(kFullCircle);
virtual ~AliAnalysisTaskChargedJetsHadronCF()
Double_t fEventCriteriumMinSubleadingJetPt
Min subleading jet.
Double_t fEventCriteriumMinBackground
Minimum background.
Double_t GetRhoVal() const
void AddJetToTree(AliEmcalJet *jet)
void AddTrackToOutputArray(AliVTrack *track)
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)
TString fJetMatchingArrayName
Name of array used to match jets.
AliEmcalJet * fMatchedJet
! jet matched to input jet (calculated event-by-event)
AliJetContainer * GetJetContainer(Int_t i=0) const
void UserCreateOutputObjects()
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.
Double_t GetJetEtaMax() 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...
Int_t fEventCriteriumMode
Mode of event selection.
Simple class containing basic information for a constituent.
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)
Double_t GetJetRadius(Int_t i=0) const
UShort_t GetNumberOfTracks() const
Double_t fEventCriteriumMinJetDeltaPhi
Min jet delta phi in dijet criterium.
void SetEventCriteriumSelection(Int_t type)
void CalculateEventProperties()
AliParticleContainer * GetParticleContainer(Int_t i=0) const
AliParticleContainer * GetParticleContainer() const
Double_t CalculateFakeFactor(AliEmcalJet *jet)
void FillHistogram(const char *key, Double_t x)
Double_t fEventCriteriumMaxBackground
Maximum background.
AliAnalysisTaskChargedJetsHadronCF()
TString fJetParticleArrayName
Name of fJetsOutput array.
Bool_t IsEventCriteriumFulfilled()
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")
Int_t fNumberOfCentralityBins
Number of centrality bins.
virtual AliVParticle * GetLeadingParticle(const char *opt="")
Double_t fExtractionPercentage
percentage that is recorded
Double_t fCent
!event centrality
void AddJetToOutputArray(AliEmcalJet *jet)
TClonesArray * fJetsOutput
! Array of basic correlation particles attached to the event (jets)
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()
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)
void AddJetConstituent(Float_t eta, Float_t phi, Float_t pt, Short_t charge)
void FillHistogramsJetConstituents(AliEmcalJet *jet)
Float_t GetJetRadius() const
AliEmcalList * fOutput
!output list
void FillHistogramsJets(AliEmcalJet *jet)
Short_t TrackAt(Int_t idx) const
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
TRandom3 * fRandom
random number generator
TClonesArray * fJetsInput
! Array of generated jets imported into task (toy model)
TH1 * fHistEventRejection
!book keep reasons for rejecting event
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Double_t fExtractionMaxPt
maximum pt of recorded jets
AliTrackContainer * fTracksCont
! Tracks
void UserCreateOutputObjects()
virtual AliVParticle * GetNextAcceptParticle()
void FillHistogramsTracks(AliVTrack *track)
Double_t fEventCriteriumMinLeadingJetPt
Min leading jet.
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")
Bool_t IsJetSelected(AliEmcalJet *jet)
Int_t fAcceptedTracks
! number accepted tracks (calculated event-by-event)