Class Acts::Layer¶
-
class Layer : public virtual Acts::GeometryObject¶
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 - activ 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:
m_ssRepresentingSurface -> always exists (1), can have material (2)
m_ssSensitiveSurfaces -> can or not exist (0,1), can have material (2)
m_ssApproachSurfaces -> can or not exist (0,1) cam have material (2)
Subclassed by Acts::ConeLayer, Acts::CylinderLayer, Acts::DiscLayer, Acts::NavigationLayer, Acts::PlaneLayer
Public Functions
-
Layer() = delete¶
Default Constructor - deleted.
-
virtual ~Layer() = default¶
Destructor.
-
const ApproachDescriptor *approachDescriptor() const¶
Return method for the approach descriptor, can be nullptr.
-
ApproachDescriptor *approachDescriptor()¶
Non-const version of the approach descriptor.
Decompose Layer into (compatible) surfaces.
- Parameters
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
- Returns
list of intersection of surfaces on the layer
-
virtual bool isOnLayer(const GeometryContext &gctx, const Vector3 &position, const BoundaryCheck &bcheck = true) const¶
geometrical isOnLayer() method
Note
using isOnSurface() with Layer specific tolerance
- Parameters
gctx – The current geometry context object, e.g. alignment
position – is the gobal position to be checked
bcheck – is the boundary check directive
- Returns
boolean that indicates success of the operation
-
const Layer *nextLayer(const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const¶
Fast navigation to next layer.
- Parameters
gctx – The current geometry context object, e.g. alignment
position – is the start position for the search
direction – is the direction for the search
- Returns
the pointer to the next layer
-
Layer &operator=(const Layer &layer) = delete¶
Assignment operator - forbidden, layer assignment must not be ambiguous.
- Parameters
layer – is the source layer for assignment
-
const AbstractVolume *representingVolume() const¶
Return the abstract volume that represents the layer.
- Returns
the representing volume of the layer
-
template<typename options_t>
inline bool resolve(const options_t &options) const¶ Accept layer according to the following collection directives.
- Template Parameters
options_t – Type of the options for navigation
- Returns
a boolean whether the layer is accepted for processing
-
virtual bool resolve(bool resolveSensitive, bool resolveMaterial, bool resolvePassive) const¶
Accept layer according to the following collection directives.
- Parameters
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
- Returns
a boolean whether the layer is accepted for processing
-
const SurfaceArray *surfaceArray() const¶
Return the entire SurfaceArray, returns a nullptr if no SurfaceArray.
-
SurfaceArray *surfaceArray()¶
Non-const version.
Surface seen on approach for layers without sub structure, this is the surfaceRepresentation for layers with sub structure, this is the approachSurface.
- Parameters
gctx – The current geometry context object, e.g. alignment
position – Position for searching
direction – Direction for searching
options – The navigation options
- Returns
the Surface intersection of the approach surface
-
virtual const Surface &surfaceRepresentation() const = 0¶
Transforms the layer into a Surface representation for extrapolation.
Note
the layer can be hosting many surfaces, but this is the global one to which one can extrapolate
-
double thickness() const¶
Return the Thickness of the Layer this is by definition along the normal vector of the surfaceRepresentation.
-
const TrackingVolume *trackingVolume() const¶
Get the confining TrackingVolume.
- Returns
the pointer to the enclosing volume