18 namespace EMCalTriggerPtAnalysis {
23 fTrackSelection(NULL),
25 fNameJetContainer(
""),
26 fNameTrackContainer(
"")
33 fTrackSelection(NULL),
35 fNameJetContainer(
""),
36 fNameTrackContainer(
"")
39 double defaultJetRadii[] = {0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.4},
40 defaultPtMinSteps[] = {0.5, 1, 2, 5, 10, 20},
41 defaultJetPtBins[] = {20, 40, 60, 80, 100, 150, 200, 1000};
71 fHistos->
CreateTH1(
"hTrackPtSel",
"Pt spectrum of selected tracks", trackptbinning);
72 fHistos->
CreateTH1(
"hTrackPtSelEvent",
"Pt spectrum of selected tracks (directly from the input event)", trackptbinning);
73 fHistos->
CreateTH2(
"hJetMultiplicity",
"Multiplicity of particles in jets", jetptbinning, contributorbinning);
74 fHistos->
CreateTH2(
"hParticlePtJet",
"Correlation between track pt and jet pt", jetptbinning, trackptbinning);
76 for(
int irad = 0; irad < jetradii.GetSize()-1; irad++){
77 for(
int ptstep = 0; ptstep <ptminsteps.GetSize(); ptstep++){
79 static_cast<int>(jetradii[irad] * 100.),
80 static_cast<int>(jetradii[irad+1] * 100.),
81 static_cast<int>(ptminsteps[ptstep] * 10.)),
82 Form(
"Density of tracks with p_{t} > %f GeV/c in r [%.2f, %.2f]; p_{t, jet} (GeV/c); Number of tracks",
89 for(
int jetptbin = 0 ; jetptbin < jetptlarge.GetSize()-1; jetptbin++){
91 static_cast<int>(jetradii[irad] * 100.),
92 static_cast<int>(jetradii[irad+1] * 100.),
93 static_cast<int>(jetptlarge[jetptbin]),
94 static_cast<int>(jetptlarge[jetptbin+1])),
95 Form(
"Density of tracks in jet with p_{t} [%.1f, %.1f] in r[%.2f,%2f]",
97 jetptlarge[jetptbin+1],
100 trackptbinning, contributorbinning);
120 AliVParticle *jetparticle = NULL;
124 for(
int ipart = 0; ipart < InputEvent()->GetNumberOfTracks(); ipart++){
125 jetparticle = InputEvent()->GetTrack(ipart);
126 if(TMath::Abs(jetparticle->Eta()) > 0.8)
continue;
128 fHistos->
FillTH1(
"hTrackPtSelEvent", TMath::Abs(jetparticle->Pt()));
132 jetparticle = *trackiter;
133 if(TMath::Abs(jetparticle->Eta()) > 0.8)
continue;
140 fHistos->
FillTH2(
"hJetMultiplicity", myjet->Pt(), myjet->GetNumberOfConstituents());
142 for(
int iconst = 0; iconst < myjet->GetNumberOfTracks(); iconst++){
143 jetparticle = myjet->TrackAt(iconst, tcont->GetArray());
144 if(TMath::Abs(jetparticle->Eta()) > 0.8)
continue;
146 fHistos->
FillTH2(
"hParticlePtJet", myjet->Pt(), jetparticle->Pt());
149 for(
int irad = 0 ; irad < jetradii.GetSize()-1; irad++){
150 for(
int ptstep = 0; ptstep < ptminsteps.GetSize(); ptstep++){
151 fHistos->
FillTH2(Form(
"trackDensityJet_r%d_%d_minpt%d", static_cast<int>(jetradii[irad] * 100.), static_cast<int>(jetradii[irad+1] * 100.), static_cast<int>(ptminsteps[ptstep] * 10.)),
152 TMath::Abs(myjet->Pt()),
GetParticleMultiplicity(*myjet, *tcont, ptminsteps[ptstep], 10000., jetradii[irad], jetradii[irad+1]));
154 double jetptmin, jetptmax;
156 if(jetptmin > 0 && jetptmax > 0){
157 for(
int ptstep = 0; ptstep < particlePtBinning.GetSize()-1; ptstep++){
158 double mean = (particlePtBinning[ptstep] + particlePtBinning[ptstep+1])/2.;
159 fHistos->
FillTH2(Form(
"trackDensityParticle_r%d_%d_jetpt%d_%d", static_cast<int>(jetradii[irad] * 100.),static_cast<int>(jetradii[irad+1] * 100.),
160 static_cast<int>(jetptmin), static_cast<int>(jetptmax)), mean,
GetParticleMultiplicity(*myjet, *tcont, particlePtBinning[ptstep], particlePtBinning[+1], jetradii[irad], jetradii[irad+1]));
170 AliDebug(1, Form(
"Next jet: %s\n", jet.
toString().Data()));
171 TLorentzVector jetaxis(jet.
Px(), jet.
Py(), jet.
Pz(), jet.
E());
173 AliVParticle *jetparticle(NULL);
175 jetparticle =
static_cast<AliVParticle *
>(jet.
TrackAt(ipart, partcont.GetArray()));
176 if(TMath::Abs(jetparticle->Eta()) > 0.8)
continue;
178 double partpt = TMath::Abs(jetparticle->Pt());
179 if(partpt >= ptmin && partpt < ptmax){
180 TLorentzVector partvector(jetparticle->Px(), jetparticle->Py(), jetparticle->Pz(), jetparticle->E());
181 double r = TMath::Abs(jetaxis.DeltaR(partvector));
182 if(r >= rmin && r < rmax) nselected++;
191 double jetpt = TMath::Abs(jet->
Pt());
192 for(
int ptstep = 0; ptstep < jetptlarge.GetSize() - 1; ptstep++){
193 if(jetpt >= jetptlarge[ptstep] && jetpt < jetptlarge[ptstep+1]){
194 ptmin = jetptlarge[ptstep];
195 ptmax = jetptlarge[ptstep+1];
TString fNameTrackContainer
name of the jet container
AliJetContainer * GetJetContainer(Int_t i=0) const
const TArrayD & GetBinning() const
bidirectional stl iterator over the EMCAL iterable container
Container with name, TClonesArray and cuts for particles.
int GetParticleMultiplicity(const AliEmcalJet &jet, const AliParticleContainer &partcont, double ptmin, double ptmax, double rmin, double rmax) const
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
void Create(AliEMCalTriggerBinningComponent *const data)
Container for particles within the EMCAL framework.
UShort_t GetNumberOfTracks() const
Global binning handler used by several analysis components.
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
void SetBinning(const char *dimname, int nbins, const double *binning)
AliEMCalTriggerBinningDimension * GetBinning(const char *name) const
stl-iterator for the histogram manager
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Global binning definition for the high- charged particle analysis.
AliAnalysisTaskTrackDensityData()
AliEmcalList * fOutput
!output list
Short_t TrackAt(Int_t idx) const
AliEMCalTriggerBinningComponent * fBinHandler
EMCAL track selection.
virtual ~AliAnalysisTaskTrackDensityData()
AliTrackContainer * GetTrackContainer(Int_t i=0) const
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Container class for histograms for the high- charged particle analysis.
TString fNameJetContainer
Binning handler.
void UserCreateOutputObjects()
const AliJetIterableContainer accepted() const
virtual void UserCreateOutputObjects()
Container for jet within the EMCAL jet framework.
virtual bool IsTrackAccepted(AliVTrack *const trk)=0
void SetLinearBinning(const char *dirname, int nbins, double min, double max)
void FindJetPtBin(const AliEmcalJet *const jet, double &ptmin, double &ptmax) const
AliEmcalTrackSelection * fTrackSelection