![]() |
ATLAS Offline Software
|
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class and DiscSurface class. More...
#include <DiscLayer.h>
Public Types | |
| using | ChargedTrackParametersUniquePtr |
| Unique ptr types. | |
| using | NeutralTrackParametersUniquePtr |
Public Member Functions | |
| DiscLayer ()=default | |
| Default Constructor. | |
| DiscLayer (const Amg::Transform3D &transform, std::shared_ptr< const DiscBounds > dbounds, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
| Constructor with DiscSurface components and MaterialProperties. | |
| DiscLayer (DiscSurface *disc, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
| Constructor with DiscSurface and MaterialProperties. | |
| DiscLayer (const Amg::Transform3D &transform, std::shared_ptr< const DiscBounds > dbounds, std::unique_ptr< SurfaceArray > surfaceArray, double isontolerance=0., std::unique_ptr< OverlapDescriptor > od=nullptr, IApproachDescriptor *ad=nullptr, int laytyp=int(Trk::active)) | |
| Constructor with DiscSurface components and pointer to SurfaceArray (passing ownership) | |
| DiscLayer (const Amg::Transform3D &transform, std::shared_ptr< const DiscBounds > dbounds, std::unique_ptr< SurfaceArray > surfaceArray, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, IApproachDescriptor *ad=nullptr, int laytyp=int(Trk::active)) | |
| Constructor with DiscSurface components, MaterialProperties and pointer SurfaceArray (passing ownership) | |
| DiscLayer (const DiscLayer &cla) | |
| Copy constructor of DiscLayer. | |
| DiscLayer (const DiscLayer &cla, const Amg::Transform3D &tr) | |
| Copy constructor with shift. | |
| DiscLayer & | operator= (const DiscLayer &) |
| Assignment operator for DiscLayers. | |
| virtual | ~DiscLayer ()=default |
| Destructor. | |
| virtual const DiscSurface & | surfaceRepresentation () const override final |
| Transforms the layer into a Surface representation for extrapolation. | |
| virtual DiscSurface & | surfaceRepresentation () override final |
| virtual const Surface & | surfaceOnApproach (const Amg::Vector3D &pos, const Amg::Vector3D &mom, PropDirection pdir, const BoundaryCheck &bcheck, bool resolveSubSurfaces=0, const ICompatibilityEstimator *ice=nullptr) const override final |
| Surface seen on approach - if not defined differently, it is the surfaceRepresentation() | |
| virtual double | preUpdateMaterialFactor (const Trk::TrackParameters &par, Trk::PropDirection dir) const override final |
| getting the MaterialProperties back - for pre-update | |
| virtual double | postUpdateMaterialFactor (const Trk::TrackParameters &par, Trk::PropDirection dir) const override final |
| getting the MaterialProperties back - for post-update | |
| virtual void | moveLayer (Amg::Transform3D &shift) override final |
| move the Layer non-const | |
| virtual void | resizeLayer (const VolumeBounds &vBounds, double envelope) override final |
| Resize the layer to the tracking volume - only works for CylinderVolumeBouns. | |
| virtual void | resizeAndRepositionLayer (const VolumeBounds &vBounds, const Amg::Vector3D &cCenter, double envelop) override final |
| Resize the layer to the tracking volume - not implemented. | |
| virtual bool | operator== (const Surface &sf) const override |
| Equality operator. | |
| bool | operator== (const DiscSurface &cf) const |
| virtual DiscSurface * | clone () const override |
| Virtual constructor. | |
| virtual Surface::ChargedTrackParametersUniquePtr | createUniqueTrackParameters (double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from local parameters - charged. | |
| virtual Surface::ChargedTrackParametersUniquePtr | createUniqueTrackParameters (const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from global parameters - charged. | |
| virtual NeutralTrackParametersUniquePtr | createUniqueNeutralParameters (double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from local parameters - neutral. | |
| virtual NeutralTrackParametersUniquePtr | createUniqueNeutralParameters (const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const override final |
| Use the Surface as a ParametersBase constructor, from global parameters - neutral. | |
| template<int DIM, class T> | |
| std::unique_ptr< ParametersT< DIM, T, DiscSurface > > | createUniqueParameters (double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const |
| Use the Surface as a ParametersBase constructor, from local parameters. | |
| template<int DIM, class T> | |
| std::unique_ptr< ParametersT< DIM, T, DiscSurface > > | createUniqueParameters (const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const |
| Use the Surface as a ParametersBase constructor, from global parameters. | |
| virtual constexpr SurfaceType | type () const override final |
| Return the surface type. | |
| virtual const Amg::Vector3D & | globalReferencePoint () const override final |
| Returns a global reference point: For the Disc this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( r, \phi \) denote the r(), averagePhi() of the Bounds. | |
| const SurfaceBounds & | bounds () const override final |
| This method returns the bounds by reference. | |
| virtual bool | insideBounds (const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override |
| This method calls the inside method of the bounds. | |
| virtual bool | insideBoundsCheck (const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final |
| virtual bool | isOnSurface (const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override |
| This method returns true if the GlobalPosition is on the Surface for both, within or without check of whether the local position is inside boundaries or not. | |
| virtual Amg::Vector2D | localParametersToPosition (const LocalParameters &locpars) const override final |
| Specialized for DiscSurface : LocalParameters to Vector2D. | |
| virtual void | localToGlobal (const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override |
| Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation. | |
| Amg::Vector3D | localToGlobal (const Amg::Vector2D &locpos) const |
| This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal. | |
| Amg::Vector3D | localToGlobal (const Amg::Vector2D &locpos, const Amg::Vector3D &glomom) const |
| This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface bounds - for generality with momentum. | |
| Amg::Vector3D | localToGlobal (const LocalParameters &locpars) const |
| This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds. | |
| Amg::Vector3D | localToGlobal (const LocalParameters &locpars, const Amg::Vector3D &glomom) const |
| This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds - for generality with momentum. | |
| virtual bool | globalToLocal (const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override |
| Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface. | |
| std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, double tol=0.) const |
| This method returns the LocalPosition from a provided GlobalPosition. | |
| std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const |
| This method returns the LocalPosition from a provided GlobalPosition. | |
| virtual Intersection | straightLineIntersection (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir=false, Trk::BoundaryCheck bchk=false) const override final |
| fast straight line intersection schema - standard: provides closest intersection and (signed) path length forceDir is to provide the closest forward solution | |
| template<typename T> | |
| Intersection | straightLineIntersection (const T &pars, bool forceDir=false, const Trk::BoundaryCheck &bchk=false) const |
| fst straight line intersection schema - templated for charged and neutral parameters | |
| virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override |
| fast straight line distance evaluation to Surface | |
| virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool Bound) const override |
| fast straight line distance evaluation to Surface - with bound option | |
| virtual std::string | name () const override |
| Return properly formatted class name for screen output. | |
| bool | operator!= (const Surface &sf) const |
| Non-equality operator. | |
| std::unique_ptr< Surface > | uniqueClone () const |
| NVI method returning unique_ptr clone. | |
| const Amg::Transform3D * | cachedTransform () const |
| Return the cached transformation directly. | |
| const Amg::Transform3D & | transform () const |
| Returns HepGeom::Transform3D by reference. | |
| const Amg::Vector3D & | center () const |
| Returns the center position of the Surface. | |
| virtual const Amg::Vector3D & | normal () const |
| Returns the normal vector of the Surface (i.e. | |
| virtual Amg::Vector3D | normal (const Amg::Vector2D &lp) const |
| Returns a normal vector at a specific local position. | |
| const TrkDetElementBase * | associatedDetectorElement () const |
| return associated Detector Element | |
| Identifier | associatedDetectorElementIdentifier () const |
| return Identifier of the associated Detector Element | |
| const Trk::Layer * | associatedLayer () const |
| return the associated Layer | |
| const Trk::MaterialLayer * | materialLayer () const |
| return the material Layer | |
| Trk::MaterialLayer * | materialLayer () |
| virtual const Trk::Surface * | baseSurface () const |
| return the base surface (simplified for persistification) | |
| std::optional< Amg::Vector2D > | positionOnSurface (const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const |
| positionOnSurface() returns the LocalPosition on the Surface, If BoundaryCheck==false it just returns the value of globalToLocal (including nullptr possibility), if BoundaryCheck==true it checks whether the point is inside bounds or not (returns std::nullopt in this case). | |
| template<class T> | |
| bool | onSurface (const T ¶meters, const BoundaryCheck &bchk=BoundaryCheck(true)) const |
| The templated Parameters OnSurface method - checks on surface pointer first. | |
| virtual double | pathCorrection (const Amg::Vector3D &pos, const Amg::Vector3D &mom) const |
| the pathCorrection for derived classes with thickness - it reflects if the direction projection is positive or negative | |
| virtual Amg::RotationMatrix3D | measurementFrame (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const |
| Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface. | |
| bool | isFree () const |
| Returns 'true' if this surface is 'free', i.e. | |
| bool | isActive () const |
| Return 'true' if this surface is owned by the detector element. | |
| void | setTransform (const Amg::Transform3D &trans) |
| Set the transform updates center and normal. | |
| void | setOwner (SurfaceOwner x) |
| set Ownership | |
| SurfaceOwner | owner () const |
| return ownership | |
| void | setMaterialLayer (std::shared_ptr< Trk::MaterialLayer > mlay) |
| set material layer | |
| virtual MsgStream & | dump (MsgStream &sl) const |
| Output Method for MsgStream, to be overloaded by child classes. | |
| virtual std::ostream & | dump (std::ostream &sl) const |
| Output Method for std::ostream, to be overloaded by child classes. | |
| void | associateLayer (const Layer &lay) |
| method to associate a Trk::Layer. | |
| const SurfaceArray * | surfaceArray () const |
| Return the entire SurfaceArray, returns nullptr if no SurfaceArray. | |
| SurfaceArray * | surfaceArray () |
| Return the entire SurfaceArray, returns nullptr if no SurfaceArray. | |
| 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. | |
| 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. | |
| const Surface * | subSurfaceReference (unsigned int idx=0) const |
| Return a reference sub surface of the layer, usually the first one in the array. | |
| double | thickness () const |
| Return the Thickness of the Layer. | |
| template<class T> | |
| bool | onLayer (const T ¶meters, const BoundaryCheck &bcheck=BoundaryCheck(true)) const |
| templated on Layer method | |
| virtual bool | isOnLayer (const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const |
| isOnLayer() method, using isOnSurface() with Layer specific tolerance | |
| const LayerMaterialProperties * | layerMaterialProperties () const |
| getting the LayerMaterialProperties including full/pre/post update | |
| const MaterialProperties * | fullUpdateMaterialProperties (const TrackParameters &par) const |
| getting the MaterialProperties back - for full update | |
| const OverlapDescriptor * | overlapDescriptor () const |
| gettint hte overlap descriptor | |
| const Layer * | previousLayer (bool skipNavLayer=false) const |
| getting what's stored to be the previous Layer, boolean to skip navigation layers | |
| void | setPreviousLayer (const Layer *) |
| set the previous Layer | |
| const Layer * | nextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &udir) const |
| getting the next/previous Layer if registered - unit for direction vector required | |
| const Layer * | nextLayer (bool skipNavLayer=false) const |
| getting what's stored to be the next Layer, boolean to skip navigation layers | |
| void | setNextLayer (const Layer *) |
| set the next Layer | |
| const BinUtility * | binUtility () const |
| access the BinUtility | |
| void | setBinUtility (const BinUtility *) |
| set the BinUtility | |
| 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 | |
| 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 | |
| virtual bool | hasSubStructure (bool resolveSensitive=false) const |
| Has sub-structure method: | |
| const TrackingVolume * | enclosingTrackingVolume () const |
| get the confining TrackingVolume | |
| const DetachedTrackingVolume * | enclosingDetachedTrackingVolume () const |
| get the confining DetachedTrackingVolume | |
| const LayerIndex & | layerIndex () const |
| get the layerIndex | |
| int | layerType () const |
| get the Layer coding | |
| void | setLayerType (int identifier) |
| set the Layer coding | |
| void | assignMaterialProperties (const LayerMaterialProperties &, double scale=1.0) |
| assignMaterialPropeties | |
| void | registerRepresentingVolume (const Volume *theVol) |
| register Volume associated to the layer | |
| const Volume * | representingVolume () const |
| get the Volume associated to the layer | |
| void | setRef (double) |
| set the reference measure | |
| double | getRef () const |
| get the reference measure | |
| void | encloseTrackingVolume (const TrackingVolume &tvol) |
| private method to set the enclosed detached TV | |
| 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 | |
| void | compactify (size_t &cSurfaces, size_t &tSurfaces) |
| register layer index for material map registration | |
| void | registerLayerIndex (const LayerIndex &lIdx) |
Static Public Member Functions | |
| static std::size_t | numberOfInstantiations () |
Static Public Attributes | |
| static constexpr SurfaceType | staticType = SurfaceType::Disc |
| static std::atomic_size_t | s_numberOfInstantiations |
Protected Member Functions | |
| Amg::Transform3D | inverseTransformHelper () const |
| Helper method to factorize in one place common operations calculate inverse transofrm and multiply with position. | |
| Amg::Vector3D | inverseTransformMultHelper (const Amg::Vector3D &glopos) const |
Protected Attributes | |
| std::unique_ptr< IApproachDescriptor > | m_approachDescriptor |
| < surface for approaching | |
| std::shared_ptr< const SurfaceBounds > | m_bounds |
| reference Point on the Surface | |
| CxxUtils::CachedUniquePtr< Amg::Vector3D > | m_referencePoint |
| static member for boundless approach | |
| std::unique_ptr< Transforms > | m_transforms {} |
| Unique Pointer to the Transforms struct. | |
| const TrkDetElementBase * | m_associatedDetElement {} |
| Not owning Pointer to the Detector Element. | |
| Identifier | m_associatedDetElementId {} |
| Identifier to the Detector Element. | |
| const Layer * | m_associatedLayer {} |
| The associated layer Trk::Layer This is the layer in which the Surface is embedded. | |
| std::shared_ptr< MaterialLayer > | m_materialLayer {} |
| Possibility to attach a material description to the surface. | |
| SurfaceOwner | m_owner {SurfaceOwner::noOwn} |
| enum for surface owner : default free surface | |
| std::unique_ptr< SurfaceArray > | m_surfaceArray {} |
| MaterialPoperties of this layer Surface. | |
| std::unique_ptr< LayerMaterialProperties > | m_layerMaterialProperties {} |
| thickness of the Layer | |
| double | m_layerThickness {} |
| descriptor for overlap/next surface (owning ptr) | |
| std::unique_ptr< OverlapDescriptor > | m_overlapDescriptor {} |
| const Layer * | m_previousLayer = nullptr |
| < the previous Layer according to BinGenUtils | |
| const Layer * | m_nextLayer = nullptr |
| BinUtility for next/previous decision. | |
| const BinUtility * | m_binUtility = nullptr |
| Enclosing TrackingVolume. | |
| const TrackingVolume * | m_enclosingTrackingVolume = nullptr |
| Enclosing DetachedTrackingVolume. | |
| const DetachedTrackingVolume * | m_enclosingDetachedTrackingVolume = nullptr |
| LayerIndex | m_index {-1} |
| LayerIndex. | |
| int | m_layerType {Trk::active} |
| active passive layer | |
| double | m_ref {} |
| reference measure for local coordinate convertors | |
Static Protected Attributes | |
| static const NoBounds | s_boundless |
| static constexpr double | s_onSurfaceTolerance = 10e-5 |
| Tolerance for being on Surface. | |
Private Member Functions | |
| void | buildApproachDescriptor () |
| build approach surfaces | |
| const Surface & | approachSurface (const Amg::Vector3D &pos, const Amg::Vector3D &dir, const BoundaryCheck &bcheck) const |
| Surface seen on approach - if not defined differently, it is the surfaceRepresentation() | |
Friends | |
| class | TrackingVolume |
Class to describe a disc-like detector layer for tracking, it inhertis from both, Layer base class and DiscSurface class.
Definition at line 42 of file DiscLayer.h.
|
inherited |
Unique ptr types.
Definition at line 128 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inherited |
Definition at line 130 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
default |
Default Constructor.
| Trk::DiscLayer::DiscLayer | ( | const Amg::Transform3D & | transform, |
| std::shared_ptr< const DiscBounds > | dbounds, | ||
| const LayerMaterialProperties & | laymatprop, | ||
| double | thickness = 0., | ||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, | ||
| int | laytyp = int(Trk::active) ) |
Constructor with DiscSurface components and MaterialProperties.
Definition at line 21 of file DiscLayer.cxx.
| Trk::DiscLayer::DiscLayer | ( | Trk::DiscSurface * | disc, |
| const LayerMaterialProperties & | laymatprop, | ||
| double | thickness = 0., | ||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, | ||
| int | laytyp = int(Trk::active) ) |
Constructor with DiscSurface and MaterialProperties.
Definition at line 34 of file DiscLayer.cxx.
| Trk::DiscLayer::DiscLayer | ( | const Amg::Transform3D & | transform, |
| std::shared_ptr< const DiscBounds > | dbounds, | ||
| std::unique_ptr< SurfaceArray > | surfaceArray, | ||
| double | isontolerance = 0., | ||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, | ||
| Trk::IApproachDescriptor * | ades = nullptr, | ||
| int | laytyp = int(Trk::active) ) |
Constructor with DiscSurface components and pointer to SurfaceArray (passing ownership)
Definition at line 46 of file DiscLayer.cxx.
| Trk::DiscLayer::DiscLayer | ( | const Amg::Transform3D & | transform, |
| std::shared_ptr< const DiscBounds > | dbounds, | ||
| std::unique_ptr< SurfaceArray > | surfaceArray, | ||
| const LayerMaterialProperties & | laymatprop, | ||
| double | thickness = 0., | ||
| std::unique_ptr< OverlapDescriptor > | od = nullptr, | ||
| Trk::IApproachDescriptor * | ades = nullptr, | ||
| int | laytyp = int(Trk::active) ) |
Constructor with DiscSurface components, MaterialProperties and pointer SurfaceArray (passing ownership)
Definition at line 63 of file DiscLayer.cxx.
| Trk::DiscLayer::DiscLayer | ( | const DiscLayer & | cla | ) |
| Trk::DiscLayer::DiscLayer | ( | const DiscLayer & | cla, |
| const Amg::Transform3D & | tr ) |
|
virtualdefault |
Destructor.
|
private |
Surface seen on approach - if not defined differently, it is the surfaceRepresentation()
< @TODO -> optimise by breaking the loop if possible
Definition at line 190 of file DiscLayer.cxx.
|
inherited |
assignMaterialPropeties
Definition at line 177 of file Layer.cxx.
|
inherited |
return associated Detector Element
|
inherited |
return Identifier of the associated Detector Element
|
inherited |
return the associated Layer
|
inherited |
method to associate a Trk::Layer.
We do not take ownership as this is typically already owned by the Geometry
|
virtualinherited |
return the base surface (simplified for persistification)
|
inherited |
access the BinUtility
|
finaloverridevirtualinherited |
This method returns the bounds by reference.
Implements Trk::Surface.
|
private |
build approach surfaces
Definition at line 234 of file DiscLayer.cxx.
|
inherited |
Return the cached transformation directly.
Don't try to make a new transform if it's not here.
|
inherited |
Returns the center position of the Surface.
|
overridevirtualinherited |
|
inherited |
register layer index for material map registration
Definition at line 186 of file Layer.cxx.
|
inherited |
get compatible surfaces starting from neutral parameters
|
inherited |
get compatible surfaces starting from charged parameters
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from global parameters - neutral.
Implements Trk::Surface.
Definition at line 201 of file DiscSurface.cxx.
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
Implements Trk::Surface.
Definition at line 191 of file DiscSurface.cxx.
|
inherited |
Use the Surface as a ParametersBase constructor, from global parameters.
|
inherited |
Use the Surface as a ParametersBase constructor, from local parameters.
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from global parameters - charged.
Implements Trk::Surface.
Definition at line 181 of file DiscSurface.cxx.
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from local parameters - charged.
Implements Trk::Surface.
Definition at line 172 of file DiscSurface.cxx.
|
virtualinherited |
Output Method for MsgStream, to be overloaded by child classes.
Reimplemented in Trk::DetElementSurface, and Trk::PerigeeSurface.
Definition at line 157 of file Surface.cxx.
|
virtualinherited |
Output Method for std::ostream, to be overloaded by child classes.
Reimplemented in Trk::DetElementSurface, and Trk::PerigeeSurface.
Definition at line 185 of file Surface.cxx.
|
inherited |
|
inherited |
private method to set the enclosed detached TV
|
inherited |
get the confining DetachedTrackingVolume
|
inherited |
get the confining TrackingVolume
|
inherited |
getting the MaterialProperties back - for full update
Definition at line 169 of file Layer.cxx.
|
inherited |
get compatible surfaces starting from charged parameters
propagate TrackingGeometry owner downstream
|
inherited |
get the reference measure
|
finaloverridevirtualinherited |
Returns a global reference point: For the Disc this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( r, \phi \) denote the r(), averagePhi() of the Bounds.
Reimplemented from Trk::Surface.
Definition at line 209 of file DiscSurface.cxx.
|
overridevirtualinherited |
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.
local<->global transformation in case of polar local coordinates
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 250 of file DiscSurface.cxx.
|
inherited |
This method returns the LocalPosition from a provided GlobalPosition.
If the GlobalPosition is not on the Surface, it returns a nullopt This method does not check if the calculated LocalPosition is inside surface bounds. If this check is needed, use positionOnSurface - for generality with momentum
|
inherited |
This method returns the LocalPosition from a provided GlobalPosition.
If the GlobalPosition is not on the Surface, it returns nullopt This method does not check if the calculated LocalPosition is inside surface bounds. If this check is needed, use positionOnSurface - only for planar, cylinder surface fully defined
|
virtualinherited |
Has sub-structure method:
|
overridevirtualinherited |
This method calls the inside method of the bounds.
Implements Trk::Surface.
Reimplemented in Trk::SubtractedDiscSurface.
|
finaloverridevirtualinherited |
Implements Trk::Surface.
|
protectedinherited |
Helper method to factorize in one place common operations calculate inverse transofrm and multiply with position.
|
protectedinherited |
|
inherited |
Return 'true' if this surface is owned by the detector element.
|
inherited |
Returns 'true' if this surface is 'free', i.e.
it does not belong to a detector element (and returns false otherwise
|
virtualinherited |
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.
|
overridevirtualinherited |
This method returns true if the GlobalPosition is on the Surface for both, within or without check of whether the local position is inside boundaries or not.
Reimplemented from Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 287 of file DiscSurface.cxx.
|
inherited |
get the layerIndex
|
inherited |
getting the LayerMaterialProperties including full/pre/post update
|
inherited |
get the Layer coding
|
finaloverridevirtualinherited |
Specialized for DiscSurface : LocalParameters to Vector2D.
Reimplemented from Trk::Surface.
|
overridevirtualinherited |
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 236 of file DiscSurface.cxx.
|
inherited |
This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal.
|
inherited |
This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface bounds - for generality with momentum.
|
inherited |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds.
|
inherited |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds - for generality with momentum.
|
inherited |
|
inherited |
return the material Layer
|
virtualinherited |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface.
Reimplemented in GXF::CylinderSurface, Trk::ConeSurface, Trk::CylinderSurface, Trk::PerigeeSurface, and Trk::StraightLineSurface.
Definition at line 135 of file Surface.cxx.
|
finaloverridevirtual |
move the Layer non-const
Implements Trk::Layer.
Definition at line 139 of file DiscLayer.cxx.
|
overridevirtualinherited |
Return properly formatted class name for screen output.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface, and Trk::SubtractedDiscSurface.
|
inherited |
getting what's stored to be the next Layer, boolean to skip navigation layers
Definition at line 151 of file Layer.cxx.
|
inherited |
getting the next/previous Layer if registered - unit for direction vector required
Definition at line 161 of file Layer.cxx.
|
virtualinherited |
Returns the normal vector of the Surface (i.e.
in generall z-axis of rotation)
Reimplemented in GXF::CylinderSurface, Trk::ConeSurface, Trk::CylinderSurface, and Trk::PerigeeSurface.
|
virtualinherited |
Returns a normal vector at a specific local position.
Reimplemented in GXF::CylinderSurface, Trk::ConeSurface, Trk::CylinderSurface, and Trk::PerigeeSurface.
|
inlinestaticinherited |
Definition at line 25 of file TrkObjectCounter.h.
|
inherited |
templated on Layer method
|
inherited |
The templated Parameters OnSurface method - checks on surface pointer first.
|
inherited |
Non-equality operator.
| Trk::DiscLayer & Trk::DiscLayer::operator= | ( | const DiscLayer & | dlay | ) |
Assignment operator for DiscLayers.
Definition at line 96 of file DiscLayer.cxx.
|
inherited |
|
overridevirtualinherited |
Equality operator.
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface, and Trk::SubtractedDiscSurface.
Definition at line 160 of file DiscSurface.cxx.
|
inherited |
gettint hte overlap descriptor
|
inherited |
return ownership
|
virtualinherited |
the pathCorrection for derived classes with thickness - it reflects if the direction projection is positive or negative
Reimplemented in GXF::CylinderSurface, Trk::ConeSurface, Trk::CylinderSurface, Trk::PerigeeSurface, and Trk::StraightLineSurface.
|
inherited |
positionOnSurface() returns the LocalPosition on the Surface,
If BoundaryCheck==false it just returns the value of globalToLocal (including nullptr possibility), if BoundaryCheck==true it checks whether the point is inside bounds or not (returns std::nullopt in this case).
Definition at line 106 of file Surface.cxx.
|
finaloverridevirtual |
getting the MaterialProperties back - for post-update
Reimplemented from Trk::Layer.
Definition at line 130 of file DiscLayer.cxx.
|
finaloverridevirtual |
getting the MaterialProperties back - for pre-update
Reimplemented from Trk::Layer.
Definition at line 121 of file DiscLayer.cxx.
|
inherited |
getting what's stored to be the previous Layer, boolean to skip navigation layers
Definition at line 141 of file Layer.cxx.
|
inherited |
|
inherited |
register Volume associated to the layer
|
inherited |
get the Volume associated to the layer
|
finaloverridevirtual |
Resize the layer to the tracking volume - not implemented.
Implements Trk::Layer.
Definition at line 263 of file DiscLayer.cxx.
|
finaloverridevirtual |
Resize the layer to the tracking volume - only works for CylinderVolumeBouns.
Implements Trk::Layer.
Definition at line 149 of file DiscLayer.cxx.
|
inherited |
set the BinUtility
|
inherited |
set the Layer coding
|
inherited |
set material layer
|
inherited |
set Ownership
|
inherited |
set the reference measure
|
inherited |
Set the transform updates center and normal.
|
overridevirtualinherited |
fast straight line distance evaluation to Surface
distance to surface
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 304 of file DiscSurface.cxx.
|
overridevirtualinherited |
fast straight line distance evaluation to Surface - with bound option
Implements Trk::Surface.
Reimplemented in Trk::SlidingDiscSurface.
Definition at line 329 of file DiscSurface.cxx.
|
finaloverridevirtualinherited |
fast straight line intersection schema - standard: provides closest intersection and (signed) path length forceDir is to provide the closest forward solution
mathematical motivation:
the equation of the plane is given by:
\( \vec n \cdot \vec x = \vec n \cdot \vec p,\)
where \( \vec n = (n_{x}, n_{y}, n_{z})\) denotes the normal vector of the plane, \( \vec p = (p_{x}, p_{y}, p_{z})\) one specific point on the plane and \( \vec x = (x,y,z) \) all possible points on the plane.
Given a line with:
\( \vec l(u) = \vec l_{1} + u \cdot \vec v \),
the solution for \( u \) can be written: \( u = \frac{\vec n (\vec p - \vec l_{1})}{\vec n \vec v}\)
If the denominator is 0 then the line lies:
Implements Trk::Surface.
Definition at line 260 of file DiscSurface.cxx.
|
inlineinherited |
fst straight line intersection schema - templated for charged and neutral parameters
Definition at line 352 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inherited |
If no subSurface array is defined or no subSurface can be found to the given Amg::Vector2D, it would return 0.
|
inherited |
If no subSurface array is defined or no subSurface can be found to the given Amg::Vector3D, it would return 0.
|
inherited |
Return a reference sub surface of the layer, usually the first one in the array.
Definition at line 117 of file Layer.cxx.
|
inherited |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
|
inherited |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
|
finaloverridevirtual |
Surface seen on approach - if not defined differently, it is the surfaceRepresentation()
Reimplemented from Trk::Layer.
Definition at line 221 of file DiscLayer.cxx.
|
finaloverridevirtual |
Transforms the layer into a Surface representation for extrapolation.
Implements Trk::Layer.
Definition at line 111 of file DiscLayer.cxx.
|
finaloverridevirtual |
|
inherited |
Return the Thickness of the Layer.
|
inherited |
Returns HepGeom::Transform3D by reference.
|
constexprfinaloverridevirtualinherited |
Return the surface type.
Implements Trk::Surface.
|
inherited |
NVI method returning unique_ptr clone.
|
friend |
Definition at line 46 of file DiscLayer.h.
|
protected |
< surface for approaching
Definition at line 146 of file DiscLayer.h.
|
protectedinherited |
Not owning Pointer to the Detector Element.
Definition at line 441 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
Identifier to the Detector Element.
Definition at line 443 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
The associated layer Trk::Layer This is the layer in which the Surface is embedded.
so not owning pointer.
Definition at line 448 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
Enclosing TrackingVolume.
|
protectedinherited |
reference Point on the Surface
Definition at line 284 of file DiscSurface.h.
|
protectedinherited |
|
protectedinherited |
Enclosing DetachedTrackingVolume.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Possibility to attach a material description to the surface.
In this case the surface is what holds the MaterialLayer. This is usually done for boundary surfaces so shared ptr.
Definition at line 453 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
BinUtility for next/previous decision.
|
protectedinherited |
|
protectedinherited |
enum for surface owner : default free surface
Definition at line 455 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
static member for boundless approach
Definition at line 286 of file DiscSurface.h.
|
protectedinherited |
|
protectedinherited |
Unique Pointer to the Transforms struct.
Definition at line 439 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
staticprotectedinherited |
Definition at line 288 of file DiscSurface.h.
|
inlinestaticinherited |
Definition at line 22 of file TrkObjectCounter.h.
|
staticconstexprprotectedinherited |
Tolerance for being on Surface.
Definition at line 458 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
staticconstexprinherited |
Definition at line 57 of file DiscSurface.h.