Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/ConeSurface.hpp>
Protected Member Functions | |
ConeSurface (const Transform3 &transform, double alpha, bool symmetric=false) | |
ConeSurface (const Transform3 &transform, double alpha, double zmin, double zmax, double halfPhi=M_PI) | |
ConeSurface (const Transform3 &transform, std::shared_ptr< const ConeBounds > cbounds) | |
ConeSurface (const ConeSurface &other) | |
ConeSurface (const GeometryContext &gctx, const ConeSurface &other, const Transform3 &shift) | |
Protected Member Functions inherited from Acts::Surface | |
Surface (const Transform3 &transform=Transform3::Identity()) | |
Surface (const Surface &other) | |
Surface (const DetectorElementBase &detelement) | |
Surface (const GeometryContext &gctx, const Surface &other, const Transform3 &shift) | |
Protected Attributes | |
std::shared_ptr< const ConeBounds > | m_bounds |
bounds (shared) | |
Protected Attributes inherited from Acts::Surface | |
Transform3 | m_transform = Transform3::Identity() |
const DetectorElementBase * | m_associatedDetElement {nullptr} |
Pointer to the a DetectorElementBase. | |
const Layer * | m_associatedLayer {nullptr} |
const TrackingVolume * | m_associatedTrackingVolume {nullptr} |
std::shared_ptr< const ISurfaceMaterial > | m_surfaceMaterial |
Possibility to attach a material description. | |
Protected Attributes inherited from Acts::GeometryObject | |
GeometryIdentifier | m_geometryId |
Private Member Functions | |
detail::RealQuadraticEquation | intersectionSolver (const GeometryContext &gctx, const Vector3 &position, const Vector3 &direction) const |
Private Attributes | |
friend | Surface |
Additional Inherited Members | |
Public Types inherited from Acts::Surface | |
enum | SurfaceType { Cone = 0, Cylinder = 1, Disc = 2, Perigee = 3, Plane = 4, Straw = 5, Curvilinear = 6, Other = 7 } |
Static Public Member Functions inherited from Acts::Surface | |
template<class T , typename... Args> | |
static std::shared_ptr< T > | makeShared (Args &&...args) |
Static Public Attributes inherited from Acts::Surface | |
static std::array< std::string, SurfaceType::Other > | s_surfaceTypeNames |
Helper strings for screen output. | |
Class for a conical surface in the Tracking geometry. It inherits from Surface.
The ConeSurface is special since no corresponding Track parameters exist since they're numerical instable at the tip of the cone. Propagations to a cone surface will be returned in curvilinear coordinates.
Definition at line 42 of file ConeSurface.hpp.
View newest version in sPHENIX GitHub at line 42 of file ConeSurface.hpp
|
protected |
Constructor form HepTransform and an opening angle
transform | is the transform to place to cone in a 3D frame |
alpha | is the opening angle of the cone |
symmetric | indicates if the cones are built to +/1 z |
Definition at line 39 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 39 of file ConeSurface.cpp
|
protected |
Constructor form HepTransform and an opening angle
transform | is the transform that places the cone in the global frame |
alpha | is the opening angle of the cone |
zmin | is the z range over which the cone spans |
zmax | is the z range over which the cone spans |
halfPhi | is the opening angle for cone ssectors |
Definition at line 45 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 45 of file ConeSurface.cpp
|
protected |
Constructor from HepTransform and ConeBounds
transform | is the transform that places the cone in the global frame |
cbounds | is the boundary class, the bounds must exit |
Definition at line 52 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 52 of file ConeSurface.cpp
References m_bounds, and throw_assert.
|
protected |
Copy constructor
other | is the source cone surface |
Definition at line 31 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 31 of file ConeSurface.cpp
|
protected |
Copy constructor - with shift
gctx | The current geometry context object, e.g. alignment |
other | is the source cone surface |
shift | is the additional transform applied after copying |
Definition at line 34 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 34 of file ConeSurface.cpp
|
overridedefault |
|
delete |
|
finalvirtual |
Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t. alignment parameters of the surface (i.e. local frame origin in global 3D Cartesian coordinates and its rotation represented with extrinsic Euler angles)
gctx | The current geometry context object, e.g. alignment |
parameters | is the free parameters |
Reimplemented from Acts::Surface.
Definition at line 330 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 330 of file ConeSurface.cpp
References bounds, dy, dz, Acts::eAlignmentCenter0, Acts::eAlignmentRotation0, Acts::eFreeDir0, Acts::eFreePos0, norm, position, Acts::detail::rotationToLocalAxesDerivative(), and Acts::Test::transform.
|
finalvirtual |
The binning position method - is overloaded for r-type binning
gctx | The current geometry context object, e.g. alignment |
bValue | defines the type of binning applied in the global frame |
Implements Acts::GeometryObject.
Definition at line 58 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 58 of file ConeSurface.cpp
References Acts::binR, Acts::binRPhi, and bounds.
|
finalvirtual |
This method returns the ConeBounds by reference.
Implements Acts::Surface.
Definition at line 173 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 173 of file ConeSurface.cpp
|
finalvirtual |
Global to local transformation
gctx | The current geometry context object, e.g. alignment |
position | is the global position to be transformed |
direction | is the global momentum direction (ignored in this operation) |
tolerance | optional tolerance within which a point is considered valid on surface |
Implements Acts::Surface.
Definition at line 120 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 120 of file ConeSurface.cpp
References bounds, Acts::VectorHelpers::perp(), position, physmon_track_finding_ttbar::r, and Acts::Test::transform.
|
finalvirtual |
Straight line intersection schema from position/direction
gctx | The current geometry context object, e.g. alignment |
position | The position to start from |
direction | The direction at start |
bcheck | the Boundary Check |
tolerance | the tolerance used for the intersection |
If possible returns both solutions for the cylinder
SurfaceMultiIntersection
object (contains intersection & surface) Implements Acts::Surface.
Definition at line 288 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 288 of file ConeSurface.cpp
References Acts::Intersection< 3 >::invalid(), Acts::Intersection< DIM >::pathLength(), and Acts::Test::transform.
|
private |
Implementation of the intersection solver
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 perpendicular to 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 where is opening half-angle of the cone the and the line by the parameter equation (with the parameter and and are points on the line) . The intersection is the given to the value of where the 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 ): Solving the above for and putting the values into the equation of the line gives the points of intersection. is also the length of the path, since we normalized to be unit length.
Definition at line 265 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 265 of file ConeSurface.cpp
References A, bounds, C, Acts::UnitConstants::e, position, and Acts::Test::transform.
|
finalvirtual |
Calculate the derivative of bound track parameters local position w.r.t. position in local 3D Cartesian coordinates
gctx | The current geometry context object, e.g. alignment |
position | The position of the parameters in global |
Implements Acts::Surface.
Definition at line 383 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 383 of file ConeSurface.cpp
References bounds, Acts::VectorHelpers::perp(), ActsTests::PropagationDatasets::phi, Acts::VectorHelpers::phi(), position, Acts::IntegrationTest::R, sTransform, and Acts::Test::transform.
|
finalvirtual |
Local to global transformation
gctx | The current geometry context object, e.g. alignment |
lposition | is the local position to be transformed |
direction | is the global momentum direction (ignored in this operation) |
Implements Acts::Surface.
Definition at line 110 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 110 of file ConeSurface.cpp
References bounds, Acts::eBoundLoc0, Acts::eBoundLoc1, ActsTests::PropagationDatasets::phi, physmon_track_finding_ttbar::r, and Acts::Test::transform.
|
overridevirtual |
Return properly formatted class name for screen output.
Implements Acts::Surface.
Definition at line 148 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 148 of file ConeSurface.cpp
|
finalvirtual |
Return method for surface normal information
gctx | The current geometry context object, e.g. alignment |
lposition | is the local position at normal vector request |
Implements Acts::Surface.
Definition at line 152 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 152 of file ConeSurface.cpp
References bounds, Acts::ConeBounds::eAlpha, Acts::eBoundLoc0, Acts::eBoundLoc1, ActsTests::PropagationDatasets::phi, and Acts::Test::transform.
|
finalvirtual |
Return method for surface normal information
gctx | The current geometry context object, e.g. alignment |
position | is the global position as normal vector base |
Reimplemented from Acts::Surface.
Definition at line 164 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 164 of file ConeSurface.cpp
References position, and Acts::Test::transform.
Acts::ConeSurface & Acts::ConeSurface::operator= | ( | const ConeSurface & | other | ) |
Assignment operator
other | is the source surface for the assignment |
Definition at line 76 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 76 of file ConeSurface.cpp
References m_bounds, and Acts::Surface::operator=().
|
finalvirtual |
The pathCorrection for derived classes with thickness
gctx | The current geometry context object, e.g. alignment |
position | is the global potion at the correction point |
direction | is the momentum direction at the correction point |
Implements Acts::Surface.
Definition at line 132 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 132 of file ConeSurface.cpp
References bounds, Acts::ConeBounds::eAlpha, ActsTests::PropagationDatasets::phi, Acts::VectorHelpers::phi(), position, and Acts::Test::transform.
|
overridevirtual |
Return a Polyhedron for the surfaces
gctx | The current geometry context object, e.g. alignment |
lseg | Number of segments along curved lines, it represents the full 2*M_PI coverange, if lseg is set to 1 only the extrema are given |
Implements Acts::Surface.
Definition at line 178 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 178 of file ConeSurface.cpp
References bounds, Acts::detail::VerticesHelper::createSegment(), Acts::detail::FacesHelper::cylindricalFaceMesh(), Acts::ConeBounds::eAveragePhi, Acts::ConeBounds::eHalfPhiSector, Acts::ConeBounds::eMaxZ, Acts::ConeBounds::eMinZ, maxZ, Acts::detail::VerticesHelper::phiSegments(), physmon_track_finding_ttbar::r, Acts::s_onSurfaceTolerance, swap(), Acts::Test::transform, ActsExamples::HepMC3Event::vertices(), and physmon_track_finding_ttbar::z.
|
finalvirtual |
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perigee Surface
gctx | The current geometry context object, e.g. alignment |
position | is the global position where the measurement frame is constructed |
direction | is the momentum direction used for the measurement frame construction |
<
Reimplemented from Acts::Surface.
Definition at line 89 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 89 of file ConeSurface.cpp
|
virtual |
gctx | The current geometry context object, e.g. alignment |
Definition at line 84 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 84 of file ConeSurface.cpp
References Acts::Test::transform.
|
overridevirtual |
Return the surface type.
Implements Acts::Surface.
Definition at line 72 of file ConeSurface.cpp.
View newest version in sPHENIX GitHub at line 72 of file ConeSurface.cpp
References Acts::Surface::Cone.
|
protected |
bounds (shared)
Definition at line 239 of file ConeSurface.hpp.
View newest version in sPHENIX GitHub at line 239 of file ConeSurface.hpp
Referenced by ConeSurface(), and operator=().
|
private |
Definition at line 44 of file ConeSurface.hpp.
View newest version in sPHENIX GitHub at line 44 of file ConeSurface.hpp