|
VGM Version 5.3.1
|
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.