ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::StrawSurface Class Reference

Class for a StrawSurface in the TrackingGeometry to describe dirft tube and straw like detectors. More...

#include <Acts/Surfaces/StrawSurface.hpp>

Inheritance diagram for Acts::StrawSurface:
[legend]
Collaboration diagram for Acts::StrawSurface:
[legend]

Public Member Functions

std::string name () const final
 Return properly formatted class name for screen output *‍/.
StrawSurface & operator= (const StrawSurface &other)
 Assignment operator.
Polyhedron polyhedronRepresentation (const GeometryContext &gctx, unsigned int quarterSegments) const final
 Return a Polyhedron for the surfaces.
SurfaceType type () const final
 Return the surface type.
Public Member Functions inherited from Acts::LineSurface
AlignmentToPathMatrix alignmentToPathDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final
 Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t.
void assignSurfaceBounds (std::shared_ptr< const LineBounds > newBounds)
 Overwrite the existing surface bounds with new ones.
const SurfaceBounds & bounds () const final
 This method returns the bounds of the surface by reference.
const std::shared_ptr< const LineBounds > & boundsPtr () const
 This method returns the shared_ptr to the LineBounds.
BoundToFreeMatrix boundToFreeJacobian (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final
 Calculate the jacobian from local to global which the surface knows best, hence the calculation is done here.
FreeToPathMatrix freeToPathDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final
 Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t.
Result< Vector2 > globalToLocal (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, double tolerance=s_onSurfaceTolerance) const final
 Specified for LineSurface: global to local method without dynamic memory allocation.
MultiIntersection3D intersect (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::Infinite(), double tolerance=s_onSurfaceTolerance) const final
 Calculate the straight-line intersection with the line surface.
Vector3 lineDirection (const GeometryContext &gctx) const
 Get the line direction in global coordinates.
Matrix< 2, 3 > localCartesianToBoundLocalDerivative (const GeometryContext &gctx, const Vector3 &position) const final
 Calculate the derivative of bound track parameters local position w.r.t.
Vector3 localToGlobal (const GeometryContext &gctx, const Vector2 &lposition, const Vector3 &direction) const final
 Local to global transformation.
Vector3 normal (const GeometryContext &gctx, const Vector3 &pos, const Vector3 &direction) const override
 Return the surface normal at a given position and direction.
LineSurface & operator= (const LineSurface &other)
 Assignment operator.
double pathCorrection (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const override
 the pathCorrection for derived classes with thickness is by definition 1 for LineSurfaces
RotationMatrix3 referenceFrame (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final
 Return the measurement frame - this is needed for alignment, in particular.
Vector3 referencePosition (const GeometryContext &gctx, AxisDirection aDir) const final
 The binning position is the position calculated for a certain binning type.
Public Member Functions inherited from Acts::Surface
AlignmentToBoundMatrix alignmentToBoundDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const FreeVector &pathDerivative) const
 The derivative of bound track parameters w.r.t.
void assignIsSensitive (bool isSensitive)
 Assign whether the surface is sensitive.
virtual void assignSurfaceMaterial (std::shared_ptr< const ISurfaceMaterial > material)
 Assign the surface material description.
void assignSurfacePlacement (const SurfacePlacementBase &placement)
 Assign a placement object which may dynamically align the surface in space.
void assignThickness (double thick)
 Assign the thickness of the surface in the orthogonal dimension.
const Layer * associatedLayer () const
 Return method for the associated Layer in which the surface is embedded.
void associateLayer (const Layer &lay)
 Set Associated Layer Many surfaces can be associated to a Layer, but it might not be known yet during construction of the layer, this can be set afterwards.
virtual Vector3 center (const GeometryContext &gctx) const
 Return method for the surface center.
virtual Vector2 closestPointOnBoundary (const Vector2 &lposition, const SquareMatrix2 &metric) const
 Calculates the closest point on the boundary of the surface to a given point in local coordinates.
virtual double distanceToBoundary (const Vector2 &lposition) const
 Calculates the distance to the boundary of the surface from a given point in local coordinates.
virtual FreeToBoundMatrix freeToBoundJacobian (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const
 Calculate the jacobian from global to local which the surface knows best, hence the calculation is done here.
std::shared_ptr< Surface > getSharedPtr ()
 Retrieve a std::shared_ptr for this surface (non-const version).
std::shared_ptr< const Surface > getSharedPtr () const
 Retrieve a std::shared_ptr for this surface (const version).
bool hasMaterial () const
 Check if the surface has an associated material description.
virtual bool insideBounds (const Vector2 &lposition, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None()) const
 The insideBounds method for local positions.
bool isAlignable () const
 Returns whether the Surface is alignable.
bool isOnSurface (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None(), double tolerance=s_onSurfaceTolerance) const
 The geometric onSurface method.
bool isSensitive () const
 Returns whether the Surface is sensitive.
const Transform3 & localToGlobalTransform (const GeometryContext &gctx) const
 Return method for the surface Transform3 by reference In case a detector element is associated the surface transform is just forwarded to the detector element in order to keep the (mis-)alignment cache cetrally handled.
virtual const MaterialSlab & materialSlab (const Vector2 &lp) const
 Return method for full material description of the Surface.
virtual MaterialSlab materialSlab (const Vector2 &lp, Direction pDir, MaterialUpdateMode mode) const
 Return method for fully scaled material description of the Surface.
bool operator== (const Surface &other) const
 Comparison (equality) operator The strategy for comparison is (a) first pointer comparison (b) then type comparison (c) then bounds comparison (d) then transform comparison.
const ISurfaceMaterial * surfaceMaterial () const
 Return method for the associated Material to this surface.
const std::shared_ptr< const ISurfaceMaterial > & surfaceMaterialSharedPtr () const
 Return method for the shared pointer to the associated Material.
const SurfacePlacementBase * surfacePlacement () const
 Return the associated surface placement if there is any.
double thickness () const
 Return the thickness of the surface in the normal direction.
GeometryContextOstreamWrapper< Surface > toStream (const GeometryContext &gctx) const
 Helper method for printing: the returned object captures the surface and the geometry context and will print the surface.
std::string toString (const GeometryContext &gctx) const
 Output into a std::string.
void visualize (IVisualization3D &helper, const GeometryContext &gctx, const ViewConfig &viewConfig=s_viewSurface) const
 Visualize the surface for debugging and inspection.
Public Member Functions inherited from Acts::GeometryObject
 GeometryObject ()=default
 Defaulted constructor.
 GeometryObject (const GeometryIdentifier &geometryId)
 Constructor from a value.
 GeometryObject (const GeometryObject &)=default
 Defaulted copy constructor.
void assignGeometryId (const GeometryIdentifier &geometryId)
 Set the value.
GeometryIdentifier geometryId () const
virtual double referencePositionValue (const GeometryContext &gctx, AxisDirection aDir) const
 Implement the binningValue.

Protected Member Functions

 StrawSurface (const StrawSurface &other)=default
 Copy constructor.
Protected Member Functions inherited from Acts::LineSurface
 LineSurface (const GeometryContext &gctx, const LineSurface &other, const Transform3 &shift)
 Copy constructor - with shift.
 LineSurface (const LineSurface &other)
 Copy constructor.
 LineSurface (const Transform3 &transform, double radius, double halez)
 Constructor for LineSurface from Transform3 and radial dimensions.
 LineSurface (const Transform3 &transform, std::shared_ptr< const LineBounds > lbounds=nullptr)
 Constructor for LineSurface from Transform3 and LineBounds.
 LineSurface (std::shared_ptr< const LineBounds > lbounds, const SurfacePlacementBase &placement)
 Constructor from SurfacePlacementBase : Element proxy.
std::array< AxisDirection, 2 > localAxes () const override
 Local axes of the surface.
Protected Member Functions inherited from Acts::Surface
 Surface (const GeometryContext &gctx, const Surface &other, const Transform3 &shift) noexcept
 Copy constructor with optional shift.
 Surface (const Surface &other) noexcept=default
 Copy constructor.
 Surface (const SurfacePlacementBase &placement) noexcept
 Constructor from SurfacePlacement: Element proxy.
 Surface (const Transform3 &transform=Transform3::Identity())
 Constructor with Transform3 as a shared object.
Surface & operator= (const Surface &other) noexcept=default
 Assignment operator.
virtual std::ostream & toStreamImpl (const GeometryContext &gctx, std::ostream &sl) const
 Output Method for std::ostream, to be overloaded by child classes.
virtual Vector2 transformSurfaceLocalToMaterialLocal (const Vector2 &surfaceLocal) const
 Transform surface local coordinates to material local coordinates.

Additional Inherited Members

Public Types inherited from Acts::Surface
enum  SurfaceType {
  Cone = 0 , Cylinder = 1 , Disc = 2 , Perigee = 3 ,
  Plane = 4 , Straw = 5 , Curvilinear = 6 , Point = 7 ,
  Other = 8
}
 This enumerator simplifies the persistency & calculations, by saving a dynamic_cast, e.g. More...
Static Public Member Functions inherited from Acts::Surface
template<class T, typename... Args>
static std::shared_ptr< T > makeShared (Args &&... args)
 Factory for producing memory managed instances of Surface.
Static Public Attributes inherited from Acts::Surface
static constexpr std::array< std::string_view, Surface::SurfaceType::Other+1 > s_surfaceTypeNames
 Helper strings for screen output.
Protected Attributes inherited from Acts::LineSurface
std::shared_ptr< const LineBounds > m_bounds
 bounds (shared)
Protected Attributes inherited from Acts::Surface
std::shared_ptr< const ISurfaceMaterial > m_surfaceMaterial
 Possibility to attach a material description.
bool m_swapMaterialAxes {false}
 Whether to swap the local coordinates for material lookup.
CloneablePtr< const Transform3 > m_transform
 Transform3 definition that positions (translation, rotation) the surface in global space.
Protected Attributes inherited from Acts::GeometryObject
GeometryIdentifier m_geometryId
 Unique geometry identifier for this object.

Detailed Description

Class for a StrawSurface in the TrackingGeometry to describe dirft tube and straw like detectors.

Constructor & Destructor Documentation

◆ StrawSurface()

Acts::StrawSurface::StrawSurface ( const StrawSurface & other)
protecteddefault

Copy constructor.

Parameters
otherThe source surface for the copy

Member Function Documentation

◆ name()

std::string Acts::StrawSurface::name ( ) const
finalvirtual

Return properly formatted class name for screen output *‍/.

Returns
String representation of the surface type name

Reimplemented from Acts::LineSurface.

◆ operator=()

StrawSurface & Acts::StrawSurface::operator= ( const StrawSurface & other)

Assignment operator.

Parameters
otherThe source surface for the assignment
Returns
Reference to this StrawSurface after assignment
Deprecated
Surface copy-assignment will be removed; copy via Surface::makeShared<StrawSurface>(other) instead.

◆ polyhedronRepresentation()

Polyhedron Acts::StrawSurface::polyhedronRepresentation ( const GeometryContext & gctx,
unsigned int quarterSegments ) const
finalvirtual

Return a Polyhedron for the surfaces.

Parameters
gctxThe current geometry context object, e.g. alignment
quarterSegmentsis the number of segments used to describe curved segments in a quarter of the phi range. If it is 1, then only the extrema points in phi are inserted next to the segment corners.
Returns
A list of vertices and a face/facett description of it

Implements Acts::Surface.

◆ type()

SurfaceType Acts::StrawSurface::type ( ) const
finalvirtual

Return the surface type.

Returns
Surface type identifier for straw surfaces

Implements Acts::Surface.