|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKSURFACES_CONESURFACE_H
10 #define TRKSURFACES_CONESURFACE_H
24 template<
class SURFACE,
class BOUNDS_CNV>
26 template<
class SURFACE,
class BOUNDS_CNV>
31 class LocalParameters;
32 template<
int DIM,
class T,
class S>
77 bool symmetric =
false);
84 double halfPhi =
M_PI);
113 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
121 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
131 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
140 std::optional<
AmgSymMatrix(5)>
cov = std::nullopt)
const override final;
143 template<
int DIM,
class T>
153 template<
int DIM,
class T>
194 double tol2 = 0.)
const override;
249 bool forceDir = false,
261 bool bound)
const override final;
271 template<class SURFACE, class BOUNDS_CNV>
273 template<class SURFACE, class BOUNDS_CNV>
284 #include "TrkSurfaces/ConeSurface.icc"
286 #endif // TRKSURFACES_CONESURFACE_H
virtual bool insideBoundsCheck(const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final
ConeSurface & operator=(const ConeSurface &csf)
Assignment operator.
CachedUniquePtrT< const T > CachedUniquePtr
static constexpr SurfaceType staticType
The surface type static constexpr.
std::unique_ptr< ParametersBase< 5, Trk::Charged > > ChargedTrackParametersUniquePtr
Unique ptr types.
Eigen::Matrix< double, 2, 1 > Vector2D
ConeSurface()
Default Constructor.
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override
This method calls the inside method of ConeBounds.
virtual const Amg::Vector3D & globalReferencePoint() const override final
Returns a global reference point: For the Cylinder this is Where denotes the averagePhi() of the cy...
ConeSurface(ConeSurface &&annbo)=default
Move constructor.
CxxUtils::CachedUniquePtr< Amg::Vector3D > m_rotSymmetryAxis
virtual ~ConeSurface()=default
Destructor.
std::unique_ptr< ParametersBase< 5, Trk::Neutral > > NeutralTrackParametersUniquePtr
bool const RAWDATA *ch2 const
virtual Amg::Vector2D localParametersToPosition(const LocalParameters &locpars) const override final
Specialized for ConeSurface : LocalParameters to Vector2D.
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...
virtual const ConeBounds & bounds() const override final
This method returns the ConeBounds by reference (NoBounds is not possible for cone)
AmgSymMatrix(5) &GXFTrackState
SharedObject< const ConeBounds > m_bounds
The global reference point (== a point on thesurface)
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.
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.
Eigen::Affine3d Transform3D
std::unique_ptr< ParametersT< DIM, T, ConeSurface > > 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.
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
constexpr virtual SurfaceType type() const override final
Return the surface type.
virtual double pathCorrection(const Amg::Vector3D &, const Amg::Vector3D &) const override
the pathCorrection for derived classes with thickness
virtual ConeSurface * clone() const override
Implicit Constructor.
virtual Intersection straightLineIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir=false, BoundaryCheck bchk=false) const override final
fast straight line intersection schema - provides closest intersection and (signed) path length
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
std::unique_ptr< ParametersT< DIM, T, ConeSurface > > 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.
double charge(const T &p)
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specialized for ConeSurface : LocalToGlobal method without dynamic memory allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const Amg::Vector3D & rotSymmetryAxis() const
Return method for the rotational symmetry axis - the z-Axis of the HepTransform.
std::shared_ptr< T > SharedObject
CxxUtils::CachedUniquePtr< Amg::Vector3D > m_referencePoint
The rotational symmetry axis.
ConeSurface & operator=(ConeSurface &&sbo)=default
Move assignment.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
bool operator==(const ConeSurface &cf) const
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specialized for ConeSurface : GlobalToLocal method without dynamic memory allocation - boolean checks...
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line distance to Surface
virtual bool operator==(const Surface &sf) const override
Equality operator.
virtual std::string name() const override
Return properly formatted class name for screen output.