ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <acts/blob/master/Core/include/Acts/Surfaces/PlaneSurface.hpp>
Public Member Functions | |
~PlaneSurface () override=default | |
Destructor - defaulted. | |
PlaneSurface & | operator= (const PlaneSurface &other) |
const Vector3D | normal (const GeometryContext &gctx, const Vector2D &lposition) const final |
const 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. | |
void | localToGlobal (const GeometryContext &gctx, const Vector2D &lposition, const Vector3D &momentum, Vector3D &position) const override |
bool | globalToLocal (const GeometryContext &gctx, const Vector3D &position, const Vector3D &momentum, Vector2D &lposition) const override |
double | pathCorrection (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction) const final |
Intersection | intersectionEstimate (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck=false) const final |
Straight line intersection schema. | |
Polyhedron | polyhedronRepresentation (const GeometryContext &gctx, size_t lseg) const override |
std::string | name () const override |
Return properly formatted class name for screen output. | |
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 const Vector3D | center (const GeometryContext &gctx) const |
virtual const Vector3D | normal (const GeometryContext &gctx, const Vector3D &position) const |
virtual const 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 const 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 const RotationMatrix3D | initJacobianToLocal (const GeometryContext &gctx, FreeToBoundMatrix &jacobian, const Vector3D &position, const Vector3D &direction) const |
virtual const BoundRowVector | derivativeFactors (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const RotationMatrix3D &rft, const BoundToFreeMatrix &jacobian) const |
virtual SurfaceIntersection | intersect (const GeometryContext &gctx, const Vector3D &position, const Vector3D &direction, const BoundaryCheck &bcheck) const |
virtual std::ostream & | toStream (const GeometryContext &gctx, std::ostream &sl) const |
Public Member Functions inherited from Acts::GeometryObject | |
GeometryObject ()=default | |
Defaulted construrctor. | |
GeometryObject (const GeometryObject &)=default | |
Defaulted copy constructor. | |
GeometryObject (const GeometryID &geoID) | |
GeometryObject & | operator= (const GeometryObject &geoID) |
const GeometryID & | geoID () const |
virtual double | binningPositionValue (const GeometryContext &gctx, BinningValue bValue) const |
void | assignGeoID (const GeometryID &geoID) |
Protected Member Functions | |
PlaneSurface () | |
Default Constructor - needed for persistency. | |
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 (std::shared_ptr< const Transform3D > htrans, std::shared_ptr< const PlanarBounds > pbounds=nullptr) | |
Protected Member Functions inherited from Acts::Surface | |
Surface (std::shared_ptr< const Transform3D > tform=nullptr) | |
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 | |
std::shared_ptr< const Transform3D > | m_transform |
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 | |
GeometryID | m_geoID |
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 34 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 34 of file PlaneSurface.hpp
|
protected |
Default Constructor - needed for persistency.
|
protected |
Copy Constructor
psf | is the source surface for the copy |
Definition at line 22 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 22 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 25 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 25 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 32 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 32 of file PlaneSurface.cpp
References kdfinder::abs(), Acts::Surface::m_transform, Acts::s_curvilinearProjTolerance, T, and Acts::Surface::transform().
|
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 54 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 54 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 62 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 62 of file PlaneSurface.cpp
|
overridedefault |
Destructor - defaulted.
|
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 20 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 20 of file PlaneSurface.ipp
|
overridevirtual |
Return method for bounds object of this surfrace.
Implements Acts::Surface.
Definition at line 104 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 104 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) |
the chance that there is no transform is almost 0, let's apply it
Implements Acts::Surface.
Definition at line 87 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 87 of file PlaneSurface.cpp
References Acts::s_onSurfaceTolerance, and Acts::Test::transform.
|
inlinefinalvirtual |
Straight line intersection schema.
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 32 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 32 of file PlaneSurface.ipp
References Acts::PlanarHelper::intersectionEstimate(), and Acts::Test::transform.
|
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) |
position | global 3D position to be filled (given by reference for method symmetry) |
the chance that there is no transform is almost 0, let's apply it
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::eLOC_X, Acts::eLOC_Y, and Acts::Test::transform.
|
overridevirtual |
Return properly formatted class name for screen output.
Implements Acts::Surface.
Definition at line 100 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 100 of file PlaneSurface.cpp
|
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 13 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 13 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 66 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 66 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 25 of file PlaneSurface.ipp.
View newest version in sPHENIX GitHub at line 25 of file PlaneSurface.ipp
References kdfinder::abs(), and CLHEP::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 111 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 111 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 74 of file PlaneSurface.cpp.
View newest version in sPHENIX GitHub at line 74 of file PlaneSurface.cpp
References Acts::Surface::Plane.
|
protected |
the bounds of this surface
Definition at line 200 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 200 of file PlaneSurface.hpp
Referenced by Acts::PlaneLayer::buildApproachDescriptor(), and operator=().
|
private |
Definition at line 35 of file PlaneSurface.hpp.
View newest version in sPHENIX GitHub at line 35 of file PlaneSurface.hpp