16 #include <TClonesArray.h>
21 #include <AliVCluster.h>
22 #include <AliVParticle.h>
82 while ((obj = next())) {
101 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
102 groupname = clusCont->GetName();
105 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
106 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
109 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
110 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
113 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
114 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
117 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
118 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
121 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
122 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
125 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
126 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
129 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
130 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
154 histname = TString::Format(
"%s/histCellEnergyvsAbsId_%d", groupname.Data(), cent);
155 histtitle = TString::Format(
"%s;cell abs. ID;#it{E}_{cell} (GeV);counts", histname.Data());
158 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
159 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
182 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
183 groupname = partCont->GetName();
186 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
187 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
190 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
191 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
194 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
195 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
198 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
199 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
200 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
203 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
204 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
207 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
208 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());
211 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
212 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
216 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
217 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
240 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
241 groupname = jetCont->GetName();
244 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
245 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
248 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
249 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
252 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
253 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
256 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
257 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
260 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
261 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
270 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
271 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
289 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
290 groupname = jetCont->GetName();
294 histname = TString::Format(
"%s/histDijetAJ_%d", groupname.Data(), cent);
295 histtitle = TString::Format(
"%s;AJ;counts", histname.Data());
328 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
329 groupname = jetCont->GetName();
331 for(
auto jet : jetCont->
accepted()) {
335 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
338 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
341 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
344 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
348 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
352 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
369 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
370 groupname = partCont->GetName();
372 for(
auto part : partCont->
accepted()) {
376 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
379 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
382 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
385 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
386 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
388 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
391 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
394 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
398 Int_t iCluster = track->GetEMCALcluster();
402 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
410 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
425 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
426 groupname = clusCont->GetName();
428 for(
auto cluster : clusCont->
all()) {
429 if (!cluster)
continue;
431 if (cluster->GetIsExotic()) {
432 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
438 for(
auto cluster : clusCont->
accepted()) {
439 if (!cluster)
continue;
443 cluster->GetMomentum(nPart,
fVertex);
445 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
448 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
451 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
454 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
457 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
461 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
482 for (
Short_t pos = 0; pos < ncells; pos++) {
514 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
515 groupname = jetCont->GetName();
519 if(!trigJet)
continue;
526 for(
auto assJetCand : jetCont->
accepted()) {
527 if (!assJetCand)
continue;
528 Double_t assJetCandPt = assJetCand->Pt();
529 Double_t assJetCandPhi = assJetCand->Phi();
532 if ( TMath::Abs(trigJetPhi - assJetCandPhi) <
fDeltaPhiMin )
continue;
533 if ( assJetCandPt < assJetPt )
continue;
534 if ( assJetCand->Compare(trigJet) == 0 )
continue;
536 assJetPt = assJetCandPt;
542 Double_t AJ = (trigJetPt - assJetPt)/(trigJetPt + assJetPt);
544 histname = TString::Format(
"%s/histDijetAJ_%d", groupname.Data(),
fCentBin);
void AllocateClusterHistograms()
TObjArray fClusterCollArray
cluster collection array
Double_t GetRhoVal() const
const TString & GetRhoName() const
Double_t fAssJetMinPt
Pt threshold for trigger (full) jet.
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
THashList * CreateHistoGroup(const char *groupname, const char *parent="/")
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
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
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
Pt threshold for associated (charged) jet (note: unscaled)
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
Double_t fTrigJetMinPt
minimum delta phi between di-jets
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()