![]() |
ATLAS Offline Software
|
#include <Layer.h>
Public Member Functions | |
| Layer ()=default | |
| Default Constructor. More... | |
| virtual | ~Layer ()=default |
| Destructor. More... | |
| Layer (const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int ltype=int(passive)) | |
| Constructor with MaterialProperties. More... | |
| Layer (std::unique_ptr< SurfaceArray > surfaceArray, double thickness=0., std::unique_ptr< OverlapDescriptor >=nullptr, int ltype=int(passive)) | |
| Constructor with pointer to SurfaceArray (passing ownership) More... | |
| Layer (std::unique_ptr< SurfaceArray > surfaceArray, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int ltype=int(passive)) | |
| Constructor with MaterialProperties and pointer SurfaceArray (passing ownership) More... | |
| const SurfaceArray * | surfaceArray () const |
| Return the entire SurfaceArray, returns nullptr if no SurfaceArray. More... | |
| SurfaceArray * | surfaceArray () |
| Return the entire SurfaceArray, returns nullptr if no SurfaceArray. More... | |
| const Surface * | subSurface (const Amg::Vector3D &gp) const |
| If no subSurface array is defined or no subSurface can be found to the given Amg::Vector3D, it would return 0. More... | |
| const Surface * | subSurface (const Amg::Vector2D &lp) const |
| If no subSurface array is defined or no subSurface can be found to the given Amg::Vector2D, it would return 0. More... | |
| const Surface * | subSurfaceReference (unsigned int idx=0) const |
| Return a reference sub surface of the layer, usually the first one in the array. More... | |
| virtual const Surface & | surfaceRepresentation () const =0 |
| Transforms the layer into a Surface representation for extrapolation. More... | |
| virtual Surface & | surfaceRepresentation ()=0 |
| double | thickness () const |
| Return the Thickness of the Layer. More... | |
| template<class T > | |
| bool | onLayer (const T ¶meters, const BoundaryCheck &bcheck=BoundaryCheck(true)) const |
| templated on Layer method More... | |
| virtual bool | isOnLayer (const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const |
| isOnLayer() method, using isOnSurface() with Layer specific tolerance More... | |
| const LayerMaterialProperties * | layerMaterialProperties () const |
| getting the LayerMaterialProperties including full/pre/post update More... | |
| const MaterialProperties * | fullUpdateMaterialProperties (const TrackParameters &par) const |
| getting the MaterialProperties back - for full update More... | |
| virtual double | preUpdateMaterialFactor (const TrackParameters &, PropDirection) const |
| getting the MaterialProperties back - for pre-update More... | |
| virtual double | postUpdateMaterialFactor (const TrackParameters &, PropDirection) const |
| getting the MaterialProperties back - for pre-update More... | |
| const OverlapDescriptor * | overlapDescriptor () const |
| gettint hte overlap descriptor More... | |
| const Layer * | previousLayer (bool skipNavLayer=false) const |
| getting what's stored to be the previous Layer, boolean to skip navigation layers More... | |
| void | setPreviousLayer (const Layer *) |
| set the previous Layer More... | |
| const Layer * | nextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &udir) const |
| getting the next/previous Layer if registered - unit for direction vector required More... | |
| const Layer * | nextLayer (bool skipNavLayer=false) const |
| getting what's stored to be the next Layer, boolean to skip navigation layers More... | |
| void | setNextLayer (const Layer *) |
| set the next Layer More... | |
| const BinUtility * | binUtility () const |
| access the BinUtility More... | |
| void | setBinUtility (const BinUtility *) |
| set the BinUtility More... | |
| virtual const Surface & | surfaceOnApproach (const Amg::Vector3D &pos, const Amg::Vector3D &dir, PropDirection pdir, const BoundaryCheck &bcheck, bool resolveSubSurfaces=0, const ICompatibilityEstimator *ice=nullptr) const |
| Surface seen on approach - if not defined differently, it is the surfaceRepresentation() More... | |
| size_t | compatibleSurfaces (std::vector< SurfaceIntersection > &cSurfaces, const TrackParameters &pars, PropDirection pdir, const BoundaryCheck &bcheck, bool materialSurfacesOnly=true, const Surface *startSurface=nullptr, const Surface *endSurface=nullptr, const ICompatibilityEstimator *ice=nullptr) const |
| get compatible surfaces starting from charged parameters More... | |
| size_t | compatibleSurfaces (std::vector< SurfaceIntersection > &cSurfaces, const NeutralParameters &pars, PropDirection pdir, const BoundaryCheck &bcheck, bool materialSurfacesOnly=true, const Surface *startSurface=nullptr, const Surface *endSurface=nullptr, const ICompatibilityEstimator *ice=nullptr) const |
| get compatible surfaces starting from neutral parameters More... | |
| virtual bool | hasSubStructure (bool resolveSensitive=false) const |
| Has sub-structure method: More... | |
| const TrackingVolume * | enclosingTrackingVolume () const |
| get the confining TrackingVolume More... | |
| const DetachedTrackingVolume * | enclosingDetachedTrackingVolume () const |
| get the confining DetachedTrackingVolume More... | |
| const LayerIndex & | layerIndex () const |
| get the layerIndex More... | |
| int | layerType () const |
| get the Layer coding More... | |
| void | setLayerType (int identifier) |
| set the Layer coding More... | |
| void | assignMaterialProperties (const LayerMaterialProperties &, double scale=1.0) |
| assignMaterialPropeties More... | |
| virtual void | moveLayer (Amg::Transform3D &)=0 |
| move the Layer More... | |
| void | registerRepresentingVolume (const Volume *theVol) |
| register Volume associated to the layer More... | |
| const Volume * | representingVolume () const |
| get the Volume associated to the layer More... | |
| void | setRef (double) |
| set the reference measure More... | |
| double | getRef () const |
| get the reference measure More... | |
| void | encloseTrackingVolume (const TrackingVolume &tvol) |
| private method to set the enclosed detached TV More... | |
| void | encloseDetachedTrackingVolume (const DetachedTrackingVolume &tvol) |
| template<class T > | |
| size_t | getCompatibleSurfaces (std::vector< SurfaceIntersection > &cSurfaces, const T &pars, PropDirection pdir, const BoundaryCheck &bcheck, bool materialSurfacesOnly=true, const Surface *startSurface=nullptr, const Surface *endSurface=nullptr, const ICompatibilityEstimator *ice=nullptr) const |
| get compatible surfaces starting from charged parameters More... | |
| void | compactify (size_t &cSurfaces, size_t &tSurfaces) |
| register layer index for material map registration More... | |
| void | registerLayerIndex (const LayerIndex &lIdx) |
| virtual void | resizeLayer (const VolumeBounds &, double)=0 |
| private method to set enclosing TrackingVolume, called by friend class only optionally, the layer can be resized to the dimensions of the TrackingVolume More... | |
| virtual void | resizeAndRepositionLayer (const VolumeBounds &vBounds, const Amg::Vector3D &vCenter, double envelope=1.)=0 |
| resize and reposition layer : dedicated for entry layers More... | |
Protected Member Functions | |
| Layer (const Layer &lay) | |
| Copy Constructor for Derived classes. More... | |
| Layer & | operator= (const Layer &lay) |
| Assignment operator for Derived classes. More... | |
Protected Attributes | |
| std::unique_ptr< SurfaceArray > | m_surfaceArray {} |
| MaterialPoperties of this layer Surface. More... | |
| std::unique_ptr< LayerMaterialProperties > | m_layerMaterialProperties {} |
| thickness of the Layer More... | |
| double | m_layerThickness {} |
| descriptor for overlap/next surface (owning ptr) More... | |
| std::unique_ptr< OverlapDescriptor > | m_overlapDescriptor {} |
| const Layer * | m_previousLayer = nullptr |
| < the previous Layer according to BinGenUtils More... | |
| const Layer * | m_nextLayer = nullptr |
| BinUtility for next/previous decision. More... | |
| const BinUtility * | m_binUtility = nullptr |
| Enclosing TrackingVolume. More... | |
| const TrackingVolume * | m_enclosingTrackingVolume = nullptr |
| Enclosing DetachedTrackingVolume. More... | |
| const DetachedTrackingVolume * | m_enclosingDetachedTrackingVolume = nullptr |
| LayerIndex | m_index {-1} |
| LayerIndex. More... | |
| int | m_layerType {Trk::active} |
| active passive layer More... | |
| double | m_ref {} |
| reference measure for local coordinate convertors More... | |
Base Class for a Detector Layer in the Tracking realm. 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:
|
default |
Default Constructor.
|
virtualdefault |
Destructor.
| Trk::Layer::Layer | ( | const LayerMaterialProperties & | laymatprop, |
| double | thickness = 0., |
||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, |
||
| int | ltype = int(passive) |
||
| ) |
| Trk::Layer::Layer | ( | std::unique_ptr< SurfaceArray > | surfaceArray, |
| double | thickness = 0., |
||
| std::unique_ptr< OverlapDescriptor > | olap = nullptr, |
||
| int | ltype = int(passive) |
||
| ) |
| Trk::Layer::Layer | ( | std::unique_ptr< SurfaceArray > | surfaceArray, |
| const LayerMaterialProperties & | laymatprop, | ||
| double | thickness = 0., |
||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, |
||
| int | ltype = int(passive) |
||
| ) |
Constructor with MaterialProperties and pointer SurfaceArray (passing ownership)
Definition at line 49 of file Layer.cxx.
| void Trk::Layer::assignMaterialProperties | ( | const LayerMaterialProperties & | prop, |
| double | scale = 1.0 |
||
| ) |
| const BinUtility* Trk::Layer::binUtility | ( | ) | const |
access the BinUtility
| void Trk::Layer::compactify | ( | size_t & | cSurfaces, |
| size_t & | tSurfaces | ||
| ) |
| size_t Trk::Layer::compatibleSurfaces | ( | std::vector< SurfaceIntersection > & | cSurfaces, |
| const NeutralParameters & | pars, | ||
| PropDirection | pdir, | ||
| const BoundaryCheck & | bcheck, | ||
| bool | materialSurfacesOnly = true, |
||
| const Surface * | startSurface = nullptr, |
||
| const Surface * | endSurface = nullptr, |
||
| const ICompatibilityEstimator * | ice = nullptr |
||
| ) | const |
get compatible surfaces starting from neutral parameters
| size_t Trk::Layer::compatibleSurfaces | ( | std::vector< SurfaceIntersection > & | cSurfaces, |
| const TrackParameters & | pars, | ||
| PropDirection | pdir, | ||
| const BoundaryCheck & | bcheck, | ||
| bool | materialSurfacesOnly = true, |
||
| const Surface * | startSurface = nullptr, |
||
| const Surface * | endSurface = nullptr, |
||
| const ICompatibilityEstimator * | ice = nullptr |
||
| ) | const |
get compatible surfaces starting from charged parameters
| void Trk::Layer::encloseDetachedTrackingVolume | ( | const DetachedTrackingVolume & | tvol | ) |
| void Trk::Layer::encloseTrackingVolume | ( | const TrackingVolume & | tvol | ) |
private method to set the enclosed detached TV
| const DetachedTrackingVolume* Trk::Layer::enclosingDetachedTrackingVolume | ( | ) | const |
get the confining DetachedTrackingVolume
| const TrackingVolume* Trk::Layer::enclosingTrackingVolume | ( | ) | const |
get the confining TrackingVolume
| const Trk::MaterialProperties * Trk::Layer::fullUpdateMaterialProperties | ( | const TrackParameters & | par | ) | const |
| size_t Trk::Layer::getCompatibleSurfaces | ( | std::vector< SurfaceIntersection > & | cSurfaces, |
| const T & | pars, | ||
| PropDirection | pdir, | ||
| const BoundaryCheck & | bcheck, | ||
| bool | materialSurfacesOnly = true, |
||
| const Surface * | startSurface = nullptr, |
||
| const Surface * | endSurface = nullptr, |
||
| const ICompatibilityEstimator * | ice = nullptr |
||
| ) | const |
get compatible surfaces starting from charged parameters
propagate TrackingGeometry owner downstream
| double Trk::Layer::getRef | ( | ) | const |
get the reference measure
|
virtual |
Has sub-structure method:
|
virtual |
isOnLayer() method, using isOnSurface() with Layer specific tolerance
Reimplemented in Trk::MaterialLayer, Trk::MaterialLayerNoOwnSurf, Trk::MaterialLayerOwnSurf, and Trk::NavigationLayer.
Definition at line 135 of file Layer.cxx.
| const LayerIndex& Trk::Layer::layerIndex | ( | ) | const |
get the layerIndex
| const LayerMaterialProperties* Trk::Layer::layerMaterialProperties | ( | ) | const |
getting the LayerMaterialProperties including full/pre/post update
| int Trk::Layer::layerType | ( | ) | const |
get the Layer coding
|
pure virtual |
move the Layer
Implemented in Trk::CylinderLayer, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::SubtractedCylinderLayer, Trk::SubtractedPlaneLayer, Trk::NavigationLayer, and Trk::MaterialLayer.
| const Trk::Layer * Trk::Layer::nextLayer | ( | bool | skipNavLayer = false | ) | const |
| const Trk::Layer * Trk::Layer::nextLayer | ( | const Amg::Vector3D & | gp, |
| const Amg::Vector3D & | udir | ||
| ) | const |
| bool Trk::Layer::onLayer | ( | const T & | parameters, |
| const BoundaryCheck & | bcheck = BoundaryCheck(true) |
||
| ) | const |
templated on Layer method
|
protected |
| const OverlapDescriptor* Trk::Layer::overlapDescriptor | ( | ) | const |
gettint hte overlap descriptor
|
inlinevirtual |
getting the MaterialProperties back - for pre-update
Reimplemented in Trk::CylinderLayer, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::NavigationLayer, Trk::SubtractedCylinderLayer, and Trk::SubtractedPlaneLayer.
|
inlinevirtual |
getting the MaterialProperties back - for pre-update
Reimplemented in Trk::CylinderLayer, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::NavigationLayer, Trk::SubtractedCylinderLayer, and Trk::SubtractedPlaneLayer.
| const Trk::Layer * Trk::Layer::previousLayer | ( | bool | skipNavLayer = false | ) | const |
| void Trk::Layer::registerLayerIndex | ( | const LayerIndex & | lIdx | ) |
register Volume associated to the layer
|
pure virtual |
resize and reposition layer : dedicated for entry layers
Implemented in Trk::CylinderLayer, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::NavigationLayer, Trk::SubtractedCylinderLayer, Trk::SubtractedPlaneLayer, and Trk::MaterialLayer.
|
pure virtual |
private method to set enclosing TrackingVolume, called by friend class only optionally, the layer can be resized to the dimensions of the TrackingVolume
Implemented in Trk::CylinderLayer, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::NavigationLayer, Trk::SubtractedCylinderLayer, Trk::SubtractedPlaneLayer, and Trk::MaterialLayer.
| void Trk::Layer::setBinUtility | ( | const BinUtility * | ) |
set the BinUtility
| void Trk::Layer::setLayerType | ( | int | identifier | ) |
set the Layer coding
| void Trk::Layer::setRef | ( | double | ) |
set the reference measure
| const Trk::Surface * Trk::Layer::subSurface | ( | const Amg::Vector2D & | lp | ) | const |
If no subSurface array is defined or no subSurface can be found to the given Amg::Vector2D, it would return 0.
| const Trk::Surface * Trk::Layer::subSurface | ( | const Amg::Vector3D & | gp | ) | const |
If no subSurface array is defined or no subSurface can be found to the given Amg::Vector3D, it would return 0.
| const Trk::Surface * Trk::Layer::subSurfaceReference | ( | unsigned int | idx = 0 | ) | const |
| SurfaceArray* Trk::Layer::surfaceArray | ( | ) |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
| const SurfaceArray* Trk::Layer::surfaceArray | ( | ) | const |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
|
virtual |
Surface seen on approach - if not defined differently, it is the surfaceRepresentation()
Reimplemented in Trk::DiscLayer, and Trk::CylinderLayer.
Transforms the layer into a Surface representation for extrapolation.
Implemented in Trk::MaterialLayer, Trk::CylinderLayer, Trk::MaterialLayerNoOwnSurf, Trk::DiscLayer, Trk::ConeLayer, Trk::PlaneLayer, Trk::MaterialLayerOwnSurf, Trk::SubtractedCylinderLayer, Trk::SubtractedPlaneLayer, and Trk::NavigationLayer.
|
pure virtual |
| double Trk::Layer::thickness | ( | ) | const |
Return the Thickness of the Layer.
|
protected |
Enclosing TrackingVolume.
|
protected |
|
protected |
Enclosing DetachedTrackingVolume.
|
protected |
|
protected |
|
protected |
|
protected |
BinUtility for next/previous decision.
|
protected |
|
protected |
|
protected |
1.8.18