Skip to content
Snippets Groups Projects

SOA Track fix (follow up !2356)

Merged Alexander Leon Gilman requested to merge SOATrack_Fix into master
All threads resolved!

Fix conflicts with master. Related to !2356 (merged). Run concurrent to Phys!925 (closed) and LHCb!3011 (closed).

Edited by Rosen Matev

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
163 164 template <typename T>
164 165 constexpr bool is_legacy_particle = std::is_same_v<LHCb::Particle, T>;
165 166
167 template <typename T>
168 constexpr bool has_tracklike_API= std::is_same_v<LHCb::v2::Event::Tracks, T> ||
169 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::SSE, LHCb::Pr::ProxyBehaviour::ScatterGather, const LHCb::v2::Event::Tracks>, T> ||
170 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::Scalar, LHCb::Pr::ProxyBehaviour::ScatterGather, const LHCb::v2::Event::Tracks>, T> ||
171 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::Scalar, LHCb::Pr::ProxyBehaviour::ScalarFill, const LHCb::Pr::Muon::PIDs, const LHCb::v2::AssignedMasses, const LHCb::v2::CombDLLs, const LHCb::v2::Event::Tracks, const LHCb::v2::ParticleIDs, const LHCb::v2::RichPIDs>, T> ||
172 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::Scalar, LHCb::Pr::ProxyBehaviour::ScatterGather, const LHCb::Pr::Muon::PIDs, const LHCb::v2::AssignedMasses, const LHCb::v2::CombDLLs, const LHCb::v2::Event::Tracks, const LHCb::v2::ParticleIDs, const LHCb::v2::RichPIDs>, T> ||
173 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::SSE, LHCb::Pr::ProxyBehaviour::ScatterGather, const LHCb::Pr::Muon::PIDs, const LHCb::v2::AssignedMasses, const LHCb::v2::CombDLLs, const LHCb::v2::Event::Tracks, const LHCb::v2::ParticleIDs, const LHCb::v2::RichPIDs>, T> ||
174 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::SSE, LHCb::Pr::ProxyBehaviour::ScalarFill, const LHCb::Pr::Muon::PIDs, const LHCb::v2::AssignedMasses, const LHCb::v2::CombDLLs, const LHCb::v2::Event::Tracks, const LHCb::v2::ParticleIDs, const LHCb::v2::RichPIDs>, T>||
175 std::is_same_v<LHCb::Pr::detail::proxy_type<SIMDWrapper::SSE, LHCb::Pr::ProxyBehaviour::Contiguous, const LHCb::Pr::Muon::PIDs, const LHCb::v2::AssignedMasses, const LHCb::v2::CombDLLs, const LHCb::v2::Event::Tracks, const LHCb::v2::ParticleIDs, const LHCb::v2::RichPIDs>,T>;
176
  • instead of explicitly enumerating all types which are considered 'OK', would it not be better to generically verify that they satisfy certain criteria (i.e. if we were to use C++20, one would require them to satisfy a concept)?

    Specifically, one can use the detected idiom - see for example here, and defined here and documented here. That would avoid having to keep this list 'in sync' explicitly... and it would make it easier to migrate to use C++20 concepts when we finally move to gcc10...

  • I thought there was a way, without concepts, to check that an object has a method with a certain signature. For example that an object as .p() method.

  • Please register or sign in to reply
  • Gerhard Raven @graven started a thread on commit 0f9db83d
  • 38 41 struct X : public Function {
    39 42 template <typename Data>
    40 43 auto operator()( Data const& d ) const {
    41 return Sel::Utils::deref_if_ptr( d ).x();
    44 if constexpr ( Sel::Utils::has_tracklike_API<Data>)
    45 return Sel::Utils::deref_if_ptr( d ).x( (d.has_state(StateLocation::ClosestToBeam))? StateLocation::ClosestToBeam : StateLocation::FirstMeasurement);
    • as you know I don't like code which tries to 'guess' what the caller really wants -- so I would like (eventually) see that struct X would get some internal 'state', namely for which 'location' it should return X -- i.e. X would have to be constructed with an explicit location as argument -- as in general X is (as currently specified) not uniquely defined, and hence the caller (i.e. whatever code creates X) should be forced to explicitly specify the missing information (same holds for Y, ... etc). But feel free to resolve this into an issue and get back to it later.

    • Please register or sign in to reply
  • added 1 commit

    Compare with previous version

  • mentioned in merge request !2356 (merged)

  • assigned to @jbaptist

  • Alexander Leon Gilman changed the description

    changed the description

  • added 39 commits

    • 7352fdec - Added test for v2_tracks
    • ab6a4ea0 - Add draft of the track converter
    • e424f613 - Fixed formatting
    • 3c52f6aa - Use KeyedContainer as the input argument instead of a vector for v1::Track objects
    • 71bdebac - Changed names to Generic / Necessary Bracket added to new converter
    • c5f347bd - Fixed formatting
    • 55983c05 - Converters for PrFittedGeneric tracks
    • dff3d4fa - Merge branch 'mramospe-generic-tracks' into 'alexgilman_v2tracks'
    • 59d2ee89 - Replaced Particle_v2 with PrGenericTracks instead of PrFittedTracks
    • aae40532 - Move functions to convert the tracks to LHCb
    • 1757d6e6 - Allow to restrict the track types to convert
    • ca56a346 - Updated for dumping Generic tracks
    • 7e391d44 - Merge branch 'alexgilman_v2tracks' of https://gitlab.cern.ch/lhcb/Rec into alexgilman_v2tracks
    • a4a62d76 - Change the name of the template track converter
    • 9c421a4d - Use enum names as an input to the converters
    • 2e85c6d2 - Add QMT test for the track converters
    • 1dccaa22 - Tell to run the tests in CMakeLists.txt
    • 840361db - Simplify conversions
    • 6a5c0753 - Updating to account changes in GenericTrack->Track_SOA
    • b1ef652c - Updating to account changing in GenericTrack->Track_SOA
    • 6732c4f2 - Fixed formatting
    • 40c24ab6 - Merge remote-tracking branch 'origin/master' into alexgilman_v2tracks
    • 1c51f8ab - Bug fix in convert_tracks.py
    • bddb5ff6 - Fixed formatting
    • 0f9db83d - Updated accessors to TrackLike objects. has_tracklike_API function added to...
    • 5dade0f1 - Fixed formatting
    • b7b83cf1 - Updated based on removal of closestToBeamState in Track_SOA
    • 2995202b - Fixed formatting
    • e91a8a2c - Added support for AVX2 in has_tracklike_API
    • 277845c0 - simplify and generalise has_tracklike_API function
    • 6f23e94a - Fixed formatting
    • a1b7e9b7 - Apply 1 suggestion(s) to 1 file(s)
    • 0d0eabab - Fixed formatting
    • 902cad2c - Apply 1 suggestion(s) to 1 file(s)
    • 0c784a2f - Fixed formatting
    • 680d24e3 - Renamed Track_SOA state accessors
    • 910ded8d - Merge DistanceCalculator
    • cf19ad99 - Resolve conflicts
    • e333f43a - Resolve Conflicts

    Compare with previous version

  • mentioned in merge request Phys!925 (closed)

  • mentioned in merge request LHCb!3011 (closed)

  • Alexander Leon Gilman changed the description

    changed the description

  • @jbaptist Is it possible to run a test on the most recent commits? Please run with Phys!925 (closed) and LHCb!3011 (closed)

  • added 37 commits

    • e333f43a...72332504 - 2 commits from branch master
    • cc5cd06e - fix distance calulator
    • bb6c444b - Added test for v2_tracks
    • d019f6ce - Add draft of the track converter
    • 17db3587 - Fixed formatting
    • c2214451 - Use KeyedContainer as the input argument instead of a vector for v1::Track objects
    • 46e87c28 - Changed names to Generic / Necessary Bracket added to new converter
    • 838c1d19 - Fixed formatting
    • 1b0b3cc8 - Converters for PrFittedGeneric tracks
    • 31dcb648 - Replaced Particle_v2 with PrGenericTracks instead of PrFittedTracks
    • b1b881c8 - Updated for dumping Generic tracks
    • 4450f0d2 - Move functions to convert the tracks to LHCb
    • 5e35ca13 - Allow to restrict the track types to convert
    • bb9850c2 - Updating to account changes in GenericTrack->Track_SOA
    • ee13c342 - Change the name of the template track converter
    • e4fc01a5 - Use enum names as an input to the converters
    • 05bf80e7 - Add QMT test for the track converters
    • 471382de - Tell to run the tests in CMakeLists.txt
    • 5982dd17 - Simplify conversions
    • 937024a4 - Fixed formatting
    • 8adae476 - Bug fix in convert_tracks.py
    • fb0bf4f3 - Fixed formatting
    • 9ae8b07b - Updated accessors to TrackLike objects. has_tracklike_API function added to...
    • a3d8203a - Fixed formatting
    • f4e27b74 - Updated based on removal of closestToBeamState in Track_SOA
    • 420e842f - Fixed formatting
    • 1538d88e - Added support for AVX2 in has_tracklike_API
    • d5d22530 - simplify and generalise has_tracklike_API function
    • a0649b66 - Fixed formatting
    • 731cdcb1 - Apply 1 suggestion(s) to 1 file(s)
    • 20208967 - Fixed formatting
    • d0e17221 - Apply 1 suggestion(s) to 1 file(s)
    • 6603b58b - Fixed formatting
    • ce78b2fc - Renamed Track_SOA state accessors
    • 4661f666 - Rebase on master
    • 7badbf65 - Fix DistanceCalculator

    Compare with previous version

  • added 2 commits

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • 18d1a877 - Fix SOA Converter (actually)

    Compare with previous version

  • Rosen Matev resolved all threads

    resolved all threads

  • Rosen Matev approved this merge request

    approved this merge request

  • Rosen Matev changed title from SOA Track fix to SOA Track fix (follow up !2356)

    changed title from SOA Track fix to SOA Track fix (follow up !2356)

  • Rosen Matev mentioned in commit 8b881d5f

    mentioned in commit 8b881d5f

  • merged

  • Alex Pearce mentioned in merge request Moore!800 (merged)

    mentioned in merge request Moore!800 (merged)

  • mentioned in issue Moore#272 (closed)

  • Please register or sign in to reply
    Loading