30 #include <TClonesArray.h>
35 #include <THnSparse.h>
40 #include <AliVCluster.h>
41 #include <AliVParticle.h>
44 #include "AliAnalysisManager.h"
45 #include <AliVEventHandler.h>
52 #include "AliEMCALGeometry.h"
53 #include "AliOADBContainer.h"
55 #include "AliEMCALTriggerPatchInfo.h"
70 fPlotJetHistograms(kFALSE),
71 fPlotClusterHistograms(kFALSE),
72 fPlotParticleCompositionHistograms(kFALSE),
73 fComputeBackground(kFALSE),
74 fDoTriggerSimulation(kFALSE),
75 fPlotMatchedJetHistograms(kFALSE),
76 fComputeMBDownscaling(kFALSE),
88 fTrackMatchingDeltaEtaMax(0.015),
89 fTrackMatchingDeltaPhiMax(0.030),
95 fUseAliEventCuts(kTRUE),
98 fUseManualEventCuts(kFALSE),
112 fPlotJetHistograms(kFALSE),
113 fPlotClusterHistograms(kFALSE),
114 fPlotParticleCompositionHistograms(kFALSE),
115 fComputeBackground(kFALSE),
116 fDoTriggerSimulation(kFALSE),
117 fPlotMatchedJetHistograms(kFALSE),
118 fComputeMBDownscaling(kFALSE),
130 fTrackMatchingDeltaEtaMax(0.015),
131 fTrackMatchingDeltaPhiMax(0.030),
132 fMBUpscaleFactor(1.),
137 fUseAliEventCuts(kTRUE),
140 fUseManualEventCuts(kFALSE),
242 if (embeddingHelper) {
251 while ((obj = next())) {
271 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
274 histname = TString::Format(
"%s/JetHistograms/hJetRejectionReason", jets->GetArrayName().Data());
275 title = histname +
";Rejection reason;#it{p}_{T,jet} (GeV/#it{c});counts";
281 histname = TString::Format(
"%s/JetHistograms/hRhoVsCent", jets->GetArrayName().Data());
282 title = histname +
";Centrality (%);#rho (GeV/#it{c});counts";
291 histname = TString::Format(
"%s/JetHistograms/hNEFVsPtEMCal", jets->GetArrayName().Data());
292 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});NEF";
293 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
295 histname = TString::Format(
"%s/JetHistograms/hNEFVsPtDCal", jets->GetArrayName().Data());
296 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});NEF";
297 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
301 histname = TString::Format(
"%s/JetHistograms/hPtUpscaledMB", jets->GetArrayName().Data());
302 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});type";
303 fHistManager.
CreateTH3(histname.Data(), title.Data(), 20, 0, 100,
nPtBins, 0,
fMaxPt, 2, -0.5, 1.5,
"s");
307 histname = TString::Format(
"%s/JetHistograms/hPtLeadingVsPt", jets->GetArrayName().Data());
308 title = histname +
";#it{p}_{T}^{corr} (GeV/#it{c});#it{p}_{T,particle}^{leading} (GeV/#it{c})";
312 histname = TString::Format(
"%s/JetHistograms/hAreaVsPt", jets->GetArrayName().Data());
313 title = histname +
";#it{p}_{T}^{corr} (GeV/#it{c});#it{A}_{jet}";
317 nbinsx = 20; minx = 0; maxx = 100;
319 nbinsz = 50; minz = 0; maxz = 1.;
321 histname = TString::Format(
"%s/JetHistograms/hZLeadingVsPtEMCal", jets->GetArrayName().Data());
322 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}_{leading}";
323 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
325 histname = TString::Format(
"%s/JetHistograms/hZLeadingVsPtDCal", jets->GetArrayName().Data());
326 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}_{leading}";
327 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
330 nbinsx = 20; minx = 0; maxx = 100;
332 nbinsz = 50; minz = 0; maxz = 1.;
334 histname = TString::Format(
"%s/JetHistograms/hZVsPtEMCal", jets->GetArrayName().Data());
335 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}";
336 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
338 histname = TString::Format(
"%s/JetHistograms/hZVsPtDCal", jets->GetArrayName().Data());
339 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}";
340 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
343 nbinsx = 20; minx = 0; maxx = 100;
345 nbinsz = 50; minz = 0; maxz =
fMaxPt;
347 histname = TString::Format(
"%s/JetHistograms/hNConstVsPtEMCal", jets->GetArrayName().Data());
348 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});No. of constituents";
349 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
351 histname = TString::Format(
"%s/JetHistograms/hNConstVsPtDCal", jets->GetArrayName().Data());
352 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});No. of constituents";
353 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
356 nbinsx = 20; minx = 0; maxx = 100;
360 histname = TString::Format(
"%s/JetHistograms/hDeltaEHadCorr", jets->GetArrayName().Data());
361 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#sum#it{E}_{nonlincorr} - #it{E}_{hadcorr}";
362 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
366 histname = TString::Format(
"%s/JetHistograms/hMedPatchJet", jets->GetArrayName().Data());
367 title = histname +
";#it{E}_{patch,med};type;#it{p}_{T}^{corr} (GeV/#it{c});Centrality (%)";
378 histname =
"Trigger/hMBDownscaleFactor";
379 title = histname +
";Downscale factor;counts";
393 const Int_t nRcorrBins = 50;
395 const Int_t nCellBins = 30;
397 const Int_t nMatchedTrackBins = 5;
404 histname =
"ClusterHistograms/hM02";
405 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); M02";
409 histname =
"ClusterHistograms/hNcellsM02G04";
410 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); Ncells";
413 histname =
"ClusterHistograms/hNcellsM02L04";
414 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); Ncells";
421 histname =
"ClusterHistograms/hMatchedTrackPt";
422 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); #Sigma#it{p}_{track} (GeV/c)";
425 histname =
"ClusterHistograms/hMatchedTrackPtM02G04";
426 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); #Sigma#it{p}_{track} (GeV/c)";
429 histname =
"ClusterHistograms/hMatchedTrackPtM02L04";
430 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); #Sigma#it{p}_{track} (GeV/c)";
434 histname =
"ClusterHistograms/hMatchedTrackN";
435 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); N_{tracks}";
438 histname =
"ClusterHistograms/hMatchedTrackNM02G04";
439 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); N_{tracks}";
442 histname =
"ClusterHistograms/hMatchedTrackNM02L04";
443 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); N_{tracks}";
447 histname =
"ClusterHistograms/hM02Matched";
448 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); M02";
452 histname =
"ClusterHistograms/hM02Unmatched";
453 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); M02";
460 histname =
"ClusterHistograms/hEoverP";
461 htitle = histname +
";Centrality (%);#it{E}_{clus} (GeV); #it{E}_{clus} / #Sigma#it{p}_{track} (GeV)";
465 histname =
"ClusterHistograms/hEoverPM02";
466 htitle = histname +
";#it{E}_{clus} (GeV); #it{E}_{clus} / #Sigma#it{p}_{track} (GeV); M02";
473 histname =
"ClusterHistograms/hRcorrVsCent";
474 htitle = histname +
";Centrality (%);#Sigma#it{p}_{track} (GeV); R_{corr} = #frac{#DeltaE_{clus}}{#Sigmap_{track}}";
478 histname =
"ClusterHistograms/hRcorr0-10";
479 htitle = histname +
";#it{E}_{clus} (GeV);#Sigma#it{p}_{track} (GeV); R_{corr} = #frac{#DeltaE_{clus}}{#Sigmap_{track}}";
483 histname =
"ClusterHistograms/hRcorr50-90";
484 htitle = histname +
";#it{E}_{clus} (GeV);#Sigma#it{p}_{track} (GeV); R_{corr} = #frac{#DeltaE_{clus}}{#Sigmap_{track}}";
488 histname =
"ClusterHistograms/hRcorrClusVsCent";
489 htitle = histname +
";Centrality (%);#Sigma#it{p}_{track} (GeV); #frac{#DeltaE_{clus}}{E_{clus}}";
493 histname =
"ClusterHistograms/hRcorrClus0-10";
494 htitle = histname +
";#it{E}_{clus} (GeV);#Sigma#it{p}_{track} (GeV); #frac{#DeltaE_{clus}}{E_{clus}}";
498 histname =
"ClusterHistograms/hRcorrClus50-90";
499 htitle = histname +
";#it{E}_{clus} (GeV);#Sigma#it{p}_{track} (GeV); #frac{#DeltaE_{clus}}{E_{clus}}";
513 const Int_t nRejBins = 32;
516 const Int_t nParticleTypes = 8;
519 AliEmcalContainer* cont = 0;
521 while ((cont = static_cast<AliEmcalContainer*>(nextClusColl()))) {
523 histname =
"JetPerformance/hClusterRejectionReasonMC";
524 htitle = histname +
";Rejection reason;#it{E}_{clus} (GeV/)";
530 histname =
"JetPerformance/hM02VsParticleType";
531 htitle = histname +
";M02;#it{E}_{clus} (GeV); Particle type";
545 min[dim] = fM02HistBins[0];
549 title[dim] =
"#it{E}_{clus} (GeV)";
552 min[dim] = fPtHistBins[0];
556 title[dim] =
"Particle type";
557 nbins[dim] = nParticleTypes;
560 binEdges[dim] = particleTypeBins;
563 title[dim] =
"#it{p}_{T,jet}^{corr}";
570 TString thnname =
"JetPerformance/hM02VsParticleTypeJets";
572 for (
Int_t i = 0; i < dim; i++) {
573 hn->GetAxis(i)->SetTitle(title[i]);
574 hn->SetBinEdges(i, binEdges[i]);
581 title[dim] =
"#it{p}_{T,jet}^{corr}";
588 title[dim] =
"Particle type";
589 nbins[dim] = nParticleTypes;
592 binEdges[dim] = particleTypeBins;
602 title[dim] =
"#it{p}_{T,sum} (GeV)";
605 min[dim] = fPtHistBins[0];
609 thnname =
"JetPerformance/hJetComposition";
611 for (
Int_t i = 0; i < dim; i++) {
612 thn->GetAxis(i)->SetTitle(title[i]);
613 thn->SetBinEdges(i, binEdges[i]);
619 histname =
"JetPerformance/hHadCaloEnergyUnmatched";
620 htitle = histname +
";#it{p}_{T,jet} (GeV);#it{p}_{T,had} (GeV)";
624 histname =
"JetPerformance/hHadCaloEnergyMatchedNonlincorr";
625 htitle = histname +
";#it{p}_{T,jet} (GeV);#it{p}_{T,had} (GeV)";
629 histname =
"JetPerformance/hHadCaloEnergyMatchedHadCorr";
630 htitle = histname +
";#it{p}_{T,jet} (GeV);#it{p}_{T,had} (GeV)";
646 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
648 histname = TString::Format(
"%s/BackgroundHistograms/hScaleFactorEMCal", jets->GetArrayName().Data());
649 title = histname +
";Centrality;Scale factor;counts";
652 histname = TString::Format(
"%s/BackgroundHistograms/hDeltaPtEMCal", jets->GetArrayName().Data());
653 title = histname +
";Centrality (%);#delta#it{p}_{T} (GeV/#it{c});counts";
673 histname =
"TriggerSimHistograms/hEtaVsPhi";
674 title = histname +
";#eta_{patch} (rad);#phi_{patch} (rad)";
678 histname =
"TriggerSimHistograms/hNPatches";
679 title = histname +
";#it{N}_{patches};type";
683 histname =
"TriggerSimHistograms/hPatchE";
684 title = histname +
";Centrality (%);#it{E}_{patch} (GeV)";
688 histname =
"TriggerSimHistograms/hPatchMedianE";
689 title = histname +
";Centrality (%);#it{E}_{patch,med} (GeV);type";
690 fHistManager.
CreateTH3(histname.Data(), title.Data(), 50, 0, 100, 100, 0, 50, 2, -0.5, 1.5);
696 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
699 histname = TString::Format(
"%s/TriggerSimHistograms/hJetRejectionReason", jets->GetArrayName().Data());
700 title = histname +
";Rejection reason;#it{p}_{T,jet} (GeV/#it{c});counts";
706 histname = TString::Format(
"%s/TriggerSimHistograms/hRhoVsCent", jets->GetArrayName().Data());
707 title = histname +
";Centrality (%);#rho (GeV/#it{c});counts";
716 histname = TString::Format(
"%s/TriggerSimHistograms/hNEFVsPtEMCal", jets->GetArrayName().Data());
717 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});NEF";
718 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
720 histname = TString::Format(
"%s/TriggerSimHistograms/hNEFVsPtDCal", jets->GetArrayName().Data());
721 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});NEF";
722 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
725 histname = TString::Format(
"%s/TriggerSimHistograms/hPtLeadingVsPt", jets->GetArrayName().Data());
726 title = histname +
";#it{p}_{T}^{corr} (GeV/#it{c});#it{p}_{T,particle}^{leading} (GeV/#it{c})";
730 histname = TString::Format(
"%s/TriggerSimHistograms/hAreaVsPt", jets->GetArrayName().Data());
731 title = histname +
";#it{p}_{T}^{corr} (GeV/#it{c});#it{A}_{jet}";
735 nbinsx = 20; minx = 0; maxx = 100;
737 nbinsz = 50; minz = 0; maxz = 1.;
739 histname = TString::Format(
"%s/TriggerSimHistograms/hZLeadingVsPtEMCal", jets->GetArrayName().Data());
740 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}_{leading}";
741 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
743 histname = TString::Format(
"%s/TriggerSimHistograms/hZLeadingVsPtDCal", jets->GetArrayName().Data());
744 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}_{leading}";
745 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
748 nbinsx = 20; minx = 0; maxx = 100;
750 nbinsz = 50; minz = 0; maxz = 1.;
752 histname = TString::Format(
"%s/TriggerSimHistograms/hZVsPtEMCal", jets->GetArrayName().Data());
753 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}";
754 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
756 histname = TString::Format(
"%s/TriggerSimHistograms/hZVsPtDCal", jets->GetArrayName().Data());
757 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});#it{z}";
758 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
761 nbinsx = 20; minx = 0; maxx = 100;
763 nbinsz = 50; minz = 0; maxz =
fMaxPt;
765 histname = TString::Format(
"%s/TriggerSimHistograms/hNConstVsPtEMCal", jets->GetArrayName().Data());
766 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});No. of constituents";
767 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
769 histname = TString::Format(
"%s/TriggerSimHistograms/hNConstVsPtDCal", jets->GetArrayName().Data());
770 title = histname +
";Centrality (%);#it{p}_{T}^{corr} (GeV/#it{c});No. of constituents";
771 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
791 histname =
"MatchedJetHistograms/hResponseMatrixEMCal";
792 title = histname +
";Centrality (%);#it{p}_{T}^{truth} (GeV/#it{c});#it{p}_{T,corr}^{det} (GeV/#it{c})";
793 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
795 histname =
"MatchedJetHistograms/hResponseMatrixDCal";
796 title = histname +
";Centrality (%);#it{p}_{T}^{truth} (GeV/#it{c});#it{p}_{T,corr}^{det} (GeV/#it{c})";
797 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
800 nbinsx = 20; minx = 0; maxx = 100;
802 nbinsz = 250; minz = -5.; maxz = 5.;
804 histname =
"MatchedJetHistograms/hJESshiftEMCal";
805 title = histname +
";Centrality (%);#it{p}_{T}^{truth} (GeV/#it{c});#frac{#it{p}_{T,corr}^{det} - #it{p}_{T}^{truth}}{#it{p}_{T}^{truth}}";
806 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
808 histname =
"MatchedJetHistograms/hJESshiftDCal";
809 title = histname +
";Centrality (%);#it{p}_{T}^{truth} (GeV/#it{c});#frac{#it{p}_{T,corr}^{det} - #it{p}_{T}^{truth}}{#it{p}_{T}^{truth}}";
810 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
813 nbinsx = 20; minx = 0; maxx = 100;
815 nbinsz = 50; minz = 0; maxz = 1.;
817 histname =
"MatchedJetHistograms/hNEFVsPt";
818 title = histname +
";Centrality (%);#it{p}_{T,corr}^{det} (GeV/#it{c});Calo energy fraction";
819 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
822 nbinsx = 20; minx = 0; maxx = 100;
824 nbinsz = 50; minz = 0; maxz = 1.;
826 histname =
"MatchedJetHistograms/hZLeadingVsPt";
827 title = histname +
";Centrality (%);#it{p}_{T,corr}^{det} (GeV/#it{c});#it{z}_{leading}";
828 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
831 nbinsx = 20; minx = 0; maxx = 100;
833 nbinsz = 50; minz = 0; maxz = 1.;
835 histname =
"MatchedJetHistograms/hMatchingDistance";
836 title = histname +
";Centrality (%);#it{p}_{T}^{truth} (GeV/#it{c});R";
837 fHistManager.
CreateTH3(histname.Data(), title.Data(),
nbinsx, minx, maxx,
nbinsy, miny, maxy, nbinsz, minz, maxz);
862 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
863 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",
864 GetName(), cls.GetName(),
"EmcalTriggers"));
869 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
889 TString triggerNameMB1 =
"CINT7-B-NOPF-CENT";
890 TString triggerNameMB2 =
"CV0L7-B-NOPF-CENT";
891 TString triggerNameJE =
"CINT7EJ1-B-NOPF-CENTNOPMD";
896 for (
auto i : runtriggers) {
897 if (i.EqualTo(triggerNameMB1) || i.EqualTo(triggerNameMB2)) {
906 TString histname =
"Trigger/hMBDownscaleFactor";
943 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
944 TString jetContName = jetCont->GetName();
980 if (!cls.InheritsFrom(
"AliEMCALTriggerPatchInfo")) {
981 AliError(Form(
"%s: Objects of type %s in %s are not inherited from AliEMCALTriggerPatchInfo!",
982 GetName(), cls.GetName(),
"EmcalTriggers"));
987 AliError(Form(
"%s: Unable to get trigger patch container with name %s. Aborting", GetName(),
"EmcalTriggers"));
992 std::vector<Double_t> vecEMCal;
993 std::vector<Double_t> vecDCal;
995 AliEMCALTriggerPatchInfo *recpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
998 if(!recpatch->IsJetHighSimple())
continue;
1000 histname =
"TriggerSimHistograms/hEtaVsPhi";
1003 histname =
"TriggerSimHistograms/hPatchE";
1006 if (recpatch->IsEMCal()) {
1007 vecEMCal.push_back(recpatch->GetPatchE());
1009 vecDCal.push_back(recpatch->GetPatchE());
1016 const Int_t nBkgPatchesEMCal = vecEMCal.size();
1017 const Int_t nBkgPatchesDCal = vecDCal.size();
1018 fMedianEMCal = TMath::Median(nBkgPatchesEMCal, &vecEMCal[0]);
1019 fMedianDCal = TMath::Median(nBkgPatchesDCal, &vecDCal[0]);
1021 histname =
"TriggerSimHistograms/hPatchMedianE";
1025 histname =
"TriggerSimHistograms/hNPatches";
1033 for(
auto p : *fTriggerPatchInfo){
1034 AliEMCALTriggerPatchInfo *recpatch =
static_cast<AliEMCALTriggerPatchInfo *
>(p);
1037 if(!recpatch->IsJetHighSimple())
continue;
1039 if (recpatch->IsEMCal()) {
1040 if ((recpatch->GetPatchE() -
fMedianDCal) > threshold) {
1045 if ((recpatch->GetPatchE() -
fMedianEMCal) > threshold) {
1093 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
1094 TString jetContName = jets->GetName();
1099 histname = TString::Format(
"%s/JetHistograms/hRhoVsCent", jets->GetArrayName().Data());
1103 for (
auto jet : jets->
all()) {
1109 histname = TString::Format(
"%s/JetHistograms/hAreaVsPt", jets->GetArrayName().Data());
1114 UInt_t rejectionReason = 0;
1115 if (!jets->
AcceptJet(jet, rejectionReason)) {
1116 histname = TString::Format(
"%s/JetHistograms/hJetRejectionReason", jets->GetArrayName().Data());
1117 fHistManager.
FillTH2(histname.Data(), jets->GetRejectionReasonBitPosition(rejectionReason), jet->Pt());
1129 histname = TString::Format(
"%s/JetHistograms/hNEFVsPtEMCal", jets->GetArrayName().Data());
1131 else if (type ==
kDCal) {
1132 histname = TString::Format(
"%s/JetHistograms/hNEFVsPtDCal", jets->GetArrayName().Data());
1138 histname = TString::Format(
"%s/JetHistograms/hPtUpscaledMB", jets->GetArrayName().Data());
1143 histname = TString::Format(
"%s/JetHistograms/hPtLeadingVsPt", jets->GetArrayName().Data());
1148 histname = TString::Format(
"%s/JetHistograms/hZLeadingVsPtEMCal", jets->GetArrayName().Data());
1150 else if (type ==
kDCal) {
1151 histname = TString::Format(
"%s/JetHistograms/hZLeadingVsPtDCal", jets->GetArrayName().Data());
1153 TLorentzVector leadPart;
1156 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
1161 histname = TString::Format(
"%s/JetHistograms/hZVsPtEMCal", jets->GetArrayName().Data());
1163 else if (type ==
kDCal) {
1164 histname = TString::Format(
"%s/JetHistograms/hZVsPtDCal", jets->GetArrayName().Data());
1166 const AliVTrack* track;
1167 for (
Int_t i=0; i<jet->GetNumberOfTracks(); i++) {
1168 track =
static_cast<AliVTrack*
>(jet->Track(i));
1169 z = track->Pt() / TMath::Abs(corrPt);
1175 histname = TString::Format(
"%s/JetHistograms/hNConstVsPtEMCal", jets->GetArrayName().Data());
1177 else if (type ==
kDCal) {
1178 histname = TString::Format(
"%s/JetHistograms/hNConstVsPtDCal", jets->GetArrayName().Data());
1184 const AliVCluster* clus =
nullptr;
1185 Int_t nClusters = jet->GetNumberOfClusters();
1186 for (
Int_t iClus = 0; iClus < nClusters; iClus++) {
1187 clus = jet->Cluster(iClus);
1188 deltaEhadcorr += (clus->GetNonLinCorrEnergy() - clus->GetHadCorrEnergy());
1191 histname = TString::Format(
"%s/JetHistograms/hDeltaEHadCorr", jets->GetArrayName().Data());
1197 histname = TString::Format(
"%s/JetHistograms/hMedPatchJet", jets->GetArrayName().Data());
1218 const AliVCluster* clus;
1222 Double_t clusPhi = it.first.Phi_0_2pi();
1226 if (!clus->IsEMCAL()) {
1232 Int_t nTracksMatched = 0;
1233 const AliVTrack* track =
nullptr;
1234 for (
Int_t itrack=0; itrack < clus->GetNTracksMatched(); itrack++) {
1235 track =
dynamic_cast<AliVTrack*
>(clus->GetTrackMatched(itrack));
1240 Double_t trackPhi = TVector2::Phi_0_2pi(track->GetTrackPhiOnEMCal());
1241 Double_t trackEta = track->GetTrackEtaOnEMCal();
1242 Double_t deta = TMath::Abs(clusPhi - trackPhi);
1243 Double_t dphi = TMath::Abs(clusEta - trackEta);
1246 trackPSum += track->P();
1252 if (trackPSum > 1e-3) {
1253 EoverP = clus->GetNonLinCorrEnergy() / trackPSum;
1256 Double_t deltaE = clus->GetNonLinCorrEnergy() - clus->GetHadCorrEnergy();
1258 if (trackPSum > 1e-3) {
1259 Rcorr = deltaE / trackPSum;
1261 Double_t RcorrClus = deltaE / clus->GetNonLinCorrEnergy();
1267 histname =
"ClusterHistograms/hM02";
1271 if (clus->GetM02() > 0.4) {
1272 histname =
"ClusterHistograms/hNcellsM02G04";
1275 if (clus->GetM02() > 0.1 && clus->GetM02() < 0.4) {
1276 histname =
"ClusterHistograms/hNcellsM02L04";
1284 histname =
"ClusterHistograms/hMatchedTrackPt";
1287 if (clus->GetM02() > 0.4) {
1288 histname =
"ClusterHistograms/hMatchedTrackPtM02G04";
1291 if (clus->GetM02() > 0.1 && clus->GetM02() < 0.4) {
1292 histname =
"ClusterHistograms/hMatchedTrackPtM02L04";
1297 histname =
"ClusterHistograms/hMatchedTrackN";
1300 if (clus->GetM02() > 0.4) {
1301 histname =
"ClusterHistograms/hMatchedTrackNM02G04";
1304 if (clus->GetM02() > 0.1 && clus->GetM02() < 0.4) {
1305 histname =
"ClusterHistograms/hMatchedTrackNM02L04";
1310 histname =
"ClusterHistograms/hM02Matched";
1311 if (nTracksMatched > 0) {
1316 histname =
"ClusterHistograms/hM02Unmatched";
1317 if (nTracksMatched == 0) {
1325 histname =
"ClusterHistograms/hEoverP";
1329 histname =
"ClusterHistograms/hEoverPM02";
1338 histname =
"ClusterHistograms/hRcorrVsCent";
1343 histname =
"ClusterHistograms/hRcorr0-10";
1349 histname =
"ClusterHistograms/hRcorr50-90";
1354 histname =
"ClusterHistograms/hRcorrClusVsCent";
1359 histname =
"ClusterHistograms/hRcorrClus0-10";
1365 histname =
"ClusterHistograms/hRcorrClus50-90";
1381 const AliMCEvent* mcevent =
nullptr;
1383 mcevent = MCEvent();
1391 const AliVCluster* clus;
1397 if (!clus->IsEMCAL()) {
1408 Int_t label = TMath::Abs(clus->GetLabel());
1417 histname =
"JetPerformance/hM02VsParticleType";
1418 fHistManager.
FillTH3(histname, clus->GetM02(), clus->GetNonLinCorrEnergy(), particleType1);
1424 for (
const auto jet : jets->
accepted()) {
1429 Double_t hadCaloEnergyUnmatched = 0;
1430 Double_t hadCaloEnergyMatchedNonlincorr = 0;
1431 Double_t hadCaloEnergyMatchedHadCorr = 0;
1434 Int_t nClusters = jet->GetNumberOfClusters();
1435 for (
Int_t iClus = 0; iClus < nClusters; iClus++) {
1437 clus = jet->Cluster(iClus);
1441 Int_t label = TMath::Abs(clus->GetLabel());
1447 histname =
"JetPerformance/hM02VsParticleTypeJets";
1448 Double_t x[4] = {clus->GetM02(), clus->GetNonLinCorrEnergy(), particleType1, jetPt};
1452 if (particleType1 ==
kHadron) {
1453 Bool_t hasMatchedTrack = (clus->GetNTracksMatched() > 0);
1455 if (hasMatchedTrack) {
1456 hadCaloEnergyMatchedNonlincorr += clus->GetNonLinCorrEnergy();
1457 hadCaloEnergyMatchedHadCorr += clus->GetHadCorrEnergy();
1460 hadCaloEnergyUnmatched += clus->GetNonLinCorrEnergy();
1469 histname =
"JetPerformance/hHadCaloEnergyUnmatched";
1473 histname =
"JetPerformance/hHadCaloEnergyMatchedNonlincorr";
1477 histname =
"JetPerformance/hHadCaloEnergyMatchedHadCorr";
1481 histname =
"JetPerformance/hJetComposition";
1482 for (
Int_t type = 0; type < 8; type++) {
1489 for (
Int_t iClus = 0; iClus < nClusters; iClus++) {
1491 clus = jet->Cluster(iClus);
1493 Int_t label = TMath::Abs(clus->GetLabel());
1498 if (type == particleType1) {
1500 pTsum += clus->GetNonLinCorrEnergy();
1505 Double_t x[4] = {jetPt, 1.*type, nSum, pTsum};
1525 Double_t phiMinEMCal =
fGeom->GetArm1PhiMin() * TMath::DegToRad();
1526 Double_t phiMaxEMCal =
fGeom->GetEMCALPhiMax() * TMath::DegToRad();
1530 Double_t accTPC = 2 * etaTPC * 2 * TMath::Pi();
1531 Double_t accEMCal = 2 * etaEMCal * (phiMaxEMCal - phiMinEMCal);
1537 while ((jetCont = static_cast<AliJetContainer*>(nextJetColl()))) {
1540 TRandom3* r =
new TRandom3(0);
1541 Double_t jetR = jetCont->GetJetRadius();
1542 Double_t etaEMCalfid = etaEMCal - jetR;
1543 Double_t phiMinEMCalfid = phiMinEMCal + jetR;
1544 Double_t phiMaxEMCalfid = phiMaxEMCal - jetR;
1547 Double_t etaEMCalRC = r->Uniform(-etaEMCalfid, etaEMCalfid);
1548 Double_t phiEMCalRC = r->Uniform(phiMinEMCalfid, phiMaxEMCalfid);
1558 std::vector<std::vector<Double_t>> trackPtSumDCalRC(
fNEtaBins, std::vector<Double_t>(
fNPhiBins));
1559 std::vector<std::vector<Double_t>> clusESumDCalRC(
fNEtaBins, std::vector<Double_t>(
fNPhiBins));
1572 track = trackIterator.first;
1573 trackEta = track.Eta();
1575 trackPt = track.Pt();
1578 if (TMath::Abs(trackEta) < etaTPC) {
1579 trackPtSumTPC += trackPt;
1583 if (TMath::Abs(trackEta) < etaEMCal && trackPhi > phiMinEMCal && trackPhi < phiMaxEMCal) {
1584 trackPtSumEMCal += trackPt;
1588 deltaR =
GetDeltaR(&track, etaEMCalRC, phiEMCalRC);
1589 if (deltaR < jetR) {
1590 trackPtSumEMCalRC += trackPt;
1605 clus = clusIterator.first;
1606 clusEta = clus.Eta();
1611 if (TMath::Abs(clusEta) < etaEMCal && clusPhi > phiMinEMCal && clusPhi < phiMaxEMCal) {
1612 clusESumEMCal += clusE;
1616 deltaR =
GetDeltaR(&clus, etaEMCalRC, phiEMCalRC);
1617 if (deltaR < jetR) {
1618 clusESumEMCalRC += clusE;
1624 Double_t numerator = (trackPtSumEMCal + clusESumEMCal) / accEMCal;
1625 Double_t denominator = trackPtSumTPC / accTPC;
1626 Double_t scaleFactor = numerator / denominator;
1627 TString histname = TString::Format(
"%s/BackgroundHistograms/hScaleFactorEMCal", jetCont->GetArrayName().Data());
1631 Double_t rho = jetCont->GetRhoVal();
1632 Double_t deltaPt = trackPtSumEMCalRC + clusESumEMCalRC - rho * TMath::Pi() * jetR * jetR;
1633 histname = TString::Format(
"%s/BackgroundHistograms/hDeltaPtEMCal", jetCont->GetArrayName().Data());
1651 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
1652 TString jetContName = jets->GetName();
1657 histname = TString::Format(
"%s/TriggerSimHistograms/hRhoVsCent", jets->GetArrayName().Data());
1661 for (
auto jet : jets->
all()) {
1667 histname = TString::Format(
"%s/TriggerSimHistograms/hAreaVsPt", jets->GetArrayName().Data());
1671 UInt_t rejectionReason = 0;
1672 if (!jets->
AcceptJet(jet, rejectionReason)) {
1673 histname = TString::Format(
"%s/TriggerSimHistograms/hJetRejectionReason", jets->GetArrayName().Data());
1674 fHistManager.
FillTH2(histname.Data(), jets->GetRejectionReasonBitPosition(rejectionReason), jet->Pt());
1686 histname = TString::Format(
"%s/TriggerSimHistograms/hNEFVsPtEMCal", jets->GetArrayName().Data());
1688 else if (type ==
kDCal) {
1689 histname = TString::Format(
"%s/TriggerSimHistograms/hNEFVsPtDCal", jets->GetArrayName().Data());
1694 histname = TString::Format(
"%s/TriggerSimHistograms/hPtLeadingVsPt", jets->GetArrayName().Data());
1699 histname = TString::Format(
"%s/TriggerSimHistograms/hZLeadingVsPtEMCal", jets->GetArrayName().Data());
1701 else if (type ==
kDCal) {
1702 histname = TString::Format(
"%s/TriggerSimHistograms/hZLeadingVsPtDCal", jets->GetArrayName().Data());
1704 TLorentzVector leadPart;
1707 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
1712 histname = TString::Format(
"%s/TriggerSimHistograms/hZVsPtEMCal", jets->GetArrayName().Data());
1714 else if (type ==
kDCal) {
1715 histname = TString::Format(
"%s/TriggerSimHistograms/hZVsPtDCal", jets->GetArrayName().Data());
1717 const AliVTrack* track;
1718 for (
Int_t i=0; i<jet->GetNumberOfTracks(); i++) {
1719 track =
static_cast<AliVTrack*
>(jet->Track(i));
1720 z = track->Pt() / TMath::Abs(corrPt);
1726 histname = TString::Format(
"%s/TriggerSimHistograms/hNConstVsPtEMCal", jets->GetArrayName().Data());
1728 else if (type ==
kDCal) {
1729 histname = TString::Format(
"%s/TriggerSimHistograms/hNConstVsPtDCal", jets->GetArrayName().Data());
1748 while ((jets = static_cast<AliJetContainer*>(nextJetColl()))) {
1749 TString jetContName = jets->GetName();
1752 if (jetContName.Contains(
"mcparticles")) {
1761 for (
auto jet : jets->
accepted()) {
1780 histname =
"MatchedJetHistograms/hResponseMatrixEMCal";
1782 else if (type ==
kDCal) {
1783 histname =
"MatchedJetHistograms/hResponseMatrixDCal";
1789 histname =
"MatchedJetHistograms/hJESshiftEMCal";
1791 else if (type ==
kDCal) {
1792 histname =
"MatchedJetHistograms/hJESshiftDCal";
1797 histname =
"MatchedJetHistograms/hNEFVsPt";
1801 histname =
"MatchedJetHistograms/hZLeadingVsPt";
1802 TLorentzVector leadPart;
1805 if (z == 1 || (z > 1 && z - 1 < 1e-3)) z = 0.999;
1809 histname =
"MatchedJetHistograms/hMatchingDistance";
1824 Int_t tag = mcUtils.
CheckOrigin(clus->GetLabels(), clus->GetNLabels(), mcevent, clusArray);
1844 particleType =
kPi0;
1848 particleType =
kEta;
1850 else if (isPhoton) {
1853 else if (isPion || isKaon || isProton || isAntiProton || isNeutron || isAntiNeutron) {
1856 else if (isElectron) {
1860 particleType =
kMuon;
1865 return particleType;
1878 TString histname = TString::Format(
"%s/hClusterRejectionReasonMC", clusters->GetArrayName().Data());
1879 UInt_t rejectionReason = 0;
1882 return particleType;
1885 if (part->GetGeneratorIndex() == 0) {
1888 Int_t pdg = TMath::Abs(part->PdgCode());
1901 particleType =
kPi0;
1905 particleType =
kEta;
1912 else if (pdg == 211 || 2212 || 321 || 2112) {
1915 else if (pdg == 11) {
1918 else if (pdg == 13) {
1919 particleType =
kMuon;
1926 return particleType;
1935 Double_t deltaEta = TMath::Abs(part->Eta() - etaRef);
1936 Double_t deltaR = TMath::Sqrt( deltaPhi*deltaPhi + deltaEta*deltaEta );
1970 const char *ntracks,
1971 const char *nclusters,
1972 const char *nGenLev,
1982 ::Error(
"AddTaskEmcalJetPerformance",
"No analysis manager to connect to.");
1988 AliVEventHandler* handler = mgr->GetInputEventHandler();
1991 ::Error(
"AddTaskEmcalJetPerformance",
"This task requires an input event handler");
2003 if (handler->InheritsFrom(
"AliESDInputHandler")) {
2006 else if (handler->InheritsFrom(
"AliAODInputHandler")) {
2017 if (trackName ==
"usedefault") {
2018 if (dataType ==
kESD) {
2019 trackName =
"Tracks";
2021 else if (dataType ==
kAOD) {
2022 trackName =
"tracks";
2029 if (clusName ==
"usedefault") {
2030 if (dataType ==
kESD) {
2031 clusName =
"CaloClusters";
2033 else if (dataType ==
kAOD) {
2034 clusName =
"caloClusters";
2041 TString name(
"AliAnalysisTaskEmcalJetPerformance");
2042 if (!trackName.IsNull()) {
2046 if (!clusName.IsNull()) {
2050 if (strcmp(suffix,
"") != 0) {
2063 if (trackName ==
"mcparticles") {
2065 partCont = mcpartCont;
2067 else if (trackName ==
"tracks" || trackName ==
"Tracks") {
2069 partCont = trackCont;
2075 if (nGenLev && strcmp(nGenLev,
"")!=0) {
2083 if (!clusName.IsNull()) {
2097 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
2099 contname +=
"_histos";
2100 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
2101 TList::Class(),AliAnalysisManager::kOutputContainer,
2102 Form(
"%s", AliAnalysisManager::GetCommonFileName()));
2103 mgr->ConnectInput (task, 0, cinput1 );
2104 mgr->ConnectOutput (task, 1, coutput1 );
TObjArray fClusterCollArray
cluster collection array
void SetParticlePtCut(Double_t cut)
Double_t GetRhoVal() const
const TString & GetRhoName() const
AliJetContainer * GetJetContainer(Int_t i=0) const
UInt_t fOffTrigger
offline trigger for event selection
void AdoptParticleContainer(AliParticleContainer *cont)
static AliEmcalDownscaleFactorsOCDB * Instance()
const AliClusterIterableMomentumContainer accepted_momentum() 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.
AliEmcalJet * MatchedJet() const
Declaration of class AliTLorentzVector.
void SetRun(int runnumber)
void FillTH3(const char *hname, double x, double y, double z, double weight=1., Option_t *opt="")
Fill a 3D histogram within the container.
Declaration of class AliAnalysisTaskEmcalEmbeddingHelper.
virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const
Double_t GetDownscaleFactorForTriggerClass(const TString &trigger) const
Container for particles within the EMCAL framework.
void SetCaloTriggerPatchInfoName(const char *n)
Int_t CheckOrigin(Int_t label, const AliMCEvent *mcevent)
void AdoptClusterContainer(AliClusterContainer *cont)
virtual Bool_t AcceptMCParticle(const AliAODMCParticle *vp, UInt_t &rejectionReason) const
bool AddQAPlotsToList(TList *list)
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Get particle container attached to this task.
void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet *jet) const
void FillTHnSparse(const char *name, const double *x, double weight=1., Option_t *opt="")
bool IsInitialized() const
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.
THashList * GetListOfHistograms() const
Get the list of histograms.
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
AliEMCALGeometry * fGeom
!emcal geometry
UInt_t GetJetAcceptanceType() const
Double_t Phi_0_2pi() const
Implementation of task to embed external events.
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
std::vector< TString > GetTriggerClasses() const
Double_t fCent
!event centrality
AliMCParticleContainer * AddMCParticleContainer(const char *n)
Create new container for MC particles and attach it to the task.
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
AliRhoParameter * GetRhoParameter()
void CheckOverlapped2GammaDecay(const Int_t *labels, Int_t nlabels, Int_t mesonIndex, const AliMCEvent *mcevent, Int_t &tag)
void RecordEmbeddedEventProperties()
virtual Bool_t IsEventSelected()
Performing event selection.
static Double_t * GenerateFixedBinArray(Int_t n, Double_t min, Double_t max)
AliEmcalList * fOutput
!output list
AliMCParticleContainer * GetMCParticleContainer(Int_t i=0) const
Handler for downscale factors for various triggers obtained from the OCDB.
void SelectPhysicalPrimaries(Bool_t s)
TClonesArray * fTriggerPatchInfo
!trigger patch info array
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
const AliTrackIterableMomentumContainer accepted_momentum() const
Int_t GetRunNumber(TString)
void SetClusPtCut(Double_t cut)
void SetRejectionReasonLabels(TAxis *axis)
void UserCreateOutputObjects()
Main initialization function on the worker.
const AliJetIterableContainer accepted() const
EDataType_t
Switch for the data type.
DCal acceptance – spans ONLY DCal (no PHOS or gap)
void SetClusECut(Double_t cut)
Class with analysis utils for simulations.
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 MC-true particles within the EMCAL framework.
virtual AliAODMCParticle * GetMCParticleWithLabel(Int_t lab) const
Bool_t fNeedEmcalGeom
whether or not the task needs the emcal geometry
Bool_t CheckTagBit(Int_t tag, UInt_t test) const
Container for jet within the EMCAL jet framework.
TH3 * CreateTH3(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, int nbinsz, double zmin, double zmax, Option_t *opt="")
Create a new TH2 within the container.
const AliJetIterableContainer all() const
static const AliAnalysisTaskEmcalEmbeddingHelper * GetInstance()
static Double_t fgkEMCalDCalPhiDivide
phi value used to distinguish between DCal and EMCal