From 5050abf586dbff8b19c485b1536ca9ff5c388634 Mon Sep 17 00:00:00 2001 From: Gerhard Raven <gerhard.raven@nikhef.nl> Date: Fri, 7 Mar 2025 23:45:38 +0100 Subject: [PATCH] prefer std::ranges over range::v3 --- Muon/MuonMatch/CMakeLists.txt | 1 - Muon/MuonMatch/src/MuonMatchVeloUTNtuple.cpp | 5 ++--- Muon/MuonMatch/src/MuonMatchVeloUTSoA.cpp | 10 +++++----- .../src/WeightedRelationTable.cpp | 1 - Pr/PrAlgorithms/CMakeLists.txt | 1 - Pr/PrAlgorithms/src/PrHybridSeeding.cpp | 2 -- Tr/TrackKernel/CMakeLists.txt | 6 ++---- Tr/TrackKernel/src/TrackTraj.cpp | 15 +++++++-------- Tr/TrackMonitors/CMakeLists.txt | 1 - Tr/TrackUtils/CMakeLists.txt | 1 - Tr/TrackUtils/src/TrackCloneKiller.cpp | 1 - cmake/RecDependencies.cmake | 1 - 12 files changed, 16 insertions(+), 29 deletions(-) diff --git a/Muon/MuonMatch/CMakeLists.txt b/Muon/MuonMatch/CMakeLists.txt index e0798caab58..d917f737c59 100644 --- a/Muon/MuonMatch/CMakeLists.txt +++ b/Muon/MuonMatch/CMakeLists.txt @@ -35,6 +35,5 @@ gaudi_add_module(MuonMatch LHCb::MuonDetLib LHCb::RecEvent LHCb::TrackEvent - Rangev3::rangev3 ROOT::Matrix ) diff --git a/Muon/MuonMatch/src/MuonMatchVeloUTNtuple.cpp b/Muon/MuonMatch/src/MuonMatchVeloUTNtuple.cpp index 036af7210c3..911a3a26136 100644 --- a/Muon/MuonMatch/src/MuonMatchVeloUTNtuple.cpp +++ b/Muon/MuonMatch/src/MuonMatchVeloUTNtuple.cpp @@ -38,9 +38,8 @@ #include <GaudiKernel/StdArrayAsProperty.h> #include <LHCbAlgs/Consumer.h> -#include "range/v3/view/transform.hpp" - #include <iostream> +#include <ranges> #include <sstream> #include <string> #include <type_traits> @@ -504,7 +503,7 @@ MuonMatchVeloUTNtuple::isDecayInFlightToMuon( const LHCb::MCParticle* mcparticle float MuonMatchVeloUTNtuple::impactParameter( const Track& track, const Vertices& pvs ) const { if ( !pvs.size() ) return -999.; - const auto ips2 = ranges::views::transform( pvs, [&track]( const Vertex& pv ) { + const auto ips2 = std::ranges::views::transform( pvs, [&track]( const Vertex& pv ) { const auto& pos = pv.position(); const auto& state = track.closestState( pos.Z() ); const auto line = Gaudi::Math::Line{ state.position(), state.slopes() }; diff --git a/Muon/MuonMatch/src/MuonMatchVeloUTSoA.cpp b/Muon/MuonMatch/src/MuonMatchVeloUTSoA.cpp index aeb3d5b8b65..8008b5ad2b0 100644 --- a/Muon/MuonMatch/src/MuonMatchVeloUTSoA.cpp +++ b/Muon/MuonMatch/src/MuonMatchVeloUTSoA.cpp @@ -9,7 +9,7 @@ * or submit itself to any jurisdiction. * \*****************************************************************************/ #include "MuonMatchVeloUTSoA.h" -#include "range/v3/view/transform.hpp" +#include <ranges> DECLARE_COMPONENT( MuonMatchVeloUTSoA ) @@ -228,18 +228,18 @@ std::tuple<float, float> MuonMatchVeloUTSoA::fitHits( const Hits& hits, const Hi const State& state ) const { float x_slope, x_chi2, x_ndof; - std::tie( x_slope, x_chi2, x_ndof ) = fitLinear( hits | ranges::views::transform( [&magnet_hit]( const Hit& h ) { + std::tie( x_slope, x_chi2, x_ndof ) = fitLinear( hits | std::ranges::views::transform( [&magnet_hit]( const Hit& h ) { return std::make_tuple( h.z - magnet_hit.z, h.x, h.sx2 ); } ) ); float y_chi2, y_ndof; std::tie( std::ignore, y_chi2, y_ndof ) = - m_fitY ? fitLinear( hits | ranges::views::transform( [&magnet_hit]( const Hit& h ) { + m_fitY ? fitLinear( hits | std::ranges::views::transform( [&magnet_hit]( const Hit& h ) { return std::make_tuple( h.z - magnet_hit.z, h.y, h.sy2 ); } ) ) : std::make_tuple( (float)state.ty, // no fit in y, just the chi2 between the slope before the magnet // with the matched hits - chi2( hits | ranges::views::transform( [&state, this]( const Hit& h ) { + chi2( hits | std::ranges::views::transform( [&state, this]( const Hit& h ) { return std::make_tuple( h.y, extrapolateYInStraightLine( state, h.z ), h.sy2 ); } ) ), (unsigned int)hits.size() ); @@ -269,7 +269,7 @@ std::tuple<float, float, unsigned int> MuonMatchVeloUTSoA::fitLinear( const Cont b /= Stt; const auto a = ( Sc - Sz * b ) / S; - const auto chisq = chi2( points | ranges::views::transform( [&a, &b]( const auto& point ) { + const auto chisq = chi2( points | std::ranges::views::transform( [&a, &b]( const auto& point ) { const auto [z, c, s2] = point; return std::make_tuple( c, a + b * z, s2 ); } ) ); diff --git a/Phys/RelatedInfoTools/src/WeightedRelationTable.cpp b/Phys/RelatedInfoTools/src/WeightedRelationTable.cpp index f04dcce2c13..a3404c2546f 100644 --- a/Phys/RelatedInfoTools/src/WeightedRelationTable.cpp +++ b/Phys/RelatedInfoTools/src/WeightedRelationTable.cpp @@ -17,7 +17,6 @@ #include "LHCbAlgs/Transformer.h" #include "Relations/Relation1D.h" #include "Relations/RelationWeighted1D.h" -#include "range/v3/view/zip.hpp" namespace { using WeightedRelationTable = LHCb::RelationWeighted1D<LHCb::Particle, LHCb::Particle, float>; diff --git a/Pr/PrAlgorithms/CMakeLists.txt b/Pr/PrAlgorithms/CMakeLists.txt index 947c0d59445..de3251475df 100644 --- a/Pr/PrAlgorithms/CMakeLists.txt +++ b/Pr/PrAlgorithms/CMakeLists.txt @@ -50,7 +50,6 @@ gaudi_add_module(PrAlgorithms LHCb::UTDetLib LHCb::UTKernelLib LHCb::VPDetLib - Rangev3::rangev3 Rec::PrKernel Rec::TrackInterfacesLib ROOT::MathCore diff --git a/Pr/PrAlgorithms/src/PrHybridSeeding.cpp b/Pr/PrAlgorithms/src/PrHybridSeeding.cpp index 44f8b976691..392f482cebb 100644 --- a/Pr/PrAlgorithms/src/PrHybridSeeding.cpp +++ b/Pr/PrAlgorithms/src/PrHybridSeeding.cpp @@ -40,8 +40,6 @@ #include "PrTrackFitterXZ.h" #include "PrTrackFitterYZ.h" #include "TrackInterfaces/ITrackMomentumEstimate.h" -#include <range/v3/algorithm/max.hpp> -#include <range/v3/view/transform.hpp> #include "HoughSearch.h" namespace LHCb::Pr { diff --git a/Tr/TrackKernel/CMakeLists.txt b/Tr/TrackKernel/CMakeLists.txt index 4e03ddeed94..8795a61a8d1 100644 --- a/Tr/TrackKernel/CMakeLists.txt +++ b/Tr/TrackKernel/CMakeLists.txt @@ -18,7 +18,7 @@ gaudi_add_library(TrackKernel src/CubicStateInterpolationTraj.cpp src/CubicStateVectorInterpolationTraj.cpp src/LineDifTraj.cpp - src/PrimaryVertexUtils.cpp + src/PrimaryVertexUtils.cpp src/StateTraj.cpp src/Track1DTabFunc.cpp src/TrackStateVertex.cpp @@ -34,11 +34,9 @@ gaudi_add_library(TrackKernel LHCb::TrackEvent ROOT::MathCore Rec::TrackFitEvent - LHCb::MagnetLib + LHCb::MagnetLib PRIVATE Boost::headers - GSL::gsl - Rangev3::rangev3 ) gaudi_add_dictionary(TrackKernelDict diff --git a/Tr/TrackKernel/src/TrackTraj.cpp b/Tr/TrackKernel/src/TrackTraj.cpp index cf819150984..5ed590d6734 100644 --- a/Tr/TrackKernel/src/TrackTraj.cpp +++ b/Tr/TrackKernel/src/TrackTraj.cpp @@ -16,25 +16,24 @@ #include "Kernel/STLExtensions.h" #include "TrackKernel/TrackFunctors.h" #include "gsl/gsl_integration.h" -#include "range/v3/view/reverse.hpp" -#include "range/v3/view/transform.hpp" #include <algorithm> +#include <ranges> namespace { - template <typename T> - decltype( auto ) front( LHCb::span<T, gsl::dynamic_extent> s ) { + template <typename T, auto N> + decltype( auto ) front( LHCb::span<T, N> s ) { return s.first( 1 )[0]; } - template <typename T> - decltype( auto ) back( LHCb::span<T, gsl::dynamic_extent> s ) { + template <typename T, auto N> + decltype( auto ) back( LHCb::span<T, N> s ) { return s.last( 1 )[0]; } const auto append_range = []( auto& container, auto&& range ) { return container.insert( container.end(), range.begin(), range.end() ); }; - const auto take_address = ranges::views::transform( []( const auto& i ) { return &i; } ); + const auto take_address = std::ranges::views::transform( []( const auto& i ) { return &i; } ); } // namespace namespace LHCb { @@ -130,7 +129,7 @@ namespace LHCb { if ( front( states ).z() < back( states ).z() ) { append_range( m_states, states | take_address ); } else { - append_range( m_states, states | ranges::views::reverse | take_address ); + append_range( m_states, states | std::ranges::views::reverse | take_address ); } } // check states and initialize cache diff --git a/Tr/TrackMonitors/CMakeLists.txt b/Tr/TrackMonitors/CMakeLists.txt index 2f205a2d4f8..fffb7419700 100644 --- a/Tr/TrackMonitors/CMakeLists.txt +++ b/Tr/TrackMonitors/CMakeLists.txt @@ -66,7 +66,6 @@ gaudi_add_module(TrackMonitors LHCb::UTDetLib LHCb::VPDetLib LHCb::RichFutureUtils - Rangev3::rangev3 Rec::TrackFitEvent Rec::TrackInterfacesLib Rec::TrackKernel diff --git a/Tr/TrackUtils/CMakeLists.txt b/Tr/TrackUtils/CMakeLists.txt index bb5b59d5b91..e754b0df4d0 100644 --- a/Tr/TrackUtils/CMakeLists.txt +++ b/Tr/TrackUtils/CMakeLists.txt @@ -64,7 +64,6 @@ gaudi_add_module(TrackUtils LHCb::PhysEvent LHCb::RecEvent LHCb::TrackEvent - Rangev3::rangev3 Rec::LoKiPhysLib Rec::TrackFitEvent Rec::TrackInterfacesLib diff --git a/Tr/TrackUtils/src/TrackCloneKiller.cpp b/Tr/TrackUtils/src/TrackCloneKiller.cpp index 7d615b0a827..3433a695733 100644 --- a/Tr/TrackUtils/src/TrackCloneKiller.cpp +++ b/Tr/TrackUtils/src/TrackCloneKiller.cpp @@ -19,7 +19,6 @@ #include "TrackInterfaces/ITrackCloneFinder.h" #include "TrackKernel/TrackCloneData.h" #include "TrackKernel/TrackFunctors.h" -#include "range/v3/version.hpp" #include <algorithm> #include <array> #include <cassert> diff --git a/cmake/RecDependencies.cmake b/cmake/RecDependencies.cmake index 79572690624..d68b4134d0b 100644 --- a/cmake/RecDependencies.cmake +++ b/cmake/RecDependencies.cmake @@ -51,7 +51,6 @@ if(WITH_Rec_PRIVATE_DEPENDENCIES) find_package(GSL REQUIRED) find_package(nlohmann_json REQUIRED) find_package(Python REQUIRED Development Interpreter) - find_package(Rangev3 REQUIRED) find_package(ROOT REQUIRED Core GenVector -- GitLab