16 #include <TClonesArray.h>
21 #include <AliVCluster.h>
22 #include <AliVParticle.h>
88 while ((obj = next())) {
107 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
108 groupname = clusCont->GetName();
114 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
115 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
118 histname = TString::Format(
"%s/histClusterEtaPhi_%d", groupname.Data(), cent);
119 histtitle = TString::Format(
"%s;#it{#eta}_{cluster};#it{#phi}_{cluster};counts", histname.Data());
122 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
123 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
133 histname = TString::Format(
"%s/histEMCalClusterEnergy_%d", groupname.Data(), cent);
134 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
137 histname = TString::Format(
"%s/histEMCalClusterEnergyExotic_%d", groupname.Data(), cent);
138 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
141 histname = TString::Format(
"%s/histEMCalClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
142 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
145 histname = TString::Format(
"%s/histEMCalClusterHadCorrEnergy_%d", groupname.Data(), cent);
146 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
149 histname = TString::Format(
"%s/histEMCalClusterPhi_%d", groupname.Data(), cent);
150 histtitle = TString::Format(
"%s;#it{#phi}_{cluster};counts", histname.Data());
153 histname = TString::Format(
"%s/histEMCalClusterEta_%d", groupname.Data(), cent);
154 histtitle = TString::Format(
"%s;#it{#eta}_{cluster};counts", histname.Data());
157 histname = TString::Format(
"%s/histEMCalNClusters_%d", groupname.Data(), cent);
158 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
168 histname = TString::Format(
"%s/histPHOSClusterEnergy_%d", groupname.Data(), cent);
169 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
172 histname = TString::Format(
"%s/histPHOSClusterPhi_%d", groupname.Data(), cent);
173 histtitle = TString::Format(
"%s;#it{#phi}_{cluster};counts", histname.Data());
176 histname = TString::Format(
"%s/histPHOSClusterEta_%d", groupname.Data(), cent);
177 histtitle = TString::Format(
"%s;#it{#eta}_{cluster};counts", histname.Data());
180 histname = TString::Format(
"%s/histPHOSNClusters_%d", groupname.Data(), cent);
181 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
206 histname = TString::Format(
"%s/histCellEnergyvsAbsId_%d", groupname.Data(), cent);
207 histtitle = TString::Format(
"%s;cell abs. ID;#it{E}_{cell} (GeV);counts", histname.Data());
210 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
211 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
234 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
235 groupname = partCont->GetName();
238 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
239 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
242 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
243 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
246 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
247 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
250 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
251 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
252 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
255 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
256 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
259 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
260 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{p}_{T,track}^{vertex} - #it{p}_{T,track}^{EMCal} (GeV/#it{c});counts", histname.Data());
263 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
264 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
268 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
269 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
292 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
293 groupname = jetCont->GetName();
296 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
297 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
300 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
301 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
304 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
305 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
308 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
309 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
312 histname = TString::Format(
"%s/histJetEtaPhi_%d", groupname.Data(), cent);
313 histtitle = TString::Format(
"%s;#it{#eta}_{jet};#it{#phi}_{jet};counts", histname.Data());
316 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
317 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
326 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
327 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
330 histname = TString::Format(
"%s/histJetRho_%d", groupname.Data(), cent);
331 histtitle = TString::Format(
"%s;{#rho} (GeV);counts", histname.Data());
349 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
350 groupname = jetCont->GetName();
355 for (
Int_t k=0; k<2; k++) {
358 for (
Int_t i=0; i<4; i++) {
361 for (
Int_t j=0; j<4; j++) {
363 TString label = TString::Format(
"_%d_had%d_trig%d_ass%d", cent, k, i, j);
367 histname = TString::Format(
"%s/histDijetLeadingJetPt", groupname.Data()) += label;
368 histtitle = TString::Format(
"%s;Leading Jet p_{T} (GeV);counts", histname.Data());
371 histname = TString::Format(
"%s/histDijetLeadingJetPtuncorr", groupname.Data()) += label;
372 histtitle = TString::Format(
"%s;Uncorrected Leading Jet p_{T} (GeV);counts", histname.Data());
375 histname = TString::Format(
"%s/histDijetSubleadingJetPt", groupname.Data()) += label;
376 histtitle = TString::Format(
"%s;Subleading Jet p_{T} (GeV);counts", histname.Data());
379 histname = TString::Format(
"%s/histDijetLeadingJetPhi", groupname.Data()) += label;
380 histtitle = TString::Format(
"%s;Leading Jet #phi;counts", histname.Data());
383 histname = TString::Format(
"%s/histDijetSubleadingJetPhi", groupname.Data()) += label;
384 histtitle = TString::Format(
"%s;Subleading Jet #phi;counts", histname.Data());
401 histname = TString::Format(
"%s/histDijetAJ", groupname.Data()) += label;
402 histtitle = TString::Format(
"%s;A_{J};counts", histname.Data());
405 histname = TString::Format(
"%s/histDijetxJ", groupname.Data()) += label;
406 histtitle = TString::Format(
"%s;x_{J};counts", histname.Data());
409 histname = TString::Format(
"%s/histDijetDeltaPhi", groupname.Data()) += label;
410 histtitle = TString::Format(
"%s;#Delta#phi;counts", histname.Data());
434 histname = TString::Format(
"%s/histUnmatchedLeadingJetPt", groupname.Data()) += label;
435 histtitle = TString::Format(
"%s;Leading Jet p_{T} (GeV);counts", histname.Data());
439 histname = TString::Format(
"%s/histUnmatchedSubleadingJetPt", groupname.Data()) += label;
440 histtitle = TString::Format(
"%s;Subleading Jet p_{T} (GeV);counts", histname.Data());
476 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
477 groupname = jetCont->GetName();
479 for(
auto jet : jetCont->
accepted()) {
483 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
486 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
489 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
492 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
495 histname = TString::Format(
"%s/histJetEtaPhi_%d", groupname.Data(),
fCentBin);
499 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
503 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
507 histname = TString::Format(
"%s/histJetRho_%d", groupname.Data(),
fCentBin);
525 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
526 groupname = partCont->GetName();
528 for(
auto part : partCont->
accepted()) {
532 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
535 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
538 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
541 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
542 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
544 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
547 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
550 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
554 Int_t iCluster = track->GetEMCALcluster();
558 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
566 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
581 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
582 groupname = clusCont->GetName();
584 for(
auto cluster : clusCont->
all()) {
585 if (!cluster)
continue;
587 if (cluster->GetIsExotic()) {
588 histname = TString::Format(
"%s/histEMCalClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
596 for(
auto cluster : clusCont->
accepted()) {
597 if (!cluster)
continue;
601 cluster->GetMomentum(nPart,
fVertex);
603 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
606 histname = TString::Format(
"%s/histClusterEtaPhi_%d", groupname.Data(),
fCentBin);
609 if (cluster->IsEMCAL()) {
613 histname = TString::Format(
"%s/histEMCalClusterEnergy_%d", groupname.Data(),
fCentBin);
616 histname = TString::Format(
"%s/histEMCalClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
619 histname = TString::Format(
"%s/histEMCalClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
622 histname = TString::Format(
"%s/histEMCalClusterPhi_%d", groupname.Data(),
fCentBin);
625 histname = TString::Format(
"%s/histEMCalClusterEta_%d", groupname.Data(),
fCentBin);
628 }
else if (cluster->IsPHOS()){
632 histname = TString::Format(
"%s/histPHOSClusterEnergy_%d", groupname.Data(),
fCentBin);
635 histname = TString::Format(
"%s/histPHOSClusterPhi_%d", groupname.Data(),
fCentBin);
638 histname = TString::Format(
"%s/histPHOSClusterEta_%d", groupname.Data(),
fCentBin);
644 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
647 histname = TString::Format(
"%s/histEMCalNClusters_%d", groupname.Data(),
fCentBin);
650 histname = TString::Format(
"%s/histPHOSNClusters_%d", groupname.Data(),
fCentBin);
672 for (
Short_t pos = 0; pos < ncells; pos++) {
703 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
704 groupname = jetCont->GetName();
713 if(!trigJet)
continue;
720 for (
Int_t k=0; k<2; k++) {
748 for (
Int_t i = 0; i < 4; i++) {
751 trigJetMinPt = 35 + 5*i;
752 if( trigJetPt < trigJetMinPt)
continue;
757 for (
Int_t j=0; j < 4; j++) {
758 if (j==0) assJetMinPtFrac = 0;
759 if (j==1) assJetMinPtFrac = 0.4;
760 if (j==2) assJetMinPtFrac = 0.5;
761 if (j==3) assJetMinPtFrac = 0.6;
762 Double_t assJetMinPt = trigJetMinPt * assJetMinPtFrac;
765 TString label = TString::Format(
"_%d_had%d_trig%d_ass%d",
fCentBin, k, i, j);
769 for(
auto assJetCand : jetCont->
accepted()) {
770 if (!assJetCand)
continue;
772 if ( assJetCandPt < assJetMinPt )
continue;
773 if ( TMath::Abs(trigJet->
Phi() - assJetCand->Phi()) <
fDeltaPhiMin )
continue;
776 if ( assJetCandPt < assJetPt )
continue;
793 histname = TString::Format(
"%s/histDijetLeadingJetPt", groupname.Data()) += label;
796 histname = TString::Format(
"%s/histDijetLeadingJetPtuncorr", groupname.Data()) += label;
799 histname = TString::Format(
"%s/histDijetLeadingJetPhi", groupname.Data()) += label;
805 histname = TString::Format(
"%s/histDijetSubleadingJetPt", groupname.Data()) += label;
808 histname = TString::Format(
"%s/histDijetSubleadingJetPhi", groupname.Data()) += label;
820 Double_t AJ = (trigJetPt - assJetPt)/(trigJetPt + assJetPt);
821 histname = TString::Format(
"%s/histDijetAJ", groupname.Data()) += label;
825 histname = TString::Format(
"%s/histDijetxJ", groupname.Data()) += label;
828 Double_t deltaPhi = TMath::Abs(trigJetPhi - assJetPhi);
829 histname = TString::Format(
"%s/histDijetDeltaPhi", groupname.Data()) += label;
859 histname = TString::Format(
"%s/histUnmatchedLeadingJetPt", groupname.Data()) += label;
864 for(
auto subleadingJetCand : jetCont->
accepted()) {
865 if (!subleadingJetCand)
continue;
866 Double_t subleadingJetCandPt = subleadingJetCand->
Pt() - jetCont->
GetRhoVal() * subleadingJetCand->Area();
867 if (subleadingJetCandPt < trigJetPt-0.01) {
870 if ( subleadingJetCandPt < subleadingJetPt )
continue;
873 subleadingJet = subleadingJetCand;
877 histname = TString::Format(
"%s/histUnmatchedSubleadingJetPt", groupname.Data()) += label;
void AllocateClusterHistograms()
THashList * CreateHistoGroup(const char *groupname)
TObjArray fClusterCollArray
cluster collection array
Double_t GetRhoVal() const
const TString & GetRhoName() const
void UserCreateOutputObjects()
void AllocateJetHistograms()
void AllocateTrackHistograms()
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
Declaration of class AliTLorentzVector.
Double_t fMinBinPt
min pt in histograms
Int_t fCentBin
!event centrality bin
AliAnalysisTaskEmcalDijetImbalance()
Container for particles within the EMCAL framework.
TObjArray fParticleCollArray
particle/track collection array
const AliClusterIterableContainer all() const
AliEmcalJet * GetLeadingJet(const char *opt="")
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
THashList * GetListOfHistograms() const
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
Declaration of class AliAnalysisTaskEmcalDijetImbalance.
Double_t Phi_0_2pi() const
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
BeamType fForceBeamType
forced beam type
Int_t fNcentBins
how many centrality bins
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Double_t fDeltaPhiMin
minimum delta phi between di-jets
AliVCluster * GetAcceptCluster(Int_t i) const
const AliClusterIterableContainer accepted() const
TString fCaloCellsName
name of calo cell collection
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
TObjArray fJetCollArray
jet collection array
THistManager fHistManager
Histogram manager.
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Implementation of a sample jet analysis task.
Represent a jet reconstructed using the EMCal jet framework.
const AliParticleIterableContainer accepted() const
void AllocateCellHistograms()
void UserCreateOutputObjects()
void Terminate(Option_t *option)
const AliJetIterableContainer accepted() const
Container structure for EMCAL clusters.
virtual ~AliAnalysisTaskEmcalDijetImbalance()
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins
void AllocateDijetHistograms()