ATLAS Offline Software
|
#include <ConeLayer.h>
Public Types | |
using | ChargedTrackParametersUniquePtr = std::unique_ptr< ParametersBase< 5, Trk::Charged > > |
Unique ptr types. More... | |
using | NeutralTrackParametersUniquePtr = std::unique_ptr< ParametersBase< 5, Trk::Neutral > > |
Public Member Functions | |
ConeLayer () | |
Default Constructor. More... | |
ConeLayer (const Amg::Transform3D &transform, ConeBounds *cbounds, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
Constructor with ConeBounds components and MaterialProperties. More... | |
ConeLayer (ConeSurface *cyl, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
Constructor with ConeSurface and MaterialProperties. More... | |
ConeLayer (const Amg::Transform3D &transform, ConeBounds *cbounds, std::unique_ptr< SurfaceArray > surfaceArray, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
Constructor with ConeSurface components and pointer to SurfaceArray (passing ownership) More... | |
ConeLayer (const Amg::Transform3D &transform, ConeBounds *cbounds, std::unique_ptr< SurfaceArray > surfaceArray, const LayerMaterialProperties &laymatprop, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active)) | |
Constructor with ConeSurface components, MaterialProperties and pointer SurfaceArray (passing ownership) More... | |
ConeLayer (const ConeLayer &cla) | |
Copy constructor of ConeLayer. More... | |
ConeLayer (const ConeLayer &cla, const Amg::Transform3D &tr) | |
Copy constructor with shift. More... | |
ConeLayer & | operator= (const ConeLayer &) |
Assignment operator for ConeLayers. More... | |
virtual | ~ConeLayer () override |
Destructor. More... | |
virtual const ConeSurface & | surfaceRepresentation () const override final |
Transforms the layer into a Surface representation for extrapolation. More... | |
virtual ConeSurface & | surfaceRepresentation () override final |
virtual double | preUpdateMaterialFactor (const Trk::TrackParameters &par, Trk::PropDirection dir) const override final |
getting the MaterialProperties back - for pre-update More... | |
virtual double | postUpdateMaterialFactor (const Trk::TrackParameters &par, Trk::PropDirection dir) const override final |
getting the MaterialProperties back - for post-update More... | |
virtual void | moveLayer (Amg::Transform3D &shift) override final |
move the Layer More... | |
virtual void | resizeLayer (const VolumeBounds &, double) override final |
Resize the layer to the tracking volume - not (yet) supported for ConeLayer. More... | |
virtual void | resizeAndRepositionLayer (const VolumeBounds &, const Amg::Vector3D &, double) override final |
Resize the layer to the tracking volume - not supported since this an entry layer method. More... | |
virtual bool | operator== (const Surface &sf) const override |
Equality operator. More... | |
bool | operator== (const ConeSurface &cf) const |
virtual ConeSurface * | clone () const override |
Implicit Constructor. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<int DIM, class T > | |
std::unique_ptr< ParametersT< DIM, T, ConeSurface > > | 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. More... | |
template<int DIM, class T > | |
std::unique_ptr< ParametersT< DIM, T, ConeSurface > > | 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. More... | |
constexpr virtual SurfaceType | type () const override final |
Return the surface type. More... | |
virtual Amg::RotationMatrix3D | measurementFrame (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const override final |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface. More... | |
virtual const Amg::Vector3D & | globalReferencePoint () const override final |
Returns a global reference point: For the Cylinder this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( \phi \) denotes the averagePhi() of the cylinderBounds. More... | |
virtual Amg::Vector3D | normal (const Amg::Vector2D &locpo) const override final |
Return method for surface normal information at a given local point, overwrites the normal() from base class. More... | |
virtual const Amg::Vector3D & | normal () const |
Returns the normal vector of the Surface (i.e. More... | |
virtual const Amg::Vector3D & | rotSymmetryAxis () const |
Return method for the rotational symmetry axis - the z-Axis of the HepTransform. More... | |
virtual const ConeBounds & | bounds () const override final |
This method returns the ConeBounds by reference (NoBounds is not possible for cone) More... | |
virtual bool | insideBounds (const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const override |
This method calls the inside method of ConeBounds. More... | |
virtual bool | insideBoundsCheck (const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const override final |
virtual Amg::Vector2D | localParametersToPosition (const LocalParameters &locpars) const override final |
Specialized for ConeSurface : LocalParameters to Vector2D. More... | |
virtual void | localToGlobal (const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final |
Specialized for ConeSurface : LocalToGlobal method without dynamic memory allocation. More... | |
Amg::Vector3D | localToGlobal (const Amg::Vector2D &locpos) const |
This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal. More... | |
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. More... | |
Amg::Vector3D | localToGlobal (const LocalParameters &locpars) const |
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surface bounds. More... | |
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. More... | |
virtual bool | globalToLocal (const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final |
Specialized for ConeSurface : GlobalToLocal method without dynamic memory allocation - boolean checks if on surface. More... | |
std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, double tol=0.) const |
This method returns the LocalPosition from a provided GlobalPosition. More... | |
std::optional< Amg::Vector2D > | globalToLocal (const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const |
This method returns the LocalPosition from a provided GlobalPosition. More... | |
virtual Intersection | straightLineIntersection (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir=false, BoundaryCheck bchk=false) const override final |
fast straight line intersection schema - provides closest intersection and (signed) path length More... | |
template<class 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 More... | |
virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final |
fast straight line distance to Surface More... | |
virtual DistanceSolution | straightLineDistanceEstimate (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool bound) const override final |
fast straight line distance to Surface - with bounds options More... | |
virtual double | pathCorrection (const Amg::Vector3D &, const Amg::Vector3D &) const override |
the pathCorrection for derived classes with thickness More... | |
virtual std::string | name () const override |
Return properly formatted class name for screen output. More... | |
bool | operator!= (const Surface &sf) const |
Non-equality operator. More... | |
std::unique_ptr< Surface > | uniqueClone () const |
NVI method returning unique_ptr clone. More... | |
const Amg::Transform3D * | cachedTransform () const |
Return the cached transformation directly. More... | |
const Amg::Transform3D & | transform () const |
Returns HepGeom::Transform3D by reference. More... | |
const Amg::Vector3D & | center () const |
Returns the center position of the Surface. More... | |
const TrkDetElementBase * | associatedDetectorElement () const |
return associated Detector Element More... | |
Identifier | associatedDetectorElementIdentifier () const |
return Identifier of the associated Detector Element More... | |
const Trk::Layer * | associatedLayer () const |
return the associated Layer More... | |
const Trk::Layer * | materialLayer () const |
return the material Layer More... | |
Trk::Layer * | materialLayer () |
virtual const Trk::Surface * | baseSurface () const |
return the base surface (simplified for persistification) More... | |
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). More... | |
template<class T > | |
bool | onSurface (const T ¶meters, const BoundaryCheck &bchk=BoundaryCheck(true)) const |
The templated Parameters OnSurface method - checks on surface pointer first. More... | |
virtual bool | isOnSurface (const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const |
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. More... | |
bool | isFree () const |
Returns 'true' if this surface is 'free', i.e. More... | |
bool | isActive () const |
Return 'true' if this surface is owned by the detector element. More... | |
void | setTransform (const Amg::Transform3D &trans) |
Set the transform updates center and normal. More... | |
void | setOwner (SurfaceOwner x) |
set Ownership More... | |
SurfaceOwner | owner () const |
return ownership More... | |
void | setMaterialLayer (std::shared_ptr< Layer > mlay) |
set material layer More... | |
virtual MsgStream & | dump (MsgStream &sl) const |
Output Method for MsgStream, to be overloaded by child classes. More... | |
virtual std::ostream & | dump (std::ostream &sl) const |
Output Method for std::ostream, to be overloaded by child classes. More... | |
void | associateLayer (const Layer &lay) |
method to associate the associated Trk::Layer which is alreay owned 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... | |
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... | |
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... | |
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) |
Static Public Member Functions | |
static std::size_t | numberOfInstantiations () |
Static Public Attributes | |
static constexpr SurfaceType | staticType = SurfaceType::Cone |
The surface type static constexpr. More... | |
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. More... | |
Amg::Vector3D | inverseTransformMultHelper (const Amg::Vector3D &glopos) const |
Static Protected Attributes | |
static constexpr double | s_onSurfaceTolerance = 10e-5 |
Tolerance for being on Surface. More... | |
Class to describe a cylindrical detector layer for tracking, it inhertis from both, Layer base class and ConeSurface class
Definition at line 39 of file ConeLayer.h.
|
inherited |
Unique ptr types.
Definition at line 124 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inherited |
Definition at line 126 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
inline |
Trk::ConeLayer::ConeLayer | ( | const Amg::Transform3D & | transform, |
Trk::ConeBounds * | cbounds, | ||
const LayerMaterialProperties & | laymatprop, | ||
double | thickness = 0. , |
||
std::unique_ptr< OverlapDescriptor > | od = nullptr , |
||
int | laytyp = int(Trk::active) |
||
) |
Constructor with ConeBounds components and MaterialProperties.
Definition at line 19 of file ConeLayer.cxx.
Trk::ConeLayer::ConeLayer | ( | Trk::ConeSurface * | cyl, |
const LayerMaterialProperties & | laymatprop, | ||
double | thickness = 0. , |
||
std::unique_ptr< OverlapDescriptor > | od = nullptr , |
||
int | laytyp = int(Trk::active) |
||
) |
Constructor with ConeSurface and MaterialProperties.
Definition at line 29 of file ConeLayer.cxx.
Trk::ConeLayer::ConeLayer | ( | const Amg::Transform3D & | transform, |
Trk::ConeBounds * | cbounds, | ||
std::unique_ptr< SurfaceArray > | surfaceArray, | ||
double | thickness = 0. , |
||
std::unique_ptr< OverlapDescriptor > | od = nullptr , |
||
int | laytyp = int(Trk::active) |
||
) |
Constructor with ConeSurface components and pointer to SurfaceArray (passing ownership)
Definition at line 38 of file ConeLayer.cxx.
Trk::ConeLayer::ConeLayer | ( | const Amg::Transform3D & | transform, |
Trk::ConeBounds * | cbounds, | ||
std::unique_ptr< SurfaceArray > | surfaceArray, | ||
const LayerMaterialProperties & | laymatprop, | ||
double | thickness = 0. , |
||
std::unique_ptr< OverlapDescriptor > | od = nullptr , |
||
int | laytyp = int(Trk::active) |
||
) |
Constructor with ConeSurface components, MaterialProperties and pointer SurfaceArray (passing ownership)
Definition at line 48 of file ConeLayer.cxx.
Trk::ConeLayer::ConeLayer | ( | const ConeLayer & | cla, |
const Amg::Transform3D & | tr | ||
) |
Copy constructor with shift.
Definition at line 61 of file ConeLayer.cxx.
|
inlineoverridevirtual |
|
inherited |
|
inherited |
return associated Detector Element
|
inherited |
return Identifier of the associated Detector Element
|
inherited |
return the associated Layer
method to associate the associated Trk::Layer which is alreay owned
|
virtualinherited |
return the base surface (simplified for persistification)
|
inherited |
access the BinUtility
|
finaloverridevirtualinherited |
This method returns the ConeBounds by reference (NoBounds is not possible for cone)
Implements Trk::Surface.
|
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 |
Implicit Constructor.
Implements Trk::Surface.
|
inherited |
|
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 129 of file ConeSurface.cxx.
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
Implements Trk::Surface.
Definition at line 119 of file ConeSurface.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 109 of file ConeSurface.cxx.
|
finaloverridevirtualinherited |
Use the Surface as a ParametersBase constructor, from local parameters - charged.
Implements Trk::Surface.
Definition at line 100 of file ConeSurface.cxx.
|
virtualinherited |
Output Method for MsgStream, to be overloaded by child classes.
Reimplemented in Trk::PerigeeSurface, and Trk::DetElementSurface.
Definition at line 157 of file Surface.cxx.
|
virtualinherited |
Output Method for std::ostream, to be overloaded by child classes.
Reimplemented in Trk::PerigeeSurface, and Trk::DetElementSurface.
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 |
|
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 Cylinder this is \( (R*cos(\phi), R*sin(\phi),0)*transform() \) Where \( \phi \) denotes the averagePhi() of the cylinderBounds.
Reimplemented from Trk::Surface.
Definition at line 138 of file ConeSurface.cxx.
|
finaloverridevirtualinherited |
Specialized for ConeSurface : GlobalToLocal method without dynamic memory allocation - boolean checks if on surface.
Implements Trk::Surface.
Definition at line 204 of file ConeSurface.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
|
inlinevirtualinherited |
Has sub-structure method:
|
overridevirtualinherited |
This method calls the inside method of ConeBounds.
Implements Trk::Surface.
|
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::NavigationLayer, and Trk::MaterialLayer.
Definition at line 149 of file Layer.cxx.
|
virtualinherited |
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 in Trk::StraightLineSurface, Trk::PerigeeSurface, Trk::PlaneSurface, Trk::SlidingDiscSurface, Trk::SlidingCylinderSurface, Trk::CylinderSurface, Trk::DiscSurface, and Trk::DetElementSurface.
Definition at line 123 of file Surface.cxx.
|
inherited |
get the layerIndex
|
inherited |
getting the LayerMaterialProperties including full/pre/post update
|
inherited |
get the Layer coding
|
finaloverridevirtualinherited |
Specialized for ConeSurface : LocalParameters to Vector2D.
Reimplemented from Trk::Surface.
|
finaloverridevirtualinherited |
Specialized for ConeSurface : LocalToGlobal method without dynamic memory allocation.
Implements Trk::Surface.
Definition at line 193 of file ConeSurface.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
|
finaloverridevirtualinherited |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface.
<
Reimplemented from Trk::Surface.
Definition at line 173 of file ConeSurface.cxx.
|
finaloverridevirtual |
|
overridevirtualinherited |
Return properly formatted class name for screen output.
Implements Trk::Surface.
|
inherited |
|
inherited |
|
virtualinherited |
Returns the normal vector of the Surface (i.e.
in generall z-axis of rotation)
Reimplemented in Trk::PerigeeSurface.
|
finaloverridevirtualinherited |
Return method for surface normal information at a given local point, overwrites the normal() from base class.
Reimplemented from Trk::Surface.
|
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::ConeLayer & Trk::ConeLayer::operator= | ( | const ConeLayer & | clay | ) |
|
inherited |
|
inherited |
gettint hte overlap descriptor
|
inherited |
return ownership
|
overridevirtualinherited |
the pathCorrection for derived classes with thickness
Reimplemented from Trk::Surface.
Definition at line 364 of file ConeSurface.cxx.
|
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 106 of file ConeLayer.cxx.
|
finaloverridevirtual |
getting the MaterialProperties back - for pre-update
Reimplemented from Trk::Layer.
Definition at line 92 of file ConeLayer.cxx.
|
inherited |
|
inherited |
register Volume associated to the layer
get the Volume associated to the layer
|
inlinefinaloverridevirtual |
Resize the layer to the tracking volume - not supported since this an entry layer method.
Implements Trk::Layer.
Definition at line 116 of file ConeLayer.h.
|
inlinefinaloverridevirtual |
Resize the layer to the tracking volume - not (yet) supported for ConeLayer.
Implements Trk::Layer.
Definition at line 112 of file ConeLayer.h.
|
virtualinherited |
Return method for the rotational symmetry axis - the z-Axis of the HepTransform.
Definition at line 162 of file ConeSurface.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.
|
finaloverridevirtualinherited |
fast straight line distance to Surface
distance to surface
Implements Trk::Surface.
Definition at line 284 of file ConeSurface.cxx.
|
finaloverridevirtualinherited |
fast straight line distance to Surface - with bounds options
Implements Trk::Surface.
Definition at line 290 of file ConeSurface.cxx.
|
finaloverridevirtualinherited |
fast straight line intersection schema - provides closest intersection and (signed) path length
mathematical motivation:
The calculation will be done in the 3-dim frame of the cone, i.e. the symmetry axis of the cone is the z-axis, x- and y-axis are perpenticular to the the z-axis. In this frame the cone is centered around the origin. Therefore the two points describing the line have to be first recalculated into the new frame. Suppose, this is done, the points of intersection can be obtained as follows:
The cone is described by the implicit equation \(x^2 + y^2 = z^2 \tan \alpha\) where \(\alpha\) is opening half-angle of the cone the and the line by the parameter equation (with \(t\) the parameter and \(x_1\) and \(x_2\) are points on the line) \((x,y,z) = \vec x_1 + (\vec x_2 - \vec x_2) t \). The intersection is the given to the value of \(t\) where the \((x,y,z)\) coordinates of the line satisfy the implicit equation of the cone. Inserting the expression for the points on the line into the equation of the cone and rearranging to the form of a gives (letting \( \vec x_d = \frac{\vec x_2 - \vec x_1}{\abs{\vec x_2 - \vec x_1}} \)): \(t^2 (x_d^2 + y_d^2 - z_d^2 \tan^2 \alpha) + 2 t (x_1 x_d + y_1 y_d - z_1 z_d \tan^2 \alpha) + (x_1^2 + y_1^2 - z_1^2 \tan^2 \alpha) = 0 \) Solving the above for \(t\) and putting the values into the equation of the line gives the points of intersection. \(t\) is also the length of the path, since we normalized \(x_d\) to be unit length.
Implements Trk::Surface.
Definition at line 217 of file ConeSurface.cxx.
|
inlineinherited |
fst straight line intersection schema - templated for charged and neutral parameters
Definition at line 351 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 131 of file Layer.cxx.
|
inherited |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
|
inherited |
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
|
virtualinherited |
Surface seen on approach - if not defined differently, it is the surfaceRepresentation()
Reimplemented in Trk::DiscLayer, and Trk::CylinderLayer.
|
finaloverridevirtual |
Transforms the layer into a Surface representation for extrapolation.
Implements Trk::Layer.
Definition at line 79 of file ConeLayer.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.
|
protectedinherited |
Not owning Pointer to the TrkDetElementBase.
Definition at line 439 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
Identifier for the TrkDetElementBase.
Definition at line 442 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
The associated layer Trk::Layer.
Definition at line 448 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
Enclosing TrackingVolume.
|
protectedinherited |
The global reference point (== a point on thesurface)
Definition at line 276 of file ConeSurface.h.
|
protectedinherited |
|
protectedinherited |
Enclosing DetachedTrackingVolume.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Possibility to attach a material descrption.
Definition at line 453 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
BinUtility for next/previous decision.
|
protectedinherited |
|
protectedinherited |
enum for surface owner : 0 free surface
Definition at line 455 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h.
|
protectedinherited |
|
protectedinherited |
The rotational symmetry axis.
Definition at line 278 of file ConeSurface.h.
|
protectedinherited |
Definition at line 280 of file ConeSurface.h.
|
protectedinherited |
|
protectedinherited |
Definition at line 436 of file Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.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 |
The surface type static constexpr.
Definition at line 55 of file ConeSurface.h.