|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_DISCSURFACE_H
10 #define TRKSURFACES_DISCSURFACE_H
26 template<
class SURFACE,
class BOUNDS_CNV>
28 template<
class SURFACE,
class BOUNDS_CNV>
34 class DiscTrapezoidalBounds;
36 class AnnulusBoundsPC;
37 class TrkDetElementBase;
38 class LocalParameters;
40 template<
int DIM,
class T,
class S>
148 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
156 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
166 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
174 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
177 template<
int DIM,
class T>
187 template<
int DIM,
class T>
209 double tol2 = 0.)
const override;
220 double tol2 = 0.)
const override;
262 bool forceDir = false,
274 bool Bound)
const override;
280 template<class SURFACE, class BOUNDS_CNV>
282 template<class SURFACE, class BOUNDS_CNV>
293 #include "TrkSurfaces/DiscSurface.icc"
295 #endif // TRKSURFACES_DISCSURFACE_H
virtual bool insideBoundsCheck(const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final
virtual Amg::Vector2D localParametersToPosition(const LocalParameters &locpars) const override final
Specialized for DiscSurface : LocalParameters to Vector2D.
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override
This method calls the inside method of the bounds.
DiscSurface & operator=(DiscSurface &&dsf) noexcept=default
Assignement operator.
CachedUniquePtrT< const T > CachedUniquePtr
std::unique_ptr< ParametersBase< 5, Trk::Charged > > ChargedTrackParametersUniquePtr
Unique ptr types.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
DiscSurface & operator=(const DiscSurface &dsf)
Assignement operator.
virtual DiscSurface * clone() const override
Virtual constructor.
CxxUtils::CachedUniquePtr< Amg::Vector3D > m_referencePoint
static member for boundless approach
std::unique_ptr< ParametersBase< 5, Trk::Neutral > > NeutralTrackParametersUniquePtr
bool const RAWDATA *ch2 const
virtual const Amg::Vector3D & globalReferencePoint() const override final
Returns a global reference point: For the Disc this is Where denote the r(), averagePhi() of the Bo...
DiscSurface()
Default Constructor.
virtual ~DiscSurface()=default
Destructor.
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...
AmgSymMatrix(5) &GXFTrackState
virtual std::string name() const override
Return properly formatted class name for screen output.
Class that implements the asymmetric shape of the ITk strip endcap modules.
bool operator==(const DiscSurface &cf) const
SharedObject< const SurfaceBounds > m_bounds
reference Point on the Surface
Eigen::Affine3d Transform3D
std::unique_ptr< ParametersT< DIM, T, DiscSurface > > createUniqueParameters(const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const
Use the Surface as a ParametersBase constructor, from global parameters.
const SurfaceBounds & bounds() const override final
This method returns the bounds by reference.
DiscSurface(DiscSurface &&psf) noexcept=default
Copy Constructor.
static constexpr SurfaceType staticType
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
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.
double charge(const T &p)
Eigen::Matrix< double, 3, 1 > Vector3D
virtual bool operator==(const Surface &sf) const override
Equality operator.
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.
constexpr virtual SurfaceType type() const override final
Return the surface type.
std::shared_ptr< T > SharedObject
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks ...
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
std::unique_ptr< ParametersT< DIM, T, DiscSurface > > 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.
static const NoBounds s_boundless
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override
fast straight line distance evaluation to Surface