From 0ba91b579134530a68f1aebf30e9abe70e78930a Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Wed, 28 May 2025 11:12:44 +0200 Subject: [PATCH 1/6] Adding Backwards Tracks algorithm --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index 3235b435a54..62416f871e9 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -46,6 +46,14 @@ LumiPVs_nobeamline::LumiPVs_nobeamline( const std::string& name, ISvcLocator* pS { KeyValue{ "ODIN", "" }, KeyValue{ "InputVeloTracks", "" }, KeyValue{ "InputHlt", "" }, KeyValue{ "StandardGeometryTop", LHCb::standard_geometry_top } } ) {} +struct TrackVeloSidePredicate { + int m_sign; + TrackVeloSidePredicate( const bool aSide ) : m_sign( aSide ? 1 : -1 ) {} + bool operator()( const LHCb::Track* track ) const { + return track->firstState().tx() * m_sign * ( track->isVeloBackward() ? -1 : 1 ) > 0; + } +}; + void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTracks& tracks, const InputHlt& decreport, const DetectorElement& lhcb ) const { @@ -71,7 +79,15 @@ void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTrac for ( const auto& kvp : decreport ) { sc = tuple->column( kvp.first, kvp.second.decision() ); } sc = tuple->farray( - { { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, + { { "PV_nTrBw", + []( const RecPV& pv ) { + int count = 0; + for ( auto tr : pv.tracks() ) { + if ( tr->isVeloBackward() ) count++; + } + return count; + } }, + { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, { "PV_chi2ndof", +[]( const RecPV& pv ) { return pv.chi2() / pv.nDoF(); } }, { "PVX", +[]( const RecPV& pv ) { return pv.position().x(); } }, { "PVY", +[]( const RecPV& pv ) { return pv.position().y(); } }, -- GitLab From 60bfc877ae1e53c39f05318eb4722b2390b044d4 Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Fri, 30 May 2025 16:35:09 +0000 Subject: [PATCH 2/6] Remove unused struct --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index 62416f871e9..8622112f838 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -46,14 +46,6 @@ LumiPVs_nobeamline::LumiPVs_nobeamline( const std::string& name, ISvcLocator* pS { KeyValue{ "ODIN", "" }, KeyValue{ "InputVeloTracks", "" }, KeyValue{ "InputHlt", "" }, KeyValue{ "StandardGeometryTop", LHCb::standard_geometry_top } } ) {} -struct TrackVeloSidePredicate { - int m_sign; - TrackVeloSidePredicate( const bool aSide ) : m_sign( aSide ? 1 : -1 ) {} - bool operator()( const LHCb::Track* track ) const { - return track->firstState().tx() * m_sign * ( track->isVeloBackward() ? -1 : 1 ) > 0; - } -}; - void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTracks& tracks, const InputHlt& decreport, const DetectorElement& lhcb ) const { -- GitLab From 30d8c5872214d47ba9ed1100294bfbe8f35425ce Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Mon, 2 Jun 2025 09:24:43 +0000 Subject: [PATCH 3/6] Apply suggestion for PV_nTrBw --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index 8622112f838..c1687a431ce 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -71,13 +71,9 @@ void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTrac for ( const auto& kvp : decreport ) { sc = tuple->column( kvp.first, kvp.second.decision() ); } sc = tuple->farray( - { { "PV_nTrBw", - []( const RecPV& pv ) { - int count = 0; - for ( auto tr : pv.tracks() ) { - if ( tr->isVeloBackward() ) count++; - } - return count; + { { "PV_nTrBw", + +[]( const RecPV& pv ) { + return std::ranges::count_if( pv.tracks(), [](const auto& t) { return t->isVeloBackward(); } ); } }, { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, { "PV_chi2ndof", +[]( const RecPV& pv ) { return pv.chi2() / pv.nDoF(); } }, -- GitLab From f486716513dc8bd6f3ed7a449877fe5afbae1b8b Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Mon, 2 Jun 2025 09:36:35 +0000 Subject: [PATCH 4/6] Fix formatting --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index c1687a431ce..8e5b362ca83 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -71,9 +71,9 @@ void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTrac for ( const auto& kvp : decreport ) { sc = tuple->column( kvp.first, kvp.second.decision() ); } sc = tuple->farray( - { { "PV_nTrBw", + { { "PV_nTrBw", +[]( const RecPV& pv ) { - return std::ranges::count_if( pv.tracks(), [](const auto& t) { return t->isVeloBackward(); } ); + return std::ranges::count_if( pv.tracks(), [](const auto& t ) { return t->isVeloBackward(); } ); } }, { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, { "PV_chi2ndof", +[]( const RecPV& pv ) { return pv.chi2() / pv.nDoF(); } }, -- GitLab From 49935de1b9ffe2b63e49b49ff8a294d19fd5ce9a Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Mon, 2 Jun 2025 09:43:10 +0000 Subject: [PATCH 5/6] Fix formatting --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index 8e5b362ca83..e95490e00c0 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -72,8 +72,8 @@ void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTrac sc = tuple->farray( { { "PV_nTrBw", - +[]( const RecPV& pv ) { - return std::ranges::count_if( pv.tracks(), [](const auto& t ) { return t->isVeloBackward(); } ); + +[]( const RecPV& pv ) { + return std::ranges::count_if( pv.tracks(), []( const auto& t ) { return t->isVeloBackward(); } ); } }, { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, { "PV_chi2ndof", +[]( const RecPV& pv ) { return pv.chi2() / pv.nDoF(); } }, -- GitLab From 74ee06c8a7f92c3e41d0bfba0bdbe692ea0b310b Mon Sep 17 00:00:00 2001 From: Alisha Lightbody Date: Wed, 4 Jun 2025 09:47:24 +0000 Subject: [PATCH 6/6] Modify type in Pv_nTracks variable --- Rec/RecAlgs/src/LumiPVs_nobeamline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp index e95490e00c0..63ba3087034 100644 --- a/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp +++ b/Rec/RecAlgs/src/LumiPVs_nobeamline.cpp @@ -75,7 +75,7 @@ void LumiPVs_nobeamline::operator()( const LHCb::ODIN& odin, const InputVeloTrac +[]( const RecPV& pv ) { return std::ranges::count_if( pv.tracks(), []( const auto& t ) { return t->isVeloBackward(); } ); } }, - { "PV_nTracks", +[]( const RecPV& pv ) -> double { return pv.tracks().size(); } }, + { "PV_nTracks", +[]( const RecPV& pv ) -> int { return pv.tracks().size(); } }, { "PV_chi2ndof", +[]( const RecPV& pv ) { return pv.chi2() / pv.nDoF(); } }, { "PVX", +[]( const RecPV& pv ) { return pv.position().x(); } }, { "PVY", +[]( const RecPV& pv ) { return pv.position().y(); } }, -- GitLab