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

Class to be used for gaps in Volumes as a navigational link. More...

#include <Acts/Geometry/NavigationLayer.hpp>

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

Public Member Functions

 NavigationLayer ()=delete
 Default Constructor - deleted.
 NavigationLayer (const NavigationLayer &)=delete
 Copy Constructor - deleted.
 ~NavigationLayer () override
 Destructor.
bool isOnLayer (const GeometryContext &gctx, const Vector3 &gp, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None()) const final
 Geometric isOnLayer() method using isOnSurface() with Layer specific tolerance.
NavigationLayeroperator= (const NavigationLayer &)=delete
 Assignment operator - deleted.
Vector3 referencePosition (const GeometryContext &gctx, AxisDirection aDir) const final
 The binning position method.
bool resolve (bool resolveSensitive, bool resolveMaterial, bool resolvePassive) const final
 Accept layer according to the following collection directives.
const SurfacesurfaceRepresentation () const final
 Transforms the layer into a Surface representation for extrapolation In general, extrapolation to a surface should be avoided.
SurfacesurfaceRepresentation () final
 Non-const version of surface representation access.
Public Member Functions inherited from Acts::Layer
 ~Layer () noexcept override
 Destructor.
ApproachDescriptorapproachDescriptor ()
 Non-const version of the approach descriptor.
const ApproachDescriptorapproachDescriptor () const
 Return method for the approach descriptor, can be nullptr.
boost::container::small_vector< NavigationTarget, 10 > compatibleSurfaces (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Surface > &options) const
 Decompose Layer into (compatible) surfaces.
double layerThickness () const
 Return the Thickness of the Layer this is by definition along the normal vector of the surfaceRepresentation.
LayerType layerType () const
 return the LayerType
const LayernextLayer (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const
 Fast navigation to next layer.
const VolumerepresentingVolume () const
 Return the abstract volume that represents the layer.
template<typename options_t>
bool resolve (const options_t &options) const
 Accept layer according to the following collection directives.
SurfaceArraysurfaceArray ()
 Non-const version.
const SurfaceArraysurfaceArray () const
 Return the entire SurfaceArray, returns a nullptr if no SurfaceArray.
NavigationTarget surfaceOnApproach (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Layer > &options) const
 Surface seen on approach for layers without sub structure, this is the surfaceRepresentation for layers with sub structure, this is the approachSurface.
const TrackingVolumetrackingVolume () const
 Get the confining TrackingVolume.
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.
virtual ~GeometryObject () noexcept=default
void assignGeometryId (const GeometryIdentifier &geometryId)
 Set the value.
GeometryIdentifier geometryId () const
virtual double referencePositionValue (const GeometryContext &gctx, AxisDirection aDir) const
 Implement the binningValue.

Static Public Member Functions

static LayerPtr create (std::shared_ptr< const Surface > sRepresentation, double thickness=0.)
 Factory Constructor - the surface representation is given by pointer (ownership passed).

Protected Member Functions

 NavigationLayer (std::shared_ptr< const Surface > surfaceRepresentation, double thickness)
 Private Constructor.
Protected Member Functions inherited from Acts::Layer
 Layer (std::unique_ptr< SurfaceArray > surfaceArray, double thickness=0., std::unique_ptr< ApproachDescriptor > ades=nullptr, LayerType laytyp=passive)
 Constructor with pointer to SurfaceArray (passing ownership).
void encloseTrackingVolume (const TrackingVolume &tvol)
 private method to set enclosing TrackingVolume, called by friend class only optionally, the layer can be resized to the dimensions of the TrackingVolume

Protected Attributes

std::shared_ptr< const Surfacem_surfaceRepresentation
 for the navigation Volume the surface
Protected Attributes inherited from Acts::Layer
std::unique_ptr< const ApproachDescriptorm_approachDescriptor
 descriptor for surface on approach
double m_layerThickness = 0
 Thickness of the Layer.
LayerType m_layerType
 make a passive/active either way
NextLayers m_nextLayers
 the previous Layer according to BinGenUtils
const BinUtilitym_nextLayerUtility = nullptr
 A binutility to find the next layer.
std::unique_ptr< Volumem_representingVolume
 Representing Volume can be used as approach surface sources.
int m_ssApproachSurfaces = 0
 Substructure flag indicating approach surface configuration.
int m_ssRepresentingSurface = 0
 sub structure indication Substructure flag indicating representing surface configuration
int m_ssSensitiveSurfaces = 0
 Substructure flag indicating sensitive surface configuration.
std::unique_ptr< const SurfaceArraym_surfaceArray
 SurfaceArray on this layer Surface.
const TrackingVolumem_trackingVolume = nullptr
 the enclosing TrackingVolume
Protected Attributes inherited from Acts::GeometryObject
GeometryIdentifier m_geometryId
 Unique geometry identifier for this object.

Detailed Description

Class to be used for gaps in Volumes as a navigational link.

Navigation Layers have a surface representation, but should usually never be propagated to.

Constructor & Destructor Documentation

◆ ~NavigationLayer()

Acts::NavigationLayer::~NavigationLayer ( )
override

Destructor.

◆ NavigationLayer() [1/3]

Acts::NavigationLayer::NavigationLayer ( )
delete

Default Constructor - deleted.

◆ NavigationLayer() [2/3]

Acts::NavigationLayer::NavigationLayer ( const NavigationLayer & )
delete

Copy Constructor - deleted.

◆ NavigationLayer() [3/3]

Acts::NavigationLayer::NavigationLayer ( std::shared_ptr< const Surface > surfaceRepresentation,
double thickness )
protected

Private Constructor.

  • this is called by the creat(args*) method passed spacer layer if needed
Parameters
surfaceRepresentationis the surface of the layer
thicknessithe layer thickness

Member Function Documentation

◆ create()

LayerPtr Acts::NavigationLayer::create ( std::shared_ptr< const Surface > sRepresentation,
double thickness = 0. )
static

Factory Constructor - the surface representation is given by pointer (ownership passed).

Parameters
sRepresentationis the representation for extrapolation
thicknessis the thickness for the binning
Returns
Shared pointer to the created navigation layer

◆ isOnLayer()

bool Acts::NavigationLayer::isOnLayer ( const GeometryContext & gctx,
const Vector3 & gp,
const BoundaryTolerance & boundaryTolerance = BoundaryTolerance::None() ) const
finalvirtual

Geometric isOnLayer() method using isOnSurface() with Layer specific tolerance.

Parameters
gctxThe current geometry context object, e.g. alignment
gpis the global position for the check
boundaryToleranceis the boundary check directive
Returns
boolean that indicates if the position is on surface

Reimplemented from Acts::Layer.

◆ operator=()

NavigationLayer & Acts::NavigationLayer::operator= ( const NavigationLayer & )
delete

Assignment operator - deleted.

◆ referencePosition()

Vector3 Acts::NavigationLayer::referencePosition ( const GeometryContext & gctx,
AxisDirection aDir ) const
finalvirtual

The binning position method.

Parameters
gctxThe current geometry context object, e.g. alignment
aDiris the axis direction for which the reference position is requested
  • as default the center is given, but may be overloaded
Returns
The return vector can be used for binning in a TrackingVolume

Implements Acts::GeometryObject.

◆ resolve()

bool Acts::NavigationLayer::resolve ( bool resolveSensitive,
bool resolveMaterial,
bool resolvePassive ) const
finalvirtual

Accept layer according to the following collection directives.

Parameters
resolveSensitiveis the prescription to find the sensitive surfaces
resolveMaterialis the precription to find material surfaces
resolvePassiveis the prescription to find all passive surfaces
Note
navigation layers are never accepted
Returns
a boolean whether the layer is accepted for processing

Reimplemented from Acts::Layer.

◆ surfaceRepresentation() [1/2]

const Surface & Acts::NavigationLayer::surfaceRepresentation ( ) const
finalvirtual

Transforms the layer into a Surface representation for extrapolation In general, extrapolation to a surface should be avoided.

Returns
Const reference to the navigation surface

Implements Acts::Layer.

◆ surfaceRepresentation() [2/2]

Surface & Acts::NavigationLayer::surfaceRepresentation ( )
finalvirtual

Non-const version of surface representation access.

Returns
Mutable reference to the navigation surface

Implements Acts::Layer.

Member Data Documentation

◆ m_surfaceRepresentation

std::shared_ptr<const Surface> Acts::NavigationLayer::m_surfaceRepresentation
protected

for the navigation Volume the surface

We will need to mutate this surface during the geometry building process, but the C++ type system has no const-correct way of expressing this.