 |
DD4hep
1.33.0
Detector Description Toolkit for High Energy Physics
|
Go to the documentation of this file.
13 #ifndef DDREC_SURFACE_H
14 #define DDREC_SURFACE_H
79 double thickness_inner ,
double thickness_outer,
87 _th_i( thickness_inner ),
88 _th_o( thickness_outer ),
106 virtual long64 id()
const override ;
164 virtual std::vector< std::pair<Vector3D, Vector3D> >
getLines(
unsigned nMax=100) ;
220 virtual long64 id()
const override ;
276 virtual std::vector< std::pair<Vector3D, Vector3D> >
getLines(
unsigned nMax=100) ;
289 struct VolSurfaceList ;
309 std::copy( this->end() , sL->begin() , sL->end() ) ;
316 this->insert( this->end() , vsl.begin() , vsl.end() ) ;
340 VolSurfaceBase( typ, thickness_inner, thickness_outer, u_val,v_val, n_val, o_val, vol, id_val ) {
445 virtual std::vector< std::pair<Vector3D, Vector3D> >
getLines(
unsigned nMax=100)
override ;
465 VolSurface( new T( typ, thickness_inner, thickness_outer, u_val, v_val, n_val, o_val, vol , 0 ) ){
484 VolSurface( new
VolConeImpl( vol, typ_val, thickness_inner , thickness_outer, v_val, origin_val ) ) {}
502 std::unique_ptr<TGeoMatrix>
_wtM ;
527 virtual long64 id()
const override ;
598 virtual std::vector< std::pair< Vector3D, Vector3D> >
getLines(
unsigned nMax=100) ;
641 virtual double radius()
const override ;
658 virtual double radius0()
const override ;
661 virtual double radius1()
const override ;
664 virtual double z0()
const override ;
667 virtual double z1()
const override ;
709 #endif // DDREC_SURFACE_H
virtual std::vector< std::pair< Vector3D, Vector3D > > getLines(unsigned nMax=100) override
create outer bounding lines for the given symmetry of the polyhedron
SurfaceList()=default
defaul c'tor - allow to set ownership for surfaces
virtual Vector2D globalToLocal(const Vector3D &point) const override
virtual double radius() const override
the radius of the cylinder (rho of the origin vector)
VolSurfaceList(const DetElement &det)
virtual ~Surface() override=default
virtual double length_along_v() const override
Volume volume() const
the volume to which this surface is attached.
bool checkOrthogonalToZ(const ISurface &surf, double epsilon=1.e-6) const
virtual double z0() const override
the start z of the cone
VolCylinderImpl()
default c'tor
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
virtual const IMaterial & outerMaterial() const override
Access to the material in direction of the normal.
ConeSurface(DetElement det, VolSurface volSurf)
virtual double outerThickness() const override
virtual std::vector< std::pair< Vector3D, Vector3D > > getLines(unsigned nMax=100)
VolCylinder(Volume vol, SurfaceType typ_val, double thickness_inner, double thickness_outer, Vector3D origin_val)
std::unique_ptr< TGeoMatrix > _wtM
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
virtual double innerThickness() const override
virtual double radius1() const override
the end radius of the cone
VolSurface volSurface() const
The VolSurface attched to the volume.
VolPlaneImpl(SurfaceType typ, double thickness_inner, double thickness_outer, Vector3D u_val, Vector3D v_val, Vector3D n_val, Vector3D o_val, Volume vol, int id_val)
standard c'tor with all necessary arguments - origin is (0,0,0) if not given.
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
Volume volume() const
the volume to which this surface is attached.
virtual double distance(const Vector3D &point) const override
virtual const SurfaceType & type() const override
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
VolSurfaceList(const VolSurfaceList &vsl, const DetElement &)
DetElement detElement() const
The DetElement belonging to the surface volume.
SurfaceList(bool isOwner)
defaul c'tor - allow to set ownership for surfaces
bool checkParallelToZ(const ISurface &surf, double epsilon=1.e-6) const
virtual double z1() const override
the end z of the cone
virtual const IMaterial & innerMaterial() const override
Access to the material in opposite direction of the normal.
virtual const Vector3D & origin() const override
virtual double length_along_u() const override
virtual Vector3D localToGlobal(const Vector2D &point) const override
virtual Vector3D v(const Vector3D &point=Vector3D()) const override
virtual void setNormal(const Vector3D &n)
setter for daughter classes
virtual Vector2D globalToLocal(const Vector3D &point) const override
virtual Vector2D globalToLocal(const Vector3D &point) const override
void setOuterMaterial(const IMaterial &mat)
set the outer Materal
VolSurfaceBase(const VolSurfaceBase &c)
Copy the from object.
virtual const IMaterial & outerMaterial() const override
Access to the material in direction of the normal.
VolSurfaceHandle< VolPlaneImpl > VolPlane
virtual bool insideBounds(const Vector3D &point, double epsilon=1e-4) const override
Checks if the given point lies within the surface.
VolConeImpl()
default c'tor
Handle class describing a detector element.
Handle class holding a placed volume (also called physical volume)
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
Access to the normal direction at the given point.
virtual Vector2D globalToLocal(const Vector3D &point) const override
virtual const Vector3D & origin() const override
virtual Vector2D globalToLocal(const Vector3D &point) const override
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
virtual void setV(const Vector3D &v)
setter for daughter classes
virtual double length_along_v() const override
virtual double radius0() const override
the start radius of the cone
VolSurface & operator=(const VolSurface &vsurf)
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
Access to the normal direction at the given point.
SurfaceList(const SurfaceList &, const DetElement &)
required c'tor for extension mechanism
virtual Vector3D localToGlobal(const Vector2D &point) const override
Surface()=delete
default c'tor etc. removed
virtual ~SurfaceList()
d'tor deletes all owned surfaces
virtual bool insideBounds(const Vector3D &point, double epsilon=1.e-4) const override
Checks if the given point lies within the surface.
virtual Vector3D volumeOrigin() const
virtual double distance(const Vector3D &point) const override
virtual Vector3D localToGlobal(const Vector2D &point) const override
virtual std::vector< std::pair< Vector3D, Vector3D > > getLines(unsigned nMax=100)
virtual const IMaterial & innerMaterial() const override
Access to the material in opposite direction of the normal.
SurfaceList(const SurfaceList &other)=default
copy c'tor
virtual double distance(const Vector3D &point) const override
VolSurface(VolSurfaceBase *p)
Constructor to be used with an existing object.
virtual long64 id() const override
The id of this surface.
virtual Vector3D v(const Vector3D &point=Vector3D()) const override
virtual double innerThickness() const override
void setOuterMaterial(const IMaterial &mat)
set the outer Materal
VolSurface()
default c'tor
virtual ~VolSurface() override
virtual const SurfaceType & type() const override
Volume volume() const
The volume that has the surface attached.
VolSurfaceHandle(Volume vol, SurfaceType typ, double thickness_inner, double thickness_outer, Vector3D u_val, Vector3D v_val, Vector3D n_val, Vector3D o_val=Vector3D(0., 0., 0.))
virtual Vector3D center() const override
the center of the cylinder
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
virtual long64 id() const override
The id of this surface - corresponds to DetElement id.
virtual Vector3D localToGlobal(const Vector2D &point) const override
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
Access to the normal direction at the given point.
VolSurfaceBase()=default
default c'tor
void setInnerMaterial(const IMaterial &mat)
set the innerMaterial
virtual ~VolSurfaceBase() override=default
virtual Vector3D v(const Vector3D &point=Vector3D()) const override
virtual Vector3D localToGlobal(const Vector2D &point) const override
virtual double innerThickness() const override
Surface(Surface const &)=delete
virtual void setU(const Vector3D &u)
setter for daughter classes
virtual std::vector< std::pair< Vector3D, Vector3D > > getLines(unsigned nMax=100)
virtual double length_along_v() const override
virtual long64 id() const override
The id of this surface - always 0 for VolSurfaces.
virtual Vector3D normal(const Vector3D &point=Vector3D()) const override
virtual double length_along_u() const override
void setInnerMaterial(const IMaterial &mat)
set the inner Material
Namespace for the AIDA detector description toolkit.
SurfaceList(const DetElement &)
required c'tor for extension mechanism
virtual const IMaterial & outerMaterial() const override
Access to the material in direction of the normal.
virtual double length_along_u() const override
virtual Vector2D globalToLocal(const Vector3D &point) const override
virtual double distance(const Vector3D &point) const override
VolSurfaceList * volSurfaceList(const DetElement &det)
VolCone(Volume vol, SurfaceType typ_val, double thickness_inner, double thickness_outer, Vector3D v_val, Vector3D origin_val)
VolPlaneImpl()
default c'tor
virtual void setOrigin(const Vector3D &o)
setter for daughter classes
void setProperty(unsigned prop, bool val=true)
set the given peorperty
virtual Vector3D v(const Vector3D &point=Vector3D()) const override
virtual Vector3D center() const override
the center of the cone
virtual const SurfaceType & type() const override
virtual const IMaterial & innerMaterial() const override
Access to the material in opposite direction of the normal.
virtual double outerThickness() const override
virtual Vector3D u(const Vector3D &point=Vector3D()) const override
VolSurface(const VolSurface &vsurf)
Constructor to be used with an existing object.
VolSurfaceBase(SurfaceType typ, double thickness_inner, double thickness_outer, Vector3D u_val, Vector3D v_val, Vector3D n, Vector3D o, Volume vol, int identifier)
virtual double distance(const Vector3D &point) const override
virtual const Vector3D & origin() const override
virtual Vector3D v(const Vector3D &point=Vector3D()) const override
Surface & operator=(Surface const &)=delete
virtual double distance(const Vector3D &point) const override
virtual Vector3D localToGlobal(const Vector2D &point) const override
virtual double outerThickness() const override
CylinderSurface(DetElement det, VolSurface volSurf)
Standard c'tor.
VolSurfaceBase * ptr() const
pointer to underlying object
virtual bool insideBounds(const Vector3D &point, double epsilon=1e-4) const override
Checks if the given point lies within the surface.