|
ACTS
Experiment-independent tracking
|
Base Class for a Detector Layer in the Tracking Geometry. More...
#include <Acts/Geometry/Layer.hpp>
Public Member Functions | |
| ~Layer () noexcept override | |
| Destructor. | |
| ApproachDescriptor * | approachDescriptor () |
| Non-const version of the approach descriptor. | |
| const ApproachDescriptor * | approachDescriptor () 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. | |
| virtual bool | isOnLayer (const GeometryContext &gctx, const Vector3 &position, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None()) const |
| geometrical isOnLayer() method | |
| 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 Layer * | nextLayer (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
| Fast navigation to next layer. | |
| const Volume * | representingVolume () const |
| Return the abstract volume that represents the layer. | |
| virtual bool | resolve (bool resolveSensitive, bool resolveMaterial, bool resolvePassive) const |
| Accept layer according to the following collection directives. | |
| template<typename options_t> | |
| bool | resolve (const options_t &options) const |
| Accept layer according to the following collection directives. | |
| SurfaceArray * | surfaceArray () |
| Non-const version. | |
| const SurfaceArray * | surfaceArray () 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. | |
| virtual const Surface & | surfaceRepresentation () const =0 |
| Transforms the layer into a Surface representation for extrapolation. | |
| virtual Surface & | surfaceRepresentation ()=0 |
| Non-const version of surface representation access. | |
| const TrackingVolume * | trackingVolume () 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 Vector3 | referencePosition (const GeometryContext &gctx, AxisDirection aDir) const =0 |
| Force a binning position method. | |
| virtual double | referencePositionValue (const GeometryContext &gctx, AxisDirection aDir) const |
| Implement the binningValue. | |
Protected Member Functions | |
| 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::unique_ptr< const ApproachDescriptor > | m_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 BinUtility * | m_nextLayerUtility = nullptr |
| A binutility to find the next layer. | |
| std::unique_ptr< Volume > | m_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 SurfaceArray > | m_surfaceArray |
| SurfaceArray on this layer Surface. | |
| const TrackingVolume * | m_trackingVolume = nullptr |
| the enclosing TrackingVolume | |
| Protected Attributes inherited from Acts::GeometryObject | |
| GeometryIdentifier | m_geometryId |
| Unique geometry identifier for this object. | |
Base Class for a Detector Layer in the Tracking Geometry.
An actual implemented Detector Layer inheriting from this base class has to inherit from a specific type of Surface as well. In addition, a Layer can carry:
A SurfaceArray of Surfaces holding the actual detector elements or subSurfaces. A pointer to the TrackingVolume (can only be set by such) An active/passive code : 0 - active 1 - passive [....] - other
The search type for compatible surfaces on a layer is [ the higher the number, the faster ]: ------— Layer internal ---------------------------------------------— -1 - provide all intersection tested without boundary check 0 - provide all intersection tested with boundary check 1 - provide overlap descriptor based without boundary check 2 - provide overlap descriptor based with boundary check
A layer can have substructure regarding:
|
overridenoexcept |
Destructor.
|
explicitprotected |
Constructor with pointer to SurfaceArray (passing ownership).
| surfaceArray | is the array of sensitive surfaces |
| thickness | is the normal thickness of the Layer |
| ades | oapproach descriptor |
| laytyp | is the layer type if active or passive |
| ApproachDescriptor * Acts::Layer::approachDescriptor | ( | ) |
Non-const version of the approach descriptor.
| const ApproachDescriptor * Acts::Layer::approachDescriptor | ( | ) | const |
Return method for the approach descriptor, can be nullptr.
| boost::container::small_vector< NavigationTarget, 10 > Acts::Layer::compatibleSurfaces | ( | const GeometryContext & | gctx, |
| const Vector3 & | position, | ||
| const Vector3 & | direction, | ||
| const NavigationOptions< Surface > & | options ) const |
Decompose Layer into (compatible) surfaces.
| gctx | The current geometry context object, e.g. alignment |
| position | Position parameter for searching |
| direction | Direction of the parameters for searching |
| options | The navigation options |
|
protected |
private method to set enclosing TrackingVolume, called by friend class only optionally, the layer can be resized to the dimensions of the TrackingVolume
| tvol | is the tracking volume the layer is confined |
|
virtual |
geometrical isOnLayer() method
| gctx | The current geometry context object, e.g. alignment |
| position | is the global position to be checked |
| boundaryTolerance | is the boundary check directive |
Reimplemented in Acts::NavigationLayer.
| double Acts::Layer::layerThickness | ( | ) | const |
Return the Thickness of the Layer this is by definition along the normal vector of the surfaceRepresentation.
| LayerType Acts::Layer::layerType | ( | ) | const |
return the LayerType
| const Layer * Acts::Layer::nextLayer | ( | const GeometryContext & | gctx, |
| const Vector3 & | position, | ||
| const Vector3 & | direction ) const |
Fast navigation to next layer.
| gctx | The current geometry context object, e.g. alignment |
| position | is the start position for the search |
| direction | is the direction for the search |
| const Volume * Acts::Layer::representingVolume | ( | ) | const |
Return the abstract volume that represents the layer.
|
virtual |
Accept layer according to the following collection directives.
| resolveSensitive | is the prescription to find the sensitive surfaces |
| resolveMaterial | is the precription to find material surfaces |
| resolvePassive | is the prescription to find all passive surfaces |
Reimplemented in Acts::NavigationLayer.
| bool Acts::Layer::resolve | ( | const options_t & | options | ) | const |
Accept layer according to the following collection directives.
| options_t | Type of the options for navigation |
| options | Navigation options containing resolution settings |
| SurfaceArray * Acts::Layer::surfaceArray | ( | ) |
Non-const version.
| const SurfaceArray * Acts::Layer::surfaceArray | ( | ) | const |
Return the entire SurfaceArray, returns a nullptr if no SurfaceArray.
| NavigationTarget Acts::Layer::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.
| gctx | The current geometry context object, e.g. alignment |
| position | Position for searching |
| direction | Direction for searching |
| options | The navigation options |
|
pure virtual |
Transforms the layer into a Surface representation for extrapolation.
Implemented in Acts::ConeLayer, Acts::CylinderLayer, Acts::DiscLayer, Acts::NavigationLayer, and Acts::PlaneLayer.
|
pure virtual |
Non-const version of surface representation access.
Implemented in Acts::ConeLayer, Acts::CylinderLayer, Acts::DiscLayer, Acts::NavigationLayer, and Acts::PlaneLayer.
| const TrackingVolume * Acts::Layer::trackingVolume | ( | ) | const |
Get the confining TrackingVolume.
|
protected |
descriptor for surface on approach
The descriptor may need to be modified during geometry building, and will remain constant afterwards, but again C++ cannot currently express this.
|
protected |
Thickness of the Layer.
|
protected |
make a passive/active either way
|
protected |
the previous Layer according to BinGenUtils
|
protected |
A binutility to find the next layer.
|
protected |
Representing Volume can be used as approach surface sources.
|
protected |
Substructure flag indicating approach surface configuration.
|
protected |
sub structure indication Substructure flag indicating representing surface configuration
|
protected |
Substructure flag indicating sensitive surface configuration.
|
protected |
SurfaceArray on this layer Surface.
This array will be modified during signature and constant afterwards, but the C++ type system unfortunately cannot cleanly express this.
|
protected |
the enclosing TrackingVolume