15 namespace DDI {
class Solid; }
16 namespace DDI {
class Reflection; }
17 namespace DDI {
class BooleanSolid; }
72 const std::vector<double> &
parameters()
const;
120 double halfZ()
const;
122 double theta()
const;
148 double halfZ()
const;
169 double zHalf()
const;
189 double halfX()
const;
190 double halfY()
const;
191 double halfZ()
const;
239 virtual std::vector<double>
getVec(
const size_t& which,
const size_t&
offset = 0,
const size_t& nVecs = 1)
const;
250 std::vector<double>
zVec()
const;
251 std::vector<double>
rVec()
const;
252 std::vector<double>
rMinVec()
const;
253 std::vector<double>
rMaxVec()
const;
266 std::vector<double>
zVec()
const;
267 std::vector<double>
rVec()
const;
268 std::vector<double>
rMinVec()
const;
269 std::vector<double>
rMaxVec()
const;
279 double zhalf()
const;
293 double zhalf()
const;
403 double xHalf()
const;
404 double yHalf()
const;
405 double zHalf()
const;
406 double alpha()
const;
407 double theta()
const;
435 const std::vector<double> &
z,
436 const std::vector<double> & rmin,
437 const std::vector<double> & rmax);
444 const std::vector<double> & z,
445 const std::vector<double> &
r);
453 double startPhi,
double deltaPhi,
454 const std::vector<double> & z,
455 const std::vector<double> & rmin,
456 const std::vector<double> & rmax);
464 double startPhi,
double deltaPhi,
465 const std::vector<double> & z,
466 const std::vector<double> & r);
488 double pTheta,
double pPhi,
489 double pDy1,
double pDx1,
double pDx2,
491 double pDy2,
double pDx3,
double pDx4,
516 double rIn,
double rOut,
561 double xHalf,
double yHalf,
double zHalf,
double halfZ() const
half of the z-Axis
const std::vector< double > & parameters() const
Don't use (only meant to be used by DDbox(), DDtub(), ...)
static DDSolid torus(const DDName &name, double rMin, double rMax, double rTorus, double startPhi, double deltaPhi)
double y2() const
Half-length along y of the face at +pDz.
double deltaTheta() const
DDSolid()
Uninitialilzed solid reference-object; for further details on reference-objects see documentation of ...
A truncated tube section.
double x2() const
half length along x on +z
const DDName & name() const
double deltaPhi() const
angular span of the tube-section
double alpha1() const
Angle with respect to the y axis from the centre of the side at y=-pDy1 to the centre at y=+pDy1 of t...
std::vector< double > zVec() const
double rIn() const
inner radius
double x2() const
Half-length along x of the side at y=+pDy1 of the face at -pDz.
static DDSolid pseudoTrap(const DDName &name, double pDx1, double pDx2, double pDy1, double pDy2, double pDz, double radius, bool atMinusZ)
std::vector< double > rVec() const
DDSolidShape shape() const
The type of the solid.
static DDSolid parallelepiped(const DDName &name, double xHalf, double yHalf, double zHalf, double alpha, double theta, double phi)
double deltaPhi(float phi1, float phi2)
Abstract class for DDPolycone and DDPolyhedra. Basically a common member function.
double startPhi() const
angular start of the tube-section
std::vector< double > rMinVec() const
This is simply a handle on the solid.
virtual std::vector< double > getVec(const size_t &which, const size_t &offset=0, const size_t &nVecs=1) const
note defaults please.
static DDSolid cons(const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi)
static DDSolid ellipsoid(const DDName &name, double xSemiAxis, double ySemiAxis, double zSemiAxis, double zBottomCut=0, double zTopCut=0)
static DDSolid polycone(const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polycone (refere to Geant3 or Geant4 documentation)
friend class DDPersToDDDFactory
Geom::Theta< T > theta() const
Streaming the DDD transient store from/into a std::istream/std::ostream */.
DDPseudoTrap(const DDSolid &s)
double zHalf() const
half of the z-Axis
DDName is used to identify DDD entities uniquely.
double alpha2() const
Angle with respect to the y axis from the centre of the side at y=-pDy2 to the centre at y=+pDy2 of t...
std::ostream & operator<<(std::ostream &out, const ALILine &li)
A DDSolid represents the shape of a part.
double rOutMinusZ() const
double cutAtStart() const
truncation at begin of the tube-section
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
double innerRadius() const
double y1() const
half length along y on -z
double phi() const
Azimuthal angle of the line joining the centres of the faces at -/+pDz.
double radius() const
radius of the cut-out (neg.) or rounding (pos.)
DDSolid unreflected() const
DDI::BooleanSolid * boolean_
static DDSolid intersection(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
DDTruncTubs(const DDSolid &s)
double halfZ() const
half of the z-Axis
double cutAtDelta() const
truncation at end of the tube-section
static DDSolid sphere(const DDName &name, double innerRadius, double outerRadius, double startPhi, double deltaPhi, double startTheta, double deltaTheta)
static DDSolid orb(const DDName &name, double radius)
DDI::Reflection * reflected_
double theta() const
Polar angle of the line joining the centres of the faces at -/+pDz.
Composites(const DDSolid &A, const DDSolid &B, const DDTranslation &T, const DDRotation &R)
Interface to a Trapezoid.
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
static DDSolid truncTubs(const DDName &name, double zHalf, double rIn, double rOut, double startPhi, double deltaPhi, double cutAtStart, double cutAtDelta, bool cutInside)
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
unsigned int offset(bool)
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
double volume() const
Returns the volume of the given solid (does not work with boolean soids !)
std::vector< double > rVec() const
double zBottomCut() const
double y1() const
Half-length along y of the face at -pDz.
double x1() const
half length along x on -z
double x4() const
Half-length along x of the side at y=+pDy2 of the face at +pDz.
static DDSolid ellipticalTube(const DDName &name, double xSemiAxis, double ySemiAxis, double zHeight)
std::vector< double > zVec() const
bool cutInside() const
true, if truncation is on the inner side of the tube-section
std::vector< double > rMinVec() const
static DDSolid subtraction(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
std::vector< double > rMaxVec() const
friend class DDDToPersFactory
double x3() const
Half-length along x of the side at y=-pDy2 of the face at +pDz.
static DDSolid reflection(const DDName &name, const DDSolid &s)
static DDSolid shapeless(const DDName &name)
double rOut() const
outer radius
double startTheta() const
double y2() const
half length along y on +z
DDRotation rotation() const
double outerRadius() const
static DDSolid unionSolid(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
friend std::ostream & operator<<(std::ostream &, const DDSolid &)
DDTranslation translation() const
std::vector< double > rMaxVec() const
static DDSolid polyhedra(const DDName &name, int sides, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polyhedra (refere to Geant3 or Geant4 documentation) //! Creates a polycone (refere to Gean...
double x1() const
Half-length along x of the side at y=-pDy1 of the face at -pDz.
bool atMinusZ() const
true, if cut-out or rounding is on the -z side