ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | List of all members
Trk::DetElementSurface Class Reference

#include <DetElementSurface.h>

Inheritance diagram for Trk::DetElementSurface:
Collaboration diagram for Trk::DetElementSurface:

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

 DetElementSurface ()
 
 DetElementSurface (Identifier id)
 
 DetElementSurface (const Surface &rhs)
 
bool operator== (const Trk::Surface &) const
 Equality operator. More...
 
Surfaceclone () const
 Implicit constructor - uses the copy constructor. More...
 
std::unique_ptr< SurfaceuniqueClone () const
 
bool insideBounds (const Amg::Vector2D &, double, double) const
 virtual methods to be overwritten by the inherited surfaces More...
 
bool insideBoundsCheck (const Amg::Vector2D &, const BoundaryCheck &) const
 
const Amg::Vector3DlocalToGlobal (const Amg::Vector2D &) const
 
const Amg::Vector3DlocalToGlobal (const LocalParameters &) const
 
const Amg::Vector2DglobalToLocal (const Amg::Vector3D &, const double) const
 
virtual DistanceSolution straightLineDistanceEstimate (const Amg::Vector3D &, const Amg::Vector3D &) const
 fast straight line distance evaluation to Surface More...
 
const SurfaceBoundsbounds () const
 Surface Bounds method. More...
 
MsgStream & dump (MsgStream &sl) const
 Output Method for MsgStream, to be overloaded by child classes. More...
 
std::ostream & dump (std::ostream &sl) const
 Output Method for std::ostream, to be overloaded by child classes. More...
 
const Identifier associatedDetectorElementIdentifier () const
 
bool isFree ()
 
SurfaceType type () const
 Returns the Surface type to avoid dynamic casts. More...
 
void localToGlobal (const Amg::Vector2D &, const Amg::Vector3D &, Amg::Vector3D &) const
 Specified by each surface type: LocalToGlobal method without dynamic memory allocation. More...
 
bool globalToLocal (const Amg::Vector3D &, const Amg::Vector3D &, Amg::Vector2D &) const
 Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface. More...
 
std::string name () const
 Return properly formatted class name. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 length forceFwd is to provide the closest forward solution More...
 
virtual Trk::DistanceSolution straightLineDistanceEstimate (const Amg::Vector3D &, const Amg::Vector3D &, bool) const
 fast straight line distance evaluation to Surface - with bound option More...
 
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 whether the local position is inside boundaries or not. More...
 
bool operator!= (const Surface &sf) const
 Non-equality operator. More...
 
const Amg::Transform3DcachedTransform () const
 Return the cached transformation directly. More...
 
const Amg::Transform3Dtransform () const
 Returns HepGeom::Transform3D by reference. More...
 
const Amg::Vector3Dcenter () const
 Returns the center position of the Surface. More...
 
virtual const Amg::Vector3Dnormal () 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...
 
virtual const Amg::Vector3DglobalReferencePoint () const
 Returns a global reference point on the surface, for PlaneSurface, StraightLineSurface, PerigeeSurface this is equal to center(), for CylinderSurface and DiscSurface this is a new member. More...
 
const TrkDetElementBaseassociatedDetectorElement () const
 return associated Detector Element More...
 
const Trk::LayerassociatedLayer () const
 return the associated Layer More...
 
const Trk::LayermaterialLayer () const
 return the material Layer More...
 
Trk::LayermaterialLayer ()
 
virtual const Trk::SurfacebaseSurface () const
 return the base surface (simplified for persistification) More...
 
std::optional< Amg::Vector2DpositionOnSurface (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 &parameters, 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 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 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::Vector2DglobalToLocal (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const
 This method returns the LocalPosition from a provided GlobalPosition. More...
 
virtual Amg::Vector2D localParametersToPosition (const LocalParameters &locpars) const
 Optionally specified by each surface type : LocalParameters to Vector2D. 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...
 
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 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

std::unique_ptr< Transformsm_transforms {}
 
const TrkDetElementBasem_associatedDetElement {}
 Not owning Pointer to the TrkDetElementBase. More...
 
Identifier m_associatedDetElementId {}
 Identifier for the TrkDetElementBase. More...
 
const Layerm_associatedLayer {}
 The associated layer Trk::Layer. More...
 
std::shared_ptr< Layerm_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 constexpr double s_onSurfaceTolerance = 10e-5
 Tolerance for being on Surface. More...
 

Private Attributes

Identifier m_id
 

Detailed Description

Definition at line 31 of file DetElementSurface.h.

Member Typedef Documentation

◆ ChargedTrackParametersUniquePtr

Unique ptr types.

Definition at line 124 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

◆ NeutralTrackParametersUniquePtr

Constructor & Destructor Documentation

◆ DetElementSurface() [1/3]

Trk::DetElementSurface::DetElementSurface ( )
inline

Definition at line 34 of file DetElementSurface.h.

34 : Surface() {}

◆ DetElementSurface() [2/3]

Trk::DetElementSurface::DetElementSurface ( Identifier  id)
inline

Definition at line 35 of file DetElementSurface.h.

35 : Surface(), m_id(id) {}

◆ DetElementSurface() [3/3]

Trk::DetElementSurface::DetElementSurface ( const Surface rhs)
inline

Definition at line 36 of file DetElementSurface.h.

36 : Surface(rhs), m_id(rhs.associatedDetectorElementIdentifier()) {}

Member Function Documentation

◆ associatedDetectorElement()

const TrkDetElementBase* Trk::Surface::associatedDetectorElement ( ) const
inherited

return associated Detector Element

◆ associatedDetectorElementIdentifier()

const Identifier Trk::DetElementSurface::associatedDetectorElementIdentifier ( ) const
inline

Definition at line 50 of file DetElementSurface.h.

50 {return m_id;}

◆ associatedLayer()

const Trk::Layer* Trk::Surface::associatedLayer ( ) const
inherited

return the associated Layer

◆ associateLayer()

void Trk::Surface::associateLayer ( const Layer lay)
inherited

method to associate the associated Trk::Layer which is alreay owned

  • only allowed by LayerBuilder
  • only done if no Layer is set already

◆ baseSurface()

virtual const Trk::Surface* Trk::Surface::baseSurface ( ) const
virtualinherited

return the base surface (simplified for persistification)

◆ bounds()

const SurfaceBounds& Trk::DetElementSurface::bounds ( ) const
inlinevirtual

Surface Bounds method.

Implements Trk::Surface.

Definition at line 47 of file DetElementSurface.h.

47 { std::abort();/*should never be called*/ }

◆ cachedTransform()

const Amg::Transform3D* Trk::Surface::cachedTransform ( ) const
inherited

Return the cached transformation directly.

Don't try to make a new transform if it's not here.

◆ center()

const Amg::Vector3D& Trk::Surface::center ( ) const
inherited

Returns the center position of the Surface.

◆ clone()

Surface* Trk::DetElementSurface::clone ( ) const
inlinevirtual

Implicit constructor - uses the copy constructor.

Implements Trk::Surface.

Definition at line 39 of file DetElementSurface.h.

39 { return nullptr; }

◆ createUniqueNeutralParameters() [1/2]

virtual std::unique_ptr<ParametersBase<5, Trk::Neutral> > Trk::DetElementSurface::createUniqueNeutralParameters ( const Amg::Vector3D ,
const Amg::Vector3D ,
double  charge,
std::optional< AmgSymMatrix(5)>  cov = std::nullopt 
) const
inlinevirtual

Use the Surface as a ParametersBase constructor, from global parameters - neutral.

Implements Trk::Surface.

Definition at line 87 of file DetElementSurface.h.

91  {
92  return nullptr;
93  }

◆ createUniqueNeutralParameters() [2/2]

virtual std::unique_ptr<ParametersBase<5, Trk::Neutral> > Trk::DetElementSurface::createUniqueNeutralParameters ( double  l1,
double  l2,
double  phi,
double  theat,
double  qop,
std::optional< AmgSymMatrix(5)>  cov = std::nullopt 
) const
inlinevirtual

Use the Surface as a ParametersBase constructor, from local parameters - neutral.

Implements Trk::Surface.

Definition at line 77 of file DetElementSurface.h.

83  {
84  return nullptr;
85  }

◆ createUniqueTrackParameters() [1/2]

virtual std::unique_ptr<ParametersBase<5, Trk::Charged> > Trk::DetElementSurface::createUniqueTrackParameters ( const Amg::Vector3D ,
const Amg::Vector3D ,
double  ,
std::optional< AmgSymMatrix(5)>  cov = std::nullopt 
) const
inlinevirtual

Use the Surface as a ParametersBase constructor, from global parameters - charged.

Implements Trk::Surface.

Definition at line 68 of file DetElementSurface.h.

72  {
73  return nullptr;
74  }

◆ createUniqueTrackParameters() [2/2]

virtual std::unique_ptr<ParametersBase<5, Trk::Charged> > Trk::DetElementSurface::createUniqueTrackParameters ( double  l1,
double  l2,
double  phi,
double  theat,
double  qop,
std::optional< AmgSymMatrix(5)>  cov = std::nullopt 
) const
inlinevirtual

Use the Surface as a ParametersBase constructor, from local parameters - charged.

Implements Trk::Surface.

Definition at line 58 of file DetElementSurface.h.

64  {
65  return nullptr;
66  }

◆ dump() [1/2]

MsgStream& Trk::DetElementSurface::dump ( MsgStream &  sl) const
inlinevirtual

Output Method for MsgStream, to be overloaded by child classes.

Reimplemented from Trk::Surface.

Definition at line 48 of file DetElementSurface.h.

48 { return sl;}

◆ dump() [2/2]

std::ostream& Trk::DetElementSurface::dump ( std::ostream &  sl) const
inlinevirtual

Output Method for std::ostream, to be overloaded by child classes.

Reimplemented from Trk::Surface.

Definition at line 49 of file DetElementSurface.h.

49 { return sl;};

◆ globalReferencePoint()

virtual const Amg::Vector3D& Trk::Surface::globalReferencePoint ( ) const
virtualinherited

Returns a global reference point on the surface, for PlaneSurface, StraightLineSurface, PerigeeSurface this is equal to center(), for CylinderSurface and DiscSurface this is a new member.

Reimplemented in Trk::DiscSurface, Trk::CylinderSurface, and Trk::ConeSurface.

◆ globalToLocal() [1/3]

bool Trk::DetElementSurface::globalToLocal ( const Amg::Vector3D glob,
const Amg::Vector3D mom,
Amg::Vector2D loc 
) const
inlinevirtual

Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.

Implements Trk::Surface.

Definition at line 54 of file DetElementSurface.h.

54 {return false;}

◆ globalToLocal() [2/3]

const Amg::Vector2D* Trk::DetElementSurface::globalToLocal ( const Amg::Vector3D ,
const double   
) const
inline

Definition at line 45 of file DetElementSurface.h.

45 { return nullptr; }

◆ globalToLocal() [3/3]

std::optional<Amg::Vector2D> Trk::Surface::globalToLocal ( const Amg::Vector3D glopos,
const Amg::Vector3D glomom 
) const
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

◆ insideBounds()

bool Trk::DetElementSurface::insideBounds ( const Amg::Vector2D locpos,
double  tol1,
double  tol2 
) const
inlinevirtual

virtual methods to be overwritten by the inherited surfaces

Implements Trk::Surface.

Definition at line 41 of file DetElementSurface.h.

41 {return false;}

◆ insideBoundsCheck()

bool Trk::DetElementSurface::insideBoundsCheck ( const Amg::Vector2D ,
const BoundaryCheck  
) const
inlinevirtual

Implements Trk::Surface.

Definition at line 42 of file DetElementSurface.h.

42 { return false;}

◆ inverseTransformHelper()

Amg::Transform3D Trk::Surface::inverseTransformHelper ( ) const
protectedinherited

Helper method to factorize in one place common operations calculate inverse transofrm and multiply with position.

◆ inverseTransformMultHelper()

Amg::Vector3D Trk::Surface::inverseTransformMultHelper ( const Amg::Vector3D glopos) const
protectedinherited

◆ isActive()

bool Trk::Surface::isActive ( ) const
inherited

Return 'true' if this surface is owned by the detector element.

◆ isFree() [1/2]

bool Trk::DetElementSurface::isFree ( )
inline

Definition at line 51 of file DetElementSurface.h.

51 {return true;}// To avoid memory leaks

◆ isFree() [2/2]

bool Trk::Surface::isFree ( ) const
inherited

Returns 'true' if this surface is 'free', i.e.

it does not belong to a detector element (and returns false otherwise

◆ isOnSurface()

virtual bool Trk::DetElementSurface::isOnSurface ( const Amg::Vector3D glopo,
const Trk::BoundaryCheck bchk,
double  tol1,
double  tol2 
) const
inlinevirtual

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 104 of file DetElementSurface.h.

104 {return false;}

◆ localParametersToPosition()

virtual Amg::Vector2D Trk::Surface::localParametersToPosition ( const LocalParameters locpars) const
virtualinherited

Optionally specified by each surface type : LocalParameters to Vector2D.

Reimplemented in Trk::DiscSurface, Trk::CylinderSurface, and Trk::ConeSurface.

◆ localToGlobal() [1/5]

const Amg::Vector3D* Trk::DetElementSurface::localToGlobal ( const Amg::Vector2D ) const
inline

Definition at line 43 of file DetElementSurface.h.

43 { return nullptr; }

◆ localToGlobal() [2/5]

void Trk::DetElementSurface::localToGlobal ( const Amg::Vector2D locp,
const Amg::Vector3D mom,
Amg::Vector3D glob 
) const
inlinevirtual

Specified by each surface type: LocalToGlobal method without dynamic memory allocation.

Implements Trk::Surface.

Definition at line 53 of file DetElementSurface.h.

53 {}

◆ localToGlobal() [3/5]

Amg::Vector3D Trk::Surface::localToGlobal ( const Amg::Vector2D locpos,
const Amg::Vector3D glomom 
) const
inherited

This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface bounds - for generality with momentum.

◆ localToGlobal() [4/5]

const Amg::Vector3D* Trk::DetElementSurface::localToGlobal ( const LocalParameters ) const
inline

Definition at line 44 of file DetElementSurface.h.

44 { return nullptr; }

◆ localToGlobal() [5/5]

Amg::Vector3D Trk::Surface::localToGlobal ( const LocalParameters locpars,
const Amg::Vector3D glomom 
) const
inherited

This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds - for generality with momentum.

◆ materialLayer() [1/2]

Trk::Layer* Trk::Surface::materialLayer ( )
inherited

◆ materialLayer() [2/2]

const Trk::Layer* Trk::Surface::materialLayer ( ) const
inherited

return the material Layer

◆ measurementFrame()

Amg::RotationMatrix3D Surface::measurementFrame ( const Amg::Vector3D glopos,
const Amg::Vector3D glomom 
) const
virtualinherited

Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface.

  • the default implementation is the the RotationMatrix3D of the transform

Reimplemented in Trk::CylinderSurface, Trk::ConeSurface, Trk::StraightLineSurface, and Trk::PerigeeSurface.

Definition at line 135 of file Surface.cxx.

136 {
137  return transform().rotation();
138 }

◆ name()

std::string Trk::DetElementSurface::name ( ) const
inlinevirtual

Return properly formatted class name.

Implements Trk::Surface.

Definition at line 55 of file DetElementSurface.h.

55 { return "Trk::DetElementSurface";}

◆ normal() [1/2]

virtual const Amg::Vector3D& Trk::Surface::normal ( ) const
virtualinherited

Returns the normal vector of the Surface (i.e.

in generall z-axis of rotation)

Reimplemented in Trk::PerigeeSurface.

◆ normal() [2/2]

virtual Amg::Vector3D Trk::Surface::normal ( const Amg::Vector2D lp) const
virtualinherited

Returns a normal vector at a specific local position.

Reimplemented in Trk::PerigeeSurface, Trk::CylinderSurface, and Trk::ConeSurface.

◆ numberOfInstantiations()

static std::size_t Trk::ObjectCounter< Trk::Surface >::numberOfInstantiations ( )
inlinestaticinherited

Definition at line 25 of file TrkObjectCounter.h.

26  {
27 #ifndef NDEBUG
28  return s_numberOfInstantiations.load();
29 #endif
30  return 0;
31  }

◆ onSurface()

template<class T >
bool Trk::Surface::onSurface ( const T &  parameters,
const BoundaryCheck bchk = BoundaryCheck(true) 
) const
inherited

The templated Parameters OnSurface method - checks on surface pointer first.

◆ operator!=()

bool Trk::Surface::operator!= ( const Surface sf) const
inherited

Non-equality operator.

◆ operator==()

bool Trk::DetElementSurface::operator== ( const Trk::Surface sf) const
inlinevirtual

Equality operator.

Implements Trk::Surface.

Definition at line 38 of file DetElementSurface.h.

38 { return false;}

◆ owner()

SurfaceOwner Trk::Surface::owner ( ) const
inherited

return ownership

◆ pathCorrection()

virtual double Trk::Surface::pathCorrection ( const Amg::Vector3D pos,
const Amg::Vector3D mom 
) const
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.

◆ positionOnSurface()

std::optional< Amg::Vector2D > Surface::positionOnSurface ( const Amg::Vector3D glopo,
const BoundaryCheck bchk = true,
double  tol1 = 0.,
double  tol2 = 0. 
) const
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.

110 {
111  std::optional<Amg::Vector2D> posOnSurface = globalToLocal(glopo, tol1);
112  if (!bchk){
113  return posOnSurface;
114  }
115  if (posOnSurface && insideBounds(*posOnSurface, tol1, tol2)){
116  return posOnSurface;
117  }
118  return std::nullopt;
119 }

◆ setMaterialLayer()

void Trk::Surface::setMaterialLayer ( std::shared_ptr< Layer mlay)
inherited

set material layer

◆ setOwner()

void Trk::Surface::setOwner ( SurfaceOwner  x)
inherited

set Ownership

◆ setTransform()

void Trk::Surface::setTransform ( const Amg::Transform3D trans)
inherited

Set the transform updates center and normal.

◆ straightLineDistanceEstimate() [1/2]

virtual DistanceSolution Trk::DetElementSurface::straightLineDistanceEstimate ( const Amg::Vector3D pos,
const Amg::Vector3D dir 
) const
inlinevirtual

fast straight line distance evaluation to Surface

Implements Trk::Surface.

Definition at line 46 of file DetElementSurface.h.

46 { return DistanceSolution(); }

◆ straightLineDistanceEstimate() [2/2]

virtual Trk::DistanceSolution Trk::DetElementSurface::straightLineDistanceEstimate ( const Amg::Vector3D pos,
const Amg::Vector3D dir,
bool  Bound 
) const
inlinevirtual

fast straight line distance evaluation to Surface - with bound option

Implements Trk::Surface.

Definition at line 101 of file DetElementSurface.h.

102  {return 0;}

◆ straightLineIntersection() [1/2]

virtual Intersection Trk::DetElementSurface::straightLineIntersection ( const Amg::Vector3D pos,
const Amg::Vector3D dir,
bool  forceDir,
Trk::BoundaryCheck  bchk 
) const
inlinevirtual

fast straight line intersection schema - standard: provides closest intersection and (signed) path length forceFwd is to provide the closest forward solution

Implements Trk::Surface.

Definition at line 95 of file DetElementSurface.h.

97  { return Trk::Intersection(Amg::Vector3D(0.,0.,0.),0.,false); }

◆ straightLineIntersection() [2/2]

template<class T >
Intersection Trk::Surface::straightLineIntersection ( const T &  pars,
bool  forceDir = false,
const Trk::BoundaryCheck bchk = false 
) const
inlineinherited

fst straight line intersection schema - templated for charged and neutral parameters

Definition at line 351 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

355  {
357  pars.position(), pars.momentum().unit(), forceDir, bchk);
358  }

◆ transform()

const Amg::Transform3D& Trk::Surface::transform ( ) const
inherited

Returns HepGeom::Transform3D by reference.

◆ type()

SurfaceType Trk::DetElementSurface::type ( ) const
inlinevirtual

Returns the Surface type to avoid dynamic casts.

Implements Trk::Surface.

Definition at line 52 of file DetElementSurface.h.

52 {return SurfaceType::Other;}

◆ uniqueClone()

std::unique_ptr<Surface> Trk::DetElementSurface::uniqueClone ( ) const
inline

Definition at line 40 of file DetElementSurface.h.

40 {return nullptr; }

Member Data Documentation

◆ m_associatedDetElement

const TrkDetElementBase* Trk::Surface::m_associatedDetElement {}
protectedinherited

Not owning Pointer to the TrkDetElementBase.

Definition at line 439 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

◆ m_associatedDetElementId

Identifier Trk::Surface::m_associatedDetElementId {}
protectedinherited

◆ m_associatedLayer

const Layer* Trk::Surface::m_associatedLayer {}
protectedinherited

The associated layer Trk::Layer.

  • layer in which the Surface is embedded (not owning pointed)

Definition at line 448 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

◆ m_id

Identifier Trk::DetElementSurface::m_id
private

Definition at line 107 of file DetElementSurface.h.

◆ m_materialLayer

std::shared_ptr<Layer> Trk::Surface::m_materialLayer {}
protectedinherited

Possibility to attach a material descrption.

  • potentially given as the associated material layer (not owning pointer)

Definition at line 453 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

◆ m_owner

SurfaceOwner Trk::Surface::m_owner {SurfaceOwner::noOwn}
protectedinherited

enum for surface owner : 0 free surface

Definition at line 455 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.

◆ m_transforms

std::unique_ptr<Transforms> Trk::Surface::m_transforms {}
protectedinherited

◆ s_numberOfInstantiations

std::atomic_size_t Trk::ObjectCounter< Trk::Surface >::s_numberOfInstantiations
inlinestaticinherited

Definition at line 22 of file TrkObjectCounter.h.

◆ s_onSurfaceTolerance

constexpr double Trk::Surface::s_onSurfaceTolerance = 10e-5
staticconstexprprotectedinherited

Tolerance for being on Surface.

Definition at line 458 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.


The documentation for this class was generated from the following file:
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::Intersection
Definition: Intersection.h:24
Trk::Surface::straightLineIntersection
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
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:351
Trk::SurfaceType::Other
@ Other
Trk::DetElementSurface::m_id
Identifier m_id
Definition: DetElementSurface.h:107
Trk::Surface::Surface
Surface()
Default Constructor for inheriting classes.
Trk::Surface::insideBounds
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const =0
virtual methods to be overwritten by the inherited surfaces
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::ObjectCounter< Trk::Surface >::s_numberOfInstantiations
static std::atomic_size_t s_numberOfInstantiations
Definition: TrkObjectCounter.h:22
Trk::Surface::globalToLocal
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const =0
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.