EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/PlaneSurface.hpp>
Public Member Functions | |
~PlaneSurface () override=default | |
PlaneSurface ()=delete | |
PlaneSurface & | operator= (const PlaneSurface &other) |
Vector3D | normal (const GeometryContext &gctx, const Vector2D &lposition) const final |
Vector3D | binningPosition (const GeometryContext &gctx, BinningValue bValue) const final |
SurfaceType | type () const override |
Return the surface type. | |
const SurfaceBounds & | bounds () const override |
Return method for bounds object of this surfrace. | |
Vector3D | localToGlobal (const GeometryContext &gctx, const Vector2D &lposition, const Vector3D &momentum) const override |
Result< Vector2D > | globalToLocal (const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum) const override |
double | pathCorrection (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction) const final |
SurfaceIntersection | intersect (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck=false) const final |
Straight line intersection. | |
Polyhedron | polyhedronRepresentation (const GeometryContext &gctx, size_t lseg) const override |
std::string | name () const override |
Return properly formatted class name for screen output. | |
LocalCartesianToBoundLocalMatrix | localCartesianToBoundLocalDerivative (const GeometryContext &gctx, const Vector3D &position) const final |
Public Member Functions inherited from Acts::Surface | |
virtual | ~Surface () |
std::shared_ptr< Surface > | getSharedPtr () |
std::shared_ptr< const Surface > | getSharedPtr () const |
Surface & | operator= (const Surface &other) |
virtual bool | operator== (const Surface &other) const |
virtual bool | operator!= (const Surface &sf) const |
virtual const Transform3D & | transform (const GeometryContext &gctx) const |
virtual Vector3D | center (const GeometryContext &gctx) const |
virtual Vector3D | normal (const GeometryContext &gctx, const Vector3D &position) const |
virtual Vector3D | normal (const GeometryContext &gctx) const |
const DetectorElementBase * | associatedDetectorElement () const |
const Layer * | associatedLayer () const |
void | associateLayer (const Layer &lay) |
const ISurfaceMaterial * | surfaceMaterial () const |
const std::shared_ptr< const ISurfaceMaterial > & | surfaceMaterialSharedPtr () const |
void | assignSurfaceMaterial (std::shared_ptr< const ISurfaceMaterial > material) |
bool | isOnSurface (const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum, const BoundaryCheck &bcheck=true) const |
virtual bool | insideBounds (const Vector2D &lposition, const BoundaryCheck &bcheck=true) const |
virtual Acts::RotationMatrix3D | referenceFrame (const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum) const |
virtual void | initJacobianToGlobal (const GeometryContext &gctx, BoundToFreeMatrix &jacobian, const Vector3D &position, const Vector3D &direction, const BoundVector &pars) const |
virtual RotationMatrix3D | initJacobianToLocal (const GeometryContext &gctx, FreeToBoundMatrix &jacobian, const Vector3D &position, const Vector3D &direction) const |
virtual BoundRowVector | derivativeFactors (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const RotationMatrix3D &rft, const BoundToFreeMatrix &jacobian) const |
virtual std::ostream & | toStream (const GeometryContext &gctx, std::ostream &sl) const |
AlignmentToBoundMatrix | alignmentToBoundDerivative (const GeometryContext &gctx, const FreeVector &derivatives, const Vector3D &position, const Vector3D &direction) const |
virtual AlignmentRowVector | alignmentToPathDerivative (const GeometryContext &gctx, const RotationMatrix3D &rotToLocalZAxis, const Vector3D &position, const Vector3D &direction) const |
Public Member Functions inherited from Acts::GeometryObject | |
GeometryObject ()=default | |
Defaulted construrctor. | |
GeometryObject (const GeometryObject &)=default | |
Defaulted copy constructor. | |
GeometryObject (const GeometryIdentifier &geometryId) | |
GeometryObject & | operator= (const GeometryObject &geometryId) |
const GeometryIdentifier & | geometryId () const |
virtual double | binningPositionValue (const GeometryContext &gctx, BinningValue bValue) const |
void | assignGeometryId (const GeometryIdentifier &geometryId) |
Protected Member Functions | |
PlaneSurface (const PlaneSurface &other) | |
PlaneSurface (const GeometryContext &gctx, const PlaneSurface &other, const Transform3D &transf) | |
PlaneSurface (const Vector3D ¢er, const Vector3D &normal) | |
PlaneSurface (const std::shared_ptr< const PlanarBounds > &pbounds, const DetectorElementBase &detelement) | |
PlaneSurface (const Transform3D &htrans, std::shared_ptr< const PlanarBounds > pbounds=nullptr) | |
Protected Member Functions inherited from Acts::Surface | |
Surface (const Transform3D &transform=Transform3D::Identity()) | |
Surface (const Surface &other) | |
Surface (const DetectorElementBase &detelement) | |
Surface (const GeometryContext &gctx, const Surface &other, const Transform3D &shift) | |
Protected Attributes | |
std::shared_ptr< const PlanarBounds > | m_bounds |
the bounds of this surface | |
Protected Attributes inherited from Acts::Surface | |
Transform3D | m_transform = Transform3D::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 descrption. | |
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) |
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 35 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 35 of file PlaneSurface.hpp
|
protected |
Copy Constructor
psf | is the source surface for the copy |
Definition at line 23 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 23 of file PlaneSurface.cpp
|
protected |
Copy constructor - with shift
gctx | The current geometry context object, e.g. alignment |
other | is the source cone surface |
transf | is the additional transfrom applied after copying |
Definition at line 26 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 26 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 31 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 31 of file PlaneSurface.cpp
References kdfinder::abs(), Acts::Surface::m_transform, Acts::s_curvilinearProjTolerance, and T.
|
protected |
Constructor from DetectorElementBase : Element proxy
pbounds | are the provided planar bounds (shared) |
detelement | is the linked detector element to this surface |
surfaces representing a detector element must have bounds
Definition at line 52 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 52 of file PlaneSurface.cpp
References throw_assert.
|
protected |
Constructor for Planes with (optional) shared bounds object
htrans | transform in 3D that positions this surface |
pbounds | bounds object to describe the actual surface area |
Definition at line 60 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 60 of file PlaneSurface.cpp
|
overridedefault |
|
delete |
|
inlinefinalvirtual |
The binning position is the position calcualted 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 16 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 16 of file PlaneSurface.ipp
|
overridevirtual |
Return method for bounds object of this surfrace.
Implements Acts::Surface.
Definition at line 98 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 98 of file PlaneSurface.cpp
References Acts::s_noBounds.
|
overridevirtual |
Global to local transformation For planar surfaces the momentum is ignroed in the 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) |
momentum | global 3D momentum representation (optionally ignored) |
lposition | local 2D position to be filled (given by reference for method symmetry) |
Implements Acts::Surface.
Definition at line 83 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 83 of file PlaneSurface.cpp
References Acts::VectorHelpers::position(), Acts::s_onSurfaceTolerance, and Acts::Test::transform.
|
inlinefinalvirtual |
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 interesection attempt, ( |
bcheck | The boundary check directive |
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:
Implements Acts::Surface.
Definition at line 28 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 28 of file PlaneSurface.ipp
References Acts::PlanarHelper::intersect(), and Acts::Test::transform.
|
inlinefinalvirtual |
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 paramters in global |
Implements Acts::Surface.
Definition at line 51 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 51 of file PlaneSurface.ipp
|
overridevirtual |
Local to global transformation For planar surfaces the momentum is ignroed in the local to global transformation
gctx | The current geometry context object, e.g. alignment |
lposition | local 2D position in specialized surface frame |
momentum | global 3D momentum representation (optionally ignored) |
Implements Acts::Surface.
Definition at line 76 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 76 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 94 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 94 of file PlaneSurface.cpp
Referenced by eicpy.verify.PythiaHistograms::__init__(), and eicpy.verify.DjangohHistograms::__init__().
|
inlinefinalvirtual |
Normal vector return
gctx | The current geometry context object, e.g. alignment |
lposition | is the local position is ignored |
return a Vector3D by value
Implements Acts::Surface.
Definition at line 9 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 9 of file PlaneSurface.ipp
References Acts::Test::transform.
Acts::PlaneSurface & Acts::PlaneSurface::operator= | ( | const PlaneSurface & | other | ) |
Assignment operator
other | The source PlaneSurface for assignment |
Definition at line 64 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 64 of file PlaneSurface.cpp
References m_bounds, and Acts::Surface::operator=().
|
inlinefinalvirtual |
Method that calculates the correction due to incident angle
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 21 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 21 of file PlaneSurface.ipp
References kdfinder::abs().
|
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 105 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 105 of file PlaneSurface.cpp
References kdfinder::abs(), Acts::detail::FacesHelper::convexFaceMesh(), Acts::detail::FacesHelper::cylindricalFaceMesh(), Acts::SurfaceBounds::eEllipse, Acts::EllipseBounds::eHalfPhiSector, Acts::EllipseBounds::eInnerRx, Acts::EllipseBounds::eInnerRy, M_PI, Acts::s_epsilon, Acts::Test::transform, and Acts::Polyhedron::vertices.
|
overridevirtual |
Return the surface type.
Implements Acts::Surface.
Definition at line 72 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 72 of file PlaneSurface.cpp
References Acts::Surface::Plane.
|
protected |
the bounds of this surface
Definition at line 207 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 207 of file PlaneSurface.hpp
Referenced by Acts::PlaneLayer::buildApproachDescriptor(), and operator=().
|
private |
Definition at line 36 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 36 of file PlaneSurface.hpp