16 #include <TClonesArray.h>
24 #include <TLorentzVector.h>
28 #include "AliVTrack.h"
29 #include "AliVHeader.h"
35 #include "AliAODTrack.h"
37 #include "AliVParticle.h"
71 fExtractionPercentage(0),
74 fNumberOfCentralityBins(10),
78 fJetParticleArrayName("JetsDPhiBasicParticles"),
79 fTrackParticleArrayName(""),
80 fJetMatchingArrayName(""),
83 fMinFakeFactorPercentage(0),
84 fMaxFakeFactorPercentage(0),
85 fPythiaExtractionMode(0),
86 fEventCriteriumMode(0),
87 fEventCriteriumMinBackground(0),
88 fEventCriteriumMaxBackground(0),
89 fEventCriteriumMinLeadingJetPt(0),
90 fEventCriteriumMinSubleadingJetPt(0),
91 fEventCriteriumMinJetDeltaPhi(0),
95 fMatchedJetReference(0),
96 fInitialPartonMatchedJet1(0),
97 fInitialPartonMatchedJet2(0),
102 SetMakeGeneralHistograms(kTRUE);
103 fRandom =
new TRandom3(0);
114 fExtractionPercentage(0),
117 fNumberOfCentralityBins(10),
121 fJetParticleArrayName(
"JetsDPhiBasicParticles"),
122 fTrackParticleArrayName(
""),
123 fJetMatchingArrayName(
""),
126 fMinFakeFactorPercentage(0),
127 fMaxFakeFactorPercentage(0),
128 fPythiaExtractionMode(0),
129 fEventCriteriumMode(0),
130 fEventCriteriumMinBackground(0),
131 fEventCriteriumMaxBackground(0),
132 fEventCriteriumMinLeadingJetPt(0),
133 fEventCriteriumMinSubleadingJetPt(0),
134 fEventCriteriumMinJetDeltaPhi(0),
138 fMatchedJetReference(0),
139 fInitialPartonMatchedJet1(0),
140 fInitialPartonMatchedJet2(0),
176 AddHistogram2D<TH2D>(
"hTrackPt",
"Tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
177 AddHistogram2D<TH2D>(
"hTrackPhi",
"Track angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
178 AddHistogram2D<TH2D>(
"hTrackEta",
"Track angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
179 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");
181 AddHistogram2D<TH2D>(
"hLeadingTrackPt",
"Leading tracks p_{T} distribution",
"", 300, 0., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
182 AddHistogram2D<TH2D>(
"hLeadingTrackPhi",
"Leading tracks angular distribution in #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Tracks}/(d#phi)");
183 AddHistogram2D<TH2D>(
"hLeadingTrackEta",
"Leading tracks angular distribution in #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Tracks}/(d#eta)");
184 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");
186 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})");
187 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})");
191 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}");
192 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}");
193 AddHistogram2D<TH2D>(
"hJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
194 AddHistogram2D<TH2D>(
"hJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
195 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}");
196 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}");
197 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");
198 AddHistogram2D<TH2D>(
"hJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
199 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}");
200 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}");
202 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}");
203 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}");
205 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}");
206 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}");
209 AddHistogram2D<TH2D>(
"hRandomConePt",
"Random cone p_{T} distribution",
"", 400, -100., 300.,
fNumberOfCentralityBins, 0, 100,
"p_{T, cone} (GeV/c)",
"Centrality",
"dN^{Tracks}/dp_{T}");
210 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}");
214 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}");
215 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}");
216 AddHistogram2D<TH2D>(
"hLeadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
217 AddHistogram2D<TH2D>(
"hLeadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
218 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}");
219 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}");
220 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");
221 AddHistogram2D<TH2D>(
"hLeadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
222 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}");
223 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}");
225 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}");
226 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}");
227 AddHistogram2D<TH2D>(
"hSubleadingJetPhi",
"Jet angular distribution #phi",
"LEGO2", 180, 0., 2*TMath::Pi(),
fNumberOfCentralityBins, 0, 100,
"#phi",
"Centrality",
"dN^{Jets}/d#phi");
228 AddHistogram2D<TH2D>(
"hSubleadingJetEta",
"Jet angular distribution #eta",
"LEGO2", 100, -2.5, 2.5,
fNumberOfCentralityBins, 0, 100,
"#eta",
"Centrality",
"dN^{Jets}/d#eta");
229 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}");
230 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}");
231 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");
232 AddHistogram2D<TH2D>(
"hSubleadingJetArea",
"Jet area",
"LEGO2", 200, 0., 2.,
fNumberOfCentralityBins, 0, 100,
"Jet A",
"Centrality",
"dN^{Jets}/dA");
233 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}");
234 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}");
236 AddHistogram2D<TH2D>(
"hTrackCount",
"Number of tracks in acceptance vs. centrality",
"LEGO2", 500, 0., 5000.,
fNumberOfCentralityBins, 0, 100,
"N tracks",
"Centrality",
"dN^{Events}/dN^{Tracks}");
237 AddHistogram2D<TH2D>(
"hJetCount",
"Number of jets in acceptance vs. centrality",
"LEGO2", 100, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"N Jets",
"Centrality",
"dN^{Events}/dN^{Jets}");
238 AddHistogram2D<TH2D>(
"hFakeFactor",
"Fake factor distribution",
"LEGO2", 1000, 0., 100.,
fNumberOfCentralityBins, 0, 100,
"Fake factor",
"Centrality",
"dN^{Jets}/df");
239 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");
240 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");
242 AddHistogram2D<TH2D>(
"hBackgroundPt",
"Background p_{T} distribution",
"", 150, 0., 150.,
fNumberOfCentralityBins, 0, 100,
"Background p_{T} (GeV/c)",
"Centrality",
"dN^{Events}/dp_{T}");
243 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}");
244 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}");
245 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}");
246 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}");
265 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fJetParticleArrayName.Data())));
277 AliError(Form(
"%s: Object with name %s already in event!", GetName(), Form(
"%s",
fTrackParticleArrayName.Data())));
285 AliFatal(Form(
"Importing jets for matching failed! Array '%s' not found!",
fJetMatchingArrayName.Data()));
288 AliFatal(Form(
"fJetMatchingArrayName must be set in jet output mode 4,5, or 7."));
460 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
514 AliVHeader* eventIDHeader = InputEvent()->GetHeader();
517 eventID = eventIDHeader->GetEventIdAsLong();
524 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
543 AliVParticle* particle =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
544 if(!particle)
continue;
546 AliAODTrack* aodtrack =
static_cast<AliAODTrack*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
551 if(TMath::Abs(particle->PdgCode()) == 2212)
553 else if (TMath::Abs(particle->PdgCode()) == 211)
555 else if (TMath::Abs(particle->PdgCode()) == 321)
557 else if (TMath::Abs(particle->PdgCode()) == 11)
559 else if (TMath::Abs(particle->PdgCode()) == 13)
563 constid = aodtrack->GetMostProbablePID();
565 basicJet.
AddJetConstituent(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge(), constid);
608 Int_t trackcount = 0;
615 tmpRandConePt += track->Pt();
636 FillHistogram(
"hLeadingTrackPhiEta", leadTrack->Phi(), leadTrack->Eta());
650 AliError(
"fPythiaInfo object not available. Is it activated with SetGeneratePythiaInfoObject()?");
664 Double_t deltaR1 = TMath::Sqrt(deltaEta1*deltaEta1 + deltaPhi1*deltaPhi1);
665 Double_t deltaR2 = TMath::Sqrt(deltaEta2*deltaEta2 + deltaPhi2*deltaPhi2);
667 if(deltaR1 < bestMatchDeltaR1)
669 bestMatchDeltaR1 = deltaR1;
672 if(deltaR2 < bestMatchDeltaR2)
674 bestMatchDeltaR2 = deltaR2;
679 if(bestMatchDeltaR1 > 0.3)
681 if(bestMatchDeltaR2 > 0.3)
700 if(tmpJet->
Pt() > leadingPt)
702 leadingMatchJet = tmpJet;
703 leadingPt = tmpJet->
Pt();
716 Double_t deltaEta = TMath::Abs(jet->Eta()-leadingMatchJet->
Eta());
717 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->Phi()-leadingMatchJet->
Phi()),TMath::TwoPi() - TMath::Abs(jet->Phi()-leadingMatchJet->
Phi()));
718 Double_t deltaR = TMath::Sqrt(deltaEta*deltaEta + deltaPhi*deltaPhi);
720 if(deltaR < bestMatchDeltaR)
722 bestMatchDeltaR = deltaR;
744 if (track->Phi() > (TMath::TwoPi() - (radius-phi)))
745 trackPhi = track->Phi() - TMath::TwoPi();
746 else if (track->Phi() < (phi+radius - TMath::TwoPi()))
747 trackPhi = track->Phi() + TMath::TwoPi();
749 trackPhi = track->Phi();
751 if ( TMath::Abs(trackPhi-phi)*TMath::Abs(trackPhi-phi) + TMath::Abs(track->Eta()-eta)*TMath::Abs(track->Eta()-eta) <= radius*radius)
777 AliVParticle* constituent =
static_cast<AliVParticle*
>(jet->
TrackAt(i,
fTracksCont->GetArray()));
779 Double_t deltaPhi = TMath::Min(TMath::Abs(jet->
Phi()-constituent->Phi()),TMath::TwoPi() - TMath::Abs(jet->
Phi()-constituent->Phi()));
780 Double_t deltaR = TMath::Sqrt( (jet->
Eta() - constituent->Eta())*(jet->
Eta() - constituent->Eta()) + deltaPhi*deltaPhi );
781 fakeFactor += constituent->Pt() * TMath::Sin(deltaR);
793 AliWarning(
"Set event criterium to 'default' -- no further selection criterium.");
795 AliWarning(
"Set event criterium to 'background' -- select events with certain backgrounds");
797 AliWarning(
"Set event criterium to 'simple jet trigger' -- select events with certain minimum leading jet pT (bgrd corr.)");
799 AliWarning(
"Set event criterium to 'simple dijet trigger' -- select events with certain minimum leading + subleading jet pT (bgrd corr.)");
802 AliFatal(
"Event criterium not valid.");
823 if (option.Contains(
"rho")) {
827 jetSubLeading = jetLeading;
829 tmpSubleadingPt = tmpLeadingPt;
841 if ( (jet->Pt()) > tmpLeadingPt )
843 jetSubLeading = jetLeading;
845 tmpSubleadingPt = tmpLeadingPt;
846 tmpLeadingPt = jet->
Pt();
848 else if ( (jet->Pt()) > tmpSubleadingPt )
851 tmpSubleadingPt = jet->
Pt();
861 TAxis *axis = h->GetAxis(axisNumber);
862 int bins = axis->GetNbins();
869 Double_t factor = pow(to/from, 1./bins);
871 for (
int i = 1; i <= bins; i++) {
872 newBins[i] = factor * newBins[i-1];
874 axis->Set(bins, newBins);
884 AliError(Form(
"Cannot find histogram <%s> ",key)) ;
897 AliError(Form(
"Cannot find histogram <%s> ",key));
901 if (tmpHist->IsA()->GetBaseClass(
"TH1"))
902 static_cast<TH1*>(tmpHist)->Fill(x,y);
903 else if (tmpHist->IsA()->GetBaseClass(
"TH2"))
904 static_cast<TH2*>(tmpHist)->Fill(x,y);
913 AliError(Form(
"Cannot find histogram <%s> ",key));
917 tmpHist->Fill(x,y,add);
926 AliError(Form(
"Cannot find histogram <%s> ",key));
931 tmpHist->Fill(x,y,z,add);
933 tmpHist->Fill(x,y,z);
940 T* tmpHist =
new T(name, title, xBins, xMin, xMax);
942 tmpHist->GetXaxis()->SetTitle(xTitle);
943 tmpHist->GetYaxis()->SetTitle(yTitle);
944 tmpHist->SetOption(options);
945 tmpHist->SetMarkerStyle(kFullCircle);
954 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)
956 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax);
957 tmpHist->GetXaxis()->SetTitle(xTitle);
958 tmpHist->GetYaxis()->SetTitle(yTitle);
959 tmpHist->GetZaxis()->SetTitle(zTitle);
960 tmpHist->SetOption(options);
961 tmpHist->SetMarkerStyle(kFullCircle);
970 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)
972 T* tmpHist =
new T(name, title, xBins, xMin, xMax, yBins, yMin, yMax, zBins, zMin, zMax);
973 tmpHist->GetXaxis()->SetTitle(xTitle);
974 tmpHist->GetYaxis()->SetTitle(yTitle);
975 tmpHist->GetZaxis()->SetTitle(zTitle);
976 tmpHist->SetOption(options);
977 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.
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)
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
UShort_t GetNumberOfTracks() const
UShort_t T(UShort_t m, UShort_t t)
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
void AddJetConstituent(Float_t eta, Float_t phi, Float_t pt, Short_t charge, Short_t pid=0)
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 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)
AliEmcalJet * fMatchedJetReference
! matching input jet (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)