VGM Version 5.3
|
The VGM interface to geometry factory providing functions for geometry construction and conversions. More...
#include <IFactory.h>
Public Member Functions | |
virtual | ~IFactory () |
virtual ISolid * | CreateArb8 (const std::string &name, double hz, std::vector< VGM::TwoVector > vertices)=0 |
Create the arbitrary trapezoid with 8 vertices standing on two paralel planes perpendicular to Z axis. | |
virtual ISolid * | CreateBox (const std::string &name, double hx, double hy, double hz)=0 |
Create the box solid. | |
virtual ISolid * | CreateCons (const std::string &name, double rin1, double rout1, double rin2, double rout2, double hz, double sphi, double dphi)=0 |
Create the cons solid = phi segment of a conical tube. | |
virtual ISolid * | CreateCtubs (const std::string &name, double rin, double rout, double hz, double sphi, double dphi, double nxlow, double nylow, double nzlow, double nxhigh, double nyhigh, double nzhigh)=0 |
Create the cut tubs solid = phi segment of a tube cut with two planes. | |
virtual ISolid * | CreateEllipsoid (const std::string &name, double dx, double dy, double dz, double zBottomCut, double zTopCut)=0 |
Create the ellipsoid solid. | |
virtual ISolid * | CreateEllipticalTube (const std::string &name, double dx, double dy, double hz)=0 |
Create the elliptical tube solid. | |
virtual ISolid * | CreateExtrudedSolid (const std::string &name, std::vector< TwoVector > polygon, std::vector< std::vector< double > > zsections)=0 |
Create the extruded solid. | |
virtual ISolid * | CreateHype (const std::string &name, double r1, double r2, double stereo1, double stereo2, double hz)=0 |
Create the hyperboloid solid. | |
virtual ISolid * | CreatePara (const std::string &name, double hx, double hy, double hz, double alpha, double theta, double phi)=0 |
Create the para solid = parallelepiped. | |
virtual ISolid * | CreateParaboloid (const std::string &name, double r1, double r2, double hz)=0 |
Create the paraboloid solid. | |
virtual ISolid * | CreatePolycone (const std::string &name, double sphi, double dphi, int nofZplanes, double *z, double *rin, double *rout)=0 |
Create the polycone solid = phi segment of a polycone. | |
virtual ISolid * | CreatePolyhedra (const std::string &name, double sphi, double dphi, int nofSides, int nofZplanes, double *z, double *rin, double *rout)=0 |
Create the polyhedra solid = phi segment of a polyhedra (polygone) | |
virtual ISolid * | CreateSphere (const std::string &name, double rin, double rout, double sphi, double dphi, double stheta, double dtheta)=0 |
Create the sphere solid = phi segment of a spherical shell. | |
virtual ISolid * | CreateTessellatedSolid (const std::string &name, std::vector< std::vector< VGM::ThreeVector > > facets)=0 |
Create tessellated solid = solid composed from triangular and rectangular facets. | |
virtual ISolid * | CreateTorus (const std::string &name, double rin, double rout, double rax, double sphi, double dphi)=0 |
Create the torus solid = phi segment of a torus. | |
virtual ISolid * | CreateTrap (const std::string &name, double hz, double theta, double phi, double dy1, double dx1, double dx2, double alpha1, double dy2, double dx3, double dx4, double alpha2)=0 |
Create the trap solid = general trapezoid ( Note that of the 11 parameters described below, only 9 are really independent) | |
virtual ISolid * | CreateTrd (const std::string &name, double hx1, double hx2, double hy1, double hy2, double hz)=0 |
Create the trd solid = a trapezoid with the x and y dimensions varying along z. | |
virtual ISolid * | CreateTubs (const std::string &name, double rin, double rout, double hz, double sphi, double dphi)=0 |
Create the trd solid = phi segment of a tube. | |
virtual ISolid * | CreateIntersectionSolid (const std::string &name, VGM::ISolid *solidA, VGM::ISolid *solidB, const VGM::Transform &transform)=0 |
Create the intersection of two solids. | |
virtual ISolid * | CreateSubtractionSolid (const std::string &name, VGM::ISolid *solidA, VGM::ISolid *solidB, const VGM::Transform &transform)=0 |
Create the subtraction of two solids. | |
virtual ISolid * | CreateUnionSolid (const std::string &name, VGM::ISolid *solidA, VGM::ISolid *solidB, const VGM::Transform &transform)=0 |
Create the union of two solids. | |
virtual ISolid * | CreateDisplacedSolid (const std::string &name, VGM::ISolid *solid, const VGM::Transform &transform)=0 |
Create displaced solid. | |
virtual ISolid * | CreateScaledSolid (const std::string &name, VGM::ISolid *solid, const VGM::Transform &transform)=0 |
Create scaled solid. | |
virtual ISolid * | CreateMultiUnion (const std::string &name, std::vector< VGM::ISolid * > constituents, std::vector< VGM::Transform > transforms)=0 |
Create the multi union of solids. | |
virtual IVolume * | CreateVolume (const std::string &name, VGM::ISolid *solid, const std::string &mediumName)=0 |
Create the volume. | |
virtual IPlacement * | CreatePlacement (const std::string &name, int copyNo, VGM::IVolume *volume, VGM::IVolume *motherVolume, const VGM::Transform &transform)=0 |
Create the simple volume placement. | |
virtual IPlacement * | CreateMultiplePlacement (const std::string &name, VGM::IVolume *volume, VGM::IVolume *motherVolume, VGM::Axis axis, int nofItems, double width, double offset, double halfGap)=0 |
Create the multiple volume placement. | |
virtual VGM::IPlacement * | CreateParameterisedPlacement (const std::string &name, VGM::IVolume *motherVolume, const std::vector< VGM::Transform > &transforms, const std::vector< VGM::IVolume * > &volumes)=0 |
Create the parameterised volume placement. | |
virtual IPlacement * | Top () const =0 |
Return the top volume placement. | |
virtual ISolid * | SingleSolid () const =0 |
Return solid (if in one solid conversion mode) | |
virtual std::string | Name () const =0 |
Return the name of this factory. | |
virtual const SolidStore & | Solids () const =0 |
Return the store of solids. | |
virtual const VolumeStore & | Volumes () const =0 |
Return the store of volumes. | |
virtual IMaterialFactory * | MaterialFactory () const =0 |
Return the associated material factory. | |
virtual void | PrintSolids () const =0 |
Print all solids. | |
virtual void | PrintVolumes () const =0 |
Print all volumes. | |
virtual bool | Export (IFactory *factory) const =0 |
Export geometry to the specified factory. | |
virtual void | SetDebug (int value)=0 |
Set the debug level. | |
virtual int | Debug () const =0 |
Return the debug level. | |
virtual void | SetIgnore (bool value, double dummyBoxDimensions=kDefaultDummyBoxDimensions)=0 |
Set ignoring of unsupported features. | |
virtual bool | Ignore () const =0 |
Return the ignore option. | |
virtual void | SetDummyBoxDimensions (double value)=0 |
Set the dimensions in mm of a dummy box replacing the unsupported shapes if the 'ignore' option is activated. | |
virtual double | DummyBoxDimensions () const =0 |
Return the ignore option. | |
virtual void | SetBestMatch (bool value)=0 |
Set best match option. | |
virtual bool | BestMatch () const =0 |
Return the single mode option. | |
virtual void | SetSingleMode (bool value)=0 |
Set single mode option. | |
virtual bool | SingleMode () const =0 |
Return the single mode option. | |
virtual void | SetSolid (VGM::ISolid *solid)=0 |
Set solid (in single mode) | |
The VGM interface to geometry factory providing functions for geometry construction and conversions.
Definition at line 49 of file IFactory.h.
|
inlinevirtual |
Definition at line 52 of file IFactory.h.
|
pure virtual |
Create the arbitrary trapezoid with 8 vertices standing on two paralel planes perpendicular to Z axis.
hz | half-length along the z axis in mm |
vertices | vector of (x,y) coordinates of vertices
|
The order of defining the vertices of an arb8 is the following:
Points can be identical in order to create shapes with less than vertices.
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the box solid.
hx | half-length along the x axis in mm |
hy | half-length along the y axis in mm |
hz | half-length along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the cons solid = phi segment of a conical tube.
rin1 | inside radius at -hz in mm |
rin2 | inside radius at +hz in mm |
rout1 | outside radius at -hz in mm |
rout2 | outside radius at +hz in mm |
hz | half-length along the z axis in mm |
sphi | starting angle of the segment in deg |
dphi | opening angle of the segment in deg |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the cut tubs solid = phi segment of a tube cut with two planes.
rin | inside radius in mm |
rout | outside radius in mm |
hz | half-length along the z axis in mm |
sphi | starting angle of the segment in deg |
dphi | opening angle of the segment in deg |
nxlow | X-component of the normal unit vector to the cut plane in -z |
nylow | Y-component of the normal unit vector to the cut plane in -z |
nzlow | Z-component of the normal unit vector to the cut plane in -z |
nxhigh | X-component of the normal unit vector to the cut plane in +z |
nyhigh | Y-component of the normal unit vector to the cut plane in +z |
nzhigh | Z-component of the normal unit vector to the cut plane in +z |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the ellipsoid solid.
dx | the semi-axis of the ellipse along x in mm |
dy | the semi-axis of the ellipse along y in mm |
dz | the semi-axis of the ellipse along z in mm |
zBottomCut | the bottom cut along the z axis in mm |
zTopCut | the top cut along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the elliptical tube solid.
dx | the semi-axis of the ellipse along x in mm |
dy | the semi-axis of the ellipse along y in mm |
hz | half-length along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the extruded solid.
polygon | the outline polygon defined by its vertices |
zsections | the z-sections defined by z positions, polygon offset in x, y and scale |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the hyperboloid solid.
r1 | radius of the inner hyperbolic surface in mm |
r2 | radius of the outer hyperbolic surface in mm |
stereo1 | stereo angle for the inner hyperbolic surface in deg |
stereo2 | stereo angle for the outer hyperbolic surface in deg |
hz | half-length along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the para solid = parallelepiped.
hx | half-length along the x axis in mm |
hy | half-length along the y axis in mm |
hz | half-length along the z axis in mm |
alpha | angle formed by the y axis and by the plane joining the centre of the faces parallel to the z-x plane at -hy and +hy in deg |
theta | polar angle of the line joining the centres of the faces at -hz and +hz in deg |
phi | azimuthal angle of the line joining the centres of the faces at -hz and +hz in deg |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the paraboloid solid.
r1 | radius at -hz in mm |
r2 | radius at +hz in mm |
hz | half-length along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the polycone solid = phi segment of a polycone.
sphi | starting angle of the segment in deg |
dphi | opening angle of the segment in deg |
nofZplanes | number of planes perpendicular to the z axis (has to be >= 2) |
z | array of z positions of the planes in mm |
rin | array of inside radius of the planes in mm |
rout | array of outside radius of the planes in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the polyhedra solid = phi segment of a polyhedra (polygone)
sphi | starting angle of the segment in deg |
dphi | opening angle of the segment in deg |
nofSides | number of sides of the cross section between the given phi limits |
nofZplanes | number of planes perpendicular to the z axis (has to be >= 2) |
z | array of z positions of the planes in mm |
rin | array of inside radius of the planes in mm |
rout | array of outside radius of the planes in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the sphere solid = phi segment of a spherical shell.
rin | inside radius of the shell in mm |
rout | outside radius of the shell in mm |
sphi | starting azimuthal angle of the segment in deg |
dphi | opening azimuthal angle of the segment in deg |
stheta | starting polar angle of the segment in deg |
dtheta | opening polar angle of the segment in deg |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create tessellated solid = solid composed from triangular and rectangular facets.
facets | the vector of facets defined as a vector of three vectors representing the facet points in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the torus solid = phi segment of a torus.
rin | inside radius of the torus in mm |
rout | outside radius of the torus in mm |
rax | axial (swept) radius of the torus in mm |
sphi | starting angle of the segment in deg (with 0 being the +x axis) |
dphi | opening angle of the segment in deg |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the trap solid = general trapezoid ( Note that of the 11 parameters described below, only 9 are really independent)
hz | half-length along the z axis in mm |
theta | polar angle of the line joining the centres of the faces at -hz and +hz in deg |
phi | azimuthal angle of the line joining the centres of the faces at -hz and +hz in deg |
dy1 | half-length along y of the face at -hz in mm |
dx1 | half-length along x of the side at -hy of the face at -hz in mm |
dx2 | half-length along x of the side at +hy of the face at +hz in mm |
alpha1 | angle with respect to the y axis from the centre of the side at -hy to the centre at +hy of the face at -hz |
dy2 | half-length along y of the face at +hz in mm |
dx3 | half-length along x of the side at -hy of the face at +hz in mm |
dx4 | half-length along x of the side at +hy of the face at +hz in mm |
alpha2 | angle with respect to the y axis from the centre of the side at -hy to the centre at +hy of the face at +hz |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the trd solid = a trapezoid with the x and y dimensions varying along z.
hx1 | half-length along x at the surface positioned at -hz in mm |
hx2 | half-length along x at the surface positioned at +hz in mm |
hy1 | half-length along y at the surface positioned at -hz in mm |
hy2 | half-length along y at the surface positioned at +hz in mm |
hz | half-length along the z axis in mm |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the trd solid = phi segment of a tube.
rin | inside radius in mm |
rout | outside radius in mm |
hz | half-length along the z axis in mm |
sphi | starting angle of the segment in deg |
dphi | opening angle of the segment in deg |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the intersection of two solids.
solidA,solidB | constituent solids |
transform | 3D displacement of the solidB with respect to solid A |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the subtraction of two solids.
solidA,solidB | constituent solids |
transform | 3D displacement of the solidB with respect to solid A |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the union of two solids.
solidA,solidB | constituent solids |
transform | 3D displacement of the solidB with respect to solid A |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create displaced solid.
solid | constituent solids |
transform | 3D displacement of the solidB with respect to solid A |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create scaled solid.
solid | constituent solids |
transform | scale transformation (sx, sy, sz) |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the multi union of solids.
constituents | constituent solids |
transforms | 3D displacement of the constituent solids |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the volume.
solid | the associated solid |
mediumName | the name of the associated medium |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the simple volume placement.
copyNo | the copy number of this placement |
volume | the associated volume |
motherVolume | the associated mother volume |
transform | 3D transformation |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the multiple volume placement.
volume | the associated volume which will be replicated |
motherVolume | the associated mother volume |
axis | the replication axis |
nofItems | number of replications |
width | the replication width (the unit depends on the axis; can be mm or deg) |
offset | the replication offset (the unit depends on the axis; can be mm or deg) |
halfGap | the half with of the gap between replications (can be mm or deg) |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Create the parameterised volume placement.
motherVolume | the associated mother volume |
transforms | transformations for every replicated element |
volumes | volumes for every replicated element |
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Return the top volume placement.
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Return solid (if in one solid conversion mode)
Implemented in Geant4GM::Factory, and RootGM::Factory.
|
pure virtual |
Return the name of this factory.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the store of solids.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the store of volumes.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the associated material factory.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Print all solids.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Print all volumes.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Export geometry to the specified factory.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set the debug level.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the debug level.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set ignoring of unsupported features.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the ignore option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set the dimensions in mm of a dummy box replacing the unsupported shapes if the 'ignore' option is activated.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the ignore option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set best match option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the single mode option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set single mode option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Return the single mode option.
Implemented in BaseVGM::VFactory.
|
pure virtual |
Set solid (in single mode)
Implemented in Geant4GM::Factory, and RootGM::Factory.