Class to describe a cylindrical detector layer for tracking, it inherits from both, Layer base class and CylinderSurface class.
More...
|
| | CylinderLayer ()=delete |
| | CylinderLayer (const CylinderLayer &cla)=delete |
| | ~CylinderLayer () override=default |
| CylinderLayer & | operator= (const CylinderLayer &)=delete |
| const CylinderSurface & | surfaceRepresentation () const override |
| | Transforms the layer into a Surface representation This is for positioning and extrapolation.
|
| CylinderSurface & | surfaceRepresentation () override |
| | Non-const version of surface representation access.
|
| AlignmentToPathMatrix | alignmentToPathDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final |
| | Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t.
|
| void | assignSurfaceBounds (std::shared_ptr< const CylinderBounds > newBounds) |
| | Overwrite the existing surface bounds with new ones.
|
| const CylinderBounds & | bounds () const final |
| | This method returns the CylinderBounds by reference.
|
| const std::shared_ptr< const CylinderBounds > & | boundsPtr () const |
| | This method returns the shared_ptr to the CylinderBounds.
|
| Result< Vector2 > | globalToLocal (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, double tolerance=s_onSurfaceTolerance) const final |
| | Convert a global position to a local one this is the most generic interface, which is implemented by all surfaces.
|
| Result< Vector2 > | globalToLocal (const GeometryContext &gctx, const Vector3 &position, double tolerance=s_onSurfaceTolerance) const final |
| | Global to local transformation.
|
| MultiIntersection3D | intersect (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::Infinite(), double tolerance=s_onSurfaceTolerance) const final |
| | Straight line intersection schema from position/direction.
|
| ActsMatrix< 2, 3 > | localCartesianToBoundLocalDerivative (const GeometryContext &gctx, const Vector3 &position) const final |
| | Calculate the derivative of bound track parameters local position w.r.t.
|
| Vector3 | localToGlobal (const GeometryContext &gctx, const Vector2 &lposition) const final |
| | Local to global transformation.
|
| Vector3 | localToGlobal (const GeometryContext &gctx, const Vector2 &lposition, const Vector3 &direction) const final |
| | Local to global transformation.
|
| std::pair< std::shared_ptr< CylinderSurface >, bool > | mergedWith (const CylinderSurface &other, AxisDirection direction, bool externalRotation, const Logger &logger=getDummyLogger()) const |
| | Merge two cylinder surfaces into a single one.
|
| std::string | name () const override |
| | Return method for properly formatted output string.
|
| Vector3 | normal (const GeometryContext &gctx, const Vector2 &lposition) const final |
| | Return method for surface normal information.
|
| Vector3 | normal (const GeometryContext &gctx, const Vector3 &pos, const Vector3 &direction) const final |
| | Calculate the normal vector of the surface This overload is fully generic, fulfills the Surface interface and accepts a global position and a direction.
|
| Vector3 | normal (const GeometryContext &gctx, const Vector3 &position) const final |
| | Return method for surface normal information.
|
| CylinderSurface & | operator= (const CylinderSurface &other) |
| | Assignment operator.
|
| double | pathCorrection (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final |
| | Path correction due to incident of the track.
|
| Polyhedron | polyhedronRepresentation (const GeometryContext &gctx, unsigned int quarterSegments=2u) const override |
| | Return a Polyhedron for a cylinder.
|
| RotationMatrix3 | referenceFrame (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const final |
| | Return the measurement frame - this is needed for alignment, in particular The measurement frame of a cylinder is the tangential plane at a given position.
|
| Vector3 | referencePosition (const GeometryContext &gctx, AxisDirection aDir) const final |
| | The binning position method - is overloaded for r-type binning.
|
| virtual Vector3 | rotSymmetryAxis (const GeometryContext &gctx) const |
| | Return method for the rotational symmetry axis.
|
| SurfaceType | type () const override |
| | Return the surface type.
|
| Result< Vector2 > | globalToLocal (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, double tolerance=s_onSurfaceTolerance) const final |
| | Convert a global position to a local one this is the most generic interface, which is implemented by all surfaces.
|
| bool | isOnSurface (const GeometryContext &gctx, const Vector3 &position, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None(), double tolerance=s_onSurfaceTolerance) const |
| | The geometric onSurface method.
|
| bool | isOnSurface (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None(), double tolerance=s_onSurfaceTolerance) const |
| | The geometric onSurface method.
|
| Vector3 | localToGlobal (const GeometryContext &gctx, const Vector2 &lposition, const Vector3 &direction) const final |
| | Local to global transformation.
|
| Vector3 | normal (const GeometryContext &gctx, const Vector3 &pos, const Vector3 &direction) const final |
| | Calculate the normal vector of the surface This overload is fully generic, fulfills the Surface interface and accepts a global position and a direction.
|
| | Surface (const GeometryContext &gctx, const Surface &other, const Transform3 &shift) noexcept |
| | Copy constructor with optional shift.
|
| | Surface (const Surface &other) noexcept |
| | Copy constructor.
|
| | Surface (const SurfacePlacementBase &placement) noexcept |
| | Constructor from SurfacePlacement: Element proxy.
|
| | Surface (const Transform3 &transform=Transform3::Identity()) |
| | Constructor with Transform3 as a shared object.
|
| | ~Surface () noexcept override |
| AlignmentToBoundMatrix | alignmentToBoundDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const FreeVector &pathDerivative) const |
| | The derivative of bound track parameters w.r.t.
|
| void | assignDetectorElement (const SurfacePlacementBase &detelement) |
| | Assign a detector element.
|
| void | assignIsSensitive (bool isSensitive) |
| | Assign whether the surface is sensitive.
|
| void | assignSurfaceMaterial (std::shared_ptr< const ISurfaceMaterial > material) |
| | Assign the surface material description.
|
| void | assignSurfacePlacement (const SurfacePlacementBase &placement) |
| | Assign a placement object which may dynamically align the surface in space.
|
| void | assignThickness (double thick) |
| | Assign the thickness of the surface in the orthogonal dimension.
|
| const DetectorElementBase * | associatedDetectorElement () const |
| | Return method for the associated Detector Element.
|
| const Layer * | associatedLayer () const |
| | Return method for the associated Layer in which the surface is embedded.
|
| void | associateLayer (const Layer &lay) |
| | Set Associated Layer Many surfaces can be associated to a Layer, but it might not be known yet during construction of the layer, this can be set afterwards.
|
| virtual BoundToFreeMatrix | boundToFreeJacobian (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
| | Calculate the jacobian from local to global which the surface knows best, hence the calculation is done here.
|
| virtual Vector3 | center (const GeometryContext &gctx) const |
| | Return method for the surface center.
|
| virtual Vector2 | closestPointOnBoundary (const Vector2 &lposition, const SquareMatrix2 &metric) const |
| | Calculates the closest point on the boundary of the surface to a given point in local coordinates.
|
| virtual double | distanceToBoundary (const Vector2 &lposition) const |
| | Calculates the distance to the boundary of the surface from a given point in local coordinates.
|
| virtual FreeToBoundMatrix | freeToBoundJacobian (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
| | Calculate the jacobian from global to local which the surface knows best, hence the calculation is done here.
|
| virtual FreeToPathMatrix | freeToPathDerivative (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
| | Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t.
|
| std::shared_ptr< Surface > | getSharedPtr () |
| | Retrieve a std::shared_ptr for this surface (non-const version).
|
| std::shared_ptr< const Surface > | getSharedPtr () const |
| | Retrieve a std::shared_ptr for this surface (const version).
|
| virtual bool | insideBounds (const Vector2 &lposition, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None()) const |
| | The insideBounds method for local positions.
|
| bool | isAlignable () const |
| | Returns whether the Surface is alignable.
|
| bool | isOnSurface (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None(), double tolerance=s_onSurfaceTolerance) const |
| | The geometric onSurface method.
|
| bool | isSensitive () const |
| | Returns whether the Surface is sensitive.
|
| const Transform3 & | localToGlobalTransform (const GeometryContext &gctx) const |
| | Return method for the surface Transform3 by reference In case a detector element is associated the surface transform is just forwarded to the detector element in order to keep the (mis-)alignment cache cetrally handled.
|
| Surface & | operator= (const Surface &other) |
| | Assignment operator.
|
| bool | operator== (const Surface &other) const |
| | Comparison (equality) operator The strategy for comparison is (a) first pointer comparison (b) then type comparison (c) then bounds comparison (d) then transform comparison.
|
| const ISurfaceMaterial * | surfaceMaterial () const |
| | Return method for the associated Material to this surface.
|
| const std::shared_ptr< const ISurfaceMaterial > & | surfaceMaterialSharedPtr () const |
| | Return method for the shared pointer to the associated Material.
|
| const SurfacePlacementBase * | surfacePlacement () const |
| | Return the associated surface placement if there is any.
|
| double | thickness () const |
| | Return the thickness of the surface in the normal direction.
|
| GeometryContextOstreamWrapper< Surface > | toStream (const GeometryContext &gctx) const |
| | Helper method for printing: the returned object captures the surface and the geometry context and will print the surface.
|
| std::string | toString (const GeometryContext &gctx) const |
| | Output into a std::string.
|
| const Transform3 & | transform (const GeometryContext &gctx) const |
| | Return method for the surface Transform3 by reference In case a detector element is associated the surface transform is just forwarded to the detector element in order to keep the (mis-)alignment cache cetrally handled.
|
| void | visualize (IVisualization3D &helper, const GeometryContext &gctx, const ViewConfig &viewConfig=s_viewSurface) const |
| | Visualize the surface for debugging and inspection.
|
| | GeometryObject ()=default |
| | Defaulted constructor.
|
| | GeometryObject (const GeometryIdentifier &geometryId) |
| | Constructor from a value.
|
| | GeometryObject (const GeometryObject &)=default |
| | Defaulted copy constructor.
|
| virtual | ~GeometryObject () noexcept=default |
| void | assignGeometryId (const GeometryIdentifier &geometryId) |
| | Set the value.
|
| GeometryIdentifier | geometryId () const |
| virtual double | referencePositionValue (const GeometryContext &gctx, AxisDirection aDir) const |
| | Implement the binningValue.
|
| | ~Layer () noexcept override |
| | Destructor.
|
| ApproachDescriptor * | approachDescriptor () |
| | Non-const version of the approach descriptor.
|
| const ApproachDescriptor * | approachDescriptor () const |
| | Return method for the approach descriptor, can be nullptr.
|
| boost::container::small_vector< NavigationTarget, 10 > | compatibleSurfaces (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Surface > &options) const |
| | Decompose Layer into (compatible) surfaces.
|
| virtual bool | isOnLayer (const GeometryContext &gctx, const Vector3 &position, const BoundaryTolerance &boundaryTolerance=BoundaryTolerance::None()) const |
| | geometrical isOnLayer() method
|
| double | layerThickness () const |
| | Return the Thickness of the Layer this is by definition along the normal vector of the surfaceRepresentation.
|
| LayerType | layerType () const |
| | return the LayerType
|
| const Layer * | nextLayer (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
| | Fast navigation to next layer.
|
| const Volume * | representingVolume () const |
| | Return the abstract volume that represents the layer.
|
| virtual bool | resolve (bool resolveSensitive, bool resolveMaterial, bool resolvePassive) const |
| | Accept layer according to the following collection directives.
|
| template<typename options_t> |
| bool | resolve (const options_t &options) const |
| | Accept layer according to the following collection directives.
|
| SurfaceArray * | surfaceArray () |
| | Non-const version.
|
| const SurfaceArray * | surfaceArray () const |
| | Return the entire SurfaceArray, returns a nullptr if no SurfaceArray.
|
| NavigationTarget | surfaceOnApproach (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction, const NavigationOptions< Layer > &options) const |
| | Surface seen on approach for layers without sub structure, this is the surfaceRepresentation for layers with sub structure, this is the approachSurface.
|
| const TrackingVolume * | trackingVolume () const |
| | Get the confining TrackingVolume.
|