From e81ef3ced63579f8b6f368da8c49c1e573d7b564 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Tue, 2 Apr 2024 15:02:41 +0200 Subject: [PATCH 1/2] move transform helpers --- .../EventData/GenericBoundTrackParameters.hpp | 8 +-- .../GenericCurvilinearTrackParameters.hpp | 7 +- .../MultiComponentTrackParameters.hpp | 2 +- .../Acts/EventData/MultiTrajectoryHelpers.hpp | 10 +-- ...eToBound.hpp => TransformationHelpers.hpp} | 13 +++- .../CorrectedTransformationFreeToBound.hpp | 1 - .../detail/TransformationBoundToFree.hpp | 31 --------- Core/include/Acts/Propagator/AtlasStepper.hpp | 10 +-- Core/include/Acts/Propagator/EigenStepper.ipp | 6 +- Core/src/EventData/CMakeLists.txt | 3 +- .../CorrectedTransformationFreeToBound.cpp | 8 +-- .../EventData/TransformationBoundToFree.cpp | 40 ----------- ...eToBound.cpp => TransformationHelpers.cpp} | 38 +++++++++-- Core/src/Propagator/StraightLineStepper.cpp | 6 +- .../Propagator/detail/CovarianceEngine.cpp | 17 +++-- Core/src/Propagator/detail/JacobianEngine.cpp | 1 - Core/src/Surfaces/DiscSurface.cpp | 1 - Core/src/Surfaces/LineSurface.cpp | 1 - Core/src/Surfaces/Surface.cpp | 1 - .../Io/Root/src/RootTrackStatesWriter.cpp | 5 +- .../Digitization/UncorrelatedHitSmearer.hpp | 8 +-- Tests/UnitTests/Core/EventData/CMakeLists.txt | 3 +- .../EventData/TransformBoundToFreeTests.cpp | 68 ------------------- ...undTests.cpp => TransformHelpersTests.cpp} | 59 ++++++++++++---- .../Core/Propagator/AtlasStepperTests.cpp | 4 +- .../BoundToCurvilinearConversionTests.cpp | 6 +- .../Core/Propagator/CovarianceEngineTests.cpp | 2 +- .../Core/Propagator/EigenStepperTests.cpp | 8 +-- .../Propagator/StraightLineStepperTests.cpp | 8 +-- .../TrackFitting/GsfComponentMergingTests.cpp | 8 +-- .../UnitTests/Core/TrackFitting/GsfTests.cpp | 1 - .../UncorrelatedHitSmearerTests.cpp | 6 +- 32 files changed, 152 insertions(+), 238 deletions(-) rename Core/include/Acts/EventData/{detail/TransformationFreeToBound.hpp => TransformationHelpers.hpp} (84%) delete mode 100644 Core/include/Acts/EventData/detail/TransformationBoundToFree.hpp delete mode 100644 Core/src/EventData/TransformationBoundToFree.cpp rename Core/src/EventData/{TransformationFreeToBound.cpp => TransformationHelpers.cpp} (64%) delete mode 100644 Tests/UnitTests/Core/EventData/TransformBoundToFreeTests.cpp rename Tests/UnitTests/Core/EventData/{TransformFreeToBoundTests.cpp => TransformHelpersTests.cpp} (74%) diff --git a/Core/include/Acts/EventData/GenericBoundTrackParameters.hpp b/Core/include/Acts/EventData/GenericBoundTrackParameters.hpp index 10c5a1fb193..3d256630f76 100644 --- a/Core/include/Acts/EventData/GenericBoundTrackParameters.hpp +++ b/Core/include/Acts/EventData/GenericBoundTrackParameters.hpp @@ -9,8 +9,8 @@ #pragma once #include "Acts/Definitions/Tolerance.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/PrintParameters.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/UnitVectors.hpp" #include "Acts/Utilities/detail/periodic.hpp" @@ -93,9 +93,9 @@ class GenericBoundTrackParameters { std::optional cov, ParticleHypothesis particleHypothesis, ActsScalar tolerance = s_onSurfaceTolerance) { - Result bound = detail::transformFreeToBoundParameters( - pos4.segment<3>(ePos0), pos4[eTime], dir, qOverP, *surface, geoCtx, - tolerance); + Result bound = + transformFreeToBoundParameters(pos4.segment<3>(ePos0), pos4[eTime], dir, + qOverP, *surface, geoCtx, tolerance); if (!bound.ok()) { return bound.error(); diff --git a/Core/include/Acts/EventData/GenericCurvilinearTrackParameters.hpp b/Core/include/Acts/EventData/GenericCurvilinearTrackParameters.hpp index 2baf0327cff..b9119c01c91 100644 --- a/Core/include/Acts/EventData/GenericCurvilinearTrackParameters.hpp +++ b/Core/include/Acts/EventData/GenericCurvilinearTrackParameters.hpp @@ -47,8 +47,7 @@ class GenericCurvilinearTrackParameters std::optional cov, ParticleHypothesis particleHypothesis) : Base(Surface::makeShared(pos4.segment<3>(ePos0), dir), - detail::transformFreeToCurvilinearParameters(pos4[eTime], dir, - qOverP), + transformFreeToCurvilinearParameters(pos4[eTime], dir, qOverP), std::move(cov), std::move(particleHypothesis)) {} /// Construct from four-position, angles, and qOverP. @@ -65,8 +64,8 @@ class GenericCurvilinearTrackParameters ParticleHypothesis particleHypothesis) : Base(Surface::makeShared( pos4.segment<3>(ePos0), makeDirectionFromPhiTheta(phi, theta)), - detail::transformFreeToCurvilinearParameters(pos4[eTime], phi, - theta, qOverP), + transformFreeToCurvilinearParameters(pos4[eTime], phi, theta, + qOverP), std::move(cov), std::move(particleHypothesis)) {} /// Converts a bound track parameter with a different hypothesis. diff --git a/Core/include/Acts/EventData/MultiComponentTrackParameters.hpp b/Core/include/Acts/EventData/MultiComponentTrackParameters.hpp index 75537d475dc..3941d6e807d 100644 --- a/Core/include/Acts/EventData/MultiComponentTrackParameters.hpp +++ b/Core/include/Acts/EventData/MultiComponentTrackParameters.hpp @@ -275,7 +275,7 @@ class MultiComponentCurvilinearTrackParameters .position(); BoundVector bv = - detail::transformFreeToCurvilinearParameters(pos4[eTime], dir, qop); + transformFreeToCurvilinearParameters(pos4[eTime], dir, qop); // Because of the projection this should never fail bv.template segment<2>(eBoundLoc0) = diff --git a/Core/include/Acts/EventData/MultiTrajectoryHelpers.hpp b/Core/include/Acts/EventData/MultiTrajectoryHelpers.hpp index 40eff303500..94bef2db8f7 100644 --- a/Core/include/Acts/EventData/MultiTrajectoryHelpers.hpp +++ b/Core/include/Acts/EventData/MultiTrajectoryHelpers.hpp @@ -9,7 +9,7 @@ #pragma once #include "Acts/EventData/MultiTrajectory.hpp" #include "Acts/EventData/TrackContainer.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/Layer.hpp" #include "Acts/Geometry/TrackingVolume.hpp" #include "Acts/Surfaces/Surface.hpp" @@ -146,8 +146,8 @@ VolumeTrajectoryStateContainer trajectoryState( template FreeVector freeFiltered(const GeometryContext& gctx, const track_state_proxy_t& trackStateProxy) { - return detail::transformBoundToFreeParameters( - trackStateProxy.referenceSurface(), gctx, trackStateProxy.filtered()); + return transformBoundToFreeParameters(trackStateProxy.referenceSurface(), + gctx, trackStateProxy.filtered()); } /// @brief Transforms the smoothed parameters from a @c TrackStateProxy to free @@ -161,8 +161,8 @@ FreeVector freeFiltered(const GeometryContext& gctx, template FreeVector freeSmoothed(const GeometryContext& gctx, const track_state_proxy_t& trackStateProxy) { - return detail::transformBoundToFreeParameters( - trackStateProxy.referenceSurface(), gctx, trackStateProxy.smoothed()); + return transformBoundToFreeParameters(trackStateProxy.referenceSurface(), + gctx, trackStateProxy.smoothed()); } } // namespace MultiTrajectoryHelpers diff --git a/Core/include/Acts/EventData/detail/TransformationFreeToBound.hpp b/Core/include/Acts/EventData/TransformationHelpers.hpp similarity index 84% rename from Core/include/Acts/EventData/detail/TransformationFreeToBound.hpp rename to Core/include/Acts/EventData/TransformationHelpers.hpp index c7c73dfd140..0bafd8a4553 100644 --- a/Core/include/Acts/EventData/detail/TransformationFreeToBound.hpp +++ b/Core/include/Acts/EventData/TransformationHelpers.hpp @@ -1,6 +1,6 @@ // This file is part of the Acts project. // -// Copyright (C) 2016-2020 CERN for the benefit of the Acts project +// Copyright (C) 2024 CERN for the benefit of the Acts project // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this @@ -18,7 +18,15 @@ namespace Acts { class Surface; -namespace detail { +/// Transform bound track parameters into equivalent free track parameters. +/// +/// @param surface Surface onto which the input parameters are bound +/// @param geoCtx Geometry context for the local-to-global transformation +/// @param boundParams Bound track parameters vector +/// @return Equivalent free trackparameters vector +FreeVector transformBoundToFreeParameters(const Surface& surface, + const GeometryContext& geoCtx, + const BoundVector& boundParams); /// Convert free track parameters to bound track parameters. /// @@ -78,5 +86,4 @@ BoundVector transformFreeToCurvilinearParameters(ActsScalar time, ActsScalar theta, ActsScalar qOverP); -} // namespace detail } // namespace Acts diff --git a/Core/include/Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp b/Core/include/Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp index 9fec6b91201..a6fc0727ad0 100644 --- a/Core/include/Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp +++ b/Core/include/Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp @@ -11,7 +11,6 @@ #include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/Direction.hpp" #include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/Logger.hpp" diff --git a/Core/include/Acts/EventData/detail/TransformationBoundToFree.hpp b/Core/include/Acts/EventData/detail/TransformationBoundToFree.hpp deleted file mode 100644 index c49f128d8ae..00000000000 --- a/Core/include/Acts/EventData/detail/TransformationBoundToFree.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2020 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#pragma once - -#include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/Geometry/GeometryContext.hpp" - -namespace Acts { - -class Surface; - -namespace detail { - -/// Transform bound track parameters into equivalent free track parameters. -/// -/// @param surface Surface onto which the input parameters are bound -/// @param geoCtx Geometry context for the local-to-global transformation -/// @param boundParams Bound track parameters vector -/// @return Equivalent free trackparameters vector -FreeVector transformBoundToFreeParameters(const Surface& surface, - const GeometryContext& geoCtx, - const BoundVector& boundParams); - -} // namespace detail -} // namespace Acts diff --git a/Core/include/Acts/Propagator/AtlasStepper.hpp b/Core/include/Acts/Propagator/AtlasStepper.hpp index f3c9b8a7984..4eaa7a0c257 100644 --- a/Core/include/Acts/Propagator/AtlasStepper.hpp +++ b/Core/include/Acts/Propagator/AtlasStepper.hpp @@ -14,8 +14,8 @@ #include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/Units.hpp" #include "Acts/EventData/TrackParameters.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" #include "Acts/MagneticField/MagneticFieldProvider.hpp" @@ -313,10 +313,10 @@ class AtlasStepper { const BoundSquareMatrix& cov, const Surface& surface, const double stepSize = std::numeric_limits::max()) const { // Update the stepping state - update(state, - detail::transformBoundToFreeParameters(surface, state.geoContext, - boundParams), - boundParams, cov, surface); + update( + state, + transformBoundToFreeParameters(surface, state.geoContext, boundParams), + boundParams, cov, surface); state.stepSize = ConstrainedStep(stepSize); state.pathAccumulated = 0.; diff --git a/Core/include/Acts/Propagator/EigenStepper.ipp b/Core/include/Acts/Propagator/EigenStepper.ipp index 8f366266e71..c68691f6ba7 100644 --- a/Core/include/Acts/Propagator/EigenStepper.ipp +++ b/Core/include/Acts/Propagator/EigenStepper.ipp @@ -6,7 +6,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Propagator/ConstrainedStep.hpp" #include "Acts/Propagator/detail/CovarianceEngine.hpp" @@ -29,8 +29,8 @@ void Acts::EigenStepper::resetState(State& state, const BoundSquareMatrix& cov, const Surface& surface, const double stepSize) const { - FreeVector freeParams = detail::transformBoundToFreeParameters( - surface, state.geoContext, boundParams); + FreeVector freeParams = + transformBoundToFreeParameters(surface, state.geoContext, boundParams); // Update the stepping state state.pars = freeParams; diff --git a/Core/src/EventData/CMakeLists.txt b/Core/src/EventData/CMakeLists.txt index 8064f509ab3..7b43dfb74ba 100644 --- a/Core/src/EventData/CMakeLists.txt +++ b/Core/src/EventData/CMakeLists.txt @@ -3,8 +3,7 @@ target_sources( PRIVATE PrintParameters.cpp TrackParameters.cpp - TransformationBoundToFree.cpp - TransformationFreeToBound.cpp + TransformationHelpers.cpp CorrectedTransformationFreeToBound.cpp TrackStatePropMask.cpp VectorMultiTrajectory.cpp diff --git a/Core/src/EventData/CorrectedTransformationFreeToBound.cpp b/Core/src/EventData/CorrectedTransformationFreeToBound.cpp index 81ba9bc774c..3c9742e91a1 100644 --- a/Core/src/EventData/CorrectedTransformationFreeToBound.cpp +++ b/Core/src/EventData/CorrectedTransformationFreeToBound.cpp @@ -9,7 +9,7 @@ #include "Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp" #include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Surfaces/RegularSurface.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/Intersection.hpp" @@ -133,7 +133,7 @@ Acts::detail::CorrectedFreeToBoundTransformer::operator()( const auto& [paramsNom, mweightNom, cweightNom] = sampledFreeParams[0]; // Transform the free to bound auto nominalRes = - detail::transformFreeToBoundParameters(paramsNom, surface, geoContext); + transformFreeToBoundParameters(paramsNom, surface, geoContext); // Not successful, fall back to nominal free to bound transformation if (!nominalRes.ok()) { ACTS_WARNING( @@ -160,8 +160,8 @@ Acts::detail::CorrectedFreeToBoundTransformer::operator()( correctedFreeParams.segment<3>(eFreePos0) = intersection.position(); // Transform the free to bound - auto result = detail::transformFreeToBoundParameters(correctedFreeParams, - surface, geoContext); + auto result = transformFreeToBoundParameters(correctedFreeParams, surface, + geoContext); // Not successful, fall back to nominal free to bound transformation if (!result.ok()) { ACTS_WARNING( diff --git a/Core/src/EventData/TransformationBoundToFree.cpp b/Core/src/EventData/TransformationBoundToFree.cpp deleted file mode 100644 index ad0b886c1f9..00000000000 --- a/Core/src/EventData/TransformationBoundToFree.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2016-2020 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" - -#include "Acts/Definitions/Algebra.hpp" -#include "Acts/Definitions/Common.hpp" -#include "Acts/Surfaces/Surface.hpp" -#include "Acts/Utilities/UnitVectors.hpp" - -#include - -Acts::FreeVector Acts::detail::transformBoundToFreeParameters( - const Acts::Surface& surface, const GeometryContext& geoCtx, - const Acts::BoundVector& boundParams) { - // convert angles to global unit direction vector - Vector3 direction = makeDirectionFromPhiTheta(boundParams[eBoundPhi], - boundParams[eBoundTheta]); - - // convert local position to global position vector - Vector2 local(boundParams[eBoundLoc0], boundParams[eBoundLoc1]); - Vector3 position = surface.localToGlobal(geoCtx, local, direction); - - // construct full free-vector. time and q/p stay as-is. - FreeVector freeParams = FreeVector::Zero(); - freeParams[eFreePos0] = position[ePos0]; - freeParams[eFreePos1] = position[ePos1]; - freeParams[eFreePos2] = position[ePos2]; - freeParams[eFreeTime] = boundParams[eBoundTime]; - freeParams[eFreeDir0] = direction[eMom0]; - freeParams[eFreeDir1] = direction[eMom1]; - freeParams[eFreeDir2] = direction[eMom2]; - freeParams[eFreeQOverP] = boundParams[eBoundQOverP]; - return freeParams; -} diff --git a/Core/src/EventData/TransformationFreeToBound.cpp b/Core/src/EventData/TransformationHelpers.cpp similarity index 64% rename from Core/src/EventData/TransformationFreeToBound.cpp rename to Core/src/EventData/TransformationHelpers.cpp index 2f03c81368d..8bf6781fff7 100644 --- a/Core/src/EventData/TransformationFreeToBound.cpp +++ b/Core/src/EventData/TransformationHelpers.cpp @@ -1,20 +1,46 @@ // This file is part of the Acts project. // -// Copyright (C) 2020 CERN for the benefit of the Acts project +// Copyright (C) 2016-2020 CERN for the benefit of the Acts project // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" +#include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/Common.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/Result.hpp" +#include "Acts/Utilities/UnitVectors.hpp" #include -Acts::Result Acts::detail::transformFreeToBoundParameters( +Acts::FreeVector Acts::transformBoundToFreeParameters( + const Acts::Surface& surface, const GeometryContext& geoCtx, + const Acts::BoundVector& boundParams) { + // convert angles to global unit direction vector + Vector3 direction = makeDirectionFromPhiTheta(boundParams[eBoundPhi], + boundParams[eBoundTheta]); + + // convert local position to global position vector + Vector2 local(boundParams[eBoundLoc0], boundParams[eBoundLoc1]); + Vector3 position = surface.localToGlobal(geoCtx, local, direction); + + // construct full free-vector. time and q/p stay as-is. + FreeVector freeParams = FreeVector::Zero(); + freeParams[eFreePos0] = position[ePos0]; + freeParams[eFreePos1] = position[ePos1]; + freeParams[eFreePos2] = position[ePos2]; + freeParams[eFreeTime] = boundParams[eBoundTime]; + freeParams[eFreeDir0] = direction[eMom0]; + freeParams[eFreeDir1] = direction[eMom1]; + freeParams[eFreeDir2] = direction[eMom2]; + freeParams[eFreeQOverP] = boundParams[eBoundQOverP]; + return freeParams; +} + +Acts::Result Acts::transformFreeToBoundParameters( const FreeVector& freeParams, const Surface& surface, const GeometryContext& geoCtx, ActsScalar tolerance) { // initialize the bound vector @@ -38,7 +64,7 @@ Acts::Result Acts::detail::transformFreeToBoundParameters( return Result::success(bp); } -Acts::Result Acts::detail::transformFreeToBoundParameters( +Acts::Result Acts::transformFreeToBoundParameters( const Acts::Vector3& position, ActsScalar time, const Acts::Vector3& direction, ActsScalar qOverP, const Acts::Surface& surface, const Acts::GeometryContext& geoCtx, @@ -62,7 +88,7 @@ Acts::Result Acts::detail::transformFreeToBoundParameters( return Result::success(bp); } -Acts::BoundVector Acts::detail::transformFreeToCurvilinearParameters( +Acts::BoundVector Acts::transformFreeToCurvilinearParameters( ActsScalar time, ActsScalar phi, ActsScalar theta, ActsScalar qOverP) { BoundVector bp = BoundVector::Zero(); // local coordinates are zero by construction @@ -73,7 +99,7 @@ Acts::BoundVector Acts::detail::transformFreeToCurvilinearParameters( return bp; } -Acts::BoundVector Acts::detail::transformFreeToCurvilinearParameters( +Acts::BoundVector Acts::transformFreeToCurvilinearParameters( ActsScalar time, const Vector3& direction, ActsScalar qOverP) { BoundVector bp = BoundVector::Zero(); // local coordinates are zero by construction diff --git a/Core/src/Propagator/StraightLineStepper.cpp b/Core/src/Propagator/StraightLineStepper.cpp index 0b8049ef100..361eff4d9f7 100644 --- a/Core/src/Propagator/StraightLineStepper.cpp +++ b/Core/src/Propagator/StraightLineStepper.cpp @@ -8,7 +8,7 @@ #include "Acts/Propagator/StraightLineStepper.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Propagator/detail/CovarianceEngine.hpp" namespace Acts { @@ -69,8 +69,8 @@ void StraightLineStepper::resetState(State& state, const BoundSquareMatrix& cov, const Surface& surface, const double stepSize) const { - FreeVector freeParams = detail::transformBoundToFreeParameters( - surface, state.geoContext, boundParams); + FreeVector freeParams = + transformBoundToFreeParameters(surface, state.geoContext, boundParams); // Update the stepping state state.pars = freeParams; diff --git a/Core/src/Propagator/detail/CovarianceEngine.cpp b/Core/src/Propagator/detail/CovarianceEngine.cpp index 8668a1e60b6..9860fdc86ba 100644 --- a/Core/src/Propagator/detail/CovarianceEngine.cpp +++ b/Core/src/Propagator/detail/CovarianceEngine.cpp @@ -13,9 +13,8 @@ #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/EventData/GenericBoundTrackParameters.hpp" #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Propagator/detail/JacobianEngine.hpp" #include "Acts/Utilities/AlgebraHelpers.hpp" #include "Acts/Utilities/JacobianHelpers.hpp" @@ -42,8 +41,8 @@ Result detail::boundState( double accumulatedPath, const FreeToBoundCorrection& freeToBoundCorrection) { // Create the bound parameters - Result bv = detail::transformFreeToBoundParameters( - freeParameters, surface, geoContext); + Result bv = + transformFreeToBoundParameters(freeParameters, surface, geoContext); if (!bv.ok()) { return bv.error(); } @@ -139,8 +138,8 @@ void detail::transportCovarianceToBound( auto correctedValue = correctedRes.value(); BoundVector boundParams = std::get(correctedValue); // 1. Update the free parameters with the corrected bound parameters - freeParameters = detail::transformBoundToFreeParameters( - surface, geoContext, boundParams); + freeParameters = + transformBoundToFreeParameters(surface, geoContext, boundParams); // 2. Update the bound covariance boundCovariance = std::get(correctedValue); @@ -194,11 +193,11 @@ Acts::Result detail::boundToBoundConversion( const Surface& targetSurface, const Vector3& bField) { const auto& sourceSurface = boundParameters.referenceSurface(); - Acts::FreeVector freePars = Acts::detail::transformBoundToFreeParameters( + Acts::FreeVector freePars = Acts::transformBoundToFreeParameters( sourceSurface, gctx, boundParameters.parameters()); - auto res = Acts::detail::transformFreeToBoundParameters(freePars, - targetSurface, gctx); + auto res = + Acts::transformFreeToBoundParameters(freePars, targetSurface, gctx); if (!res.ok()) { return res.error(); diff --git a/Core/src/Propagator/detail/JacobianEngine.cpp b/Core/src/Propagator/detail/JacobianEngine.cpp index a9483200fba..c6366530187 100644 --- a/Core/src/Propagator/detail/JacobianEngine.cpp +++ b/Core/src/Propagator/detail/JacobianEngine.cpp @@ -11,7 +11,6 @@ #include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/Tolerance.hpp" #include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/AlgebraHelpers.hpp" diff --git a/Core/src/Surfaces/DiscSurface.cpp b/Core/src/Surfaces/DiscSurface.cpp index 38219f5b2a7..c30eba7ca0e 100644 --- a/Core/src/Surfaces/DiscSurface.cpp +++ b/Core/src/Surfaces/DiscSurface.cpp @@ -9,7 +9,6 @@ #include "Acts/Surfaces/DiscSurface.hpp" #include "Acts/Definitions/Algebra.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryObject.hpp" #include "Acts/Surfaces/DiscBounds.hpp" #include "Acts/Surfaces/DiscTrapezoidBounds.hpp" diff --git a/Core/src/Surfaces/LineSurface.cpp b/Core/src/Surfaces/LineSurface.cpp index 58cb9d524ff..05c3b9879b2 100644 --- a/Core/src/Surfaces/LineSurface.cpp +++ b/Core/src/Surfaces/LineSurface.cpp @@ -9,7 +9,6 @@ #include "Acts/Surfaces/LineSurface.hpp" #include "Acts/Definitions/Algebra.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryObject.hpp" #include "Acts/Surfaces/InfiniteBounds.hpp" #include "Acts/Surfaces/LineBounds.hpp" diff --git a/Core/src/Surfaces/Surface.cpp b/Core/src/Surfaces/Surface.cpp index 7846200b616..2eccf6f5b36 100644 --- a/Core/src/Surfaces/Surface.cpp +++ b/Core/src/Surfaces/Surface.cpp @@ -9,7 +9,6 @@ #include "Acts/Surfaces/Surface.hpp" #include "Acts/Definitions/Common.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Surfaces/SurfaceBounds.hpp" #include "Acts/Surfaces/detail/AlignmentHelper.hpp" #include "Acts/Utilities/JacobianHelpers.hpp" diff --git a/Examples/Io/Root/src/RootTrackStatesWriter.cpp b/Examples/Io/Root/src/RootTrackStatesWriter.cpp index d37dd1c55e5..13c15d32090 100644 --- a/Examples/Io/Root/src/RootTrackStatesWriter.cpp +++ b/Examples/Io/Root/src/RootTrackStatesWriter.cpp @@ -14,8 +14,8 @@ #include "Acts/EventData/MultiTrajectory.hpp" #include "Acts/EventData/MultiTrajectoryHelpers.hpp" #include "Acts/EventData/TrackParameters.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/VectorMultiTrajectory.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Utilities/MultiIndex.hpp" #include "Acts/Utilities/detail/periodic.hpp" @@ -603,8 +603,7 @@ ActsExamples::ProcessCode ActsExamples::RootTrackStatesWriter::writeT( // further track parameter info Acts::FreeVector freeParams = - Acts::detail::transformBoundToFreeParameters(surface, gctx, - parameters); + Acts::transformBoundToFreeParameters(surface, gctx, parameters); m_x[ipar].push_back(freeParams[Acts::eFreePos0]); m_y[ipar].push_back(freeParams[Acts::eFreePos1]); m_z[ipar].push_back(freeParams[Acts::eFreePos2]); diff --git a/Fatras/include/ActsFatras/Digitization/UncorrelatedHitSmearer.hpp b/Fatras/include/ActsFatras/Digitization/UncorrelatedHitSmearer.hpp index b1c2b17bb5c..565559e01c2 100644 --- a/Fatras/include/ActsFatras/Digitization/UncorrelatedHitSmearer.hpp +++ b/Fatras/include/ActsFatras/Digitization/UncorrelatedHitSmearer.hpp @@ -9,7 +9,7 @@ #pragma once #include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/DetectorElementBase.hpp" #include "Acts/Surfaces/Surface.hpp" #include "Acts/Utilities/Result.hpp" @@ -74,9 +74,9 @@ struct BoundParametersSmearer { // construct full bound parameters. they are probably not all needed, but it // is easier to just create them all and then select the requested ones. Acts::Result boundParamsRes = - Acts::detail::transformFreeToBoundParameters( - hit.position(), hit.time(), hit.direction(), 0, surface, geoCtx, - tolerance); + Acts::transformFreeToBoundParameters(hit.position(), hit.time(), + hit.direction(), 0, surface, + geoCtx, tolerance); if (!boundParamsRes.ok()) { return boundParamsRes.error(); diff --git a/Tests/UnitTests/Core/EventData/CMakeLists.txt b/Tests/UnitTests/Core/EventData/CMakeLists.txt index aa547c8736b..2189b4b478f 100644 --- a/Tests/UnitTests/Core/EventData/CMakeLists.txt +++ b/Tests/UnitTests/Core/EventData/CMakeLists.txt @@ -6,8 +6,7 @@ add_unittest(MeasurementHelpers MeasurementHelpersTests.cpp) add_unittest(Measurement MeasurementTests.cpp) add_unittest(MultiComponentBoundTrackParameters MultiComponentBoundTrackParametersTests.cpp) add_unittest(MultiTrajectory MultiTrajectoryTests.cpp) -add_unittest(TransformBoundToFree TransformBoundToFreeTests.cpp) -add_unittest(TransformFreeToBound TransformFreeToBoundTests.cpp) +add_unittest(TransformHelpers TransformHelpersTests.cpp) add_unittest(CorrectedTransformFreeToBound CorrectedTransformFreeToBoundTests.cpp) add_unittest(Track TrackTests.cpp) target_sources(ActsUnitTestTrack PUBLIC TrackTestsExtra.cpp) diff --git a/Tests/UnitTests/Core/EventData/TransformBoundToFreeTests.cpp b/Tests/UnitTests/Core/EventData/TransformBoundToFreeTests.cpp deleted file mode 100644 index 0cc44ad888e..00000000000 --- a/Tests/UnitTests/Core/EventData/TransformBoundToFreeTests.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2020 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include -#include - -#include "Acts/Definitions/Algebra.hpp" -#include "Acts/Definitions/TrackParametrization.hpp" -#include "Acts/Definitions/Units.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" -#include "Acts/Geometry/GeometryContext.hpp" -#include "Acts/Tests/CommonHelpers/FloatComparisons.hpp" -#include "Acts/Utilities/UnitVectors.hpp" - -#include -#include -#include -#include - -#include "TrackParametersDatasets.hpp" - -using namespace Acts; -using namespace Acts::UnitLiterals; - -namespace { -constexpr auto eps = std::numeric_limits::epsilon(); -} - -BOOST_AUTO_TEST_SUITE(TransformBoundToFree) - -BOOST_DATA_TEST_CASE( - Parameters, - surfaces* posSymmetric* posSymmetric* ts* phis* thetas* ps* qsNonZero, - surface, l0, l1, time, phi, theta, p, q) { - GeometryContext geoCtx; - - Vector2 loc(l0, l1); - Vector3 dir = makeDirectionFromPhiTheta(phi, theta); - // transform reference position - Vector3 pos = surface->localToGlobal(geoCtx, loc, dir); - - const auto qOverP = q / p; - - // construct bound parameters - BoundVector bv = BoundVector::Zero(); - bv[eBoundLoc0] = l0; - bv[eBoundLoc1] = l1; - bv[eBoundTime] = time; - bv[eBoundPhi] = phi; - bv[eBoundTheta] = theta; - bv[eBoundQOverP] = qOverP; - - // convert to free parameters - FreeVector fv = detail::transformBoundToFreeParameters(*surface, geoCtx, bv); - - CHECK_CLOSE_OR_SMALL(fv.segment<3>(eFreePos0), pos, eps, eps); - CHECK_CLOSE_OR_SMALL(fv[eFreeTime], bv[eBoundTime], eps, eps); - CHECK_CLOSE_REL(fv.segment<3>(eFreeDir0).norm(), 1, eps); - CHECK_CLOSE_OR_SMALL(fv.segment<3>(eFreeDir0), dir, eps, eps); - CHECK_CLOSE_OR_SMALL(fv[eFreeQOverP], bv[eBoundQOverP], eps, eps); -} - -BOOST_AUTO_TEST_SUITE_END() diff --git a/Tests/UnitTests/Core/EventData/TransformFreeToBoundTests.cpp b/Tests/UnitTests/Core/EventData/TransformHelpersTests.cpp similarity index 74% rename from Tests/UnitTests/Core/EventData/TransformFreeToBoundTests.cpp rename to Tests/UnitTests/Core/EventData/TransformHelpersTests.cpp index 02d2d9764f4..57b675ae317 100644 --- a/Tests/UnitTests/Core/EventData/TransformFreeToBoundTests.cpp +++ b/Tests/UnitTests/Core/EventData/TransformHelpersTests.cpp @@ -10,16 +10,14 @@ #include #include "Acts/Definitions/Algebra.hpp" -#include "Acts/Definitions/Common.hpp" #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/Definitions/Units.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Tests/CommonHelpers/FloatComparisons.hpp" #include "Acts/Utilities/UnitVectors.hpp" #include -#include #include #include #include @@ -33,6 +31,42 @@ namespace { constexpr auto eps = std::numeric_limits::epsilon(); } +BOOST_AUTO_TEST_SUITE(TransformBoundToFree) + +BOOST_DATA_TEST_CASE( + Parameters, + surfaces* posSymmetric* posSymmetric* ts* phis* thetas* ps* qsNonZero, + surface, l0, l1, time, phi, theta, p, q) { + GeometryContext geoCtx; + + Vector2 loc(l0, l1); + Vector3 dir = makeDirectionFromPhiTheta(phi, theta); + // transform reference position + Vector3 pos = surface->localToGlobal(geoCtx, loc, dir); + + const auto qOverP = q / p; + + // construct bound parameters + BoundVector bv = BoundVector::Zero(); + bv[eBoundLoc0] = l0; + bv[eBoundLoc1] = l1; + bv[eBoundTime] = time; + bv[eBoundPhi] = phi; + bv[eBoundTheta] = theta; + bv[eBoundQOverP] = qOverP; + + // convert to free parameters + FreeVector fv = transformBoundToFreeParameters(*surface, geoCtx, bv); + + CHECK_CLOSE_OR_SMALL(fv.segment<3>(eFreePos0), pos, eps, eps); + CHECK_CLOSE_OR_SMALL(fv[eFreeTime], bv[eBoundTime], eps, eps); + CHECK_CLOSE_REL(fv.segment<3>(eFreeDir0).norm(), 1, eps); + CHECK_CLOSE_OR_SMALL(fv.segment<3>(eFreeDir0), dir, eps, eps); + CHECK_CLOSE_OR_SMALL(fv[eFreeQOverP], bv[eBoundQOverP], eps, eps); +} + +BOOST_AUTO_TEST_SUITE_END() + BOOST_AUTO_TEST_SUITE(TransformFreeToBound) BOOST_DATA_TEST_CASE( @@ -64,7 +98,7 @@ BOOST_DATA_TEST_CASE( fv[eFreeDir2] = dir[eMom2]; fv[eFreeQOverP] = qOverP; BoundVector bv = - detail::transformFreeToBoundParameters(fv, *surface, geoCtx).value(); + transformFreeToBoundParameters(fv, *surface, geoCtx).value(); CHECK_CLOSE_OR_SMALL(bv[eBoundLoc0], l0, eps, eps); CHECK_CLOSE_OR_SMALL(bv[eBoundLoc1], l1, eps, eps); CHECK_CLOSE_OR_SMALL(bv[eBoundTime], time, eps, eps); @@ -88,7 +122,7 @@ BOOST_DATA_TEST_CASE( fv[eFreeDir1] = dir[eMom1]; fv[eFreeDir2] = dir[eMom2]; fv[eFreeQOverP] = qOverP; - auto res = detail::transformFreeToBoundParameters(fv, *surface, geoCtx); + auto res = transformFreeToBoundParameters(fv, *surface, geoCtx); BOOST_CHECK(!res.ok()); } @@ -97,9 +131,9 @@ BOOST_DATA_TEST_CASE( BOOST_TEST_INFO("Transform free parameters components onto surface " << surface->name()); - BoundVector bv = detail::transformFreeToBoundParameters( - pos, time, dir, qOverP, *surface, geoCtx) - .value(); + BoundVector bv = + transformFreeToBoundParameters(pos, time, dir, qOverP, *surface, geoCtx) + .value(); CHECK_CLOSE_OR_SMALL(bv[eBoundLoc0], l0, eps, eps); CHECK_CLOSE_OR_SMALL(bv[eBoundLoc1], l1, eps, eps); CHECK_CLOSE_OR_SMALL(bv[eBoundTime], time, eps, eps); @@ -114,8 +148,8 @@ BOOST_DATA_TEST_CASE( << surface->name()); Vector3 posOff = pos + surface->normal(geoCtx, loc) * 0.5; - auto res = detail::transformFreeToBoundParameters(posOff, time, dir, qOverP, - *surface, geoCtx); + auto res = transformFreeToBoundParameters(posOff, time, dir, qOverP, + *surface, geoCtx); BOOST_CHECK(!res.ok()); } } @@ -132,8 +166,7 @@ BOOST_DATA_TEST_CASE(GlobalToCurvilinearParameters, // convert w/ direction { - BoundVector bv = - detail::transformFreeToCurvilinearParameters(time, dir, qOverP); + BoundVector bv = transformFreeToCurvilinearParameters(time, dir, qOverP); CHECK_SMALL(bv[eBoundLoc0], eps); CHECK_SMALL(bv[eBoundLoc1], eps); CHECK_CLOSE_OR_SMALL(bv[eBoundTime], time, eps, eps); @@ -144,7 +177,7 @@ BOOST_DATA_TEST_CASE(GlobalToCurvilinearParameters, // convert w/ angles { BoundVector bv = - detail::transformFreeToCurvilinearParameters(time, phi, theta, qOverP); + transformFreeToCurvilinearParameters(time, phi, theta, qOverP); CHECK_SMALL(bv[eBoundLoc0], eps); CHECK_SMALL(bv[eBoundLoc1], eps); CHECK_CLOSE_OR_SMALL(bv[eBoundTime], time, eps, eps); diff --git a/Tests/UnitTests/Core/Propagator/AtlasStepperTests.cpp b/Tests/UnitTests/Core/Propagator/AtlasStepperTests.cpp index 935aa75e685..0d58576b9a5 100644 --- a/Tests/UnitTests/Core/Propagator/AtlasStepperTests.cpp +++ b/Tests/UnitTests/Core/Propagator/AtlasStepperTests.cpp @@ -19,7 +19,7 @@ #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp" #include "Acts/EventData/ParticleHypothesis.hpp" #include "Acts/EventData/TrackParameters.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/MagneticField/ConstantBField.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" @@ -372,7 +372,7 @@ BOOST_AUTO_TEST_CASE(Reset) { CurvilinearTrackParameters cp(makeVector4(newPos, newTime), unitDir, newCharge / newAbsMom, newCov, particleHypothesis); - FreeVector freeParams = detail::transformBoundToFreeParameters( + FreeVector freeParams = transformBoundToFreeParameters( cp.referenceSurface(), geoCtx, cp.parameters()); Direction navDir = Direction::Forward; double stepSize = -256.; diff --git a/Tests/UnitTests/Core/Propagator/BoundToCurvilinearConversionTests.cpp b/Tests/UnitTests/Core/Propagator/BoundToCurvilinearConversionTests.cpp index 3ce13f94ab8..8f761ccb414 100644 --- a/Tests/UnitTests/Core/Propagator/BoundToCurvilinearConversionTests.cpp +++ b/Tests/UnitTests/Core/Propagator/BoundToCurvilinearConversionTests.cpp @@ -13,7 +13,7 @@ #include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/Definitions/Units.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/MagneticField/ConstantBField.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" @@ -197,8 +197,8 @@ void test_bound_to_curvilinear(const std::vector &test_data_list, } } - FreeVector free_param_vec = Acts::detail::transformBoundToFreeParameters( - *surface, geoCtx, param_vec); + FreeVector free_param_vec = + Acts::transformBoundToFreeParameters(*surface, geoCtx, param_vec); Vector3 direction{cos(param_vec[2]) * sin(param_vec[3]), sin(param_vec[2]) * sin(param_vec[3]), cos(param_vec[3])}; diff --git a/Tests/UnitTests/Core/Propagator/CovarianceEngineTests.cpp b/Tests/UnitTests/Core/Propagator/CovarianceEngineTests.cpp index 96bdbed08ad..ebc6bea28ea 100644 --- a/Tests/UnitTests/Core/Propagator/CovarianceEngineTests.cpp +++ b/Tests/UnitTests/Core/Propagator/CovarianceEngineTests.cpp @@ -13,8 +13,8 @@ #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/EventData/ParticleHypothesis.hpp" #include "Acts/EventData/TrackParameters.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/MagneticField/ConstantBField.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" diff --git a/Tests/UnitTests/Core/Propagator/EigenStepperTests.cpp b/Tests/UnitTests/Core/Propagator/EigenStepperTests.cpp index e7c7c1bac04..656be3a684a 100644 --- a/Tests/UnitTests/Core/Propagator/EigenStepperTests.cpp +++ b/Tests/UnitTests/Core/Propagator/EigenStepperTests.cpp @@ -17,7 +17,7 @@ #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp" #include "Acts/EventData/ParticleHypothesis.hpp" #include "Acts/EventData/TrackParameters.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/BoundarySurfaceT.hpp" #include "Acts/Geometry/CuboidVolumeBuilder.hpp" #include "Acts/Geometry/GeometryContext.hpp" @@ -342,7 +342,7 @@ BOOST_AUTO_TEST_CASE(eigen_stepper_test) { CurvilinearTrackParameters cp2(makeVector4(pos2, time2), dir2, charge2 / absMom2, cov2, ParticleHypothesis::pion()); - FreeVector freeParams = detail::transformBoundToFreeParameters( + FreeVector freeParams = transformBoundToFreeParameters( cp2.referenceSurface(), tgContext, cp2.parameters()); navDir = Direction::Forward; double stepSize2 = -2. * stepSize; @@ -503,8 +503,8 @@ BOOST_AUTO_TEST_CASE(eigen_stepper_test) { BOOST_CHECK_EQUAL(esState.derivative, FreeVector::Zero()); // Update in context of a surface - freeParams = detail::transformBoundToFreeParameters( - bp.referenceSurface(), tgContext, bp.parameters()); + freeParams = transformBoundToFreeParameters(bp.referenceSurface(), tgContext, + bp.parameters()); es.update(esState, freeParams, bp.parameters(), 2 * (*bp.covariance()), *plane); diff --git a/Tests/UnitTests/Core/Propagator/StraightLineStepperTests.cpp b/Tests/UnitTests/Core/Propagator/StraightLineStepperTests.cpp index a02e72d5259..54fb8ff3fe4 100644 --- a/Tests/UnitTests/Core/Propagator/StraightLineStepperTests.cpp +++ b/Tests/UnitTests/Core/Propagator/StraightLineStepperTests.cpp @@ -15,8 +15,8 @@ #include "Acts/EventData/GenericBoundTrackParameters.hpp" #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp" #include "Acts/EventData/TrackParameters.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/CorrectedTransformationFreeToBound.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" #include "Acts/Propagator/ConstrainedStep.hpp" @@ -239,7 +239,7 @@ BOOST_AUTO_TEST_CASE(straight_line_stepper_test) { charge2 / absMom2, cov2, ParticleHypothesis::pion()); BOOST_CHECK(cp2.covariance().has_value()); - FreeVector freeParams = detail::transformBoundToFreeParameters( + FreeVector freeParams = transformBoundToFreeParameters( cp2.referenceSurface(), tgContext, cp2.parameters()); navDir = Direction::Forward; double stepSize2 = -2. * stepSize; @@ -380,8 +380,8 @@ BOOST_AUTO_TEST_CASE(straight_line_stepper_test) { BOOST_CHECK_EQUAL(slsState.derivative, FreeVector::Zero()); // Update in context of a surface - freeParams = detail::transformBoundToFreeParameters( - bp.referenceSurface(), tgContext, bp.parameters()); + freeParams = transformBoundToFreeParameters(bp.referenceSurface(), tgContext, + bp.parameters()); BOOST_CHECK(bp.covariance().has_value()); sls.update(slsState, freeParams, bp.parameters(), 2 * (*bp.covariance()), diff --git a/Tests/UnitTests/Core/TrackFitting/GsfComponentMergingTests.cpp b/Tests/UnitTests/Core/TrackFitting/GsfComponentMergingTests.cpp index dd8a5b7214b..78cc97c690d 100644 --- a/Tests/UnitTests/Core/TrackFitting/GsfComponentMergingTests.cpp +++ b/Tests/UnitTests/Core/TrackFitting/GsfComponentMergingTests.cpp @@ -11,8 +11,7 @@ #include "Acts/Definitions/Algebra.hpp" #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/Definitions/Units.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Surfaces/CylinderBounds.hpp" #include "Acts/Surfaces/CylinderSurface.hpp" @@ -188,7 +187,7 @@ BoundVector meanFromFree(std::vector> cmps, FreeVector mean = FreeVector::Zero(); for (const auto &cmp : cmps) { - mean += cmp.weight * detail::transformBoundToFreeParameters( + mean += cmp.weight * transformBoundToFreeParameters( surface, GeometryContext{}, cmp.boundPars); } @@ -205,8 +204,7 @@ BoundVector meanFromFree(std::vector> cmps, .closest(); mean.head<3>() = intersection.position(); - return *detail::transformFreeToBoundParameters(mean, surface, - GeometryContext{}); + return *transformFreeToBoundParameters(mean, surface, GeometryContext{}); } // Typedef to describe local positions of 4 components diff --git a/Tests/UnitTests/Core/TrackFitting/GsfTests.cpp b/Tests/UnitTests/Core/TrackFitting/GsfTests.cpp index 8a3611bda61..1a30d047c99 100644 --- a/Tests/UnitTests/Core/TrackFitting/GsfTests.cpp +++ b/Tests/UnitTests/Core/TrackFitting/GsfTests.cpp @@ -25,7 +25,6 @@ #include "Acts/EventData/VectorMultiTrajectory.hpp" #include "Acts/EventData/VectorTrackContainer.hpp" #include "Acts/EventData/detail/TestSourceLink.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Geometry/GeometryIdentifier.hpp" #include "Acts/Propagator/MultiEigenStepperLoop.hpp" #include "Acts/Propagator/Navigator.hpp" diff --git a/Tests/UnitTests/Fatras/Digitization/UncorrelatedHitSmearerTests.cpp b/Tests/UnitTests/Fatras/Digitization/UncorrelatedHitSmearerTests.cpp index 9e1b71ff483..fceb680f873 100644 --- a/Tests/UnitTests/Fatras/Digitization/UncorrelatedHitSmearerTests.cpp +++ b/Tests/UnitTests/Fatras/Digitization/UncorrelatedHitSmearerTests.cpp @@ -13,8 +13,8 @@ #include "Acts/Definitions/Common.hpp" #include "Acts/Definitions/TrackParametrization.hpp" #include "Acts/Definitions/Units.hpp" +#include "Acts/EventData/TransformationHelpers.hpp" #include "Acts/EventData/detail/GenerateParameters.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Geometry/GeometryIdentifier.hpp" #include "Acts/Surfaces/PlaneSurface.hpp" @@ -99,8 +99,8 @@ struct Fixture { auto [par, cov] = Acts::detail::Test::generateBoundParametersCovariance(rng); boundParams = par; - freeParams = Acts::detail::transformBoundToFreeParameters(*surface, geoCtx, - boundParams); + freeParams = + Acts::transformBoundToFreeParameters(*surface, geoCtx, boundParams); // construct hit from free parameters Acts::Vector4 r4; From 48945f9ba4ed8fe9f92c46a12700466ef4c09ef4 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Tue, 2 Apr 2024 16:07:49 +0200 Subject: [PATCH 2/2] fix edm4hep --- Plugins/EDM4hep/include/Acts/Plugins/EDM4hep/EDM4hepUtil.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Plugins/EDM4hep/include/Acts/Plugins/EDM4hep/EDM4hepUtil.hpp b/Plugins/EDM4hep/include/Acts/Plugins/EDM4hep/EDM4hepUtil.hpp index e85b3e036bb..1b31bfa8e37 100644 --- a/Plugins/EDM4hep/include/Acts/Plugins/EDM4hep/EDM4hepUtil.hpp +++ b/Plugins/EDM4hep/include/Acts/Plugins/EDM4hep/EDM4hepUtil.hpp @@ -15,8 +15,6 @@ #include "Acts/EventData/TrackContainer.hpp" #include "Acts/EventData/TrackParameters.hpp" #include "Acts/EventData/TrackStatePropMask.hpp" -#include "Acts/EventData/detail/TransformationBoundToFree.hpp" -#include "Acts/EventData/detail/TransformationFreeToBound.hpp" #include "Acts/Geometry/GeometryContext.hpp" #include "Acts/Surfaces/PerigeeSurface.hpp" #include "Acts/Surfaces/Surface.hpp"