ATLAS Offline Software
|
#include <DiscSurface.h>
Public Types | |
using | ChargedTrackParametersUniquePtr = std::unique_ptr< ParametersBase< 5, Trk::Charged > > |
Unique ptr types. More... | |
using | NeutralTrackParametersUniquePtr = std::unique_ptr< ParametersBase< 5, Trk::Neutral > > |
Public Member Functions | |
DiscSurface () | |
Default Constructor. More... | |
DiscSurface (const DiscSurface &psf) | |
Copy Constructor. More... | |
DiscSurface & | operator= (const DiscSurface &dsf) |
Assignement operator. More... | |
DiscSurface (DiscSurface &&psf) noexcept=default | |
Copy Constructor. More... | |
DiscSurface & | operator= (DiscSurface &&dsf) noexcept=default |
Assignement operator. More... | |
virtual | ~DiscSurface ()=default |
Destructor. More... | |
DiscSurface (const Amg::Transform3D &htrans, double rmin, double rmax) | |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max} \). More... | |
DiscSurface (const Amg::Transform3D &htrans, double rmin, double rmax, double hphisec) | |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max}, \phi_{hsec} \). More... | |
DiscSurface (const Amg::Transform3D &htrans, double minhalfx, double maxhalfx, double maxR, double minR, double avephi, double stereo=0.) | |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max}, hx_{min}, hx_{max} \) In this case you have DiscTrapezoidalBounds. More... | |
DiscSurface (const Amg::Transform3D &htrans, DiscBounds *dbounds) | |
Constructor for Discs from HepGeom::Transform3D and DiscBounds. More... | |
DiscSurface (const Amg::Transform3D &htrans, DiscTrapezoidalBounds *dtbounds) | |
Constructor for Discs from HepGeom::Transform3D and DiscTrapezoidalBounds. More... | |
DiscSurface (const Amg::Transform3D &htrans, AnnulusBoundsPC *annpcbounds) | |
Constructor for Discs from HepGeom::Transform3D and AnnulusBoundsPC. More... | |
DiscSurface (const Amg::Transform3D &htrans, std::unique_ptr< AnnulusBounds > annbounds, const TrkDetElementBase *detElem=nullptr) | |
Constructor for Discs from Transform3D and AnnulusBoundsPC This will use the converting factory in AnnulusBoundsPC to build an equivalent PC version. More... | |
DiscSurface (const Amg::Transform3D &htrans) | |
Constructor for Discs from HepGeom::Transform3D by unique_ptr. More... | |
DiscSurface (const TrkDetElementBase &dmnt) | |
Constructor for DiscSegment from DetectorElement. More... | |
DiscSurface (const DiscSurface &psf, const Amg::Transform3D &transf) | |
Copy Constructor with shift. More... | |
virtual bool | operator== (const Surface &sf) const override |
Equality operator. More... | |
bool | operator== (const DiscSurface &cf) const |
virtual DiscSurface * | clone () const override |
Virtual constructor. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual NeutralTrackParametersUniquePtr | createUniqueNeutralParameters (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 - neutral. More... | |
template<int DIM, class T > | |
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. More... | |
template<int DIM, class T > | |
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. More... | |
constexpr virtual SurfaceType | type () const override final |
Return the surface type. More... | |
virtual const Amg::Vector3D & | globalReferencePoint () const override final |
Returns a global reference point: For the Disc this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( r, \phi \) denote the r(), averagePhi() of the Bounds. More... | |
const SurfaceBounds & | bounds () const override final |
This method returns the bounds by reference. More... | |
virtual bool | insideBounds (const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override |
This method calls the inside method of the bounds. More... | |
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 |
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. More... | |
virtual Amg::Vector2D | localParametersToPosition (const LocalParameters &locpars) const override final |
Specialized for DiscSurface : LocalParameters to Vector2D. More... | |
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. More... | |
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 if on surface. More... | |
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 length forceDir is to provide the closest forward solution More... | |
virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override |
fast straight line distance evaluation to Surface More... | |
virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool Bound) const override |
fast straight line distance evaluation to Surface - with bound option More... | |
virtual std::string | name () const override |
Return properly formatted class name for screen output. More... | |
bool | operator!= (const Surface &sf) const |
Non-equality operator. More... | |
std::unique_ptr< Surface > | uniqueClone () const |
NVI method returning unique_ptr clone. More... | |
const Amg::Transform3D * | cachedTransform () const |
Return the cached transformation directly. More... | |
const Amg::Transform3D & | transform () const |
Returns HepGeom::Transform3D by reference. More... | |
const Amg::Vector3D & | center () const |
Returns the center position of the Surface. More... | |
virtual const Amg::Vector3D & | normal () const |
Returns the normal vector of the Surface (i.e. More... | |
virtual Amg::Vector3D | normal (const Amg::Vector2D &lp) const |
Returns a normal vector at a specific local position. More... | |
const TrkDetElementBase * | associatedDetectorElement () const |
return associated Detector Element More... | |
Identifier | associatedDetectorElementIdentifier () const |
return Identifier of the associated Detector Element More... | |
const Trk::Layer * | associatedLayer () const |
return the associated Layer More... | |
const Trk::Layer * | materialLayer () const |
return the material Layer More... | |
Trk::Layer * | materialLayer () |
virtual const Trk::Surface * | baseSurface () const |
return the base surface (simplified for persistification) More... | |
std::optional< Amg::Vector2D > | positionOnSurface (const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const |
positionOnSurface() returns the LocalPosition on the Surface, If BoundaryCheck==false it just returns the value of globalToLocal (including nullptr possibility), if BoundaryCheck==true it checks whether the point is inside bounds or not (returns std::nullopt in this case). More... | |
template<class T > | |
bool | onSurface (const T ¶meters, const BoundaryCheck &bchk=BoundaryCheck(true)) const |
The templated Parameters OnSurface method - checks on surface pointer first. More... | |
Amg::Vector3D | localToGlobal (const Amg::Vector2D &locpos) const |
This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal. More... | |
Amg::Vector3D | localToGlobal (const Amg::Vector2D &locpos, const Amg::Vector3D &glomom) const |
This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface bounds - for generality with momentum. More... | |
Amg::Vector3D | localToGlobal (const LocalParameters &locpars) const |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds. More... | |
Amg::Vector3D | localToGlobal (const LocalParameters &locpars, const Amg::Vector3D &glomom) const |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds - for generality with momentum. More... | |
std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, double tol=0.) const |
This method returns the LocalPosition from a provided GlobalPosition. More... | |
std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const |
This method returns the LocalPosition from a provided GlobalPosition. More... | |
virtual double | pathCorrection (const Amg::Vector3D &pos, const Amg::Vector3D &mom) const |
the pathCorrection for derived classes with thickness - it reflects if the direction projection is positive or negative More... | |
virtual Amg::RotationMatrix3D | measurementFrame (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface. More... | |
template<class T > | |
Intersection | straightLineIntersection (const T &pars, bool forceDir=false, const Trk::BoundaryCheck &bchk=false) const |
fst straight line intersection schema - templated for charged and neutral parameters More... | |
bool | isFree () const |
Returns 'true' if this surface is 'free', i.e. More... | |
bool | isActive () const |
Return 'true' if this surface is owned by the detector element. More... | |
void | setTransform (const Amg::Transform3D &trans) |
Set the transform updates center and normal. More... | |
void | setOwner (SurfaceOwner x) |
set Ownership More... | |
SurfaceOwner | owner () const |
return ownership More... | |
void | setMaterialLayer (std::shared_ptr< Layer > mlay) |
set material layer More... | |
virtual MsgStream & | dump (MsgStream &sl) const |
Output Method for MsgStream, to be overloaded by child classes. More... | |
virtual std::ostream & | dump (std::ostream &sl) const |
Output Method for std::ostream, to be overloaded by child classes. More... | |
void | associateLayer (const Layer &lay) |
method to associate the associated Trk::Layer which is alreay owned More... | |
Static Public Member Functions | |
static std::size_t | numberOfInstantiations () |
Static Public Attributes | |
static constexpr SurfaceType | staticType = SurfaceType::Disc |
static std::atomic_size_t | s_numberOfInstantiations |
Protected Member Functions | |
Amg::Transform3D | inverseTransformHelper () const |
Helper method to factorize in one place common operations calculate inverse transofrm and multiply with position. More... | |
Amg::Vector3D | inverseTransformMultHelper (const Amg::Vector3D &glopos) const |
Protected Attributes | |
SharedObject< const SurfaceBounds > | m_bounds |
reference Point on the Surface More... | |
CxxUtils::CachedUniquePtr< Amg::Vector3D > | m_referencePoint |
static member for boundless approach More... | |
std::unique_ptr< Transforms > | m_transforms {} |
const TrkDetElementBase * | m_associatedDetElement {} |
Not owning Pointer to the TrkDetElementBase. More... | |
Identifier | m_associatedDetElementId {} |
Identifier for the TrkDetElementBase. More... | |
const Layer * | m_associatedLayer {} |
The associated layer Trk::Layer. More... | |
std::shared_ptr< Layer > | m_materialLayer {} |
Possibility to attach a material descrption. More... | |
SurfaceOwner | m_owner {SurfaceOwner::noOwn} |
enum for surface owner : 0 free surface More... | |
Static Protected Attributes | |
static const NoBounds | s_boundless |
static constexpr double | s_onSurfaceTolerance = 10e-5 |
Tolerance for being on Surface. More... | |
Friends | |
template<class SURFACE , class BOUNDS_CNV > | |
class | ::BoundSurfaceCnv_p1 |
< data members More... | |
template<class SURFACE , class BOUNDS_CNV > | |
class | ::BoundSurfaceCnv_p2 |
bounds (shared) More... | |
Class for a DiscSurface in the ATLAS detector. It inherits from Surface.
Definition at line 53 of file DiscSurface.h.
|
inherited |
Unique ptr types.
Definition at line 124 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inherited |
Definition at line 126 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
Trk::DiscSurface::DiscSurface | ( | ) |
Default Constructor.
Definition at line 26 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const DiscSurface & | psf | ) |
Copy Constructor.
Definition at line 33 of file DiscSurface.cxx.
|
defaultnoexcept |
Copy Constructor.
|
virtualdefault |
Destructor.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
double | rmin, | ||
double | rmax | ||
) |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max} \).
Definition at line 48 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
double | rmin, | ||
double | rmax, | ||
double | hphisec | ||
) |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max}, \phi_{hsec} \).
Definition at line 57 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
double | minhalfx, | ||
double | maxhalfx, | ||
double | maxR, | ||
double | minR, | ||
double | avephi, | ||
double | stereo = 0. |
||
) |
Constructor for Discs from HepGeom::Transform3D, \( r_{min}, r_{max}, hx_{min}, hx_{max} \) In this case you have DiscTrapezoidalBounds.
Definition at line 66 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
Trk::DiscBounds * | dbounds | ||
) |
Constructor for Discs from HepGeom::Transform3D and DiscBounds.
Definition at line 84 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
Trk::DiscTrapezoidalBounds * | dbounds | ||
) |
Constructor for Discs from HepGeom::Transform3D and DiscTrapezoidalBounds.
Definition at line 92 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
Trk::AnnulusBoundsPC * | annpcbounds | ||
) |
Constructor for Discs from HepGeom::Transform3D and AnnulusBoundsPC.
Definition at line 99 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans, |
std::unique_ptr< AnnulusBounds > | annbounds, | ||
const TrkDetElementBase * | detElem = nullptr |
||
) |
Constructor for Discs from Transform3D and AnnulusBoundsPC This will use the converting factory in AnnulusBoundsPC
to build an equivalent PC version.
The overall transform of this object will be htrans
and an additional rotation to overlay the two bounds implementations exactly.
htrans | Base transform. This should be the transform of the PlaneSurface on which annbounds is located |
annbounds | Cartesian annulus bounds to convert |
detElem | Additional explicit detector element |
Definition at line 105 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const Amg::Transform3D & | htrans | ) |
Constructor for Discs from HepGeom::Transform3D by unique_ptr.
Definition at line 134 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const TrkDetElementBase & | dmnt | ) |
Constructor for DiscSegment from DetectorElement.
Definition at line 141 of file DiscSurface.cxx.
Trk::DiscSurface::DiscSurface | ( | const DiscSurface & | psf, |
const Amg::Transform3D & | transf | ||
) |
Copy Constructor with shift.
Definition at line 40 of file DiscSurface.cxx.
|
inherited |
return associated Detector Element
|
inherited |
return Identifier of the associated Detector Element
|
inherited |
return the associated Layer
method to associate the associated Trk::Layer which is alreay owned
|
virtualinherited |
return the base surface (simplified for persistification)
|
finaloverridevirtual |
This method returns the bounds by reference.
Implements Trk::Surface.
|
inherited |
Return the cached transformation directly.
Don't try to make a new transform if it's not here.
|
inherited |
Returns the center position of the Surface.
|
overridevirtual |
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from global parameters - neutral.
Implements Trk::Surface.
Definition at line 200 of file DiscSurface.cxx.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
Implements Trk::Surface.
Definition at line 190 of file DiscSurface.cxx.
std::unique_ptr<ParametersT<DIM, T, DiscSurface> > Trk::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.
std::unique_ptr<ParametersT<DIM, T, DiscSurface> > Trk::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.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from global parameters - charged.
Implements Trk::Surface.
Definition at line 180 of file DiscSurface.cxx.
|
finaloverridevirtual |
Use the Surface as a ParametersBase constructor, from local parameters - charged.
Implements Trk::Surface.
Definition at line 171 of file DiscSurface.cxx.
|
virtualinherited |
Output Method for MsgStream, to be overloaded by child classes.
Reimplemented in Trk::PerigeeSurface, and Trk::DetElementSurface.
Definition at line 157 of file Surface.cxx.
|
virtualinherited |
Output Method for std::ostream, to be overloaded by child classes.
Reimplemented in Trk::PerigeeSurface, and Trk::DetElementSurface.
Definition at line 185 of file Surface.cxx.
|
finaloverridevirtual |
Returns a global reference point: For the Disc this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( r, \phi \) denote the r(), averagePhi() of the Bounds.
Reimplemented from Trk::Surface.
Definition at line 208 of file DiscSurface.cxx.
|
overridevirtual |
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.
local<->global transformation in case of polar local coordinates
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 249 of file DiscSurface.cxx.
|
inherited |
This method returns the LocalPosition from a provided GlobalPosition.
If the GlobalPosition is not on the Surface, it returns a nullopt This method does not check if the calculated LocalPosition is inside surface bounds. If this check is needed, use positionOnSurface - for generality with momentum
|
inherited |
This method returns the LocalPosition from a provided GlobalPosition.
If the GlobalPosition is not on the Surface, it returns nullopt This method does not check if the calculated LocalPosition is inside surface bounds. If this check is needed, use positionOnSurface - only for planar, cylinder surface fully defined
|
overridevirtual |
This method calls the inside method of the bounds.
Implements Trk::Surface.
Reimplemented in Trk::SubtractedDiscSurface.
|
finaloverridevirtual |
Implements Trk::Surface.
|
protectedinherited |
Helper method to factorize in one place common operations calculate inverse transofrm and multiply with position.
|
protectedinherited |
|
inherited |
Return 'true' if this surface is owned by the detector element.
|
inherited |
Returns 'true' if this surface is 'free', i.e.
it does not belong to a detector element (and returns false otherwise
|
overridevirtual |
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.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 286 of file DiscSurface.cxx.
|
finaloverridevirtual |
Specialized for DiscSurface : LocalParameters to Vector2D.
Reimplemented from Trk::Surface.
|
overridevirtual |
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 235 of file DiscSurface.cxx.
|
inherited |
This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal.
|
inherited |
This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface bounds - for generality with momentum.
|
inherited |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds.
|
inherited |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds - for generality with momentum.
|
inherited |
|
inherited |
return the material Layer
|
virtualinherited |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface.
Reimplemented in Trk::CylinderSurface, Trk::ConeSurface, Trk::StraightLineSurface, and Trk::PerigeeSurface.
Definition at line 135 of file Surface.cxx.
|
overridevirtual |
Return properly formatted class name for screen output.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface, and Trk::SubtractedDiscSurface.
|
virtualinherited |
Returns the normal vector of the Surface (i.e.
in generall z-axis of rotation)
Reimplemented in Trk::PerigeeSurface.
|
virtualinherited |
Returns a normal vector at a specific local position.
Reimplemented in Trk::PerigeeSurface, Trk::CylinderSurface, and Trk::ConeSurface.
|
inlinestaticinherited |
Definition at line 25 of file TrkObjectCounter.h.
|
inherited |
The templated Parameters OnSurface method - checks on surface pointer first.
|
inherited |
Non-equality operator.
Trk::DiscSurface & Trk::DiscSurface::operator= | ( | const DiscSurface & | dsf | ) |
|
defaultnoexcept |
Assignement operator.
bool Trk::DiscSurface::operator== | ( | const DiscSurface & | cf | ) | const |
Equality operator.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface, and Trk::SubtractedDiscSurface.
Definition at line 159 of file DiscSurface.cxx.
|
inherited |
return ownership
|
virtualinherited |
the pathCorrection for derived classes with thickness - it reflects if the direction projection is positive or negative
Reimplemented in Trk::CylinderSurface, Trk::StraightLineSurface, Trk::PerigeeSurface, and Trk::ConeSurface.
|
inherited |
positionOnSurface() returns the LocalPosition on the Surface,
If BoundaryCheck==false it just returns the value of globalToLocal (including nullptr possibility), if BoundaryCheck==true it checks whether the point is inside bounds or not (returns std::nullopt in this case).
Definition at line 106 of file Surface.cxx.
|
inherited |
set material layer
|
inherited |
set Ownership
|
inherited |
Set the transform updates center and normal.
|
overridevirtual |
fast straight line distance evaluation to Surface
distance to surface
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 303 of file DiscSurface.cxx.
|
overridevirtual |
fast straight line distance evaluation to Surface - with bound option
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 328 of file DiscSurface.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 259 of file DiscSurface.cxx.
|
inlineinherited |
fst straight line intersection schema - templated for charged and neutral parameters
Definition at line 351 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inherited |
Returns HepGeom::Transform3D by reference.
|
constexprfinaloverridevirtual |
Return the surface type.
Implements Trk::Surface.
|
inherited |
NVI method returning unique_ptr clone.
|
friend |
< data members
Definition at line 281 of file DiscSurface.h.
|
friend |
bounds (shared)
Definition at line 283 of file DiscSurface.h.
|
protectedinherited |
Not owning Pointer to the TrkDetElementBase.
Definition at line 439 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
Identifier for the TrkDetElementBase.
Definition at line 442 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
The associated layer Trk::Layer.
Definition at line 448 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protected |
reference Point on the Surface
Definition at line 285 of file DiscSurface.h.
|
protectedinherited |
Possibility to attach a material descrption.
Definition at line 453 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
enum for surface owner : 0 free surface
Definition at line 455 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protected |
static member for boundless approach
Definition at line 287 of file DiscSurface.h.
|
protectedinherited |
Definition at line 436 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
staticprotected |
Definition at line 289 of file DiscSurface.h.
|
inlinestaticinherited |
Definition at line 22 of file TrkObjectCounter.h.
|
staticconstexprprotectedinherited |
Tolerance for being on Surface.
Definition at line 458 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
staticconstexpr |
Definition at line 57 of file DiscSurface.h.