DD4hep
01.18
|
Implementation of cylindrical surface attached to a volume. More...
#include <Surface.h>
Public Member Functions | |
VolCylinderImpl () | |
default c'tor More... | |
VolCylinderImpl (Volume vol, SurfaceType type, double thickness_inner, double thickness_outer, Vector3D origin) | |
The standard constructor. More... | |
virtual Vector3D | u (const Vector3D &point=Vector3D()) const |
First direction of measurement U - rotated to point projected onto the cylinder. More... | |
virtual Vector3D | normal (const Vector3D &point=Vector3D()) const |
The normal direction at the given point, projected onto the cylinder. More... | |
virtual double | distance (const Vector3D &point) const |
Distance to surface. More... | |
virtual Vector2D | globalToLocal (const Vector3D &point) const |
Convert the global position to the local position (u,v) on the surface - v runs along the axis of the cylinder, u is r*phi. More... | |
virtual Vector3D | localToGlobal (const Vector2D &point) const |
Convert the local position (u,v) on the surface to the global position - v runs along the axis of the cylinder, u is r*phi. More... | |
![]() | |
virtual | ~VolSurfaceBase ()=default |
VolSurfaceBase ()=default | |
default c'tor More... | |
VolSurfaceBase (SurfaceType typ, double thickness_inner, double thickness_outer, Vector3D u_val, Vector3D v_val, Vector3D n, Vector3D o, Volume vol, int identifier) | |
VolSurfaceBase (const VolSurfaceBase &c) | |
Copy the from object. More... | |
Volume | volume () const |
the volume to which this surface is attached. More... | |
virtual long64 | id () const |
The id of this surface. More... | |
virtual const SurfaceType & | type () const |
properties of the surface encoded in Type. More... | |
virtual Vector3D | v (const Vector3D &point=Vector3D()) const |
Second direction of measurement V. More... | |
virtual const Vector3D & | origin () const |
Get Origin of local coordinate system on surface. More... | |
virtual const IMaterial & | innerMaterial () const |
Access to the material in opposite direction of the normal. More... | |
virtual const IMaterial & | outerMaterial () const |
Access to the material in direction of the normal. More... | |
virtual double | innerThickness () const |
Thickness of inner material. More... | |
virtual double | outerThickness () const |
Thickness of outer material. More... | |
virtual double | length_along_u () const |
The length of the surface along direction u at the origin. More... | |
virtual double | length_along_v () const |
The length of the surface along direction v at the origin. More... | |
virtual bool | insideBounds (const Vector3D &point, double epsilon=1e-4) const |
Checks if the given point lies within the surface. More... | |
virtual std::vector< std::pair < Vector3D, Vector3D > > | getLines (unsigned nMax=100) |
void | setInnerMaterial (const IMaterial &mat) |
set the inner Material More... | |
void | setOuterMaterial (const IMaterial &mat) |
set the outer Materal More... | |
![]() | |
virtual | ~ISurface () |
Destructor. More... | |
Additional Inherited Members | |
![]() | |
virtual void | setU (const Vector3D &u) |
setter for daughter classes More... | |
virtual void | setV (const Vector3D &v) |
setter for daughter classes More... | |
virtual void | setNormal (const Vector3D &n) |
setter for daughter classes More... | |
virtual void | setOrigin (const Vector3D &o) |
setter for daughter classes More... | |
![]() | |
SurfaceType | _type {} |
Vector3D | _u {} |
Vector3D | _v {} |
Vector3D | _n {} |
Vector3D | _o {} |
double | _th_i {0} |
double | _th_o {0} |
MaterialData | _innerMat {} |
MaterialData | _outerMat {} |
Volume | _vol {} |
long64 | _id {0} |
unsigned | _refCount {0} |
Implementation of cylindrical surface attached to a volume.
|
inline |
dd4hep::rec::VolCylinderImpl::VolCylinderImpl | ( | Volume | vol, |
SurfaceType | type, | ||
double | thickness_inner, | ||
double | thickness_outer, | ||
Vector3D | origin | ||
) |
The standard constructor.
The origin vector points to the origin of the coordinate system on the cylinder, its rho defining the radius of the cylinder. The measurement direction v is set to be (0,0,1), the normal is chosen to be parallel to the origin vector and u = n X v.
Definition at line 277 of file Surface.cpp.
References dd4hep::rec::VolSurfaceBase::_type, dd4hep::rec::SurfaceType::checkOrthogonalToZ(), dd4hep::rec::SurfaceType::checkParallelToZ(), dd4hep::rec::SurfaceType::Cone, dd4hep::rec::Vector3D::cross(), dd4hep::rec::SurfaceType::Cylinder, dd4hep::rec::SurfaceType::Plane, dd4hep::rec::VolSurfaceBase::setNormal(), dd4hep::rec::SurfaceType::setProperty(), dd4hep::rec::VolSurfaceBase::setU(), dd4hep::rec::VolSurfaceBase::setV(), dd4hep::rec::Vector3D::unit(), dd4hep::rec::Vector3D::x(), and dd4hep::rec::Vector3D::y().
|
virtual |
Distance to surface.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 335 of file Surface.cpp.
References dd4hep::rec::VolSurfaceBase::origin(), and dd4hep::rec::Vector3D::rho().
Convert the global position to the local position (u,v) on the surface - v runs along the axis of the cylinder, u is r*phi.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 310 of file Surface.cpp.
References dd4hep::rec::VolSurfaceBase::origin(), dd4hep::rec::Vector3D::phi(), and dd4hep::rec::Vector3D::z().
Convert the local position (u,v) on the surface to the global position - v runs along the axis of the cylinder, u is r*phi.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 322 of file Surface.cpp.
References dd4hep::rec::Vector3D::cylindrical(), dd4hep::rec::VolSurfaceBase::origin(), dd4hep::rec::Vector3D::phi(), dd4hep::rec::Vector3D::rho(), dd4hep::rec::Vector2D::u(), dd4hep::rec::Vector2D::v(), and dd4hep::rec::Vector3D::z().
The normal direction at the given point, projected onto the cylinder.
No check is done whether the point actually is on the cylinder surface
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 304 of file Surface.cpp.
References dd4hep::rec::Vector3D::cylindrical(), and dd4hep::rec::Vector3D::phi().
First direction of measurement U - rotated to point projected onto the cylinder.
No check is done whether the point actually is on the cylinder surface
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 297 of file Surface.cpp.
References dd4hep::rec::Vector3D::cross(), dd4hep::rec::Vector3D::cylindrical(), dd4hep::rec::Vector3D::phi(), and dd4hep::rec::VolSurfaceBase::v().