diff --git a/JugTrack/JugTrack/Measurement.hpp b/JugTrack/JugTrack/Measurement.hpp index 1b9defafbb68fd622bc245a02dd2f1fefede99e0..48c28b7fd84f9fc0c7477383eafdad647c5181a6 100644 --- a/JugTrack/JugTrack/Measurement.hpp +++ b/JugTrack/JugTrack/Measurement.hpp @@ -7,6 +7,7 @@ #include "Acts/EventData/Measurement.hpp" #include "Acts/EventData/MultiTrajectory.hpp" #include "Acts/EventData/SourceLink.hpp" +#include "Acts/EventData/VectorMultiTrajectory.hpp" #include "JugTrack/IndexSourceLink.hpp" #include @@ -36,8 +37,10 @@ namespace Jug { /// @tparam parameters_t Track parameters type /// @param gctx The geometry context (unused) /// @param trackState The track state to calibrate - void calibrate(const Acts::GeometryContext& /*gctx*/, - Acts::MultiTrajectory::TrackStateProxy trackState) const { + void calibrate( + const Acts::GeometryContext& /*gctx*/, + Acts::MultiTrajectory::TrackStateProxy + trackState) const { const auto& sourceLink = static_cast(trackState.uncalibrated()); std::visit( diff --git a/JugTrack/JugTrack/Trajectories.hpp b/JugTrack/JugTrack/Trajectories.hpp index d849cfb37b549345905f412db146939607288c73..3ccc749332e4e514192bbc8be38551db93ced745 100644 --- a/JugTrack/JugTrack/Trajectories.hpp +++ b/JugTrack/JugTrack/Trajectories.hpp @@ -5,6 +5,7 @@ #define JugTrack_Trajectories_HH #include "Acts/EventData/MultiTrajectory.hpp" +#include "Acts/EventData/VectorMultiTrajectory.hpp" #include "JugTrack/IndexSourceLink.hpp" #include "JugTrack/Track.hpp" @@ -24,9 +25,11 @@ namespace Jug { struct Trajectories final { public: /// (Reconstructed) trajectory with multiple states. - using MultiTrajectory = ::Acts::MultiTrajectory; + using MultiTrajectory = Acts::VectorMultiTrajectory; /// Fitted parameters identified by indices in the multi trajectory. - using IndexedParameters = std::unordered_map; + using IndexedParameters = + std::unordered_map; /// Default construct an empty object. Required for container compatibility /// and to signal an error. @@ -36,10 +39,10 @@ struct Trajectories final { /// @param multiTraj The multi trajectory /// @param tTips Tip indices that identify valid trajectories /// @param parameters Fitted track parameters indexed by trajectory index - Trajectories(const MultiTrajectory& multiTraj, - const std::vector& tTips, + Trajectories(MultiTrajectory multiTraj, + const std::vector& tTips, const IndexedParameters& parameters) - : m_multiTrajectory(multiTraj), + : m_multiTrajectory(std::move(multiTraj)), m_trackTips(tTips), m_trackParameters(parameters) {} @@ -47,16 +50,18 @@ struct Trajectories final { bool empty() const { return m_trackTips.empty(); } /// Access the underlying multi trajectory. - const MultiTrajectory& multiTrajectory() const { return m_multiTrajectory; } + const MultiTrajectory& multiTrajectory() const { return *m_multiTrajectory; } /// Access the tip indices that identify valid trajectories. - const std::vector& tips() const { return m_trackTips; } + const std::vector& tips() const { + return m_trackTips; + } /// Check if a trajectory exists for the given index. /// /// @param entryIndex The trajectory entry index /// @return Whether there is trajectory with provided entry index - bool hasTrajectory(size_t entryIndex) const { + bool hasTrajectory(Acts::MultiTrajectoryTraits::IndexType entryIndex) const { return (0 < std::count(m_trackTips.begin(), m_trackTips.end(), entryIndex)); } @@ -64,7 +69,8 @@ struct Trajectories final { /// /// @param entryIndex The trajectory entry index /// @return Whether having fitted track parameters or not - bool hasTrackParameters(size_t entryIndex) const { + bool hasTrackParameters( + Acts::MultiTrajectoryTraits::IndexType entryIndex) const { return (0 < m_trackParameters.count(entryIndex)); } @@ -72,7 +78,8 @@ struct Trajectories final { /// /// @param entryIndex The trajectory entry index /// @return The fitted track parameters of the trajectory - const TrackParameters& trackParameters(size_t entryIndex) const { + const TrackParameters& trackParameters( + Acts::MultiTrajectoryTraits::IndexType entryIndex) const { auto it = m_trackParameters.find(entryIndex); if (it == m_trackParameters.end()) { throw std::runtime_error( @@ -84,9 +91,9 @@ struct Trajectories final { private: // The multiTrajectory - MultiTrajectory m_multiTrajectory; + std::optional m_multiTrajectory; // The entry indices of trajectories stored in multiTrajectory - std::vector m_trackTips = {}; + std::vector m_trackTips = {}; // The fitted parameters at the provided surface for individual trajectories IndexedParameters m_trackParameters = {}; }; diff --git a/JugTrack/src/components/CKFTracking.cpp b/JugTrack/src/components/CKFTracking.cpp index adabc3d48ab3b16cc1d49d0ee8f3c2b228f7b4d9..8cf077d9b0c5a03906a819f6ef504db44f89752b 100644 --- a/JugTrack/src/components/CKFTracking.cpp +++ b/JugTrack/src/components/CKFTracking.cpp @@ -127,13 +127,18 @@ namespace Jug::Reco { Acts::GainMatrixSmoother kfSmoother; Acts::MeasurementSelector measSel{m_sourcelinkSelectorCfg}; - Acts::CombinatorialKalmanFilterExtensions extensions; + Acts::CombinatorialKalmanFilterExtensions + extensions; extensions.calibrator.connect<&MeasurementCalibrator::calibrate>(&calibrator); - extensions.updater.connect<&Acts::GainMatrixUpdater::operator()>(&kfUpdater); - extensions.smoother.connect<&Acts::GainMatrixSmoother::operator()>( + extensions.updater.connect< + &Acts::GainMatrixUpdater::operator()>( + &kfUpdater); + extensions.smoother.connect< + &Acts::GainMatrixSmoother::operator()>( &kfSmoother); - extensions.measurementSelector.connect<&Acts::MeasurementSelector::select>( - &measSel); + extensions.measurementSelector + .connect<&Acts::MeasurementSelector::select>( + &measSel); IndexSourceLinkAccessor slAccessor; slAccessor.container = src_links; @@ -154,7 +159,7 @@ namespace Jug::Reco { if (result.ok()) { // Get the track finding output object - const auto& trackFindingOutput = result.value(); + auto& trackFindingOutput = result.value(); // Create a SimMultiTrajectory trajectories->emplace_back(std::move(trackFindingOutput.fittedStates), std::move(trackFindingOutput.lastMeasurementIndices), diff --git a/JugTrack/src/components/CKFTracking.h b/JugTrack/src/components/CKFTracking.h index ead37d25a8be72ae92a69387752fb4614e272aa9..3ad59f26840bf95ef0b6671541a86d4d57b9262e 100644 --- a/JugTrack/src/components/CKFTracking.h +++ b/JugTrack/src/components/CKFTracking.h @@ -40,9 +40,11 @@ class CKFTracking : public GaudiAlgorithm { public: /// Track finder function that takes input measurements, initial trackstate /// and track finder options and returns some track-finder-specific result. - using TrackFinderOptions = Acts::CombinatorialKalmanFilterOptions; - using TrackFinderResult = std::vector>; - + using TrackFinderOptions = + Acts::CombinatorialKalmanFilterOptions; + using TrackFinderResult = std::vector>>; /// Find function that takes the above parameters /// @note This is separated into a virtual interface to keep compilation units /// small diff --git a/JugTrack/src/components/CKFTrackingFunction.cpp b/JugTrack/src/components/CKFTrackingFunction.cpp index 0761acf1297940f087b12393ff1766767dc1527f..36de5a2c2bf3bfa728ba1bb43ee32adb5e254a71 100644 --- a/JugTrack/src/components/CKFTrackingFunction.cpp +++ b/JugTrack/src/components/CKFTrackingFunction.cpp @@ -31,7 +31,8 @@ namespace { using Stepper = Acts::EigenStepper<>; using Navigator = Acts::Navigator; using Propagator = Acts::Propagator; - using CKF = Acts::CombinatorialKalmanFilter; + using CKF = + Acts::CombinatorialKalmanFilter; /** Finder implmentation . * diff --git a/JugTrack/src/components/TrackFindingAlgorithm.cpp b/JugTrack/src/components/TrackFindingAlgorithm.cpp index acdb6780a3a24e10638aa78e5be6f8f8f62c7efc..663636c33de52fafce7a9bbaa98aedabac408a02 100644 --- a/JugTrack/src/components/TrackFindingAlgorithm.cpp +++ b/JugTrack/src/components/TrackFindingAlgorithm.cpp @@ -128,13 +128,17 @@ namespace Jug::Reco { Acts::GainMatrixSmoother kfSmoother; Acts::MeasurementSelector measSel{m_sourcelinkSelectorCfg}; - Acts::CombinatorialKalmanFilterExtensions extensions; + Acts::CombinatorialKalmanFilterExtensions extensions; extensions.calibrator.connect<&MeasurementCalibrator::calibrate>(&calibrator); - extensions.updater.connect<&Acts::GainMatrixUpdater::operator()>(&kfUpdater); - extensions.smoother.connect<&Acts::GainMatrixSmoother::operator()>( + extensions.updater.connect< + &Acts::GainMatrixUpdater::operator()>( + &kfUpdater); + extensions.smoother.connect< + &Acts::GainMatrixSmoother::operator()>( &kfSmoother); - extensions.measurementSelector.connect<&Acts::MeasurementSelector::select>( - &measSel); + extensions.measurementSelector + .connect<&Acts::MeasurementSelector::select>( + &measSel); IndexSourceLinkAccessor slAccessor; slAccessor.container = src_links; @@ -155,7 +159,7 @@ namespace Jug::Reco { if (result.ok()) { // Get the track finding output object - const auto& trackFindingOutput = result.value(); + auto& trackFindingOutput = result.value(); // Create a SimMultiTrajectory trajectories->emplace_back(std::move(trackFindingOutput.fittedStates), std::move(trackFindingOutput.lastMeasurementIndices), @@ -164,7 +168,6 @@ namespace Jug::Reco { if (msgLevel(MSG::DEBUG)) { debug() << "Track finding failed for truth seed " << iseed << " with error " << result.error() << endmsg; } - // trajectories->push_back(SimMultiTrajectory()); } } @@ -173,4 +176,5 @@ namespace Jug::Reco { // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables) DECLARE_COMPONENT(TrackFindingAlgorithm) + } // namespace Jug::Reco diff --git a/JugTrack/src/components/TrackFindingAlgorithm.h b/JugTrack/src/components/TrackFindingAlgorithm.h index dca6bce12702e39e785d32dc3de3208a02764978..69339485d038107a711b379e5c1aa8179ddcd7e3 100644 --- a/JugTrack/src/components/TrackFindingAlgorithm.h +++ b/JugTrack/src/components/TrackFindingAlgorithm.h @@ -40,8 +40,8 @@ class TrackFindingAlgorithm : public GaudiAlgorithm { public: /// Track finder function that takes input measurements, initial trackstate /// and track finder options and returns some track-finder-specific result. - using TrackFinderOptions = Acts::CombinatorialKalmanFilterOptions; - using TrackFinderResult = std::vector>; + using TrackFinderOptions = Acts::CombinatorialKalmanFilterOptions; + using TrackFinderResult = std::vector>>; /// Find function that takes the above parameters /// @note This is separated into a virtual interface to keep compilation units diff --git a/JugTrack/src/components/TrackFindingAlgorithmFunction.cpp b/JugTrack/src/components/TrackFindingAlgorithmFunction.cpp index aa360cbf622da33e2b26ed1f9865f8d6610f9796..1fea7cb387c48a3b2dc2bc6a844e0b834f8196f7 100644 --- a/JugTrack/src/components/TrackFindingAlgorithmFunction.cpp +++ b/JugTrack/src/components/TrackFindingAlgorithmFunction.cpp @@ -23,7 +23,7 @@ namespace { using Stepper = Acts::EigenStepper<>; using Navigator = Acts::Navigator; using Propagator = Acts::Propagator; - using CKF = Acts::CombinatorialKalmanFilter; + using CKF = Acts::CombinatorialKalmanFilter; /** Finder implmentation . * diff --git a/JugTrack/src/components/TrackFittingAlgorithm.cpp b/JugTrack/src/components/TrackFittingAlgorithm.cpp index 6fa1344177faf184ccd3ef03c18e1bb78cd464f5..b652a72e676335c30dafa19da7371c4c0a248336 100644 --- a/JugTrack/src/components/TrackFittingAlgorithm.cpp +++ b/JugTrack/src/components/TrackFittingAlgorithm.cpp @@ -73,10 +73,6 @@ namespace Jug::Reco { m_BField = std::dynamic_pointer_cast(m_geoSvc->getFieldProvider()); m_fieldctx = Jug::BField::BFieldVariant(m_BField); - // chi2 and #sourclinks per surface cutoffs - //m_sourcelinkSelectorCfg = { - // {Acts::GeometryIdentifier(), {15, 10}}, - //}; m_trackFittingFunc = makeTrackFittingFunction(m_geoSvc->trackingGeometry(), m_BField); return StatusCode::SUCCESS; } @@ -108,13 +104,14 @@ namespace Jug::Reco { // kfOptions.multipleScattering = m_cfg.multipleScattering; // kfOptions.energyLoss = m_cfg.energyLoss; - Acts::KalmanFitterExtensions extensions; + Acts::KalmanFitterExtensions extensions; MeasurementCalibrator calibrator{*measurements}; extensions.calibrator.connect<&MeasurementCalibrator::calibrate>(&calibrator); Acts::GainMatrixUpdater kfUpdater; Acts::GainMatrixSmoother kfSmoother; - extensions.updater.connect<&Acts::GainMatrixUpdater::operator()>(&kfUpdater); - extensions.smoother.connect<&Acts::GainMatrixSmoother::operator()>( + extensions.updater.connect<&Acts::GainMatrixUpdater::operator()>( + &kfUpdater); + extensions.smoother.connect<&Acts::GainMatrixSmoother::operator()>( &kfSmoother); Acts::KalmanFitterOptions kfOptions( @@ -152,8 +149,6 @@ namespace Jug::Reco { if (auto it = sourceLinks->nth(hitIndex); it != sourceLinks->end()) { const IndexSourceLink& sourceLink = *it; trackSourceLinks.push_back(std::cref(sourceLink)); - //auto geoId = sourceLink.geometryId(); - //surfSequence.push_back(m_cfg.trackingGeometry->findSurface(geoId)); } else { ACTS_FATAL("Proto track " << itrack << " contains invalid hit index" << hitIndex); @@ -168,39 +163,25 @@ namespace Jug::Reco { if (msgLevel(MSG::DEBUG)) { debug() << "fitting done." << endmsg; } - // if (result.ok()) { - // // Get the track finding output object - // const auto& trackFindingOutput = result.value(); - // // Create a SimMultiTrajectory - // trajectories->emplace_back(std::move(trackFindingOutput.fittedStates), - // std::move(trackFindingOutput.lastMeasurementIndices), - // std::move(trackFindingOutput.fittedParameters)); - //} else { - // debug() << "Track finding failed for truth seed " << iseed << endmsg; - // ACTS_WARNING("Track finding failed for truth seed " << iseed << " with error" << - // result.error()); - // // Track finding failed, but still create an empty SimMultiTrajectory - // // trajectories->push_back(SimMultiTrajectory()); - //} if (result.ok()) { // Get the fit output object - const auto& fitOutput = result.value(); + auto& fitOutput = result.value(); // The track entry indices container. One element here. - std::vector trackTips; + std::vector trackTips; trackTips.reserve(1); trackTips.emplace_back(fitOutput.lastMeasurementIndex); // The fitted parameters container. One element (at most) here. Trajectories::IndexedParameters indexedParams; - //if (fitOutput.fittedParameters) { - // const auto& params = fitOutput.fittedParameters.value(); - // ACTS_VERBOSE("Fitted paramemeters for track " << itrack); - // ACTS_VERBOSE(" " << params.parameters().transpose()); - // // Push the fitted parameters to the container - // indexedParams.emplace(fitOutput.lastMeasurementIndex, std::move(params)); - //} else { - // ACTS_DEBUG("No fitted paramemeters for track " << itrack); - //} + if (fitOutput.fittedParameters) { + const auto& params = fitOutput.fittedParameters.value(); + ACTS_VERBOSE("Fitted paramemeters for track " << itrack); + ACTS_VERBOSE(" " << params.parameters().transpose()); + // Push the fitted parameters to the container + indexedParams.emplace(fitOutput.lastMeasurementIndex, params); + } else { + ACTS_DEBUG("No fitted paramemeters for track " << itrack); + } // store the result trajectories->emplace_back(std::move(fitOutput.fittedStates), std::move(trackTips), std::move(indexedParams)); @@ -212,81 +193,9 @@ namespace Jug::Reco { } } - // ctx.eventStore.add(m_cfg.outputTrajectories, std::move(trajectories)); - return StatusCode::SUCCESS; - - /////////////////////////// - // acts example - - // Set the KalmanFitter options - - // Perform the fit for each input track - //std::vector trackSourceLinks; - //for (std::size_t itrack = 0; itrack < protoTracks.size(); ++itrack) { - // // The list of hits and the initial start parameters - // const auto& protoTrack = protoTracks[itrack]; - // const auto& initialParams = initialParameters[itrack]; - - // // We can have empty tracks which must give empty fit results so the number - // // of entries in input and output containers matches. - // if (protoTrack.empty()) { - // trajectories.push_back(Trajectories()); - // ACTS_WARNING("Empty track " << itrack << " found."); - // continue; - // } - - // // Clear & reserve the right size - // trackSourceLinks.clear(); - // trackSourceLinks.reserve(protoTrack.size()); - - // // Fill the source links via their indices from the container - // for (auto hitIndex : protoTrack) { - // auto sourceLink = sourceLinks.nth(hitIndex); - // if (sourceLink == sourceLinks.end()) { - // ACTS_FATAL("Proto track " << itrack << " contains invalid hit index" - // << hitIndex); - // return ProcessCode::ABORT; - // } - // trackSourceLinks.push_back(*sourceLink); - // } - - // ACTS_DEBUG("Invoke fitter"); - // auto result = m_cfg.fit(trackSourceLinks, initialParams, kfOptions); - // if (result.ok()) { - // // Get the fit output object - // const auto& fitOutput = result.value(); - // // The track entry indices container. One element here. - // std::vector trackTips; - // trackTips.reserve(1); - // trackTips.emplace_back(fitOutput.trackTip); - // // The fitted parameters container. One element (at most) here. - // Trajectories::IndexedParameters indexedParams; - // if (fitOutput.fittedParameters) { - // const auto& params = fitOutput.fittedParameters.value(); - // ACTS_VERBOSE("Fitted paramemeters for track " << itrack); - // ACTS_VERBOSE(" " << params.parameters().transpose()); - // // Push the fitted parameters to the container - // indexedParams.emplace(fitOutput.trackTip, std::move(params)); - // } else { - // ACTS_DEBUG("No fitted paramemeters for track " << itrack); - // } - // // store the result - // trajectories.emplace_back(std::move(fitOutput.fittedStates), - // std::move(trackTips), std::move(indexedParams)); - // } else { - // ACTS_WARNING("Fit failed for track " << itrack << " with error" - // << result.error()); - // // Fit failed. Add an empty result so the output container has - // // the same number of entries as the input. - // trajectories.push_back(Trajectories()); - // } - //} - - return StatusCode::SUCCESS; } - // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables) // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables) DECLARE_COMPONENT(TrackFittingAlgorithm) diff --git a/JugTrack/src/components/TrackFittingAlgorithm.h b/JugTrack/src/components/TrackFittingAlgorithm.h index 6f193da372137db7f26c342d943a433f71a14dad..b67e123c778cff90e4d5dd0bc54d45c62d9ef178 100644 --- a/JugTrack/src/components/TrackFittingAlgorithm.h +++ b/JugTrack/src/components/TrackFittingAlgorithm.h @@ -47,10 +47,10 @@ namespace Jug::Reco { /// Track fitter function that takes input measurements, initial trackstate /// and fitter options and returns some track-fitter-specific result. using TrackFitterOptions = - Acts::KalmanFitterOptions; + Acts::KalmanFitterOptions; - //using TrackFinderResult = Acts::Result>; - using FitterResult = Acts::Result; + using FitterResult = + Acts::Result>; /// Fit function that takes input measurements, initial trackstate and fitter using FitterFunction = std::function trackingGeometry, std::shared_ptr magneticField); - // BFieldVariant magneticField); StatusCode initialize() override; @@ -94,7 +93,6 @@ namespace Jug::Reco { const TrackParameters& initialParameters, const TrackFitterOptions& options ) const; - //, const std::vector& surfSequence) const; }; inline TrackFittingAlgorithm::FitterResult @@ -102,10 +100,6 @@ namespace Jug::Reco { const TrackParameters& initialParameters, const TrackFitterOptions& options) const { - // const std::vector& surfSequence) const - // if (m_cfg.directNavigation) { - // return m_cfg.dFit(sourceLinks, initialParameters, options, surfSequence); - //} return m_trackFittingFunc(sourceLinks, initialParameters, options); } diff --git a/JugTrack/src/components/TrackFittingFunction.cpp b/JugTrack/src/components/TrackFittingFunction.cpp index 1259722d80146c6bd83831ef2eeb2bf41c7d8450..b2f13f24910cfacb835ac8b3b02cccd44adde633 100644 --- a/JugTrack/src/components/TrackFittingFunction.cpp +++ b/JugTrack/src/components/TrackFittingFunction.cpp @@ -21,10 +21,9 @@ namespace { using Smoother = Acts::GainMatrixSmoother; using Stepper = Acts::EigenStepper<>; using Propagator = Acts::Propagator; - using Fitter = Acts::KalmanFitter; + using Fitter = Acts::KalmanFitter; using DirectPropagator = Acts::Propagator; - using DirectFitter = Acts::KalmanFitter; - + using DirectFitter = Acts::KalmanFitter; /** Fitter implmentation . * @@ -54,9 +53,9 @@ namespace Jug::Reco { using Smoother = Acts::GainMatrixSmoother; using Stepper = Acts::EigenStepper<>; using Propagator = Acts::Propagator; - using Fitter = Acts::KalmanFitter; + using Fitter = Acts::KalmanFitter; using DirectPropagator = Acts::Propagator; - using DirectFitter = Acts::KalmanFitter; + using DirectFitter = Acts::KalmanFitter; TrackFittingAlgorithm::FitterFunction TrackFittingAlgorithm::makeTrackFittingFunction( std::shared_ptr trackingGeometry, @@ -75,27 +74,5 @@ namespace Jug::Reco { // build the fitter functions. owns the fitter object. return TrackFitterFunctionImpl(std::move(trackFitter)); } - // using Updater = Acts::GainMatrixUpdater; - // using Smoother = Acts::GainMatrixSmoother; - - // // unpack the magnetic field variant and instantiate the corresponding fitter. - // return std::visit( - // [trackingGeometry](auto&& inputField) -> FitterFunction { - // // each entry in the variant is already a shared_ptr - // // need ::element_type to get the real magnetic field type - // // construct all components for the fitter - // MagneticField field(std::move(inputField)); - // Stepper stepper(std::move(field)); - // Navigator navigator(trackingGeometry); - // navigator.resolvePassive = false; - // navigator.resolveMaterial = true; - // navigator.resolveSensitive = true; - // Propagator propagator(std::move(stepper), std::move(navigator)); - // Fitter trackFitter(std::move(propagator)); - // // build the fitter functions. owns the fitter object. - // return TrackFitterFunctionImpl(std::move(trackFitter)); - // }, - // std::move(magneticField)); - //} } // namespace Jug::Reco diff --git a/JugTrack/src/components/TrackParamACTSSeeding.cpp b/JugTrack/src/components/TrackParamACTSSeeding.cpp index c4cb3ecf25e1c654052d1c7b61ade1985294662d..a4540d4f0cb946dc47b3da5ba06e5996aaa7a2eb 100644 --- a/JugTrack/src/components/TrackParamACTSSeeding.cpp +++ b/JugTrack/src/components/TrackParamACTSSeeding.cpp @@ -338,9 +338,9 @@ namespace Jug::Reco { 0.0, 10.0, 0.05, 0.0), static_cast(spacePoint.size()))); spacePointPtrs.push_back(&spacePoint.back()); - rRangeSPExtent.check({ spacePoint.back().x(), - spacePoint.back().y(), - spacePoint.back().z() }); + rRangeSPExtent.extend({ spacePoint.back().x(), + spacePoint.back().y(), + spacePoint.back().z() }); #endif // USE_LOCAL_COORD } } @@ -363,9 +363,9 @@ namespace Jug::Reco { #ifndef USE_LOCAL_COORD spacePoint.push_back(SpacePoint(h, static_cast(spacePoint.size()))); spacePointPtrs.push_back(&spacePoint.back()); - rRangeSPExtent.check({ spacePoint.back().x(), - spacePoint.back().y(), - spacePoint.back().z() }); + rRangeSPExtent.extend({ spacePoint.back().x(), + spacePoint.back().y(), + spacePoint.back().z() }); #endif // USE_LOCAL_COORD } if (msgLevel(MSG::DEBUG)) {