16 #include <TClonesArray.h> 19 #include <THnSparse.h> 25 #include <TClonesArray.h> 28 #include <THashList.h> 30 #include <TObjArray.h> 31 #include <TParameter.h> 33 #include <AliVCluster.h> 34 #include <AliVParticle.h> 35 #include "AliAODTrack.h" 46 #include "AliAnalysisUtils.h" 47 #include "AliESDEvent.h" 48 #include "AliEMCALTriggerPatchInfo.h" 50 #include "AliInputEventHandler.h" 52 #include "AliMultSelection.h" 53 #include "AliMultEstimator.h" 54 #include "AliOADBContainer.h" 71 fUseRecalcPatches(false),
81 fHistJetJetPatchE(0x0),
82 fHistJetGammaPatchE(0x0),
83 fHistJetJetPatchPt(0x0),
84 fHistJetGammaPatchPt(0x0),
85 fHistTriggerPatchE(0x0)
127 for(
int i=0;i<=9;i++){
152 for(
int i=0;i<=9;i++){
153 histName = TString::Format(
"fHistEMCalTowerMult_%d",i);
154 histTitle = TString::Format(
"%s;N_{tower};Counts",histName.Data());
162 TString jetMCContName = jetMCCont->GetName();
184 while ((obj = next())) {
207 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
227 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
228 groupname = clusCont->GetName();
233 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
234 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
237 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
238 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
241 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
242 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
245 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
246 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
249 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
250 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
253 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
254 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
257 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(), cent);
258 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);#it{F}_{cross}", histname.Data());
262 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
263 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
323 histname = TString::Format(
"%s/histCellEnergy_%d", groupname.Data(), cent);
324 histtitle = TString::Format(
"%s;#it{E}_{cell} (GeV);counts", histname.Data());
327 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
328 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
351 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
352 groupname = partCont->GetName();
357 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
358 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
361 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
362 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
365 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
366 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
369 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
371 histname = TString::Format(
"%s/fHistTrackResolution_%d", groupname.Data(), cent);
372 histtitle = TString::Format(
"%s;#sigma(#it{p}_{T}) / #it{p}_{T};counts", histname.Data());
375 histname = TString::Format(
"%s/fHistCovMatrix_%d", groupname.Data(), cent);
376 histtitle = TString::Format(
"%s; #it{p}_{T}; #sigma(#it{p}_{T}) / #it{p}_{T}; counts", histname.Data());
379 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
380 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
383 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
384 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
387 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
388 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());
391 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
392 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
396 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
397 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
422 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;
424 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
425 groupname = jetCont->GetName();
428 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
429 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};m#it{z}_{leading};#it{A}_{jet};#it{NEF};#it{N}_{constit}";
438 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
439 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
442 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(), cent);
443 histtitle = TString::Format(
"%s;#it{E}_{JetClus} (GeV);counts", histname.Data());
446 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(), cent);
447 histtitle = TString::Format(
"%s;#it{p}_{T,JetTrk} (GeV/#it{c});counts", histname.Data());
450 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(), cent);
451 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NEF", histname.Data());
454 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(), cent);
455 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NumberofJetConstit", histname.Data());
458 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(), cent);
459 histtitle = TString::Format(
"%s;Z=#it{p}_{T,leading} / #it{p}_{T,Jet};counts", histname.Data());
462 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(), cent);
463 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};Z=#it{p}_{T,Trk} / #it{p}_{T,Jet}", histname.Data());
470 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(), cent);
471 histtitle = TString::Format(
"%s;#it{z}_{leading};#it{F}_{Cross}", histname.Data());
475 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(), cent);
476 histtitle = TString::Format(
"%s;JE Trigger Normaliztion;counts", histname.Data());
479 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(), cent);
480 histtitle = TString::Format(
"%s;GA Trigger Normaliztion;counts", histname.Data());
483 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(), cent);
484 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
487 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(), cent);
488 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
491 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(), cent);
492 histtitle = TString::Format(
"%s;#it{p}_{T,JetJetPatch} (GeV/#it{c});counts", histname.Data());
495 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(), cent);
496 histtitle = TString::Format(
"%s;#it{p}_{T,JetGammaPatch} (GeV/#it{c});counts", histname.Data());
499 histname = TString::Format(
"%s/fHistTriggerPatchE_%d", groupname.Data(), cent);
500 histtitle = TString::Format(
"%s;#it{E}_{TriggerPatch} (GeV);counts", histname.Data());
503 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(), cent);
504 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{JE,patch};#it{#eta}_{Jet} - #it{#eta}_{JE,patch};counts", histname.Data());
507 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(), cent);
508 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{GA,patch};#it{#eta}_{Jet} - #it{#eta}_{GA,patch};counts", histname.Data());
511 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(), cent);
512 histtitle = TString::Format(
"%s;#it{E_{JE,patch}}#it{E_{Jet,UnCorr}};counts", histname.Data());
515 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(), cent);
516 histtitle = TString::Format(
"%s;#it{E_{GA,patch}};#it{E_{Jet,UnCorr}};counts", histname.Data());
520 histname = TString::Format(
"%s/fHistJetTrackResolution_%d", groupname.Data(), cent);
521 histtitle = TString::Format(
"%s;#sigma(#it{p}_{T}) / #it{p}_{T};counts", histname.Data());
524 histname = TString::Format(
"%s/fHistJetCovMatrix_%d", groupname.Data(), cent);
525 histtitle = TString::Format(
"%s; #it{p}_{T}; #sigma(#it{p}_{T}) / #it{p}_{T}; counts", histname.Data());
528 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
529 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
532 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
533 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
536 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
537 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
540 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(), cent);
541 histtitle = TString::Format(
"%s;#it{#phi}_{JetClus};counts", histname.Data());
544 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(), cent);
545 histtitle = TString::Format(
"%s;#it{#eta}_{JetClus};counts", histname.Data());
548 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
549 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
558 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
559 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
598 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
599 groupname = jetCont->GetName();
601 for(
auto jet : jetCont->
accepted()) {
605 TLorentzVector leadPart;
608 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
610 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
613 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
616 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
619 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
622 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
625 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(),
fCentBin);
629 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(),
fCentBin);
632 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(),
fCentBin);
635 Double_t MatchedEta = 0.04, MatchedPhi = 0.04;
642 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
643 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
649 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
655 AliEMCALTriggerPatchInfo *currentpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
658 if(currentpatch->IsGammaLowRecalc() || currentpatch->IsGammaLowSimple()){
659 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(),
fCentBin);
660 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
661 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(),
fCentBin);
664 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
665 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(),
fCentBin);
667 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(),
fCentBin);
669 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(),
fCentBin);
675 if(currentpatch->IsJetLowRecalc() || currentpatch->IsJetLowSimple()){
676 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(),
fCentBin);
677 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
678 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(),
fCentBin);
681 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
682 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(),
fCentBin);
684 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(),
fCentBin);
686 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(),
fCentBin);
698 for (
Int_t it = 0; it < jet->GetNumberOfTracks(); it++) {
699 AliVParticle *JetTrk = jet->TrackAt(it, tracks->GetArray());
702 AliVTrack *Vtrack =
dynamic_cast<AliVTrack*
>(JetTrk);
703 const AliAODTrack* AODJetTrack =
static_cast<const AliAODTrack*
>(Vtrack);
705 if(!AODJetTrack) AliFatal(
"Not a standard AOD");
707 AliExternalTrackParam exParam;
712 AODJetTrack->GetCovMatrix(cov);
714 AODJetTrack->PxPyPz(pxpypz);
716 AODJetTrack->GetXYZ(xyz);
717 Short_t sign = AODJetTrack->Charge();
718 exParam.Set(xyz,pxpypz,cov,sign);
719 sigma = TMath::Sqrt(exParam.GetSigma1Pt2());
720 Z_part = Vtrack->Pt() / jet->Pt();
722 histname = TString::Format(
"%s/fHistJetTrackResolution_%d", groupname.Data(),
fCentBin);
724 histname = TString::Format(
"%s/fHistJetCovMatrix_%d", groupname.Data(),
fCentBin);
726 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(),
fCentBin);
728 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(),
fCentBin);
744 for(
auto cluster : JetCluster->
accepted()) {
746 cluster->GetMomentum(nPart,
fVertex);
749 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
751 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(),
fCentBin);
753 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(),
fCentBin);
755 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(),
fCentBin);
766 AliVCluster *leadingCluster = 0x0;
769 leadingCluster = jet->GetLeadingCluster();
771 leadingclusterE = leadingCluster->E();
773 JetFCrossLeading = 1.;
776 AliVParticle* leadingTrk = jet->GetLeadingTrack();
778 leadingtrackpT = leadingTrk->Pt();
783 Double_t x[10]={TrackMultiplicity,jet->Pt(),leadingtrackpT,leadingclusterE,jet->Eta(),jet->Phi(),z,jet->Area(),jet->NEF(),Numb};
784 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
788 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
792 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
815 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
816 groupname = partCont->GetName();
820 for(
auto part : partCont->
accepted()) {
825 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
828 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
831 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
836 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
837 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
838 const AliAODTrack* AODTrack =
static_cast<const AliAODTrack*
>(track);
840 if(!AODTrack) AliFatal(
"Not a standard AOD");
842 AliExternalTrackParam exParam;
847 AODTrack->GetCovMatrix(cov);
849 AODTrack->PxPyPz(pxpypz);
851 AODTrack->GetXYZ(xyz);
852 Short_t sign = AODTrack->Charge();
853 exParam.Set(xyz,pxpypz,cov,sign);
854 sigma = TMath::Sqrt(exParam.GetSigma1Pt2());
856 histname = TString::Format(
"%s/fHistTrackResolution_%d", groupname.Data(),
fCentBin);
859 histname = TString::Format(
"%s/fHistCovMatrix_%d", groupname.Data(),
fCentBin);
862 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
865 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
868 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
873 Int_t iCluster = track->GetEMCALcluster();
877 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
886 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
897 Double_t TrkPt = 0.0, EovP = 0.0, trkpSum = 0.0;
902 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
903 groupname = clusCont->GetName();
906 for(
auto cluster : clusCont->
all()) {
907 if (!cluster)
continue;
911 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(),
fCentBin);
914 if (cluster->GetIsExotic()) {
915 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
921 for(
auto cluster : clusCont->
accepted()) {
922 if (!cluster)
continue;
926 cluster->GetMomentum(nPart,
fVertex);
928 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
931 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
934 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
937 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
940 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
944 const AliVTrack* track = 0x0;
946 for (
Int_t itrack=0; itrack < cluster->GetNTracksMatched(); itrack++){
947 track =
dynamic_cast<AliVTrack*
>(cluster->GetTrackMatched(itrack));
950 trkpSum += track->P();
951 EovP = cluster->GetNonLinCorrEnergy() / trkpSum;
960 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
981 for (
Short_t pos = 0; pos < ncells; pos++) {
1024 TClass cls(objname);
1025 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
1026 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
1032 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
1036 AliEMCALTriggerPatchInfo *recpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
1108 cout<<
"*****************************"<<endl;
1109 cout<<
"******* Task Finished *******"<<endl;
1110 cout<<
"*****************************"<<endl;
1234 const Int_t dim = count;
1241 while(c<dim && i<32){
1246 hnTitle += Form(
";%s",label.Data());
1254 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
1272 label =
"V0 centrality (%)";
1278 label =
"Multiplicity";
1284 label =
"Jet p_{T}";
1291 label =
"Track p_{T}";
1298 label =
"Cluster E";
1319 label =
"#it{p}_{T,track}^{leading}";
1326 label =
"Matched Trigger Amp";
1333 label =
"#Delta#eta";
1340 label =
"#Delta#phi";
1347 label =
"F_{cross}";
1354 label =
"z_{leading}";
1361 label =
"#it{A}_{jet}";
1375 label =
"Numb Constit";
1382 label =
"Numb Chrg Constit";
1389 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
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
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
AliTrackContainer * GetTrackContainer(Int_t i=0) const
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.