1 #ifndef DETECTOR_DESCRIPTION_CORE_DD_SOLID_H 2 #define DETECTOR_DESCRIPTION_CORE_DD_SOLID_H 60 const std::vector<double> &
parameters(
void )
const;
63 double volume(
void )
const;
86 double halfZ(
void )
const;
88 double theta(
void )
const;
90 double phi(
void )
const;
92 double y1(
void )
const;
94 double x1(
void )
const;
96 double x2(
void )
const;
98 double alpha1(
void )
const;
100 double y2(
void )
const;
102 double x3(
void )
const;
104 double x4(
void )
const;
106 double alpha2(
void )
const;
117 double halfZ(
void )
const;
119 double x1(
void )
const;
121 double x2(
void )
const;
123 double y1(
void )
const;
125 double y2(
void )
const;
127 double radius(
void )
const;
129 bool atMinusZ(
void )
const;
141 double zHalf(
void )
const;
143 double rIn(
void )
const;
145 double rOut(
void )
const;
147 double startPhi(
void )
const;
151 double cutAtStart(
void )
const;
153 double cutAtDelta(
void )
const;
155 bool cutInside(
void )
const;
168 DDBox(
void ) =
delete;
170 double halfX(
void )
const;
171 double halfY(
void )
const;
172 double halfZ(
void )
const;
208 const std::vector<DDSolid>& solids(
void )
const;
209 const std::vector<DDTranslation>& translations(
void )
const;
210 const std::vector<DDRotation>& rotations(
void )
const;
227 virtual std::vector<double> getVec(
const size_t&
which,
const size_t&
offset = 0,
const size_t& nVecs = 1 )
const;
237 double startPhi(
void )
const;
239 std::vector<double> zVec(
void )
const;
240 std::vector<double> rVec(
void )
const;
241 std::vector<double> rMinVec(
void )
const;
242 std::vector<double> rMaxVec(
void )
const;
252 int sides(
void )
const;
253 double startPhi(
void )
const;
255 std::vector<double> zVec(
void )
const;
256 std::vector<double> rVec(
void )
const;
257 std::vector<double> rMinVec(
void )
const;
258 std::vector<double> rMaxVec(
void )
const;
268 std::vector<double> xVec(
void )
const;
269 std::vector<double> yVec(
void )
const;
270 std::vector<double> zVec(
void )
const;
271 std::vector<double> zxVec(
void )
const;
272 std::vector<double> zyVec(
void )
const;
273 std::vector<double> zscaleVec(
void )
const;
277 auto xyPointsSize(
void )
const -> std::size_t;
278 auto zSectionsSize(
void )
const -> std::size_t;
288 double zhalf(
void )
const;
289 double rIn(
void )
const;
290 double rOut(
void )
const;
291 double startPhi(
void )
const;
302 double zhalf(
void )
const;
303 double rIn(
void )
const;
304 double rOut(
void )
const;
305 double startPhi(
void )
const;
307 std::array<double, 3> lowNorm(
void )
const;
308 std::array<double, 3> highNorm(
void )
const;
318 double zhalf(
void )
const;
319 double rInMinusZ(
void )
const;
320 double rOutMinusZ(
void )
const;
321 double rInPlusZ(
void )
const;
322 double rOutPlusZ(
void )
const;
323 double phiFrom(
void )
const;
334 double rMin(
void )
const;
335 double rMax(
void )
const;
336 double rTorus(
void )
const;
337 double startPhi(
void )
const;
382 double startPhi(
void )
const;
384 double startTheta(
void )
const;
385 double deltaTheta(
void )
const;
393 DDOrb(
void ) =
delete;
395 double radius(
void )
const;
405 double xSemiAxis(
void )
const;
406 double ySemiAxis(
void )
const;
407 double zHeight(
void )
const;
417 double xSemiAxis(
void )
const;
418 double ySemiAxis(
void )
const;
419 double zSemiAxis(
void )
const;
420 double zBottomCut(
void )
const;
421 double zTopCut(
void )
const;
431 double xHalf(
void )
const;
432 double yHalf(
void )
const;
433 double zHalf(
void )
const;
434 double alpha(
void )
const;
435 double theta(
void )
const;
436 double phi(
void )
const;
460 const std::vector<double> & z,
461 const std::vector<double> & rmin,
462 const std::vector<double> & rmax );
468 static DDSolid polycone(
const DDName & name,
double startPhi,
double deltaPhi,
469 const std::vector<double> & z,
470 const std::vector<double> &
r );
478 double startPhi,
double deltaPhi,
479 const std::vector<double> & z,
480 const std::vector<double> & rmin,
481 const std::vector<double> & rmax );
489 double startPhi,
double deltaPhi,
490 const std::vector<double> & z,
491 const std::vector<double> & r );
500 const std::vector<DDSolid> & a,
501 const std::vector<DDTranslation> & t,
502 const std::vector<DDRotation> & r );
518 double pTheta,
double pPhi,
519 double pDy1,
double pDx1,
double pDx2,
521 double pDy2,
double pDx3,
double pDx4,
545 double rIn,
double rOut,
551 double rIn,
double rOut,
554 double lx,
double ly,
double lz,
555 double tx,
double ty,
double tz);
593 double zBottomCut = 0.,
594 double zTopCut = 0. );
597 double xHalf,
double yHalf,
double zHalf,
601 const std::vector<double> & x,
602 const std::vector<double> & y,
603 const std::vector<double> & z,
604 const std::vector<double> & zx,
605 const std::vector<double> & zy,
606 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
DDName is used to identify DDD entities uniquely.
const DDI::BooleanSolid & boolean_
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)
Interface to a Trapezoid.
std::ostream & operator<<(std::ostream &, const DDSolid &)