diff --git a/Tr/TrackMonitors/src/FTTrackMonitor.cpp b/Tr/TrackMonitors/src/FTTrackMonitor.cpp index be8c6b256e0a8a19de2cce19da0e54977c809f38..976cdc4e1ecc69d581914b53421406e212bf39cf 100644 --- a/Tr/TrackMonitors/src/FTTrackMonitor.cpp +++ b/Tr/TrackMonitors/src/FTTrackMonitor.cpp @@ -135,11 +135,15 @@ private: "residualPerSiPM", "(biased) residual per SiPM", { { FTConstants::nSiPMsTotal, -0.5, FTConstants::nSiPMsTotal - 0.5, "X" }, { 50, -1., 1., "Y" } } }; + mutable Gaudi::Accumulators::ProfileHistogram<1> m_residualPerEta{ + this, "TrackResidualPerEta", "Track residuals per eta", { 100, 2, 5, "Eta" } }; // Plots split by SciFi module struct HistoModules { - mutable Gaudi::Accumulators::Histogram<1> UnbiasedResidualModules_permodule; - mutable Gaudi::Accumulators::Histogram<1> RMSResidualModules_permodule; + mutable Gaudi::Accumulators::Histogram<1> UnbiasedResidualModules_permodule; + mutable Gaudi::Accumulators::Histogram<1> RMSResidualModules_permodule; + mutable Gaudi::Accumulators::ProfileHistogram<1> UnbiasedResidualModules_permodule_eta; + mutable Gaudi::Accumulators::ProfileHistogram<1> UnbiasedResidualModules_permodule_y; HistoModules( const FTTrackMonitor* owner, unsigned int module_id ) : UnbiasedResidualModules_permodule{ owner, @@ -149,7 +153,18 @@ private: , RMSResidualModules_permodule{ owner, LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ), LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ), - { 200, -2. * Gaudi::Units::mm, 2. * Gaudi::Units::mm, "X" } } {} + { 200, -2. * Gaudi::Units::mm, 2. * Gaudi::Units::mm, "X" } } + , UnbiasedResidualModules_permodule_eta{ owner, + fmt::format( + "{}_eta", + LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ) ), + LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ), + { 100, 2, 5, "Eta" } } + , UnbiasedResidualModules_permodule_y{ + owner, + fmt::format( "{}_y", LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ) ), + LHCb::Detector::FTUtils::globalModuleToLocalString( module_id ), + { 100, 0, 2400, "y [mm]" } } {} }; // Plots split by SciFi station @@ -365,6 +380,10 @@ void FTTrackMonitor::fillNodeInfo( LHCb::Track const& track, FitResultType const m_UnbiasedResidualModules[uniqueModule] += node.unbiasedResidual(); m_UnbiasedResidualQuarters[uniqueQuarter] += node.unbiasedResidual(); + // Plot resiadials as a function of track eta + const double eta = track.pseudoRapidity(); + m_residualPerEta[eta] += node.unbiasedResidual(); + ++m_unbiasedFTResidualLayer[{ uniqueLayer, node.unbiasedResidual() }]; ++m_biasedFTResidualLayer[{ uniqueLayer, node.residual() }]; ++m_residualPerModule[{ uniqueModule, node.residual() }]; @@ -374,9 +393,9 @@ void FTTrackMonitor::fillNodeInfo( LHCb::Track const& track, FitResultType const if ( m_verboseMode.value() ) { auto& histos_modules = m_histograms_modules.at( chan.globalModuleIdx() ); ++histos_modules.UnbiasedResidualModules_permodule[node.unbiasedResidual()]; - if ( node.errResidual2() > TrackParameters::lowTolerance ) { - ++histos_modules.RMSResidualModules_permodule[residualRms]; - } + histos_modules.UnbiasedResidualModules_permodule_eta[eta] += node.unbiasedResidual(); + histos_modules.UnbiasedResidualModules_permodule_y[fabs( state( node ).position().y() )] += + node.unbiasedResidual(); } // plots per layer