16 #include <TClonesArray.h> 23 #include <THnSparse.h> 30 #include <TClonesArray.h> 33 #include <THashList.h> 35 #include <TObjArray.h> 36 #include <TParameter.h> 38 #include <AliVCluster.h> 39 #include <AliVParticle.h> 48 #include "AliEMCALGeometry.h" 49 #include "AliVCaloCells.h" 50 #include "AliESDCaloCells.h" 51 #include "AliMCEvent.h" 52 #include "AliMCParticle.h" 53 #include "AliGenEventHeader.h" 54 #include "AliGenPythiaEventHeader.h" 57 #include "AliAnalysisUtils.h" 58 #include "AliESDEvent.h" 59 #include "AliAODEvent.h" 60 #include "AliVEvent.h" 61 #include "AliEMCALTriggerPatchInfo.h" 63 #include "AliInputEventHandler.h" 65 #include "AliMultSelection.h" 66 #include "AliMultEstimator.h" 67 #include "AliOADBContainer.h" 83 fUseRecalcPatches(false),
94 fHistJetGammaPatchE(),
96 fHistJetGammaPatchPt(),
104 for(
int i=0;i<9;i++){
139 for(
int i=0;i<=9;i++){
164 for(
int i=0;i<=9;i++){
165 histName = TString::Format(
"fHistEMCalTowerMult_%d",i);
166 histTitle = TString::Format(
"%s;N_{tower};Counts",histName.Data());
174 TString jetMCContName = jetMCCont->GetName();
196 while ((obj = next())) {
219 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
240 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
241 groupname = clusCont->GetName();
244 histname = TString::Format(
"%s/fhnClusSparse", groupname.Data());
245 histtitle = histname +
";Multiplicity;#it{E}_{clus}{had.corr.} (GeV);#it{E}_{clus}^{non-lin.corr} (GeV); #it{E}_{clus}^{corr} (GeV);#it{p}_{trk,matched} (GeV/#it{c});E_{clus}^{non-lin.corr}/P_{trk}^{sum};#eta_{clus};#phi_{clus};M02;M20;Dumb}";
246 Int_t nbins10[11] = {300,
fNbins,
fNbins,
fNbins,
fNbins,120,24,72,100,100,0};
247 Double_t min10[11] = {0,
fMinBinPt,
fMinBinPt,
fMinBinPt,
fMinBinPt,0,-1.2, -0.5*
pi,0,0,0};
248 Double_t max10[11] = {300,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,1.2,1.2,1.5*
pi,1,1,0};
252 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
253 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
256 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
257 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
260 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
261 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
264 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
265 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
268 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
269 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
272 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
273 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
276 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(), cent);
277 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);#it{F}_{cross}", histname.Data());
281 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
282 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
342 histname = TString::Format(
"%s/histCellEnergy_%d", groupname.Data(), cent);
343 histtitle = TString::Format(
"%s;#it{E}_{cell} (GeV);counts", histname.Data());
346 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
347 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
371 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
372 groupname = partCont->GetName();
375 histname = TString::Format(
"%s/fhnTrkSparse", groupname.Data());
376 histtitle = histname +
";Multiplicity;#it{p}_{T,trk} (GeV/#it{c});#it{p}_{trk} (GeV/#it{c});#eta_{trk};#phi_{trk};TPCnClusters}";
383 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
384 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
387 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
388 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
391 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
392 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
395 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
396 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
397 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
400 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
401 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
404 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
405 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());
408 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
409 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
413 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
414 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
439 SparseBit = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<10 | 1<<11 | 1<<12 | 1<<13 | 1<<14 | 1<<15 | 1<<16;
441 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
442 groupname = jetCont->GetName();
450 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
451 histtitle = histname +
";Multiplicity;#it{p}_{T,jet}^{uncorr} (GeV/#it{c});#it{p}_{T,leading} (GeV/#it{c};#it{E}_{leading} (GeV);#eta_{jet};#phi_{jet};#it{F}_{cross};#it{z}_{leading};#it{A}_{jet};#it{NEF};#it{N}_{constit};#it{N}_{neu};#it{N}_{chrg}";
452 Int_t nbins13[13] = {300,
fNbins,
fNbins,
fNbins,24,72,20,20,20,20,100,100,100};
453 Double_t min13[13] = {0,
fMinBinPt,
fMinBinPt,
fMinBinPt,-1.2, -0.5*
pi,0,0,0,0,0,0,0};
454 Double_t max13[13] = {300,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,1.2,1.5*
pi,1,1,1,1,1,1,1};
460 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
461 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
464 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(), cent);
465 histtitle = TString::Format(
"%s;#it{E}_{JetClus} (GeV);counts", histname.Data());
468 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(), cent);
469 histtitle = TString::Format(
"%s;#it{p}_{T,JetTrk} (GeV/#it{c});counts", histname.Data());
472 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(), cent);
473 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NEF", histname.Data());
476 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(), cent);
477 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NumberofJetConstit", histname.Data());
480 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(), cent);
481 histtitle = TString::Format(
"%s;Z=#it{p}_{T,leading} / #it{p}_{T,Jet};counts", histname.Data());
484 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(), cent);
485 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};Z=#it{p}_{T,Trk} / #it{p}_{T,Jet}", histname.Data());
492 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(), cent);
493 histtitle = TString::Format(
"%s;#it{z}_{leading};#it{F}_{Cross}", histname.Data());
497 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(), cent);
498 histtitle = TString::Format(
"%s;JE Trigger Normaliztion;counts", histname.Data());
501 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(), cent);
502 histtitle = TString::Format(
"%s;GA Trigger Normaliztion;counts", histname.Data());
505 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(), cent);
506 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
509 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(), cent);
510 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
513 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(), cent);
514 histtitle = TString::Format(
"%s;#it{p}_{T,JetJetPatch} (GeV/#it{c});counts", histname.Data());
517 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(), cent);
518 histtitle = TString::Format(
"%s;#it{p}_{T,JetGammaPatch} (GeV/#it{c});counts", histname.Data());
521 histname = TString::Format(
"%s/fHistTriggerPatchE_%d", groupname.Data(), cent);
522 histtitle = TString::Format(
"%s;#it{E}_{TriggerPatch} (GeV);counts", histname.Data());
525 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(), cent);
526 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{JE,patch};#it{#eta}_{Jet} - #it{#eta}_{JE,patch};counts", histname.Data());
529 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(), cent);
530 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{GA,patch};#it{#eta}_{Jet} - #it{#eta}_{GA,patch};counts", histname.Data());
533 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(), cent);
534 histtitle = TString::Format(
"%s;#it{E_{JE,patch}}#it{E_{Jet,UnCorr}};counts", histname.Data());
537 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(), cent);
538 histtitle = TString::Format(
"%s;#it{E_{GA,patch}};#it{E_{Jet,UnCorr}};counts", histname.Data());
542 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
543 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
546 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
547 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
550 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
551 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
554 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(), cent);
555 histtitle = TString::Format(
"%s;#it{#phi}_{JetClus};counts", histname.Data());
558 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(), cent);
559 histtitle = TString::Format(
"%s;#it{#eta}_{JetClus};counts", histname.Data());
562 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
563 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
572 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
573 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
612 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
613 groupname = jetCont->GetName();
615 for(
auto jet : jetCont->
accepted()) {
619 TLorentzVector leadPart;
622 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
624 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
627 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
630 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
633 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
636 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
639 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(),
fCentBin);
643 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(),
fCentBin);
646 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(),
fCentBin);
649 Double_t MatchedEta = 0.04, MatchedPhi = 0.04;
656 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
657 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
663 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
669 AliEMCALTriggerPatchInfo *currentpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
672 if(currentpatch->IsGammaLowRecalc() || currentpatch->IsGammaLowSimple()){
673 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(),
fCentBin);
674 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
675 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(),
fCentBin);
678 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
679 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(),
fCentBin);
681 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(),
fCentBin);
683 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(),
fCentBin);
689 if(currentpatch->IsJetLowRecalc() || currentpatch->IsJetLowSimple()){
690 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(),
fCentBin);
691 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
692 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(),
fCentBin);
695 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
696 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(),
fCentBin);
698 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(),
fCentBin);
700 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(),
fCentBin);
712 for (
Int_t it = 0; it < jet->GetNumberOfTracks(); it++) {
713 AliVParticle *JetTrk = jet->TrackAt(it, tracks->GetArray());
716 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(),
fCentBin);
721 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(),
fCentBin);
737 for(
auto cluster : JetCluster->
accepted()) {
739 cluster->GetMomentum(nPart,
fVertex);
742 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
744 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(),
fCentBin);
746 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(),
fCentBin);
748 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(),
fCentBin);
759 AliVCluster *leadingCluster = 0x0;
762 leadingCluster = jet->GetLeadingCluster();
764 leadingclusterE = leadingCluster->E();
766 JetFCrossLeading = 1.;
769 AliVParticle* leadingTrk = jet->GetLeadingTrack();
771 leadingtrackpT = leadingTrk->Pt();
778 Double_t x[13]={TrackMultiplicity,jet->Pt(),leadingtrackpT,leadingclusterE,jet->Eta(),jet->Phi(),JetFCrossLeading,z,jet->Area(),jet->NEF(),Numb,NumbNeu,NumbChrg};
779 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
783 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
787 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
804 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
805 groupname = partCont->GetName();
807 for(
auto part : partCont->
accepted()) {
811 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
814 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
817 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
820 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
821 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
823 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
826 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
829 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
832 Double_t x[6]={0.0,track->Pt(),track->P(),track->Eta(),track->Phi(),0.0};
833 histname = TString::Format(
"%s/fhnTrkSparse", groupname.Data());
837 Int_t iCluster = track->GetEMCALcluster();
841 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
850 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
861 Double_t TrkPt = 0.0, EovP = 0.0, TrackMultiplicity =0.0, trkpSum = 0.0;
866 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
867 groupname = clusCont->GetName();
870 for(
auto cluster : clusCont->
all()) {
871 if (!cluster)
continue;
875 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(),
fCentBin);
878 if (cluster->GetIsExotic()) {
879 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
885 for(
auto cluster : clusCont->
accepted()) {
886 if (!cluster)
continue;
890 cluster->GetMomentum(nPart,
fVertex);
892 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
895 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
898 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
901 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
904 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
908 const AliVTrack* track = 0x0;
910 for (
Int_t itrack=0; itrack < cluster->GetNTracksMatched(); itrack++){
911 track =
dynamic_cast<AliVTrack*
>(cluster->GetTrackMatched(itrack));
914 trkpSum += track->P();
915 EovP = cluster->GetNonLinCorrEnergy() / trkpSum;
921 Double_t x[10]={TrackMultiplicity,cluster->GetHadCorrEnergy(),cluster->GetNonLinCorrEnergy(),cluster->E(),TrkPt,EovP,nPart.Eta(),nPart.
Phi_0_2pi(),cluster->GetM02(),cluster->GetM20()};
922 histname = TString::Format(
"%s/fhnClusSparse", groupname.Data());
930 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
951 for (
Short_t pos = 0; pos < ncells; pos++) {
969 for(
auto trk : partMCCont->
all()){
970 groupname = partMCCont->GetName();
972 for(
auto part : partMCCont->
accepted()) {
975 histname = TString::Format(
"%s/fHistParticleLvlpT_%d", groupname.Data(),
fCent);
1012 TClass cls(objname);
1013 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
1014 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
1020 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
1024 AliEMCALTriggerPatchInfo *recpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
1096 cout<<
"*****************************"<<endl;
1097 cout<<
"******* Task Finished *******"<<endl;
1098 cout<<
"*****************************"<<endl;
1232 const Int_t dim = count;
1239 while(c<dim && i<32){
1244 hnTitle += Form(
";%s",label.Data());
1252 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
1270 label =
"V0 centrality (%)";
1276 label =
"Multiplicity";
1282 label =
"Jet p_{T}";
1289 label =
"Track p_{T}";
1296 label =
"Cluster E";
1317 label =
"#it{p}_{T,track}^{leading}";
1324 label =
"Matched Trigger Amp";
1331 label =
"#Delta#eta";
1338 label =
"#Delta#phi";
1345 label =
"F_{cross}";
1352 label =
"z_{leading}";
1359 label =
"#it{A}_{jet}";
1373 label =
"Numb Constit";
1380 label =
"Numb Chrg Constit";
1387 label =
"Numb Neu Constit";
THashList * CreateHistoGroup(const char *groupname)
Create a new group of histograms within a parent group.
TObjArray fClusterCollArray
cluster collection array
void AllocateCellHistograms()
EMCal Tower Histograms.
virtual THnSparse * NewTHnSparseF(const char *name, UInt_t entries)
Double_t GetRhoVal() const
const TString & GetRhoName() const
virtual ~AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA()
AliJetContainer * GetJetContainer(Int_t i=0) const
const AliParticleIterableContainer all() const
Container with name, TClonesArray and cuts for particles.
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
Fill a 2D histogram within the container.
Declaration of class AliTLorentzVector.
void Terminate(Option_t *option)
Double_t fMinBinPt
min pt in histograms
AliClusterContainer * GetClusterContainer() const
THistManager fHistManager
Histogram manager.
Int_t fCentBin
!event centrality bin
Declaration of class AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA.
void AllocateClusterHistograms()
EMCal Cluster Histograms.
void AllocateJetHistograms()
Jet Histograms.
TH1F * fHistNumbJets
activate sumw2 for output histograms
Container for particles within the EMCAL framework.
void SetCaloTriggerPatchInfoName(const char *n)
AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA()
TObjArray fParticleCollArray
particle/track collection array
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Get particle container attached to this task.
const AliClusterIterableContainer all() const
AliParticleContainer * GetParticleContainer() const
void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet *jet) const
void FillTHnSparse(const char *name, const double *x, double weight=1., Option_t *opt="")
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
Create a new TH2 within the container.
Bool_t fUseRecalcPatches
Switch between offline (FEE) and recalc (L1) patches.
TH1F * fHistJetPt
Numb Jets Per Event.
THashList * GetListOfHistograms() const
Get the list of histograms.
void AllocateTrackHistograms()
ITS-TPC Track Histograms.
Double_t Phi_0_2pi() const
Implementation of a EMCal spectra task and QA for EMCal triggers.
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
BeamType fForceBeamType
forced beam type
Int_t fNcentBins
how many centrality bins
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
AliVCluster * GetAcceptCluster(Int_t i) const
TH1F * fHistJetJetPatchPt
Jet - Gamma Trigger Patch E.
const AliClusterIterableContainer accepted() const
Double_t fCent
!event centrality
TString fCaloCellsName
name of calo cell collection
static Double_t GetParallelFraction(AliVParticle *part1, AliVParticle *part2)
Calculates the fraction of momentum z of part 1 w.r.t. part 2 in the direction of part 2...
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Fill a 1D histogram within the container.
TObjArray fJetCollArray
jet collection array
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
TH1F * fHistTriggerPatchE
Jet - Gamma Trigger Patch Pt.
AliEmcalList * fOutput
!output list
TH1F * fHistJetGammaPatchE
Jet - Jet Trigger Patch E.
Double_t fMaxBinPt
max pt in histograms
TH1F * fHistJetGammaPatchPt
Jet - Jet Trigger Patch Pt.
void UserCreateOutputObjects()
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
TClonesArray * fTriggerPatchInfo
!trigger patch info array
Base task in the EMCAL jet framework.
const AliParticleIterableContainer accepted() const
void UserCreateOutputObjects()
Main initialization function on the worker.
const AliJetIterableContainer accepted() const
THnSparse * CreateTHnSparse(const char *name, const char *title, int ndim, const int *nbins, const double *min, const double *max, Option_t *opt="")
Create a new THnSparse within the container.
Container structure for EMCAL clusters.
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins
virtual void GetDimParams(Int_t iEntry, TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax)
TH1F * fHistJetJetPatchE
Jet Pt Dist.