diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml index 33181703f85f4d91ad32856da598f5a4ef3f2545..049f241adaff393aa11736b57a95a5e3c0359c4b 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon.xml @@ -748,6 +748,14 @@ <x title="p_{T} [GeV]" n="200" lo="0.0" hi="20"/> <y title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> </h> +<h id="efficiency_vs_absEtaTruthMu" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="#eta" n="20" lo="-&ETA;" hi="&ETA;"/> + <y title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> +</h> +<h id="efficiency_vs_absEtaActualMu" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="#eta" n="20" lo="-&ETA;" hi="&ETA;"/> + <y title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> +</h> <h id="efficiency_vs_eta" type="TEfficiency" title="Fraction of reco-matched truth track"> <x title="#eta" n="20" lo="-&ETA;" hi="&ETA;"/> <y title="Efficiency" lo="0.0" hi="2.0"/> @@ -816,6 +824,46 @@ <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> <y title="Efficiency" lo="0.0" hi="2.0"/> </h> +<h id="efficiency_vs_truthMu_absEta_0p0_0p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_0p5_1p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_1p0_1p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_1p5_2p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_2p0_2p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_0p0_0p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_0p5_1p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_1p0_1p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_1p5_2p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_2p0_2p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> <h id="extended_efficiency_vs_z0" type="TEfficiency" title="Fraction of reco-matched truth track"> <x title="z_{0} [mm]" n="50" lo="-750" hi="750"/> <y title="Efficiency" lo="0.0" hi="2.0"/> diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon_ITK.xml b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon_ITK.xml index 6d03bff83eeae4e25a11a3a707ab2a5652c54d14..78f019539831c718ab14f9fc2300103fb9cc84a5 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon_ITK.xml +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/InDetPVMPlotDefCommon_ITK.xml @@ -130,6 +130,30 @@ <x title="#mu" n="&NmuBINS;" lo="0.0" hi="&EXPMU;"/> <y title="Efficiency" lo="0.0" hi="1.2"/> </h> +<h id="efficiency_vs_truthMu_absEta_2p5_3p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_3p0_3p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_truthMu_absEta_3p5_4p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Truth #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_2p5_3p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_3p0_3p5" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> +<h id="efficiency_vs_actualMu_absEta_3p5_4p0" type="TEfficiency" title="Fraction of reco-matched truth track"> + <x title="Actual #mu" n="&EXPMU;" lo="0" hi="&EXPMU;"/> + <y title="Efficiency" lo="0.0" hi="2.0"/> +</h> <!-- ======================================================= end of efficiency vs mu plots [InDetPerfPlot_Eff] diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.cxx index 7efeada6b14b159a4bd0d254b021e1afd2281a5c..b8d9a53ac4aeea68c7fe3fe4714d5ea484be9db8 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.cxx @@ -19,6 +19,28 @@ InDetPerfPlot_Efficiency::initializePlots() { book(m_efficiency_vs_pteta, "efficiency_vs_pteta"); book(m_efficiency_vs_ptTruthMu, "efficiency_vs_ptTruthMu"); book(m_efficiency_vs_ptActualMu, "efficiency_vs_ptActualMu"); + + book(m_efficiency_vs_etaTruthMu, "efficiency_vs_absEtaTruthMu"); + book(m_efficiency_vs_etaActualMu, "efficiency_vs_absEtaActualMu"); + + for(unsigned int i=0; i<m_eta_bins.size()-1; i++){ + m_efficiency_vs_truthMu_eta_bin.emplace_back(); + m_efficiency_vs_actualMu_eta_bin.emplace_back(); + + std::string bin_low = std::to_string(m_eta_bins[i]); + size_t dotPos = bin_low.find('.'); + bin_low = bin_low.substr(0, dotPos+2); + bin_low.replace(dotPos, 1, 1, 'p'); + std::string bin_up = std::to_string(m_eta_bins[i+1]); + dotPos = bin_up.find('.'); + bin_up = bin_up.substr(0, dotPos+2); + bin_up.replace(dotPos, 1, 1, 'p'); + + book(m_efficiency_vs_truthMu_eta_bin.back(), + "efficiency_vs_truthMu_absEta_"+bin_low+"_"+bin_up); + book(m_efficiency_vs_actualMu_eta_bin.back(), + "efficiency_vs_actualMu_absEta_"+bin_low+"_"+bin_up); + } book(m_efficiency_vs_eta, "efficiency_vs_eta"); book(m_efficiency_vs_pt, "efficiency_vs_pt"); @@ -79,6 +101,14 @@ InDetPerfPlot_Efficiency::fill(const xAOD::TruthParticle& truth, const bool isGo fillHisto(m_efficiency_vs_ptTruthMu, pt, truthMu, isGood, weight); fillHisto(m_efficiency_vs_ptActualMu, pt, actualMu, isGood, weight); + fillHisto(m_efficiency_vs_etaTruthMu, std::abs(eta), truthMu, isGood, weight); + fillHisto(m_efficiency_vs_etaActualMu, std::abs(eta), actualMu, isGood, weight); + + const auto pVal = std::lower_bound(m_eta_bins.begin(), m_eta_bins.end(), std::abs(eta)); + const int bin = std::distance(m_eta_bins.begin(), pVal) - 1; + fillHisto(m_efficiency_vs_truthMu_eta_bin[bin], truthMu, isGood, weight); + fillHisto(m_efficiency_vs_actualMu_eta_bin[bin], truthMu, isGood, weight); + fillHisto(m_efficiency_vs_eta, eta, isGood, weight); fillHisto(m_efficiency_vs_pt, pt, isGood, weight); fillHisto(m_efficiency_vs_pt_low, pt, isGood, weight); diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.h index 69fef0116eb879e5a407c10fefbfc3d7ef52cc09..d60b83d2c07a62965e603089efb28f3e775d5012 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.h +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_Efficiency.h @@ -37,6 +37,15 @@ private: TEfficiency* m_efficiency_vs_ptTruthMu{}; TEfficiency* m_efficiency_vs_ptActualMu{}; + TEfficiency* m_efficiency_vs_etaTruthMu{}; + TEfficiency* m_efficiency_vs_etaActualMu{}; + std::vector<TEfficiency*> m_efficiency_vs_truthMu_eta_bin; + std::vector<TEfficiency*> m_efficiency_vs_actualMu_eta_bin; + std::vector<float> m_eta_bins = { + 0., 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0 + }; + + TEfficiency* m_efficiency_vs_eta{}; TEfficiency* m_efficiency_vs_pt{}; TEfficiency* m_efficiency_vs_pt_low{};