|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_PERIGEESURFACE_H
10 #define TRKSURFACES_PERIGEESURFACE_H
26 class LocalParameters;
27 template<
int DIM,
class T,
class S>
216 bool forceDir = false,
228 bool Bound)
const override final;
238 double tol2 = 0.)
const override final;
243 double tol2 = 0.)
const override final;
260 virtual MsgStream&
dump(MsgStream& sl)
const override;
262 virtual std::ostream&
dump(std::ostream& sl)
const override;
272 #include "TrkSurfaces/PerigeeSurface.icc"
274 #endif // TRKSURFACES_PERIGEESURFACE_H
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.
virtual NeutralTrackParametersUniquePtr createUniqueNeutralParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
std::unique_ptr< ParametersBase< 5, Trk::Charged > > ChargedTrackParametersUniquePtr
Unique ptr types.
Eigen::Matrix< double, 2, 1 > Vector2D
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
virtual std::string name() const override final
Return properly formatted class name for screen output.
CxxUtils::CachedValue< Amg::Vector3D > m_lineDirection
< data members cache of the line direction (speeds up)
std::unique_ptr< ParametersT< DIM, T, PerigeeSurface > > createUniqueParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters.
const Amg::Vector3D & lineDirection() const
Special method for StraightLineSurface - provides the Line direction from cache: speedup.
PerigeeSurface & operator=(const PerigeeSurface &slsf)
Assignment operator.
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override final
This method checks if a globalPosition in on the Surface or not.
std::unique_ptr< ParametersBase< 5, Trk::Neutral > > NeutralTrackParametersUniquePtr
bool const RAWDATA *ch2 const
virtual Amg::RotationMatrix3D measurementFrame(const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const override final
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perig...
Amg::Vector3D localToGlobal(const LocalParameters &locpos) const
Local to global method: Take care that by just providing locR and locZ the global position cannot be ...
virtual ~PerigeeSurface()=default
Destructor.
virtual MsgStream & dump(MsgStream &sl) const override
Output Method for MsgStream.
AmgSymMatrix(5) &GXFTrackState
static const NoBounds s_perigeeBounds
virtual Intersection straightLineIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir=false, Trk::BoundaryCheck bchk=false) const override final
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
Eigen::Affine3d Transform3D
virtual bool insideBoundsCheck(const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final
static constexpr SurfaceType staticType
The surface type static constexpr.
virtual const Amg::Vector3D & normal() const override final
Returns the x global axis.
Ensure that the ATLAS eigen extensions are properly loaded.
virtual PerigeeSurface * clone() const override final
Virtual constructor.
Definition of ATLAS Math & Geometry primitives (Amg)
Cached value with atomic update.
double charge(const T &p)
Eigen::Matrix< double, 3, 1 > Vector3D
virtual Surface::ChargedTrackParametersUniquePtr createUniqueTrackParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final
Use the Surface as a ParametersBase constructor, from local parameters - charged.
PerigeeSurface & operator=(PerigeeSurface &&slsf) noexcept=default
Assignment operator.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
constexpr virtual SurfaceType type() const override final
Return the surface type.
virtual double pathCorrection(const Amg::Vector3D &, const Amg::Vector3D &) const override final
the pathCorrection for derived classes with thickness
virtual const NoBounds & bounds() const override final
Return bounds() method.
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override final
This surface calls the iside method of the bounds.
PerigeeSurface(PerigeeSurface &&pesf) noexcept=default
Copy constructor.
PerigeeSurface()
Default Constructor - needed for persistency.
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line distance evaluation to Surface