41 friend class DDDToPersFactory;
42 friend class DDPersToDDDFactory;
61 const std::vector<double> &
parameters(
void )
const;
64 double volume(
void )
const;
84 double halfZ(
void )
const;
86 double theta(
void )
const;
88 double phi(
void )
const;
90 double y1(
void )
const;
92 double x1(
void )
const;
94 double x2(
void )
const;
96 double alpha1(
void )
const;
98 double y2(
void )
const;
100 double x3(
void )
const;
102 double x4(
void )
const;
104 double alpha2(
void )
const;
115 double halfZ(
void )
const;
117 double x1(
void )
const;
119 double x2(
void )
const;
121 double y1(
void )
const;
123 double y2(
void )
const;
125 double radius(
void )
const;
127 bool atMinusZ(
void )
const;
139 double zHalf(
void )
const;
141 double rIn(
void )
const;
143 double rOut(
void )
const;
145 double startPhi(
void )
const;
149 double cutAtStart(
void )
const;
151 double cutAtDelta(
void )
const;
153 bool cutInside(
void )
const;
168 double halfX(
void )
const;
169 double halfY(
void )
const;
170 double halfZ(
void )
const;
190 DDSolid unreflected(
void )
const;
219 virtual std::vector<double> getVec(
const size_t&
which,
const size_t&
offset = 0,
const size_t& nVecs = 1 )
const;
227 double startPhi(
void )
const;
229 std::vector<double> zVec(
void )
const;
230 std::vector<double> rVec(
void )
const;
231 std::vector<double> rMinVec(
void )
const;
232 std::vector<double> rMaxVec(
void )
const;
242 int sides(
void )
const;
243 double startPhi(
void )
const;
245 std::vector<double> zVec(
void )
const;
246 std::vector<double> rVec(
void )
const;
247 std::vector<double> rMinVec(
void )
const;
248 std::vector<double> rMaxVec(
void )
const;
258 std::vector<double> xVec(
void )
const;
259 std::vector<double> yVec(
void )
const;
260 std::vector<double> zVec(
void )
const;
261 std::vector<double> zxVec(
void )
const;
262 std::vector<double> zyVec(
void )
const;
263 std::vector<double> zscaleVec(
void )
const;
273 double zhalf(
void )
const;
274 double rIn(
void )
const;
275 double rOut(
void )
const;
276 double startPhi(
void )
const;
287 double zhalf(
void )
const;
288 double rIn(
void )
const;
289 double rOut(
void )
const;
290 double startPhi(
void )
const;
292 std::array<double, 3> lowNorm(
void )
const;
293 std::array<double, 3> highNorm(
void )
const;
303 double zhalf(
void )
const;
304 double rInMinusZ(
void )
const;
305 double rOutMinusZ(
void )
const;
306 double rInPlusZ(
void )
const;
307 double rOutPlusZ(
void )
const;
308 double phiFrom(
void )
const;
319 double rMin(
void )
const;
320 double rMax(
void )
const;
321 double rTorus(
void )
const;
322 double startPhi(
void )
const;
362 double startPhi(
void )
const;
364 double startTheta(
void )
const;
365 double deltaTheta(
void )
const;
375 double radius(
void )
const;
385 double xSemiAxis(
void )
const;
386 double ySemiAxis(
void )
const;
387 double zHeight(
void )
const;
397 double xSemiAxis(
void )
const;
398 double ySemiAxis(
void )
const;
399 double zSemiAxis(
void )
const;
400 double zBottomCut(
void )
const;
401 double zTopCut(
void )
const;
411 double xHalf(
void )
const;
412 double yHalf(
void )
const;
413 double zHalf(
void )
const;
414 double alpha(
void )
const;
415 double theta(
void )
const;
416 double phi(
void )
const;
443 const std::vector<double> & z,
444 const std::vector<double> & rmin,
445 const std::vector<double> & rmax );
451 static DDSolid polycone(
const DDName & name,
double startPhi,
double deltaPhi,
452 const std::vector<double> & z,
453 const std::vector<double> &
r );
461 double startPhi,
double deltaPhi,
462 const std::vector<double> & z,
463 const std::vector<double> & rmin,
464 const std::vector<double> & rmax );
472 double startPhi,
double deltaPhi,
473 const std::vector<double> & z,
474 const std::vector<double> & r );
496 double pTheta,
double pPhi,
497 double pDy1,
double pDx1,
double pDx2,
499 double pDy2,
double pDx3,
double pDx4,
523 double rIn,
double rOut,
529 double rIn,
double rOut,
532 double lx,
double ly,
double lz,
533 double tx,
double ty,
double tz);
571 double zBottomCut = 0.,
572 double zTopCut = 0. );
575 double xHalf,
double yHalf,
double zHalf,
579 const std::vector<double> &
x,
580 const std::vector<double> & y,
581 const std::vector<double> & z,
582 const std::vector<double> & zx,
583 const std::vector<double> & zy,
584 const std::vector<double> & zscale );
A truncated tube section.
Abstract class for DDPolycone and DDPolyhedra. Basically a common member function.
This is simply a handle on the solid.
Geom::Theta< T > theta() const
Streaming the DDD transient store from/into a std::istream/std::ostream */.
DDName is used to identify DDD entities uniquely.
A DDSolid represents the shape of a part.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
T x() const
Cartesian x coordinate.
double intersection(double r12)
DDI::BooleanSolid * boolean_
DDI::Reflection * reflected_
Interface to a Trapezoid.
std::ostream & operator<<(std::ostream &, const DDSolid &)