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 double zhalf(
void )
const;
259 double rIn(
void )
const;
260 double rOut(
void )
const;
261 double startPhi(
void )
const;
272 double zhalf(
void )
const;
273 double rIn(
void )
const;
274 double rOut(
void )
const;
275 double startPhi(
void )
const;
277 std::array<double, 3> lowNorm(
void )
const;
278 std::array<double, 3> highNorm(
void )
const;
288 double zhalf(
void )
const;
289 double rInMinusZ(
void )
const;
290 double rOutMinusZ(
void )
const;
291 double rInPlusZ(
void )
const;
292 double rOutPlusZ(
void )
const;
293 double phiFrom(
void )
const;
304 double rMin(
void )
const;
305 double rMax(
void )
const;
306 double rTorus(
void )
const;
307 double startPhi(
void )
const;
347 double startPhi(
void )
const;
349 double startTheta(
void )
const;
350 double deltaTheta(
void )
const;
360 double radius(
void )
const;
370 double xSemiAxis(
void )
const;
371 double ySemiAxis(
void )
const;
372 double zHeight(
void )
const;
382 double xSemiAxis(
void )
const;
383 double ySemiAxis(
void )
const;
384 double zSemiAxis(
void )
const;
385 double zBottomCut(
void )
const;
386 double zTopCut(
void )
const;
396 double xHalf(
void )
const;
397 double yHalf(
void )
const;
398 double zHalf(
void )
const;
399 double alpha(
void )
const;
400 double theta(
void )
const;
401 double phi(
void )
const;
428 const std::vector<double> & z,
429 const std::vector<double> & rmin,
430 const std::vector<double> & rmax );
436 static DDSolid polycone(
const DDName & name,
double startPhi,
double deltaPhi,
437 const std::vector<double> & z,
438 const std::vector<double> &
r );
446 double startPhi,
double deltaPhi,
447 const std::vector<double> & z,
448 const std::vector<double> & rmin,
449 const std::vector<double> & rmax );
457 double startPhi,
double deltaPhi,
458 const std::vector<double> & z,
459 const std::vector<double> & r );
481 double pTheta,
double pPhi,
482 double pDy1,
double pDx1,
double pDx2,
484 double pDy2,
double pDx3,
double pDx4,
508 double rIn,
double rOut,
514 double rIn,
double rOut,
517 double lx,
double ly,
double lz,
518 double tx,
double ty,
double tz);
556 double zBottomCut = 0.,
557 double zTopCut = 0. );
560 double xHalf,
double yHalf,
double zHalf,
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.
double intersection(double r12)
DDI::BooleanSolid * boolean_
DDI::Reflection * reflected_
Interface to a Trapezoid.
std::ostream & operator<<(std::ostream &, const DDSolid &)