diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/VP1TrackSystems/TrackHandleBase.h b/graphics/VP1/VP1Systems/VP1TrackSystems/VP1TrackSystems/TrackHandleBase.h index 7136304bfb7c8ea09bebed55b86578a12dd6c34b..b7ccd109b44f319f679fcf344b0b97f85d1c0a84 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/VP1TrackSystems/TrackHandleBase.h +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/VP1TrackSystems/TrackHandleBase.h @@ -74,8 +74,8 @@ public: virtual QStringList clicked() const = 0; virtual Amg::Vector3D momentum() const { return Amg::Vector3D(0,0,0); } - virtual const Amg::Vector3D * startPoint() const;//!< returns 0 if can't find start point. - virtual const Amg::Vector3D * endPoint() const;//!< returns 0 if can't find start point. + virtual std::optional<Amg::Vector3D> startPoint() const;//!< returns 0 if can't find start point. + virtual std::optional<Amg::Vector3D> endPoint() const;//!< returns 0 if can't find start point. virtual int pdgCode() const { return 0; }//!< 0 means unknown //Default implementation of the following two methods will based on diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackHandleBase.cxx b/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackHandleBase.cxx index 267dae53a3ee4171b19c74c518b805cec978e979..be15ef8314f9e9cc892c5b24ad84ec62fb0168ef 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackHandleBase.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackHandleBase.cxx @@ -1556,7 +1556,7 @@ QStringList TrackHandleBase::baseInfo() const } //____________________________________________________________________ -const Amg::Vector3D * TrackHandleBase::startPoint() const +std::optional<Amg::Vector3D> TrackHandleBase::startPoint() const { m_d->ensureLoadPathInfo(); if (m_d->pathInfo_TrkTrack) { @@ -1566,17 +1566,17 @@ const Amg::Vector3D * TrackHandleBase::startPoint() const if (common()->trackSanityHelper()->isSafe(*tsos_iter)) { const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters(); if (common()->trackSanityHelper()->isSafe(trackParam)) - return &(trackParam->position()); + return trackParam->position(); } } } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) { - return &(m_d->pathInfo_Points->at(0)); + return m_d->pathInfo_Points->at(0); } - return 0; + return {}; } //____________________________________________________________________ -const Amg::Vector3D * TrackHandleBase::endPoint() const +std::optional<Amg::Vector3D> TrackHandleBase::endPoint() const { m_d->ensureLoadPathInfo(); if (m_d->pathInfo_TrkTrack) { @@ -1586,18 +1586,18 @@ const Amg::Vector3D * TrackHandleBase::endPoint() const if (common()->trackSanityHelper()->isSafe(*tsos_iter)) { const Trk::TrackParameters* trackParam = (*tsos_iter)->trackParameters(); if (common()->trackSanityHelper()->isSafe(trackParam)) - return &(trackParam->position()); + return trackParam->position(); } } } else if (m_d->pathInfo_Points&&!m_d->pathInfo_Points->empty()) { - return &(m_d->pathInfo_Points->back()); + return m_d->pathInfo_Points->back(); } - return 0; + return {}; } bool TrackHandleBase::isIDTrack() const { - const Amg::Vector3D * start = startPoint(); + std::optional<Amg::Vector3D> start = startPoint(); if (!start) return false; return start->perp()<1100 &&fabs( start->z())>3500; } diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/src/VP1TrackSystem.cxx b/graphics/VP1/VP1Systems/VP1TrackSystems/src/VP1TrackSystem.cxx index e4ed3633e90397ecd54348cca1cd560b2df8f536..91eb346e5955ad32f9aab87c82883e21732189c2 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/src/VP1TrackSystem.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/src/VP1TrackSystem.cxx @@ -672,7 +672,7 @@ unsigned VP1TrackSystem::Imp::calcTotalMomentumOfSelectedHandles(Amg::Vector3D& if (mom.mag2()==0.0) continue; //Fixme: Get actual position of perigee!! - const Amg::Vector3D * pos = handle->startPoint(); + std::optional<Amg::Vector3D> pos = handle->startPoint(); if (!pos) continue; ++nused;