diff --git a/Phys/ParticleMatching/src/KSVelo2LongEfficiencyMonitor.cpp b/Phys/ParticleMatching/src/KSVelo2LongEfficiencyMonitor.cpp index 9990ef3d16d68631bb96bd80edd26f15fd56e6c8..824d767e043dca85cf192dfeb1bb948447008972 100644 --- a/Phys/ParticleMatching/src/KSVelo2LongEfficiencyMonitor.cpp +++ b/Phys/ParticleMatching/src/KSVelo2LongEfficiencyMonitor.cpp @@ -15,6 +15,7 @@ #include "LHCbAlgs/Consumer.h" #include "Relations/RelationWeighted1D.h" #include +#include namespace { using WeightedRelationTable = LHCb::RelationWeighted1D; @@ -45,6 +46,10 @@ public: Axis1D{ static_cast( m_histodef_eff_eta.value().bins() ), m_histodef_eff_eta.value().lowEdge(), m_histodef_eff_eta.value().highEdge() } ); + m_efficiency_vs_phi.emplace( this, "EfficiencyVsPhi", m_histodef_eff_phi.value().title(), + Axis1D{ static_cast( m_histodef_eff_phi.value().bins() ), + m_histodef_eff_phi.value().lowEdge(), + m_histodef_eff_phi.value().highEdge() } ); m_efficiency_vs_p_den.emplace( this, "EfficiencyVsP_den", m_histodef_eff_p.value().title() + "_den", Axis1D{ static_cast( m_histodef_eff_p.value().bins() ), @@ -57,6 +62,10 @@ public: Axis1D{ static_cast( m_histodef_eff_eta.value().bins() ), m_histodef_eff_eta.value().lowEdge(), m_histodef_eff_eta.value().highEdge() } ); + m_efficiency_vs_phi_den.emplace( this, "EfficiencyVsPhi_den", m_histodef_eff_phi.value().title() + "_den", + Axis1D{ static_cast( m_histodef_eff_phi.value().bins() ), + m_histodef_eff_phi.value().lowEdge(), + m_histodef_eff_phi.value().highEdge() } ); m_efficiency_vs_p_num.emplace( this, "EfficiencyVsP_num", m_histodef_eff_p.value().title() + "_num", Axis1D{ static_cast( m_histodef_eff_p.value().bins() ), @@ -69,6 +78,10 @@ public: Axis1D{ static_cast( m_histodef_eff_eta.value().bins() ), m_histodef_eff_eta.value().lowEdge(), m_histodef_eff_eta.value().highEdge() } ); + m_efficiency_vs_phi_num.emplace( this, "EfficiencyVsPhi_num", m_histodef_eff_phi.value().title() + "_num", + Axis1D{ static_cast( m_histodef_eff_phi.value().bins() ), + m_histodef_eff_phi.value().lowEdge(), + m_histodef_eff_phi.value().highEdge() } ); m_efficiency_vs_eta_p.emplace( this, "EfficiencyVsEtaP", m_histodef_eff_eta.value().title(), Axis1D{ static_cast( m_histodef_eff_eta.value().bins() / 2 ), @@ -123,6 +136,7 @@ public: ( *m_efficiency_vs_p_den )[probe_momentum.P() / 1000.] += weight; ( *m_efficiency_vs_pt_den )[probe_momentum.Pt() / 1000.] += weight; ( *m_efficiency_vs_eta_den )[probe_momentum.Eta()] += weight; + ( *m_efficiency_vs_phi_den )[probe_momentum.Phi()] += weight; float matched = 0.; auto const& matches = matching_table.relations( probe ); int n_fthits = 0; @@ -155,6 +169,7 @@ public: ( *m_efficiency_vs_p )[probe_momentum.P() / 1000.] += matched; ( *m_efficiency_vs_pt )[probe_momentum.Pt() / 1000.] += matched; ( *m_efficiency_vs_eta )[probe_momentum.Eta()] += matched; + ( *m_efficiency_vs_phi )[probe_momentum.Phi()] += matched; ( *m_efficiency_vs_eta_p )[{ probe_momentum.Eta(), probe_momentum.P() / 1000. }] += matched; ( *m_efficiency_vs_eta_pt )[{ probe_momentum.Eta(), probe_momentum.Pt() / 1000. }] += matched; } @@ -162,6 +177,7 @@ public: ( *m_efficiency_vs_p_num )[probe_momentum.P() / 1000.] += weight; ( *m_efficiency_vs_pt_num )[probe_momentum.Pt() / 1000.] += weight; ( *m_efficiency_vs_eta_num )[probe_momentum.Eta()] += weight; + ( *m_efficiency_vs_phi_num )[probe_momentum.Phi()] += weight; m_fthits[n_fthits] += weight; } } @@ -195,18 +211,26 @@ private: this, "HistogramDefEffPt", { "Efficiency versus pt [GeV]", 0.25, 5., 19 }, "Histogram definition" }; Gaudi::Property m_histodef_eff_eta{ this, "HistogramDefEffEta", { "Efficiency versus eta", 1.5, 5., 14 }, "Histogram definition" }; + Gaudi::Property m_histodef_eff_phi{ + this, + "HistogramDefEffPhi", + { "Efficiency versus phi", -std::numbers::pi, std::numbers::pi, 24 }, + "Histogram definition" }; mutable std::optional> m_efficiency_vs_p; mutable std::optional> m_efficiency_vs_pt; mutable std::optional> m_efficiency_vs_eta; + mutable std::optional> m_efficiency_vs_phi; mutable std::optional> m_efficiency_vs_p_den; mutable std::optional> m_efficiency_vs_pt_den; mutable std::optional> m_efficiency_vs_eta_den; + mutable std::optional> m_efficiency_vs_phi_den; mutable std::optional> m_efficiency_vs_p_num; mutable std::optional> m_efficiency_vs_pt_num; mutable std::optional> m_efficiency_vs_eta_num; + mutable std::optional> m_efficiency_vs_phi_num; mutable std::optional> m_efficiency_vs_eta_p; mutable std::optional> m_efficiency_vs_eta_pt;