|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_PLANESURFACE_H
10 #define TRKSURFACES_PLANESURFACE_H
24 template<
class SURFACE,
class BOUNDS_CNV>
26 template<
class SURFACE,
class BOUNDS_CNV>
32 class LocalParameters;
33 class TrkDetElementBase;
34 class RectangleBounds;
37 class TrapezoidBounds;
38 class RotatedTrapezoidBounds;
42 template<
int DIM,
class T,
class S>
203 double tol2 = 0.)
const override;
215 double tol2 = 0.)
const override final;
276 bool Bound)
const override final;
282 template<class SURFACE, class BOUNDS_CNV>
284 template<class SURFACE, class BOUNDS_CNV>
294 #include "TrkSurfaces/PlaneSurface.icc"
295 #endif // TRKSURFACES_PLANESURFACE_H
virtual bool operator==(const Surface &sf) const override
Equality operator.
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specified for PlaneSurface: GlobalToLocal method without dynamic memory allocation - boolean checks i...
void localToGlobalDirection(const Trk::LocalDirection &locdir, Amg::Vector3D &globdir) const
This method transforms a local direction wrt the plane to a global direction.
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.
std::unique_ptr< ParametersBase< 5, Trk::Neutral > > NeutralTrackParametersUniquePtr
PlaneSurface(const PlaneSurface &psf)=default
Copy Constructor.
PlaneSurface(PlaneSurface &&psf) noexcept=default
Move Constructor.
bool const RAWDATA *ch2 const
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line distance evaluation to Surface
PlaneSurface()
Default Constructor - needed for persistency.
AmgSymMatrix(5) &GXFTrackState
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override
This method calls the inside() method of the Bounds.
SharedObject< const SurfaceBounds > m_bounds
bounds (shared)
static constexpr SurfaceType staticType
The surface type static constexpr.
static const NoBounds s_boundless
std::unique_ptr< ParametersT< DIM, T, PlaneSurface > > 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.
bool operator==(const PlaneSurface &cf) const
virtual bool insideBoundsCheck(const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final
Eigen::Affine3d Transform3D
PlaneSurface & operator=(const PlaneSurface &psf)=default
Assignment operator.
void globalToLocalDirection(const Amg::Vector3D &glodir, Trk::LocalDirection &locdir) const
This method transforms the global direction to a local direction wrt the plane.
represents the three-dimensional global direction with respect to a planar surface frame.
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 Intersection straightLineIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir, Trk::BoundaryCheck bchk) const override final
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
PlaneSurface & operator=(PlaneSurface &&psf) noexcept=default
Move assignment operator.
std::shared_ptr< T > SharedObject
constexpr virtual SurfaceType type() const override final
Return the surface type.
virtual NeutralTrackParametersUniquePtr createUniqueNeutralParameters(double l1, double l2, double phi, double theta, double oop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
virtual ~PlaneSurface()=default
Destructor.
virtual const SurfaceBounds & bounds() const override final
This method returns the bounds by reference, static NoBounds in case of no boundaries.
virtual std::string name() const override
Return properly formatted class name for screen output.
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override final
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
virtual PlaneSurface * clone() const override
Virtual constructor.