27 out << polyhedraSolid;
48 if ((phiTotal <= 0) || (phiTotal >= 2 *
M_PI * (1 - 1e-16)))
51 return cos(0.5 * phiTotal /
NofSides());
57 out <<
" sphi = " <<
StartPhi() <<
"deg"
66 out <<
" " << i <<
"th plane: "
67 <<
" z = " << zvalues[i] <<
"mm"
68 <<
" rin = " << rinvalues[i] <<
"mm"
69 <<
" rout = " << routvalues[i] <<
"mm";
std::ostream & operator<<(std::ostream &out, const VGM::IPolyhedra &polyhedra)
double ConvertRadiusFactor() const
virtual std::ostream & Put(std::ostream &out) const
Put the printing of the solid parameters in the out stream.
The VGM interface to polyhedra solids.
virtual double * OuterRadiusValues() const =0
Return the array of outer radius of the planes in mm.
virtual int NofSides() const =0
Return number of sides of the cross section between the given phi limits.
virtual double StartPhi() const =0
Return starting phi angle of the segment in deg.
virtual double * InnerRadiusValues() const =0
Return the array of innner radius of the planes in mm.
virtual double * ZValues() const =0
Return the array of z positions of the planes in mm.
virtual double DeltaPhi() const =0
Return opening phi angle of the segment in deg.
virtual int NofZPlanes() const =0
Return number of planes perpendicular to the z axis.
The VGM interface to solids.
#define M_PI
Definition of math constant M_PI not available on Win32.