diff --git a/Projects/Athena/build_externals.sh b/Projects/Athena/build_externals.sh index e7498e3512f8b3ab5c4e63ee03b2a75167aa25f4..ce0249194504bce0f20473630122b217c1ace5bc 100755 --- a/Projects/Athena/build_externals.sh +++ b/Projects/Athena/build_externals.sh @@ -12,7 +12,7 @@ ATLAS_BUILDTYPE="RelWithDebInfo" ATLAS_EXTRA_CMAKE_ARGS=(-DLCG_VERSION_NUMBER=101 -DLCG_VERSION_POSTFIX="_ATLAS_20" -DATLAS_GAUDI_TAG="v36r5.001" - -DATLAS_ACTS_TAG="v17.1.0" + -DATLAS_ACTS_TAG="v19.0.0" -DATLAS_ONNXRUNTIME_USE_CUDA=FALSE -DATLAS_GEOMODEL_TAG="4.2.8" -DATLAS_BUILD_CORAL=TRUE) diff --git a/Simulation/ISF/ISF_Acts/ISF_ActsTools/src/ActsFatrasSimTool.cxx b/Simulation/ISF/ISF_Acts/ISF_ActsTools/src/ActsFatrasSimTool.cxx index 092ef40c8293380d5d27707f1af0a6b6d382b473..23043868062218dab7e09720150c320207f565e8 100644 --- a/Simulation/ISF/ISF_Acts/ISF_ActsTools/src/ActsFatrasSimTool.cxx +++ b/Simulation/ISF/ISF_Acts/ISF_ActsTools/src/ActsFatrasSimTool.cxx @@ -153,7 +153,7 @@ ISF::ISFParticle* ISF::ActsFatrasSimTool::process( (Acts::VectorHelpers::perp(start.momentum()) < m_ptLoopers * 1_MeV); options.maxStepSize = m_maxStepSize * 1_m; options.maxSteps = m_maxStep; - options.direction = Acts::forward; + options.direction = Acts::NavigationDirection::Forward; auto& mInteractor = options.actionList.get(); mInteractor.multipleScattering = m_interactionMultiScatering; diff --git a/Tracking/Acts/ActsGeantFollowing/src/ActsGeantFollowerHelper.cxx b/Tracking/Acts/ActsGeantFollowing/src/ActsGeantFollowerHelper.cxx index a58b8d02ec27bdf084d295fcc1e2e632870bf7f6..314fcb4cb4454db2028c3e8e37ea0f8034dba692 100755 --- a/Tracking/Acts/ActsGeantFollowing/src/ActsGeantFollowerHelper.cxx +++ b/Tracking/Acts/ActsGeantFollowing/src/ActsGeantFollowerHelper.cxx @@ -259,14 +259,14 @@ void ActsGeantFollowerHelper::trackParticle(const G4ThreeVector& pos, std::unique_ptr actsParameters = m_actsExtrapolator->propagate(ctx, *m_actsParameterCache, *destinationSurfaceActs, - Acts::forward, + Acts::NavigationDirection::Forward, std::numeric_limits::max(), particleHypo); float X0Acts = m_actsExtrapolator->propagationSteps(ctx, *m_actsParameterCache, *destinationSurfaceActs, - Acts::forward, + Acts::NavigationDirection::Forward, std::numeric_limits::max(), particleHypo).second.materialInX0; diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h index 05233d031e2bb3f7a2510cceba5b6e379b9fa0e6..dbd6f8afb202a5a4dd1e96b7af97fed68b4110d5 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h @@ -72,7 +72,7 @@ public: ActsPropagationOutput propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const override; @@ -80,7 +80,7 @@ public: std::unique_ptr propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const override; @@ -89,7 +89,7 @@ public: propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const override; @@ -98,7 +98,7 @@ public: propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const override; diff --git a/Tracking/Acts/ActsGeometry/src/ActsCaloTrackingVolumeBuilder.cxx b/Tracking/Acts/ActsGeometry/src/ActsCaloTrackingVolumeBuilder.cxx index e76926d472dcda3af6b65c5d39045bf713fb7001..d0b8c0d7e87de3d30b9a4241261ac5c61e9e72f4 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsCaloTrackingVolumeBuilder.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsCaloTrackingVolumeBuilder.cxx @@ -193,13 +193,13 @@ ActsCaloTrackingVolumeBuilder::trackingVolume( // Attach that volume array to the calo inner cover ATH_MSG_VERBOSE("Glueing " << calo->volumeName() << " inner cover to " << idOutVolArray->arrayObjects().size() << " volumes"); std::const_pointer_cast(calo->boundarySurfaces().at(Acts::tubeInnerCover)) - ->attachVolumeArray(idOutVolArray, Acts::backward); + ->attachVolumeArray(idOutVolArray, Acts::NavigationDirection::Backward); // Loop through the array and attach their boundary surfaces to the calo for(const auto& idVol : idOutVolArray->arrayObjects()){ ATH_MSG_VERBOSE("Glueing outer cover of " << idVol->volumeName() << " to inner cover of " << calo->volumeName()); std::const_pointer_cast(idVol->boundarySurfaces().at(Acts::tubeOuterCover)) - ->attachVolume(calo.get(), Acts::forward); + ->attachVolume(calo.get(), Acts::NavigationDirection::Forward); } // Glue positive XY face of ID to inner positive XY face of Calo. @@ -208,13 +208,13 @@ ActsCaloTrackingVolumeBuilder::trackingVolume( ATH_MSG_VERBOSE("Glueing " << calo->volumeName() << " positive inner cutout disc to " << idPosXYVolArray->arrayObjects().size() << " volumes"); std::const_pointer_cast(calo->boundarySurfaces().at(Acts::index5)) - ->attachVolumeArray(idPosXYVolArray, Acts::backward); + ->attachVolumeArray(idPosXYVolArray, Acts::NavigationDirection::Backward); // Other way round, attach ID volumes to calo for(const auto& idVol : idPosXYVolArray->arrayObjects()){ ATH_MSG_VERBOSE("Glueing positive XY face of " << idVol->volumeName() << " to positive inner coutout disc of " << calo->volumeName()); std::const_pointer_cast(idVol->boundarySurfaces().at(Acts::positiveFaceXY)) - ->attachVolume(calo.get(), Acts::forward); + ->attachVolume(calo.get(), Acts::NavigationDirection::Forward); } // Glue negative XY face of ID to inner negative XY face of Calo. @@ -223,13 +223,13 @@ ActsCaloTrackingVolumeBuilder::trackingVolume( ATH_MSG_VERBOSE("Glueing " << calo->volumeName() << " negative inner cutout disc to " << idNegXYVolArray->arrayObjects().size() << " volumes"); std::const_pointer_cast(calo->boundarySurfaces().at(Acts::index4)) - ->attachVolumeArray(idNegXYVolArray, Acts::forward); + ->attachVolumeArray(idNegXYVolArray, Acts::NavigationDirection::Forward); // Other way round, attach ID volumes to calo for(const auto& idVol : idNegXYVolArray->arrayObjects()){ ATH_MSG_VERBOSE("Glueing negative XY face of " << idVol->volumeName() << " to negative inner coutout disc of " << calo->volumeName()); std::const_pointer_cast(idVol->boundarySurfaces().at(Acts::negativeFaceXY)) - ->attachVolume(calo.get(), Acts::backward); + ->attachVolume(calo.get(), Acts::NavigationDirection::Backward); } // For navigational purposes we need to create three pseudo container cylinders. diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx index b94dead441811241db16a66cb0f1c3c664fe8ccd..06c0d4c00183ce65a3e3c21f8469f062f95740fe 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx @@ -137,7 +137,7 @@ ActsExtrapolationTool::initialize() ActsPropagationOutput ActsExtrapolationTool::propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir /*= Acts::forward*/, + Acts::NavigationDirection navDir /*= Acts::NavigationDirection::Forward*/, double pathLimit /*= std::numeric_limits::max()*/, Trk::ParticleHypothesis particleHypo /*= Trk::pion*/) const { @@ -216,7 +216,7 @@ ActsExtrapolationTool::propagationSteps(const EventContext& ctx, std::unique_ptr ActsExtrapolationTool::propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir /*= Acts::forward*/, + Acts::NavigationDirection navDir /*= Acts::NavigationDirection::Forward*/, double pathLimit /*= std::numeric_limits::max()*/, Trk::ParticleHypothesis particleHypo /*= Trk::pion*/) const { @@ -271,7 +271,7 @@ ActsPropagationOutput ActsExtrapolationTool::propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir /*= Acts::forward*/, + Acts::NavigationDirection navDir /*= Acts::NavigationDirection::Forward*/, double pathLimit /*= std::numeric_limits::max()*/, Trk::ParticleHypothesis particleHypo /*= Trk::pion*/) const { @@ -342,7 +342,7 @@ std::unique_ptr ActsExtrapolationTool::propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir /*= Acts::forward*/, + Acts::NavigationDirection navDir /*= Acts::NavigationDirection::Forward*/, double pathLimit /*= std::numeric_limits::max()*/, Trk::ParticleHypothesis particleHypo /*= Trk::pion*/) const { diff --git a/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h b/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h index 16f33b307bb05afc38784b0e0f29631d3629eb84..75cc0928bcabd18969e0896791c4da3d12cc7a91 100644 --- a/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h @@ -37,7 +37,7 @@ class IActsExtrapolationTool : virtual public IAlgTool { ActsPropagationOutput propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const = 0; @@ -45,7 +45,7 @@ class IActsExtrapolationTool : virtual public IAlgTool { std::unique_ptr propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const = 0; @@ -54,7 +54,7 @@ class IActsExtrapolationTool : virtual public IAlgTool { propagationSteps(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const = 0; @@ -63,7 +63,7 @@ class IActsExtrapolationTool : virtual public IAlgTool { propagate(const EventContext& ctx, const Acts::BoundTrackParameters& startParameters, const Acts::Surface& target, - Acts::NavigationDirection navDir = Acts::forward, + Acts::NavigationDirection navDir = Acts::NavigationDirection::Forward, double pathLimit = std::numeric_limits::max(), Trk::ParticleHypothesis particleHypo = Trk::pion) const = 0; diff --git a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/python/ActsTrkSeedingToolConfig.py b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/python/ActsTrkSeedingToolConfig.py index 578c7b7eb4f3511806c91eba8f6500353d742c0a..68bf6a0086bf3358ce1592e17c42bf2d44a645c8 100644 --- a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/python/ActsTrkSeedingToolConfig.py +++ b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/python/ActsTrkSeedingToolConfig.py @@ -82,7 +82,7 @@ def ActsTrkSeedingToolBaseCfg(ConfigFlags, options.setdefault('useVariableMiddleSPRange', False) options.setdefault('deltaRMiddleSPRange', 10) # TOOD: Add ACTS units (currently not supported for this prop) options.setdefault('seedConfirmation', False) # no default for detailed conf, since confirmation is disabled by default - options.setdefault('enableCutsForSortedSP', False) + options.setdefault('skipPreviousTopSP', False) # Used by SeedFilterConfig options.setdefault('deltaInvHelixDiameter', 0.00003 * 1. / UnitConstants.mm) @@ -92,6 +92,9 @@ def ActsTrkSeedingToolBaseCfg(ConfigFlags, # Used by SpacePointGridConfig options.setdefault('numPhiNeighbors', 1) + options.setdefault('phiBinDeflectionCoverage', 1) + + options.setdefault('zBinEdges', []) # Used by others diff --git a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.cxx b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.cxx index 0ceece7d28ac8f5d8fd3ab1186542177ad6a9de3..ee63105e20fa0ef2eb7f0675a9f471f268f30b15 100644 --- a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.cxx +++ b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.cxx @@ -26,6 +26,7 @@ namespace ActsTrk { ATH_MSG_DEBUG("Properties Summary:"); ATH_MSG_DEBUG(" " << m_zBinNeighborsTop); ATH_MSG_DEBUG(" " << m_zBinNeighborsBottom); + ATH_MSG_DEBUG( " " << m_phiBinDeflectionCoverage ); ATH_MSG_DEBUG(" * Used by SeedfinderConfig:"); ATH_MSG_DEBUG(" " << m_minPt); @@ -39,7 +40,7 @@ namespace ActsTrk { ATH_MSG_DEBUG(" " << m_useVariableMiddleSPRange); ATH_MSG_DEBUG(" " << m_deltaRMiddleSPRange); ATH_MSG_DEBUG(" " << m_seedConfirmation); - ATH_MSG_DEBUG(" " << m_enableCutsForSortedSP); + ATH_MSG_DEBUG(" " << m_skipPreviousTopSP ); ATH_MSG_DEBUG(" " << m_impactMax); ATH_MSG_DEBUG(" " << m_sigmaScattering); ATH_MSG_DEBUG(" " << m_maxPtScattering); @@ -209,7 +210,7 @@ namespace ActsTrk { gridCfg.deltaRMax = m_deltaRMax; gridCfg.cotThetaMax = m_cotThetaMax; gridCfg.impactMax = m_impactMax; - gridCfg.numPhiNeighbors = m_numPhiNeighbors; + gridCfg.phiBinDeflectionCoverage = m_phiBinDeflectionCoverage; gridCfg.zBinEdges = m_zBinEdges; // Configuration for Acts::Seedfinder @@ -270,20 +271,17 @@ namespace ActsTrk { finderCfg.centralSeedConfirmationRange.zMinSeedConf = m_seedConfCentralZMin; finderCfg.centralSeedConfirmationRange.zMaxSeedConf = m_seedConfCentralZMax; finderCfg.centralSeedConfirmationRange.rMaxSeedConf = m_seedConfCentralRMax; - finderCfg.centralSeedConfirmationRange.nTopSeedConf = m_seedConfCentralNTop; finderCfg.centralSeedConfirmationRange.nTopForLargeR = m_seedConfCentralNTopLR; finderCfg.centralSeedConfirmationRange.nTopForSmallR = m_seedConfCentralNTopSR; finderCfg.forwardSeedConfirmationRange.zMinSeedConf = m_seedConfForwardZMin; finderCfg.forwardSeedConfirmationRange.zMaxSeedConf = m_seedConfForwardZMax; finderCfg.forwardSeedConfirmationRange.rMaxSeedConf = m_seedConfForwardRMax; - finderCfg.forwardSeedConfirmationRange.nTopSeedConf = m_seedConfForwardNTop; finderCfg.forwardSeedConfirmationRange.nTopForLargeR = m_seedConfForwardNTopLR; finderCfg.forwardSeedConfirmationRange.nTopForSmallR = m_seedConfForwardNTopSR; finderCfg.zBinEdges = m_zBinEdges; - - finderCfg.enableCutsForSortedSP = m_enableCutsForSortedSP; + finderCfg.skipPreviousTopSP = m_skipPreviousTopSP; return std::make_pair(gridCfg, finderCfg); } diff --git a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.h b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.h index 90b255557e94e8e9c5d84e25c2aff95cc8075fd8..8cfac683b3673456760a635050ee361897cea027 100644 --- a/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.h +++ b/Tracking/Acts/ActsTrkTools/ActsTrkSeedingTool/src/SeedingTool.h @@ -122,8 +122,6 @@ namespace ActsTrk { "maximum z for central seed confirmation "}; Gaudi::Property m_seedConfCentralRMax {this, "seedConfCentralRMax", 0, "maximum r for central seed confirmation "}; - Gaudi::Property m_seedConfCentralNTop {this, "seedConfCentralNTop", 0, - "nTop for central seed confirmation"}; Gaudi::Property m_seedConfCentralNTopLR {this, "seedConfCentralNTopLR", 0, "nTop for large R central seed confirmation"}; Gaudi::Property m_seedConfCentralNTopSR {this, "seedConfCentralNTopSR", 0, @@ -135,15 +133,13 @@ namespace ActsTrk { "maximum z for forward seed confirmation "}; Gaudi::Property m_seedConfForwardRMax {this, "seedConfForwardRMax", 0, "maximum r for forward seed confirmation "}; - Gaudi::Property m_seedConfForwardNTop {this, "seedConfForwardNTop", 0, - "nTop for forward seed confirmation"}; Gaudi::Property m_seedConfForwardNTopLR {this, "seedConfForwardNTopLR", 0, "nTop for large R forward seed confirmation"}; Gaudi::Property m_seedConfForwardNTopSR {this, "seedConfForwardNTopSR", 0, "nTop for small R forward seed confirmation"}; - Gaudi::Property m_enableCutsForSortedSP {this, "enableCutsForSortedSP", false, - "enables cuts based on SPs sorted by cotTheta"}; + Gaudi::Property m_skipPreviousTopSP {this, "skipPreviousTopSP", false, + "additional cut to skip top SPs when producing triplets"}; Gaudi::Property< float > m_impactMax {this,"impactMax",3. * Acts::UnitConstants::mm, @@ -194,6 +190,8 @@ namespace ActsTrk { // Used by SpacePointGridConfig Gaudi::Property< int > m_numPhiNeighbors {this, "numPhiNeighbors", 1, "sets of consecutive phi bins in the seed making step"}; + Gaudi::Property< int > m_phiBinDeflectionCoverage {this, "phiBinDeflectionCoverage", 1, + "number of bins to capture deflection"}; Gaudi::Property< std::vector > m_zBinEdges {this, "zBinEdges", {} , "enable non equidistant binning in z"}; // Also used by SpacePointGridConfig diff --git a/Tracking/TrkExtrapolation/TrkExAlgs/src/ExtrapolatorComparisonTest.cxx b/Tracking/TrkExtrapolation/TrkExAlgs/src/ExtrapolatorComparisonTest.cxx index 79c8175355b9abf9896f0edd01c2af5145632386..67a93cd8d16cdf1f6fe18d2858780253b6b5170b 100644 --- a/Tracking/TrkExtrapolation/TrkExAlgs/src/ExtrapolatorComparisonTest.cxx +++ b/Tracking/TrkExtrapolation/TrkExAlgs/src/ExtrapolatorComparisonTest.cxx @@ -313,7 +313,7 @@ StatusCode Trk::ExtrapolatorComparisonTest::execute(const EventContext& ctx) con ATH_MSG_VERBOSE("Starting extrapolation " << n_extraps << " from : " << pars << " to : " << destinationSurface); auto start_fwd = xclock::now(); - auto destParameters = m_extrapolationTool->propagate(ctx, *startParameters, *destinationSurface, Acts::forward); + auto destParameters = m_extrapolationTool->propagate(ctx, *startParameters, *destinationSurface, Acts::NavigationDirection::Forward); auto end_fwd = xclock::now(); float ms_fwd = std::chrono::duration_cast(end_fwd-start_fwd).count(); @@ -325,7 +325,7 @@ StatusCode Trk::ExtrapolatorComparisonTest::execute(const EventContext& ctx) con // now try backward extrapolation auto start_bkw = xclock::now(); - auto finalperigee = m_extrapolationTool->propagate(ctx, *destParameters, startParameters->referenceSurface(), Acts::backward); + auto finalperigee = m_extrapolationTool->propagate(ctx, *destParameters, startParameters->referenceSurface(), Acts::NavigationDirection::Backward); auto end_bkw = xclock::now(); float ms_bkw = std::chrono::duration_cast(end_bkw-start_bkw).count();