@@ -131,6 +131,7 @@ struct AnalysisEnergyCorrelator {
131131 Configurable<std::string> fConfigMCGenSignalsJSON {" cfgMCGenDileptonHadronSignalsJSON" , " " , " Comma separated list of MC signals (generated) via JSON" };
132132 Configurable<float > fConfigMCGenHadronEtaAbs {" cfgMCGenHadronEtaAbs" , 0 .9f , " eta abs range for the hadron" };
133133 Configurable<float > fConfigMCGenHadronPtMin {" cfgMCGenHadronPtMin" , 0 .1f , " minimum pt for the hadron" };
134+ Configurable<bool > fConfigContainlepton {" cfgContainlepton" , false , " If true, require the hadron to contain the lepton in its decay tree for the energy correlator study" };
134135 } fConfigDileptonHadronOptions ;
135136
136137 // Histogram configurables
@@ -397,9 +398,11 @@ struct AnalysisEnergyCorrelator {
397398 if (isMCGen_energycorrelators) {
398399 DefineHistograms (fHistMan , Form (" MCTruthGenSel_%s" , sig->GetName ()), " " );
399400 DefineHistograms (fHistMan , Form (" MCTruthEenergyCorrelators_%s" , sig->GetName ()), " " );
401+ DefineHistograms (fHistMan , Form (" MCTruthEenergyCorrelators_Pion_%s" , sig->GetName ()), " " );
400402 }
401403 if (isMCGen_energycorrelatorsME) {
402404 DefineHistograms (fHistMan , Form (" MCTruthEenergyCorrelatorsME_%s" , sig->GetName ()), " " );
405+ DefineHistograms (fHistMan , Form (" MCTruthEenergyCorrelatorsME_Pion_%s" , sig->GetName ()), " " );
403406 }
404407 }
405408 }
@@ -786,7 +789,7 @@ struct AnalysisEnergyCorrelator {
786789 }
787790
788791 PresliceUnsorted<aod::McParticles> perReducedMcEvent = aod::mcparticle::mcCollisionId;
789- template <bool MixedEvent, int THadronMassType, typename TEvent>
792+ template <bool MixedEvent, bool PionMass, int THadronMassType, typename TEvent>
790793 void runEnergyCorrelators (TEvent const & event1, TEvent const & event2, McParticles const & mcTracks)
791794 {
792795 auto groupedMCTracks1 = mcTracks.sliceBy (perReducedMcEvent, event1.mcCollisionId ());
@@ -801,7 +804,7 @@ struct AnalysisEnergyCorrelator {
801804 continue ;
802805 }
803806 VarManager::FillTrackMC (groupedMCTracks1, t1_raw);
804- if (!MixedEvent) {
807+ if (!MixedEvent && !PionMass ) {
805808 fHistMan ->FillHistClass (Form (" MCTruthGenSel_%s" , sig->GetName ()), VarManager::fgValues);
806809 }
807810 }
@@ -826,7 +829,10 @@ struct AnalysisEnergyCorrelator {
826829 continue ;
827830 }
828831 }
829- if (std::abs (t2_raw.pdgCode ()) != PDG_t::kPiPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kKPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kProton && std::abs (t2_raw.pdgCode ()) != PDG_t::kElectron && std::abs (t2_raw.pdgCode ()) != PDG_t::kMuonMinus ) {
832+ if (fConfigDileptonHadronOptions .fConfigContainlepton && std::abs (t2_raw.pdgCode ()) != PDG_t::kPiPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kKPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kProton && std::abs (t2_raw.pdgCode ()) != PDG_t::kElectron && std::abs (t2_raw.pdgCode ()) != PDG_t::kMuonMinus ) {
833+ continue ;
834+ }
835+ if (!fConfigDileptonHadronOptions .fConfigContainlepton && std::abs (t2_raw.pdgCode ()) != PDG_t::kPiPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kKPlus && std::abs (t2_raw.pdgCode ()) != PDG_t::kProton ) {
830836 continue ;
831837 }
832838 if (t2_raw.pt () < fConfigDileptonHadronOptions .fConfigMCGenHadronPtMin .value || std::abs (t2_raw.eta ()) > fConfigDileptonHadronOptions .fConfigMCGenHadronEtaAbs .value ) {
@@ -836,12 +842,18 @@ struct AnalysisEnergyCorrelator {
836842 VarManager::FillEnergyCorrelatorsMC<THadronMassType>(t1_raw, t2_raw, VarManager::fgValues, fTransRange [0 ], fTransRange [1 ]);
837843 for (auto & sig : fGenMCSignals ) {
838844 if (sig->CheckSignal (true , t1_raw)) {
839- if (!MixedEvent) {
845+ if (!MixedEvent && !PionMass ) {
840846 fHistMan ->FillHistClass (Form (" MCTruthEenergyCorrelators_%s" , sig->GetName ()), VarManager::fgValues);
841847 }
842- if (MixedEvent) {
848+ if (MixedEvent && !PionMass ) {
843849 fHistMan ->FillHistClass (Form (" MCTruthEenergyCorrelatorsME_%s" , sig->GetName ()), VarManager::fgValues);
844850 }
851+ if (!MixedEvent && PionMass) {
852+ fHistMan ->FillHistClass (Form (" MCTruthEenergyCorrelators_Pion_%s" , sig->GetName ()), VarManager::fgValues);
853+ }
854+ if (MixedEvent && PionMass) {
855+ fHistMan ->FillHistClass (Form (" MCTruthEenergyCorrelatorsME_Pion_%s" , sig->GetName ()), VarManager::fgValues);
856+ }
845857 }
846858 }
847859 }
@@ -870,7 +882,7 @@ struct AnalysisEnergyCorrelator {
870882 if (fSavelessevents [0 ] > 1 && event.globalIndex () % fSavelessevents [0 ] == fSavelessevents [1 ]) {
871883 continue ;
872884 }
873- runEnergyCorrelators<false , VarManager::kJpsiHadronMass >(event, event, mcTracks);
885+ runEnergyCorrelators<false , false , VarManager::kJpsiHadronMass >(event, event, mcTracks);
874886 }
875887 }
876888
@@ -900,7 +912,7 @@ struct AnalysisEnergyCorrelator {
900912 if (fSavelessevents [0 ] > 1 && event1.globalIndex () % fSavelessevents [0 ] == fSavelessevents [1 ]) {
901913 continue ;
902914 }
903- runEnergyCorrelators<true , VarManager::kJpsiHadronMass >(event1, event2, mcTracks);
915+ runEnergyCorrelators<true , false , VarManager::kJpsiHadronMass >(event1, event2, mcTracks);
904916 }
905917 }
906918
@@ -926,7 +938,7 @@ struct AnalysisEnergyCorrelator {
926938 if (fSavelessevents [0 ] > 1 && event.globalIndex () % fSavelessevents [0 ] == fSavelessevents [1 ]) {
927939 continue ;
928940 }
929- runEnergyCorrelators<false , VarManager::kJpsiPionMass >(event, event, mcTracks);
941+ runEnergyCorrelators<false , true , VarManager::kJpsiPionMass >(event, event, mcTracks);
930942 }
931943 }
932944
@@ -956,7 +968,7 @@ struct AnalysisEnergyCorrelator {
956968 if (fSavelessevents [0 ] > 1 && event1.globalIndex () % fSavelessevents [0 ] == fSavelessevents [1 ]) {
957969 continue ;
958970 }
959- runEnergyCorrelators<true , VarManager::kJpsiPionMass >(event1, event2, mcTracks);
971+ runEnergyCorrelators<true , true , VarManager::kJpsiPionMass >(event1, event2, mcTracks);
960972 }
961973 }
962974
0 commit comments