diff --git a/Tr/TrackMonitors/src/VertexCompare.cpp b/Tr/TrackMonitors/src/VertexCompare.cpp index 9999182ece965c923344065adaf824046002363f..ad1d17e24125d66e9f8127b0a78379dd9e2425e6 100644 --- a/Tr/TrackMonitors/src/VertexCompare.cpp +++ b/Tr/TrackMonitors/src/VertexCompare.cpp @@ -246,12 +246,15 @@ private: mutable Gaudi::Accumulators::SumAccumulator m_stat_pullz_fourth_sum; struct monitoringHistos { - mutable std::array, 5> m_histo_nTracksBins_dx; - mutable std::array, 5> m_histo_nTracksBins_dy; - mutable std::array, 5> m_histo_nTracksBins_dz; + mutable std::array, 6> m_histo_nTracksBins_dx; + mutable std::array, 6> m_histo_nTracksBins_dy; + mutable std::array, 6> m_histo_nTracksBins_dz; mutable Gaudi::Accumulators::Histogram<1> m_histo_pullx_Monitoring; mutable Gaudi::Accumulators::Histogram<1> m_histo_pully_Monitoring; mutable Gaudi::Accumulators::Histogram<1> m_histo_pullz_Monitoring; + mutable Gaudi::Accumulators::Histogram<1> m_histo_pullx_overflow_nTracBin_Monitoring; + mutable Gaudi::Accumulators::Histogram<1> m_histo_pully_overflow_nTracBin_Monitoring; + mutable Gaudi::Accumulators::Histogram<1> m_histo_pullz_overflow_nTracBin_Monitoring; template static std::array, sizeof...( IDXs )> @@ -266,16 +269,26 @@ private: monitoringHistos( const VertexCompare* owner ) : m_histo_nTracksBins_dx{ histo1DArrayBuilder( owner, "dx_Monitoring_ntracks_bin", Gaudi::Histo1DDef{ "dx, mm", -0.15, 0.15, 50 }, - std::make_index_sequence<5>() ) } + std::make_index_sequence<6>() ) } , m_histo_nTracksBins_dy{ histo1DArrayBuilder( owner, "dy_Monitoring_ntracks_bin", Gaudi::Histo1DDef{ "dy, mm", -0.15, 0.15, 50 }, - std::make_index_sequence<5>() ) } + std::make_index_sequence<6>() ) } , m_histo_nTracksBins_dz{ histo1DArrayBuilder( owner, "dz_Monitoring_ntracks_bin", Gaudi::Histo1DDef{ "dz, mm", -1.5, 1.5, 50 }, - std::make_index_sequence<5>() ) } + std::make_index_sequence<6>() ) } , m_histo_pullx_Monitoring{ owner, "pullx_Monitoring", "pull x", { 20, -5, 5 } } , m_histo_pully_Monitoring{ owner, "pully_Monitoring", "pull y", { 20, -5, 5 } } - , m_histo_pullz_Monitoring{ owner, "pullz_Monitoring", "pull z", { 20, -5, 5 } } {} + , m_histo_pullz_Monitoring{ owner, "pullz_Monitoring", "pull z", { 20, -5, 5 } } + , m_histo_pullx_overflow_nTracBin_Monitoring{ owner, + "pullx_overflow_nTracBin_Monitoring", + "pull x", + { 20, -5, 5 } } + , m_histo_pully_overflow_nTracBin_Monitoring{ owner, + "pully_overflow_nTracBin_Monitoring", + "pull y", + { 20, -5, 5 } } + , m_histo_pullz_overflow_nTracBin_Monitoring{ + owner, "pullz_overflow_nTracBin_Monitoring", "pull z", { 20, -5, 5 } } {} }; std::unique_ptr m_monitoringHistos; @@ -498,13 +511,23 @@ void VertexCompare::operator()( Vertices const& recoVtx1, Vertices const& recoVt if ( std::lround( ( ntracks1 + ntracks2 ) / 2 ) <= ntrack_bins[i] ) { break; } binCount++; } - auto& monitoringHistos = *m_monitoringHistos.get(); - ++monitoringHistos.m_histo_nTracksBins_dx[binCount][dx]; - ++monitoringHistos.m_histo_nTracksBins_dy[binCount][dy]; - ++monitoringHistos.m_histo_nTracksBins_dz[binCount][dz]; - ++monitoringHistos.m_histo_pullx_Monitoring[pullx]; - ++monitoringHistos.m_histo_pully_Monitoring[pully]; - ++monitoringHistos.m_histo_pullz_Monitoring[pullz]; + if ( binCount < 5 ) { + auto& monitoringHistos = *m_monitoringHistos.get(); + ++monitoringHistos.m_histo_nTracksBins_dx[binCount][dx]; + ++monitoringHistos.m_histo_nTracksBins_dy[binCount][dy]; + ++monitoringHistos.m_histo_nTracksBins_dz[binCount][dz]; + ++monitoringHistos.m_histo_pullx_Monitoring[pullx]; + ++monitoringHistos.m_histo_pully_Monitoring[pully]; + ++monitoringHistos.m_histo_pullz_Monitoring[pullz]; + } else { + auto& monitoringHistos = *m_monitoringHistos.get(); + ++monitoringHistos.m_histo_nTracksBins_dx[5][dx]; + ++monitoringHistos.m_histo_nTracksBins_dy[5][dy]; + ++monitoringHistos.m_histo_nTracksBins_dz[5][dz]; + ++monitoringHistos.m_histo_pullx_overflow_nTracBin_Monitoring[pullx]; + ++monitoringHistos.m_histo_pullx_overflow_nTracBin_Monitoring[pully]; + ++monitoringHistos.m_histo_pullx_overflow_nTracBin_Monitoring[pullz]; + } } } if ( m_produceHistogram.value() || m_monitoring.value() ) {