DD4hep  01.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Member Functions | Private Attributes | List of all members
dd4hep::rec::VolConeImpl Class Reference

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 SurfaceTypetype () const
 properties of the surface encoded in Type. More...
 
virtual const Vector3Dorigin () const
 Get Origin of local coordinate system on surface. More...
 
virtual const IMaterialinnerMaterial () const
 Access to the material in opposite direction of the normal. More...
 
virtual const IMaterialouterMaterial () 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}
 

Detailed Description

Implementation of conical surface attached to a volume.

Author
F.Gaede, DESY
Date
Nov, 6 2015
Version
$Id$

Definition at line 401 of file Surface.h.

Constructor & Destructor Documentation

dd4hep::rec::VolConeImpl::VolConeImpl ( )
inline

default c'tor

Definition at line 412 of file Surface.h.

dd4hep::rec::VolConeImpl::VolConeImpl ( Volume  vol,
SurfaceType  type,
double  thickness_inner,
double  thickness_outer,
Vector3D  v,
Vector3D  origin 
)

Member Function Documentation

double dd4hep::rec::VolConeImpl::distance ( const Vector3D point) const
virtual
std::vector< std::pair< Vector3D, Vector3D > > dd4hep::rec::VolConeImpl::getLines ( unsigned  nMax = 100)
virtual
Vector2D dd4hep::rec::VolConeImpl::globalToLocal ( const Vector3D point) const
virtual

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().

Vector3D dd4hep::rec::VolConeImpl::localToGlobal ( const Vector2D point) const
virtual

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().

Vector3D dd4hep::rec::VolConeImpl::normal ( const Vector3D point = Vector3D()) const
virtual

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().

Vector3D dd4hep::rec::VolConeImpl::u ( const Vector3D point = Vector3D()) const
virtual

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().

Vector3D dd4hep::rec::VolConeImpl::v ( const Vector3D point = Vector3D()) const
virtual

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().

Member Data Documentation

double dd4hep::rec::VolConeImpl::_tanTheta
private

Definition at line 407 of file Surface.h.

Referenced by distance(), globalToLocal(), localToGlobal(), and VolConeImpl().

double dd4hep::rec::VolConeImpl::_zt0
private

Definition at line 405 of file Surface.h.

Referenced by VolConeImpl().

double dd4hep::rec::VolConeImpl::_zt1
private

Definition at line 406 of file Surface.h.

Referenced by VolConeImpl().

double dd4hep::rec::VolConeImpl::_ztip
private

Definition at line 404 of file Surface.h.

Referenced by distance(), globalToLocal(), localToGlobal(), and VolConeImpl().


The documentation for this class was generated from the following files: