|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRKEVENTCNVTOOLS_DETELEMENTSURFACE_H
6 #define TRKEVENTCNVTOOLS_DETELEMENTSURFACE_H
29 template<
int DIM,
class T,
class S>
class ParametersT;
40 std::unique_ptr<Surface>
uniqueClone()
const {
return nullptr; }
48 MsgStream &
dump (MsgStream &sl)
const {
return sl;}
49 std::ostream &
dump (std::ostream &sl)
const {
return sl;};
55 std::string
name()
const {
return "Trk::DetElementSurface";}
57 virtual std::unique_ptr<ParametersBase<5, Trk::Charged>>
67 virtual std::unique_ptr<ParametersBase<5, Trk::Charged>>
76 virtual std::unique_ptr<ParametersBase<5, Trk::Neutral>>
86 virtual std::unique_ptr<ParametersBase<5, Trk::Neutral>>
virtual Trk::DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &, const Amg::Vector3D &, bool) const
fast straight line distance evaluation to Surface - with bound option
const SurfaceBounds & bounds() const
Surface Bounds method.
const Amg::Vector3D * localToGlobal(const LocalParameters &) const
Surface * clone() const
Implicit constructor - uses the copy constructor.
const Identifier associatedDetectorElementIdentifier() const
Eigen::Matrix< double, 2, 1 > Vector2D
std::string name() const
Return properly formatted class name.
virtual Intersection straightLineIntersection(const Amg::Vector3D &, const Amg::Vector3D &, bool, Trk::BoundaryCheck) const
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
DetElementSurface(const Surface &rhs)
MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
bool insideBounds(const Amg::Vector2D &, double, double) const
virtual methods to be overwritten by the inherited surfaces
bool operator==(const Trk::Surface &) const
Equality operator.
DetElementSurface(Identifier id)
AmgSymMatrix(5) &GXFTrackState
const Amg::Vector3D * localToGlobal(const Amg::Vector2D &) const
virtual std::unique_ptr< ParametersBase< 5, Trk::Charged > > createUniqueTrackParameters(double, double, double, double, double, std::optional< AmgSymMatrix(5)>=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters - charged.
virtual std::unique_ptr< ParametersBase< 5, Trk::Charged > > createUniqueTrackParameters(const Amg::Vector3D &, const Amg::Vector3D &, double, std::optional< AmgSymMatrix(5)>=std::nullopt) const
Use the Surface as a ParametersBase constructor, from global parameters - charged.
virtual std::unique_ptr< ParametersBase< 5, Trk::Neutral > > createUniqueNeutralParameters(const Amg::Vector3D &, const Amg::Vector3D &, double, std::optional< AmgSymMatrix(5)>=std::nullopt) const
Use the Surface as a ParametersBase constructor, from global parameters - neutral.
std::ostream & dump(std::ostream &sl) const
Output Method for std::ostream, to be overloaded by child classes.
void localToGlobal(const Amg::Vector2D &, const Amg::Vector3D &, Amg::Vector3D &) const
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
virtual bool isOnSurface(const Amg::Vector3D &, const Trk::BoundaryCheck &, double, double) const
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
bool globalToLocal(const Amg::Vector3D &, const Amg::Vector3D &, Amg::Vector2D &) const
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
Ensure that the ATLAS eigen extensions are properly loaded.
bool insideBoundsCheck(const Amg::Vector2D &, const BoundaryCheck &) const
Eigen::Matrix< double, 3, 1 > Vector3D
virtual std::unique_ptr< ParametersBase< 5, Trk::Neutral > > createUniqueNeutralParameters(double, double, double, double, double, std::optional< AmgSymMatrix(5)>=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
SurfaceType type() const
Returns the Surface type to avoid dynamic casts.
const Amg::Vector2D * globalToLocal(const Amg::Vector3D &, const double) const
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &, const Amg::Vector3D &) const
fast straight line distance evaluation to Surface
std::unique_ptr< Surface > uniqueClone() const