16 #include <TClonesArray.h>
24 #include <TLorentzVector.h>
28 #include "AliVTrack.h"
29 #include "AliVHeader.h"
36 #include "AliVParticle.h"
70 fExtractionPercentage(0),
73 fNumberOfCentralityBins(10),
77 fJetParticleArrayName("JetsDPhiBasicParticles"),
78 fTrackParticleArrayName(""),
79 fJetMatchingArrayName(""),
82 fMinFakeFactorPercentage(0),
83 fMaxFakeFactorPercentage(0),
84 fEventCriteriumMode(0),
85 fEventCriteriumMinBackground(0),
86 fEventCriteriumMaxBackground(0),
87 fEventCriteriumMinLeadingJetPt(0),
88 fEventCriteriumMinSubleadingJetPt(0),
89 fEventCriteriumMinJetDeltaPhi(0),
93 fInitialPartonMatchedJet1(0),
94 fInitialPartonMatchedJet2(0),
99 SetMakeGeneralHistograms(kTRUE);
100 fRandom =
new TRandom3(0);
111 fExtractionPercentage(0),
114 fNumberOfCentralityBins(10),
118 fJetParticleArrayName(
"JetsDPhiBasicParticles"),
119 fTrackParticleArrayName(
""),
120 fJetMatchingArrayName(
""),
123 fMinFakeFactorPercentage(0),
124 fMaxFakeFactorPercentage(0),
125 fEventCriteriumMode(0),
126 fEventCriteriumMinBackground(0),
127 fEventCriteriumMaxBackground(0),
128 fEventCriteriumMinLeadingJetPt(0),
129 fEventCriteriumMinSubleadingJetPt(0),
130 fEventCriteriumMinJetDeltaPhi(0),
134 fInitialPartonMatchedJet1(0),
135 fInitialPartonMatchedJet2(0),
171 AddHistogram2D<TH2D>(
"hTrackPt",
"Tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
172 AddHistogram2D<TH2D>(
"hTrackPhi",
"Track angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
173 AddHistogram2D<TH2D>(
"hTrackEta",
"Track angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
174 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");
176 AddHistogram2D<TH2D>(
"hLeadingTrackPt",
"Leading tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
177 AddHistogram2D<TH2D>(
"hLeadingTrackPhi",
"Leading tracks angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
178 AddHistogram2D<TH2D>(
"hLeadingTrackEta",
"Leading tracks angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
179 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");
181 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})");
182 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})");
186 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}");
187 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}");
188 AddHistogram2D<TH2D>(
"hJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
189 AddHistogram2D<TH2D>(
"hJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
190 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}");
191 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}");
192 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");
193 AddHistogram2D<TH2D>(
"hJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
194 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}");
195 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}");
197 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}");
198 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}");
200 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}");
201 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}");
204 AddHistogram2D<TH2D>(
"hRandomConePt",
"Random cone p_{T} distribution",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
205 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}");
209 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}");
210 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}");
211 AddHistogram2D<TH2D>(
"hLeadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
212 AddHistogram2D<TH2D>(
"hLeadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
213 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}");
214 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}");
215 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");
216 AddHistogram2D<TH2D>(
"hLeadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
217 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}");
218 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}");
220 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}");
221 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}");
222 AddHistogram2D<TH2D>(
"hSubleadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
223 AddHistogram2D<TH2D>(
"hSubleadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
224 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}");
225 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}");
226 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");
227 AddHistogram2D<TH2D>(
"hSubleadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
228 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}");
229 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}");
231 AddHistogram2D<TH2D>(
"hTrackCount",
"Number of tracks in acceptance vs. centrality",
"LEGO2", 500, 0., 5000.,
fNumberOfCentralityBins, 0, 100,
"N tracks",
"Centrality",
"dN^{Events}/dN^{Tracks}");
232 AddHistogram2D<TH2D>(
"hJetCount",
"Number of jets in acceptance vs. centrality",
"LEGO2", 100, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"N Jets",
"Centrality",
"dN^{Events}/dN^{Jets}");
233 AddHistogram2D<TH2D>(
"hFakeFactor",
"Fake factor distribution",
"LEGO2", 1000, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"Fake factor",
"Centrality",
"dN^{Jets}/df");
234 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");
235 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");
237 AddHistogram2D<TH2D>(
"hBackgroundPt",
"Background p_{T} distribution",
"", 150, 0., 150.,
fNumberOfCentralityBins, 0, 100,
"Background p_{T} (GeV/c)",
"Centrality",
"dN^{Events}/dp_{T}");
238 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}");
239 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}");
240 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}");
241 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}");
260 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetParticleArrayName.Data())));
272 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fTrackParticleArrayName.Data())));
280 AliFatal(Form(
"Importing jets for matching failed! Array '%s' not found!",
fJetMatchingArrayName.Data()));
286 fJetsTree =
new TTree(
"ExtractedJets",
"ExtractedJets");
378 Bool_t matchedFound = kFALSE;
384 Double_t leadingPt = -999.;
385 for(Int_t i=0; i<
fJetsInput->GetEntries(); i++)
392 if(tmpJet->
Pt() > leadingPt)
395 leadingPt = tmpJet->
Pt();
401 Double_t bestMatchDeltaR = 999.;
402 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-leadingJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-leadingJet->
Phi()));
403 Double_t deltaEta = TMath::Abs(jet->
Eta() - leadingJet->
Eta());
404 Double_t deltaR = TMath::Sqrt((deltaPhi*deltaPhi) + (deltaEta*deltaEta));
406 if(deltaR < bestMatchDeltaR)
407 bestMatchDeltaR = deltaR;
411 matchedFound = kTRUE;
421 return !matchedFound;
501 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
549 AliVHeader* eventIDHeader = InputEvent()->GetHeader();
550 Long64_t eventID = 0;
552 eventID = eventIDHeader->GetEventIdAsLong();
559 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
570 AliVParticle* particle =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
571 if(!particle)
continue;
572 basicJet.
AddJetConstituent(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge());
610 Double_t tmpRandConePhi =
fRandom->Rndm()*TMath::TwoPi();
611 Double_t tmpRandConePt = 0;
615 Int_t trackcount = 0;
622 tmpRandConePt += track->Pt();
643 FillHistogram(
"hLeadingTrackPhiEta", leadTrack->Phi(), leadTrack->Eta());
657 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
659 Double_t bestMatchDeltaR1 = 999.;
660 Double_t bestMatchDeltaR2 = 999.;
671 Double_t deltaR1 = TMath::Sqrt(deltaEta1*deltaEta1 + deltaPhi1*deltaPhi1);
672 Double_t deltaR2 = TMath::Sqrt(deltaEta2*deltaEta2 + deltaPhi2*deltaPhi2);
674 if(deltaR1 < bestMatchDeltaR1)
676 bestMatchDeltaR1 = deltaR1;
679 if(deltaR2 < bestMatchDeltaR2)
681 bestMatchDeltaR2 = deltaR2;
686 if(bestMatchDeltaR1 > 0.3)
688 if(bestMatchDeltaR2 > 0.3)
696 Double_t trackPhi = 0.0;
697 if (track->Phi() > (TMath::TwoPi() - (radius-phi)))
698 trackPhi = track->Phi() - TMath::TwoPi();
699 else if (track->Phi() < (phi+radius - TMath::TwoPi()))
700 trackPhi = track->Phi() + TMath::TwoPi();
702 trackPhi = track->Phi();
704 if ( TMath::Abs(trackPhi-phi)*TMath::Abs(trackPhi-phi) + TMath::Abs(track->Eta()-eta)*TMath::Abs(track->Eta()-eta) <= radius*radius)
723 Double_t fakeFactor = 0;
728 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
730 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-constituent->Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-constituent->Phi()));
731 Double_t deltaR = TMath::Sqrt( (jet->
Eta() - constituent->Eta())*(jet->
Eta() - constituent->Eta()) + deltaPhi*deltaPhi );
732 fakeFactor += constituent->Pt() * TMath::Sin(deltaR);
744 AliWarning(
"Set event criterium to 'default' -- no further selection criterium.");
746 AliWarning(
"Set event criterium to 'background' -- select events with certain backgrounds");
748 AliWarning(
"Set event criterium to 'simple jet trigger' -- select events with certain minimum leading jet pT (bgrd corr.)");
750 AliWarning(
"Set event criterium to 'simple dijet trigger' -- select events with certain minimum leading + subleading jet pT (bgrd corr.)");
753 AliFatal(
"Event criterium not valid.");
771 Double_t tmpLeadingPt = 0;
772 Double_t tmpSubleadingPt = 0;
774 if (option.Contains(
"rho")) {
778 jetSubLeading = jetLeading;
780 tmpSubleadingPt = tmpLeadingPt;
792 if ( (jet->Pt()) > tmpLeadingPt )
794 jetSubLeading = jetLeading;
796 tmpSubleadingPt = tmpLeadingPt;
797 tmpLeadingPt = jet->
Pt();
799 else if ( (jet->Pt()) > tmpSubleadingPt )
802 tmpSubleadingPt = jet->
Pt();
812 TAxis *axis = h->GetAxis(axisNumber);
813 int bins = axis->GetNbins();
815 Double_t from = axis->GetXmin();
816 Double_t to = axis->GetXmax();
817 Double_t *newBins =
new Double_t[bins + 1];
820 Double_t factor = pow(to/from, 1./bins);
822 for (
int i = 1; i <= bins; i++) {
823 newBins[i] = factor * newBins[i-1];
825 axis->Set(bins, newBins);
832 TH1* tmpHist =
static_cast<TH1*
>(
fOutput->FindObject(key));
835 AliError(Form(
"Cannot find histogram <%s> ",key)) ;
845 TH1* tmpHist =
static_cast<TH1*
>(
fOutput->FindObject(key));
848 AliError(Form(
"Cannot find histogram <%s> ",key));
852 if (tmpHist->IsA()->GetBaseClass(
"TH1"))
853 static_cast<TH1*>(tmpHist)->Fill(x,y);
854 else if (tmpHist->IsA()->GetBaseClass(
"TH2"))
855 static_cast<TH2*>(tmpHist)->Fill(x,y);
861 TH2* tmpHist =
static_cast<TH2*
>(
fOutput->FindObject(key));
864 AliError(Form(
"Cannot find histogram <%s> ",key));
868 tmpHist->Fill(x,y,add);
874 TH3* tmpHist =
static_cast<TH3*
>(
fOutput->FindObject(key));
877 AliError(Form(
"Cannot find histogram <%s> ",key));
882 tmpHist->Fill(x,y,z,add);
884 tmpHist->Fill(x,y,z);
891 T* tmpHist =
new T(name, title, xBins, xMin, xMax);
893 tmpHist->GetXaxis()->SetTitle(xTitle);
894 tmpHist->GetYaxis()->SetTitle(yTitle);
895 tmpHist->SetOption(options);
896 tmpHist->SetMarkerStyle(kFullCircle);
905 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)
907 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax);
908 tmpHist->GetXaxis()->SetTitle(xTitle);
909 tmpHist->GetYaxis()->SetTitle(yTitle);
910 tmpHist->GetZaxis()->SetTitle(zTitle);
911 tmpHist->SetOption(options);
912 tmpHist->SetMarkerStyle(kFullCircle);
921 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)
923 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax, zBins, zMin, zMax);
924 tmpHist->GetXaxis()->SetTitle(xTitle);
925 tmpHist->GetYaxis()->SetTitle(yTitle);
926 tmpHist->GetZaxis()->SetTitle(zTitle);
927 tmpHist->SetOption(options);
928 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)
Float_t GetPartonEta6() const
AliEmcalPythiaInfo * fPythiaInfo
!event parton info
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
Float_t GetPartonEta7() 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
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...
Int_t fEventCriteriumMode
Mode of event selection.
Simple class containing basic information for a constituent.
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
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
Int_t GetPartonFlag6() 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
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...
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.
Declaration of class AliEmcalPythiaInfo.
Double_t fExtractionMaxPt
maximum pt of recorded jets
AliTrackContainer * fTracksCont
! Tracks
void UserCreateOutputObjects()
virtual AliVParticle * GetNextAcceptParticle()
void GetInitialCollisionJets()
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)