![]() |
ATLAS Offline Software
|
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector. More...
#include <PlaneSurface.h>
Public Member Functions | |
| PlaneSurface () | |
| Default Constructor - needed for persistency. | |
| PlaneSurface (const PlaneSurface &psf)=default | |
| Copy Constructor. | |
| PlaneSurface (PlaneSurface &&psf) noexcept=default | |
| Move Constructor. | |
| PlaneSurface (const PlaneSurface &psf, const Amg::Transform3D &transf) | |
| Copy Constructor with shift. | |
| PlaneSurface (const Amg::Vector3D &position, const CurvilinearUVT &curvUVT) | |
| Dedicated Constructor with CurvilinearUVT class. | |
| PlaneSurface (const TrkDetElementBase &detelement, const Amg::Transform3D &transf) | |
| Constructor from TrkDetElementBase. | |
| PlaneSurface (const TrkDetElementBase &detelement) | |
| Constructor from TrkDetElementBase. | |
| PlaneSurface (const TrkDetElementBase &detelement, const Identifier &id, const Amg::Transform3D &transf) | |
| Constructor from TrkDetElementBase and Identifier in case one element holds more surfaces. | |
| PlaneSurface (const TrkDetElementBase &detelement, const Identifier &id) | |
| Constructor from TrkDetElementBase and Identifier in case one element holds more surfaces. | |
| PlaneSurface (const Amg::Transform3D &htrans) | |
| Constructor for planar Surface without Bounds , reference. | |
| PlaneSurface (const Amg::Transform3D &htrans, double halephi, double haleta) | |
| Constructor for Rectangular Planes. | |
| PlaneSurface (const Amg::Transform3D &htrans, double minhalephi, double maxhalephi, double haleta) | |
| Constructor for Trapezoidal Planes. | |
| PlaneSurface (const Amg::Transform3D &htrans, std::shared_ptr< const Trk::SurfaceBounds > sbounds) | |
| Constructor for Planes with shared object. | |
| PlaneSurface & | operator= (const PlaneSurface &psf)=default |
| Assignment operator. | |
| PlaneSurface & | operator= (PlaneSurface &&psf) noexcept=default |
| Move assignment operator. | |
| virtual | ~PlaneSurface () |
| Destructor. | |
| virtual bool | operator== (const Surface &sf) const override |
| Equality operator. | |
| bool | operator== (const PlaneSurface &cf) const |
| virtual PlaneSurface * | clone () const override |
| Virtual constructor. | |
| virtual constexpr SurfaceType | type () const override final |
| Return the surface type. | |
| 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. | |
| virtual Surface::ChargedTrackParametersUniquePtr | createUniqueTrackParameters (const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from global parameters - charged. | |
| 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 NeutralTrackParametersUniquePtr | createUniqueNeutralParameters (const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge=0., std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from global parameters. | |
| template<int DIM, class T> | |
| 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. | |
| template<int DIM, class T> | |
| std::unique_ptr< ParametersT< DIM, T, PlaneSurface > > | 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. | |
| virtual const SurfaceBounds & | bounds () const override final |
| This method returns the bounds by reference, static NoBounds in case of no boundaries. | |
| virtual bool | insideBounds (const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override |
| This method calls the inside() method of the Bounds. | |
| virtual bool | insideBoundsCheck (const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final |
| 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 whether the local position is inside boundaries or not. | |
| 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 | 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 if on surface. | |
| void | localToGlobalDirection (const Trk::LocalDirection &locdir, Amg::Vector3D &globdir) const |
| This method transforms a local direction wrt the plane to a global direction. | |
| void | globalToLocalDirection (const Amg::Vector3D &glodir, Trk::LocalDirection &locdir) const |
| This method transforms the global direction to a local direction wrt the plane. | |
| 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 length forceDir is to provide the closest forward solution | |
| virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final |
| fast straight line distance evaluation to Surface | |
| virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool Bound) const override final |
| fast straight line distance evaluation to Surface - with bound option | |
| virtual std::string | name () const override |
| Return properly formatted class name for screen output. | |
Static Public Attributes | |
| static constexpr SurfaceType | staticType = SurfaceType::Plane |
| The surface type static constexpr. | |
Protected Attributes | |
| std::shared_ptr< const SurfaceBounds > | m_bounds |
| bounds (shared) | |
Static Protected Attributes | |
| static const NoBounds | s_boundless |
Friends | |
| template<class SURFACE, class BOUNDS_CNV> | |
| class | ::BoundSurfaceCnv_p1 |
| < data members | |
| template<class SURFACE, class BOUNDS_CNV> | |
| class | ::BoundSurfaceCnv_p2 |
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
It inherits from Surface.
The Trk::PlaneSurface extends the Surface class with the possibility to convert in addition to local to global positions, also local to global direction (vice versa). The definition with of a local direciton with respect to a plane can be found in the dedicated Trk::LocalDirection class of the TrkEventPrimitives package.
Definition at line 63 of file PlaneSurface.h.
| Trk::PlaneSurface::PlaneSurface | ( | ) |
Default Constructor - needed for persistency.
Definition at line 36 of file PlaneSurface.cxx.
|
default |
Copy Constructor.
|
defaultnoexcept |
Move Constructor.
| Trk::PlaneSurface::PlaneSurface | ( | const PlaneSurface & | psf, |
| const Amg::Transform3D & | transf ) |
Copy Constructor with shift.
Definition at line 43 of file PlaneSurface.cxx.
| ATH_FLATTEN Trk::PlaneSurface::PlaneSurface | ( | const Amg::Vector3D & | position, |
| const CurvilinearUVT & | curvUVT ) |
Dedicated Constructor with CurvilinearUVT class.
Definition at line 55 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const TrkDetElementBase & | detelement, |
| const Amg::Transform3D & | transf ) |
Constructor from TrkDetElementBase.
Definition at line 72 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const TrkDetElementBase & | detelement | ) |
Constructor from TrkDetElementBase.
Definition at line 80 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const TrkDetElementBase & | detelement, |
| const Identifier & | id, | ||
| const Amg::Transform3D & | transf ) |
Constructor from TrkDetElementBase and Identifier in case one element holds more surfaces.
Definition at line 88 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const TrkDetElementBase & | detelement, |
| const Identifier & | id ) |
Constructor from TrkDetElementBase and Identifier in case one element holds more surfaces.
Definition at line 98 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const Amg::Transform3D & | htrans | ) |
Constructor for planar Surface without Bounds , reference.
Definition at line 107 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const Amg::Transform3D & | htrans, |
| double | halephi, | ||
| double | haleta ) |
Constructor for Rectangular Planes.
Definition at line 113 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const Amg::Transform3D & | htrans, |
| double | minhalephi, | ||
| double | maxhalephi, | ||
| double | haleta ) |
Constructor for Trapezoidal Planes.
Definition at line 119 of file PlaneSurface.cxx.
| Trk::PlaneSurface::PlaneSurface | ( | const Amg::Transform3D & | htrans, |
| std::shared_ptr< const Trk::SurfaceBounds > | sbounds ) |
Constructor for Planes with shared object.
Definition at line 125 of file PlaneSurface.cxx.
|
virtualdefault |
Destructor.
|
finaloverridevirtual |
This method returns the bounds by reference, static NoBounds in case of no boundaries.
Implements Trk::Surface.
|
overridevirtual |
Virtual constructor.
Implements Trk::Surface.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from global parameters.
Use the Surface as a ParametersBase constructor, from global parameters - neutral.
Implements Trk::Surface.
Definition at line 188 of file PlaneSurface.cxx.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
Implements Trk::Surface.
Definition at line 173 of file PlaneSurface.cxx.
| std::unique_ptr< ParametersT< DIM, T, PlaneSurface > > Trk::PlaneSurface::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.
| std::unique_ptr< ParametersT< DIM, T, PlaneSurface > > Trk::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.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from global parameters - charged.
Implements Trk::Surface.
Definition at line 160 of file PlaneSurface.cxx.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from local parameters - charged.
Implements Trk::Surface.
Definition at line 146 of file PlaneSurface.cxx.
|
finaloverridevirtual |
Specified for PlaneSurface: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.
Implements Trk::Surface.
Definition at line 212 of file PlaneSurface.cxx.
| void Trk::PlaneSurface::globalToLocalDirection | ( | const Amg::Vector3D & | glodir, |
| Trk::LocalDirection & | locdir ) const |
This method transforms the global direction to a local direction wrt the plane.
Definition at line 259 of file PlaneSurface.cxx.
|
overridevirtual |
This method calls the inside() method of the Bounds.
Implements Trk::Surface.
|
finaloverridevirtual |
|
finaloverridevirtual |
This method returns true if the GlobalPosition is on the Surface for both, within or without check of whether the local position is inside boundaries or not.
Reimplemented from Trk::Surface.
Definition at line 268 of file PlaneSurface.cxx.
|
finaloverridevirtual |
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Implements Trk::Surface.
Definition at line 201 of file PlaneSurface.cxx.
| void Trk::PlaneSurface::localToGlobalDirection | ( | const Trk::LocalDirection & | locdir, |
| Amg::Vector3D & | globdir ) const |
This method transforms a local direction wrt the plane to a global direction.
Definition at line 241 of file PlaneSurface.cxx.
|
overridevirtual |
Return properly formatted class name for screen output.
Implements Trk::Surface.
|
default |
Assignment operator.
|
defaultnoexcept |
Move assignment operator.
| bool Trk::PlaneSurface::operator== | ( | const PlaneSurface & | cf | ) | const |
|
overridevirtual |
Equality operator.
Implements Trk::Surface.
Definition at line 134 of file PlaneSurface.cxx.
|
finaloverridevirtual |
fast straight line distance evaluation to Surface
distance to surface
Implements Trk::Surface.
Definition at line 281 of file PlaneSurface.cxx.
|
finaloverridevirtual |
fast straight line distance evaluation to Surface - with bound option
Implements Trk::Surface.
Definition at line 302 of file PlaneSurface.cxx.
|
finaloverridevirtual |
fast straight line intersection schema - standard: provides closest intersection and (signed) path length forceDir is to provide the closest forward solution
mathematical motivation:
the equation of the plane is given by:
\( \vec n \cdot \vec x = \vec n \cdot \vec p,\)
where \( \vec n = (n_{x}, n_{y}, n_{z})\) denotes the normal vector of the plane, \( \vec p = (p_{x}, p_{y}, p_{z})\) one specific point on the plane and \( \vec x = (x,y,z) \) all possible points on the plane.
Given a line with:
\( \vec l(u) = \vec l_{1} + u \cdot \vec v \),
the solution for \( u \) can be written: \( u = \frac{\vec n (\vec p - \vec l_{1})}{\vec n \vec v}\)
If the denominator is 0 then the line lies:
Implements Trk::Surface.
Definition at line 222 of file PlaneSurface.cxx.
|
constexprfinaloverridevirtual |
Return the surface type.
Implements Trk::Surface.
|
friend |
< data members
Definition at line 280 of file PlaneSurface.h.
|
friend |
Definition at line 282 of file PlaneSurface.h.
|
protected |
bounds (shared)
NoBounds as return object when no bounds are declared
Definition at line 284 of file PlaneSurface.h.
|
staticprotected |
Definition at line 286 of file PlaneSurface.h.
|
staticconstexpr |
The surface type static constexpr.
Definition at line 67 of file PlaneSurface.h.