|
DD4hep
01.18
|
Implementation of conical surface attached to a volume. More...
#include <Surface.h>
Inheritance diagram for dd4hep::rec::VolConeImpl:Public Member Functions | |
| VolConeImpl () | |
| default c'tor More... | |
| VolConeImpl (Volume vol, SurfaceType type, double thickness_inner, double thickness_outer, Vector3D v, 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 cone. More... | |
| virtual Vector3D | v (const Vector3D &point=Vector3D()) const |
| Second direction of measurement V - rotated to point projected onto the cone. More... | |
| virtual Vector3D | normal (const Vector3D &point=Vector3D()) const |
| The normal direction at the given point, projected onto the cone. 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 cone, 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 cone, u is r*phi. More... | |
| virtual std::vector< std::pair < Vector3D, Vector3D > > | getLines (unsigned nMax=100) |
| create outer bounding lines for the given symmetry of the polyhedron More... | |
Public Member Functions inherited from dd4hep::rec::VolSurfaceBase | |
| 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 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... | |
| void | setInnerMaterial (const IMaterial &mat) |
| set the inner Material More... | |
| void | setOuterMaterial (const IMaterial &mat) |
| set the outer Materal More... | |
Public Member Functions inherited from dd4hep::rec::ISurface | |
| virtual | ~ISurface () |
| Destructor. More... | |
Private Attributes | |
| double | _ztip |
| double | _zt0 |
| double | _zt1 |
| double | _tanTheta |
Additional Inherited Members | |
Protected Member Functions inherited from dd4hep::rec::VolSurfaceBase | |
| 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... | |
Protected Attributes inherited from dd4hep::rec::VolSurfaceBase | |
| 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 conical surface attached to a volume.
|
inline |
| dd4hep::rec::VolConeImpl::VolConeImpl | ( | Volume | vol, |
| SurfaceType | type, | ||
| double | thickness_inner, | ||
| double | thickness_outer, | ||
| Vector3D | v, | ||
| Vector3D | origin | ||
| ) |
The standard constructor.
The origin vector points to the origin of the coordinate system on the cone, its rho defining the mean radius of the cone (z-component of the origin is ignored !). The measurement direction v defines the opening angle of the cone, the normal is chosen to be orthogonal to v. NB: the cone is always parallel to the local z axis.
Definition at line 341 of file Surface.cpp.
References _tanTheta, dd4hep::rec::VolSurfaceBase::_type, _zt0, _zt1, _ztip, dd4hep::rec::Vector3D::array(), dd4hep::rec::SurfaceType::Cone, dd4hep::rec::Vector3D::const_array(), std::cos(), dd4hep::rec::Vector3D::cross(), dd4hep::rec::SurfaceType::Cylinder, std::fabs(), dd4hep::rec::SurfaceType::OrthogonalToZ, dd4hep::rec::SurfaceType::ParallelToZ, dd4hep::rec::Vector3D::phi(), dd4hep::rec::SurfaceType::Plane, dd4hep::rec::Vector3D::rho(), dd4hep::rec::VolSurfaceBase::setNormal(), dd4hep::rec::VolSurfaceBase::setOrigin(), dd4hep::rec::SurfaceType::setProperty(), dd4hep::rec::VolSurfaceBase::setU(), dd4hep::rec::Vector3D::spherical(), std::stringstream::str(), std::tan(), dd4hep::rec::Vector3D::theta(), dd4hep::rec::Vector3D::x(), dd4hep::rec::Vector3D::y(), and dd4hep::rec::Vector3D::z().
|
virtual |
Distance to surface.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 442 of file Surface.cpp.
References _tanTheta, dd4hep::rec::VolSurfaceBase::_v, _ztip, std::cos(), dd4hep::rec::Vector3D::rho(), dd4hep::rec::Vector3D::theta(), and dd4hep::rec::Vector3D::z().
|
virtual |
create outer bounding lines for the given symmetry of the polyhedron
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 467 of file Surface.cpp.
References std::vector< T >::emplace_back(), dd4hep::rec::VolSurfaceBase::length_along_v(), dd4hep::rec::VolSurfaceBase::origin(), std::vector< T >::reserve(), dd4hep::rec::Vector3D::rho(), dd4hep::rec::Vector3D::theta(), and v().
Convert the global position to the local position (u,v) on the surface - v runs along the axis of the cone, u is r*phi.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 411 of file Surface.cpp.
References _tanTheta, dd4hep::rec::VolSurfaceBase::_v, _ztip, dd4hep::rec::VolSurfaceBase::origin(), dd4hep::rec::Vector3D::phi(), dd4hep::rec::Vector3D::theta(), 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 cone, u is r*phi.
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 426 of file Surface.cpp.
References _tanTheta, dd4hep::rec::VolSurfaceBase::_v, _ztip, dd4hep::rec::Vector3D::cylindrical(), dd4hep::rec::VolSurfaceBase::origin(), dd4hep::rec::Vector3D::phi(), dd4hep::rec::Vector3D::theta(), dd4hep::rec::Vector2D::u(), dd4hep::rec::Vector2D::v(), and dd4hep::rec::Vector3D::z().
The normal direction at the given point, projected onto the cone.
No check is done whether the point actually is on the cone surface
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 405 of file Surface.cpp.
References dd4hep::rec::VolSurfaceBase::_n, dd4hep::rec::Vector3D::phi(), dd4hep::rec::Vector3D::spherical(), and dd4hep::rec::Vector3D::theta().
Referenced by u().
First direction of measurement U - rotated to point projected onto the cone.
No check is done whether the point actually is on the cone surface
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 398 of file Surface.cpp.
References dd4hep::rec::Vector3D::cross(), normal(), and v().
Second direction of measurement V - rotated to point projected onto the cone.
No check is done whether the point actually is on the cone surface
Reimplemented from dd4hep::rec::VolSurfaceBase.
Definition at line 392 of file Surface.cpp.
References dd4hep::rec::VolSurfaceBase::_v, dd4hep::rec::Vector3D::phi(), dd4hep::rec::Vector3D::spherical(), and dd4hep::rec::Vector3D::theta().
Referenced by getLines(), and u().
|
private |
Definition at line 407 of file Surface.h.
Referenced by distance(), globalToLocal(), localToGlobal(), and VolConeImpl().
|
private |
Definition at line 405 of file Surface.h.
Referenced by VolConeImpl().
|
private |
Definition at line 406 of file Surface.h.
Referenced by VolConeImpl().
|
private |
Definition at line 404 of file Surface.h.
Referenced by distance(), globalToLocal(), localToGlobal(), and VolConeImpl().
1.8.5