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> 45 #include "AliAnalysisUtils.h" 46 #include "AliESDEvent.h" 47 #include "AliEMCALTriggerPatchInfo.h" 49 #include "AliInputEventHandler.h" 51 #include "AliMultSelection.h" 52 #include "AliMultEstimator.h" 53 #include "AliOADBContainer.h" 70 fUseRecalcPatches(false),
80 fHistJetJetPatchE(0x0),
81 fHistJetGammaPatchE(0x0),
82 fHistJetJetPatchPt(0x0),
83 fHistJetGammaPatchPt(0x0),
84 fHistTriggerPatchE(0x0)
126 for(
int i=0;i<=9;i++){
151 for(
int i=0;i<=9;i++){
152 histName = TString::Format(
"fHistEMCalTowerMult_%d",i);
153 histTitle = TString::Format(
"%s;N_{tower};Counts",histName.Data());
161 TString jetMCContName = jetMCCont->GetName();
183 while ((obj = next())) {
206 THnSparse *hn =
dynamic_cast<THnSparse*
>(
fOutput->At(i));
227 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
228 groupname = clusCont->GetName();
231 histname = TString::Format(
"%s/fhnClusSparse", groupname.Data());
232 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}";
233 Int_t nbins10[11] = {300,
fNbins,
fNbins,
fNbins,
fNbins,120,24,72,100,100,0};
234 Double_t min10[11] = {0,
fMinBinPt,
fMinBinPt,
fMinBinPt,
fMinBinPt,0,-1.2, -0.5*
pi,0,0,0};
235 Double_t max10[11] = {300,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,1.2,1.2,1.5*
pi,1,1,0};
239 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
240 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
243 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
244 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
247 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
248 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
251 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
252 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
255 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
256 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
259 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
260 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
263 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(), cent);
264 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);#it{F}_{cross}", histname.Data());
268 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
269 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
329 histname = TString::Format(
"%s/histCellEnergy_%d", groupname.Data(), cent);
330 histtitle = TString::Format(
"%s;#it{E}_{cell} (GeV);counts", histname.Data());
333 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
334 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
358 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
359 groupname = partCont->GetName();
362 histname = TString::Format(
"%s/fhnTrkSparse", groupname.Data());
363 histtitle = histname +
";Multiplicity;#it{p}_{T,trk} (GeV/#it{c});#it{p}_{trk} (GeV/#it{c});#eta_{trk};#phi_{trk};TPCnClusters}";
370 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
371 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
374 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
375 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
378 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
379 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
382 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
383 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
384 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
387 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
388 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
391 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
392 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());
395 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
396 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
400 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
401 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
426 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;
428 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
429 groupname = jetCont->GetName();
437 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
438 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}";
439 Int_t nbins13[13] = {300,
fNbins,
fNbins,
fNbins,24,72,20,20,20,20,100,100,100};
440 Double_t min13[13] = {0,
fMinBinPt,
fMinBinPt,
fMinBinPt,-1.2, -0.5*
pi,0,0,0,0,0,0,0};
441 Double_t max13[13] = {300,
fMaxBinPt,
fMaxBinPt,
fMaxBinPt,1.2,1.5*
pi,1,1,1,1,1,1,1};
447 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
448 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
451 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(), cent);
452 histtitle = TString::Format(
"%s;#it{E}_{JetClus} (GeV);counts", histname.Data());
455 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(), cent);
456 histtitle = TString::Format(
"%s;#it{p}_{T,JetTrk} (GeV/#it{c});counts", histname.Data());
459 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(), cent);
460 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NEF", histname.Data());
463 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(), cent);
464 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};NumberofJetConstit", histname.Data());
467 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(), cent);
468 histtitle = TString::Format(
"%s;Z=#it{p}_{T,leading} / #it{p}_{T,Jet};counts", histname.Data());
471 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(), cent);
472 histtitle = TString::Format(
"%s;#it{p}_{T,Jet};Z=#it{p}_{T,Trk} / #it{p}_{T,Jet}", histname.Data());
479 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(), cent);
480 histtitle = TString::Format(
"%s;#it{z}_{leading};#it{F}_{Cross}", histname.Data());
484 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(), cent);
485 histtitle = TString::Format(
"%s;JE Trigger Normaliztion;counts", histname.Data());
488 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(), cent);
489 histtitle = TString::Format(
"%s;GA Trigger Normaliztion;counts", histname.Data());
492 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(), cent);
493 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
496 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(), cent);
497 histtitle = TString::Format(
"%s;#it{E}_{JetGammaPatch} (GeV);counts", histname.Data());
500 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(), cent);
501 histtitle = TString::Format(
"%s;#it{p}_{T,JetJetPatch} (GeV/#it{c});counts", histname.Data());
504 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(), cent);
505 histtitle = TString::Format(
"%s;#it{p}_{T,JetGammaPatch} (GeV/#it{c});counts", histname.Data());
508 histname = TString::Format(
"%s/fHistTriggerPatchE_%d", groupname.Data(), cent);
509 histtitle = TString::Format(
"%s;#it{E}_{TriggerPatch} (GeV);counts", histname.Data());
512 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(), cent);
513 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{JE,patch};#it{#eta}_{Jet} - #it{#eta}_{JE,patch};counts", histname.Data());
516 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(), cent);
517 histtitle = TString::Format(
"%s;#it{#phi}_{jet} - #it{#phi}_{GA,patch};#it{#eta}_{Jet} - #it{#eta}_{GA,patch};counts", histname.Data());
520 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(), cent);
521 histtitle = TString::Format(
"%s;#it{E_{JE,patch}}#it{E_{Jet,UnCorr}};counts", histname.Data());
524 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(), cent);
525 histtitle = TString::Format(
"%s;#it{E_{GA,patch}};#it{E_{Jet,UnCorr}};counts", histname.Data());
529 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
530 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
533 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
534 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
537 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
538 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
541 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(), cent);
542 histtitle = TString::Format(
"%s;#it{#phi}_{JetClus};counts", histname.Data());
545 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(), cent);
546 histtitle = TString::Format(
"%s;#it{#eta}_{JetClus};counts", histname.Data());
549 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
550 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
559 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
560 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
599 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
600 groupname = jetCont->GetName();
602 for(
auto jet : jetCont->
accepted()) {
606 TLorentzVector leadPart;
609 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
611 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
614 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
617 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
620 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
623 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
626 histname = TString::Format(
"%s/histJetNEFvJetPt_%d", groupname.Data(),
fCentBin);
630 histname = TString::Format(
"%s/histNumbJetConstvJetPt_%d", groupname.Data(),
fCentBin);
633 histname = TString::Format(
"%s/histJetFF_%d", groupname.Data(),
fCentBin);
636 Double_t MatchedEta = 0.04, MatchedPhi = 0.04;
643 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
644 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
650 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
656 AliEMCALTriggerPatchInfo *currentpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
659 if(currentpatch->IsGammaLowRecalc() || currentpatch->IsGammaLowSimple()){
660 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiGA_%d", groupname.Data(),
fCentBin);
661 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
662 histname = TString::Format(
"%s/fHistJetEPatchEGA_%d", groupname.Data(),
fCentBin);
665 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
666 histname = TString::Format(
"%s/fHistNumbGATrigger_%d", groupname.Data(),
fCentBin);
668 histname = TString::Format(
"%s/fHistJetGammaPatchE_%d", groupname.Data(),
fCentBin);
670 histname = TString::Format(
"%s/fHistJetGammaPatchPt_%d", groupname.Data(),
fCentBin);
676 if(currentpatch->IsJetLowRecalc() || currentpatch->IsJetLowSimple()){
677 histname = TString::Format(
"%s/fHistDeltaEtaDeltaPhiJE_%d", groupname.Data(),
fCentBin);
678 fHistManager.
FillTH2(histname, jet->Phi() - currentpatch->GetPhiGeo(), jet->Eta() - currentpatch->GetEtaGeo());
679 histname = TString::Format(
"%s/fHistJetEPatchEJE_%d", groupname.Data(),
fCentBin);
682 if(jet->Phi() - currentpatch->GetPhiGeo() <= MatchedPhi && jet->Eta() - currentpatch->GetEtaGeo() <= MatchedEta){
683 histname = TString::Format(
"%s/fHistNumbJETrigger_%d", groupname.Data(),
fCentBin);
685 histname = TString::Format(
"%s/fHistJetJetPatchE_%d", groupname.Data(),
fCentBin);
687 histname = TString::Format(
"%s/fHistJetJetPatchPt_%d", groupname.Data(),
fCentBin);
699 for (
Int_t it = 0; it < jet->GetNumberOfTracks(); it++) {
700 AliVParticle *JetTrk = jet->TrackAt(it, tracks->GetArray());
703 histname = TString::Format(
"%s/histJetTrkPt_%d", groupname.Data(),
fCentBin);
708 histname = TString::Format(
"%s/histJetZvJetPt_%d", groupname.Data(),
fCentBin);
724 for(
auto cluster : JetCluster->
accepted()) {
726 cluster->GetMomentum(nPart,
fVertex);
729 histname = TString::Format(
"%s/histJetClusterEnergy_%d", groupname.Data(),
fCentBin);
731 histname = TString::Format(
"%s/histJetClusterPhi_%d", groupname.Data(),
fCentBin);
733 histname = TString::Format(
"%s/histJetClusterEta_%d", groupname.Data(),
fCentBin);
735 histname = TString::Format(
"%s/histFCrossvZleading_%d", groupname.Data(),
fCentBin);
746 AliVCluster *leadingCluster = 0x0;
749 leadingCluster = jet->GetLeadingCluster();
751 leadingclusterE = leadingCluster->E();
753 JetFCrossLeading = 1.;
756 AliVParticle* leadingTrk = jet->GetLeadingTrack();
758 leadingtrackpT = leadingTrk->Pt();
765 Double_t x[13]={TrackMultiplicity,jet->Pt(),leadingtrackpT,leadingclusterE,jet->Eta(),jet->Phi(),JetFCrossLeading,z,jet->Area(),jet->NEF(),Numb,NumbNeu,NumbChrg};
766 histname = TString::Format(
"%s/fhnJetSparse", groupname.Data());
770 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
774 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
791 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
792 groupname = partCont->GetName();
794 for(
auto part : partCont->
accepted()) {
798 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
801 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
804 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
807 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
808 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
810 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
813 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
816 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
819 Double_t x[6]={0.0,track->Pt(),track->P(),track->Eta(),track->Phi(),0.0};
820 histname = TString::Format(
"%s/fhnTrkSparse", groupname.Data());
824 Int_t iCluster = track->GetEMCALcluster();
828 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
837 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
848 Double_t TrkPt = 0.0, EovP = 0.0, TrackMultiplicity =0.0, trkpSum = 0.0;
853 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
854 groupname = clusCont->GetName();
857 for(
auto cluster : clusCont->
all()) {
858 if (!cluster)
continue;
862 histname = TString::Format(
"%s/fHistFcrossvEonline_%d", groupname.Data(),
fCentBin);
865 if (cluster->GetIsExotic()) {
866 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
872 for(
auto cluster : clusCont->
accepted()) {
873 if (!cluster)
continue;
877 cluster->GetMomentum(nPart,
fVertex);
879 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
882 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
885 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
888 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
891 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
895 const AliVTrack* track = 0x0;
897 for (
Int_t itrack=0; itrack < cluster->GetNTracksMatched(); itrack++){
898 track =
dynamic_cast<AliVTrack*
>(cluster->GetTrackMatched(itrack));
901 trkpSum += track->P();
902 EovP = cluster->GetNonLinCorrEnergy() / trkpSum;
908 Double_t x[10]={TrackMultiplicity,cluster->GetHadCorrEnergy(),cluster->GetNonLinCorrEnergy(),cluster->E(),TrkPt,EovP,nPart.Eta(),nPart.
Phi_0_2pi(),cluster->GetM02(),cluster->GetM20()};
909 histname = TString::Format(
"%s/fhnClusSparse", groupname.Data());
917 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
938 for (
Short_t pos = 0; pos < ncells; pos++) {
982 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
983 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",GetName(), cls.GetName(),
"EmcalTriggers"));
989 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
993 AliEMCALTriggerPatchInfo *recpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
1065 cout<<
"*****************************"<<endl;
1066 cout<<
"******* Task Finished *******"<<endl;
1067 cout<<
"*****************************"<<endl;
1201 const Int_t dim = count;
1208 while(c<dim && i<32){
1213 hnTitle += Form(
";%s",label.Data());
1221 return new THnSparseF(name, hnTitle.Data(), dim,
nbins, xmin, xmax);
1239 label =
"V0 centrality (%)";
1245 label =
"Multiplicity";
1251 label =
"Jet p_{T}";
1258 label =
"Track p_{T}";
1265 label =
"Cluster E";
1286 label =
"#it{p}_{T,track}^{leading}";
1293 label =
"Matched Trigger Amp";
1300 label =
"#Delta#eta";
1307 label =
"#Delta#phi";
1314 label =
"F_{cross}";
1321 label =
"z_{leading}";
1328 label =
"#it{A}_{jet}";
1342 label =
"Numb Constit";
1349 label =
"Numb Chrg Constit";
1356 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
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.