Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/PlaneSurface.hpp>
Protected Member Functions | |
PlaneSurface (const PlaneSurface &other) | |
PlaneSurface (const GeometryContext &gctx, const PlaneSurface &other, const Transform3 &transform) | |
PlaneSurface (const Vector3 ¢er, const Vector3 &normal) | |
PlaneSurface (std::shared_ptr< const PlanarBounds > pbounds, const DetectorElementBase &detelement) | |
PlaneSurface (const Transform3 &transform, std::shared_ptr< const PlanarBounds > pbounds=nullptr) | |
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 PlanarBounds > | m_bounds |
the bounds of this surface | |
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 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 planaer in the TrackingGeometry.
The PlaneSurface extends the Surface class with the possibility to convert local to global positions (vice versa).
Definition at line 42 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 42 of file PlaneSurface.hpp
|
protected |
Copy Constructor
other | is the source surface for the copy |
Definition at line 28 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 28 of file PlaneSurface.cpp
|
protected |
Copy constructor - with shift
gctx | The current geometry context object, e.g. alignment |
other | is the source cone surface |
transform | is the additional transform applied after copying |
Definition at line 31 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 31 of file PlaneSurface.cpp
Dedicated Constructor with normal vector This is for curvilinear surfaces which are by definition boundless
center | is the center position of the surface |
normal | is thenormal vector of the plane surface |
the right-handed coordinate system is defined as T = normal U = Z x T if T not parallel to Z otherwise U = X x T V = T x U
Definition at line 38 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 38 of file PlaneSurface.cpp
References Acts::Surface::m_transform, Acts::s_curvilinearProjTolerance, and Acts::UnitConstants::T.
|
protected |
Constructor from DetectorElementBase : Element proxy
pbounds | are the provided planar bounds |
detelement | is the linked detector element to this surface |
surfaces representing a detector element must have bounds
Definition at line 59 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 59 of file PlaneSurface.cpp
References m_bounds, and throw_assert.
|
protected |
Constructor for Planes with (optional) shared bounds object
transform | transform in 3D that positions this surface |
pbounds | bounds object to describe the actual surface area |
Definition at line 66 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 66 of file PlaneSurface.cpp
|
overridedefault |
|
delete |
|
finalvirtual |
The binning position is the position calculated for a certain binning type
gctx | The current geometry context object, e.g. alignment |
bValue | is the binning type to be used |
Implements Acts::GeometryObject.
Definition at line 164 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 164 of file PlaneSurface.cpp
|
overridevirtual |
Return method for bounds object of this surfrace.
Implements Acts::Surface.
Definition at line 103 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 103 of file PlaneSurface.cpp
References Acts::s_noBounds.
|
overridevirtual |
Global to local transformation
gctx | The current geometry context object, e.g. alignment |
position | global 3D position - considered to be on surface but not inside bounds (check is done) |
direction | global 3D momentum direction (optionally ignored) method symmetry) |
tolerance | optional tolerance within which a point is considered valid on surface |
Implements Acts::Surface.
Definition at line 89 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 89 of file PlaneSurface.cpp
References position, and Acts::Test::transform.
|
finalvirtual |
Straight line intersection.
gctx | The current geometry context object, e.g. alignment |
position | The start position of the intersection attempt |
direction | The direction of the intersection attempt, ( |
bcheck | The boundary check directive |
tolerance | the tolerance used for the intersection |
mathematical motivation:
the equation of the plane is given by:
where denotes the normal vector of the plane, one specific point on the plane and all possible points on the plane.
Given a line with:
,
the solution for can be written:
If the denominator is 0 then the line lies:
SurfaceMultiIntersection
object Implements Acts::Surface.
Definition at line 176 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 176 of file PlaneSurface.cpp
References Acts::PlanarHelper::intersect(), Acts::Intersection< 3 >::invalid(), utils::status, 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 203 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 203 of file PlaneSurface.cpp
|
overridevirtual |
Local to global transformation
gctx | The current geometry context object, e.g. alignment |
lposition | local 2D position in specialized surface frame |
direction | global 3D momentum direction (optionally ignored) |
Implements Acts::Surface.
Definition at line 82 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 82 of file PlaneSurface.cpp
References Acts::eBoundLoc0, Acts::eBoundLoc1, and Acts::Test::transform.
|
overridevirtual |
Return properly formatted class name for screen output.
Implements Acts::Surface.
Definition at line 99 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 99 of file PlaneSurface.cpp
|
finalvirtual |
Normal vector return
gctx | The current geometry context object, e.g. alignment |
lposition | is the local position is ignored |
return a Vector3 by value
Implements Acts::Surface.
Definition at line 157 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 157 of file PlaneSurface.cpp
References Acts::Test::transform.
Acts::PlaneSurface & Acts::PlaneSurface::operator= | ( | const PlaneSurface & | other | ) |
Assignment operator
other | The source PlaneSurface for assignment |
Definition at line 70 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 70 of file PlaneSurface.cpp
References m_bounds, and Acts::Surface::operator=().
|
finalvirtual |
Method that calculates the correction due to incident angle
gctx | The current geometry context object, e.g. alignment |
position | global 3D position - considered to be on surface but not inside bounds (check is done) |
direction | global 3D momentum direction (ignored for PlaneSurface) |
Implements Acts::Surface.
Definition at line 169 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 169 of file PlaneSurface.cpp
References Acts::Surface::normal().
|
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 110 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 110 of file PlaneSurface.cpp
References bounds, Acts::detail::FacesHelper::convexFaceMesh(), Acts::detail::FacesHelper::cylindricalFaceMesh(), Acts::SurfaceBounds::eEllipse, Acts::EllipseBounds::eHalfPhiSector, Acts::EllipseBounds::eInnerRx, Acts::EllipseBounds::eInnerRy, Acts::s_epsilon, Acts::Test::transform, and ActsExamples::HepMC3Event::vertices().
|
overridevirtual |
Return the surface type.
Implements Acts::Surface.
Definition at line 78 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 78 of file PlaneSurface.cpp
References Acts::Surface::Plane.
|
protected |
the bounds of this surface
Definition at line 222 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 222 of file PlaneSurface.hpp
Referenced by Acts::PlaneLayer::buildApproachDescriptor(), operator=(), and PlaneSurface().
|
private |
Definition at line 44 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 44 of file PlaneSurface.hpp