1 #ifndef DETECTOR_DESCRIPTION_CORE_DD_SOLID_H 2 #define DETECTOR_DESCRIPTION_CORE_DD_SOLID_H 59 const std::vector<double>&
parameters(
void)
const;
62 double volume(
void)
const;
83 double halfZ(
void)
const;
85 double theta(
void)
const;
87 double phi(
void)
const;
89 double y1(
void)
const;
91 double x1(
void)
const;
93 double x2(
void)
const;
95 double alpha1(
void)
const;
97 double y2(
void)
const;
99 double x3(
void)
const;
101 double x4(
void)
const;
103 double alpha2(
void)
const;
112 double halfZ(
void)
const;
114 double x1(
void)
const;
116 double x2(
void)
const;
118 double y1(
void)
const;
120 double y2(
void)
const;
122 double radius(
void)
const;
124 bool atMinusZ(
void)
const;
134 double zHalf(
void)
const;
136 double rIn(
void)
const;
138 double rOut(
void)
const;
140 double startPhi(
void)
const;
144 double cutAtStart(
void)
const;
146 double cutAtDelta(
void)
const;
148 bool cutInside(
void)
const;
159 DDBox(
void) =
delete;
161 double halfX(
void)
const;
162 double halfY(
void)
const;
163 double halfZ(
void)
const;
192 const std::vector<DDSolid>& solids(
void)
const;
193 const std::vector<DDTranslation>& translations(
void)
const;
194 const std::vector<DDRotation>& rotations(
void)
const;
208 virtual std::vector<double> getVec(
const size_t&
which,
const size_t&
offset = 0,
const size_t& nVecs = 1)
const;
216 double startPhi(
void)
const;
218 std::vector<double> zVec(
void)
const;
219 std::vector<double> rVec(
void)
const;
220 std::vector<double> rMinVec(
void)
const;
221 std::vector<double> rMaxVec(
void)
const;
229 int sides(
void)
const;
230 double startPhi(
void)
const;
232 std::vector<double> zVec(
void)
const;
233 std::vector<double> rVec(
void)
const;
234 std::vector<double> rMinVec(
void)
const;
235 std::vector<double> rMaxVec(
void)
const;
243 std::vector<double> xVec(
void)
const;
244 std::vector<double> yVec(
void)
const;
245 std::vector<double> zVec(
void)
const;
246 std::vector<double> zxVec(
void)
const;
247 std::vector<double> zyVec(
void)
const;
248 std::vector<double> zscaleVec(
void)
const;
251 auto xyPointsSize(
void)
const -> std::size_t;
252 auto zSectionsSize(
void)
const -> std::size_t;
260 double zhalf(
void)
const;
261 double rIn(
void)
const;
262 double rOut(
void)
const;
263 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;
286 double zhalf(
void)
const;
287 double rInMinusZ(
void)
const;
288 double rOutMinusZ(
void)
const;
289 double rInPlusZ(
void)
const;
290 double rOutPlusZ(
void)
const;
291 double phiFrom(
void)
const;
300 double rMin(
void)
const;
301 double rMax(
void)
const;
302 double rTorus(
void)
const;
303 double startPhi(
void)
const;
338 double startPhi(
void)
const;
340 double startTheta(
void)
const;
341 double deltaTheta(
void)
const;
347 DDOrb(
void) =
delete;
349 double radius(
void)
const;
357 double xSemiAxis(
void)
const;
358 double ySemiAxis(
void)
const;
359 double zHeight(
void)
const;
367 double xSemiAxis(
void)
const;
368 double ySemiAxis(
void)
const;
369 double zSemiAxis(
void)
const;
370 double zBottomCut(
void)
const;
371 double zTopCut(
void)
const;
379 double xHalf(
void)
const;
380 double yHalf(
void)
const;
381 double zHalf(
void)
const;
382 double alpha(
void)
const;
383 double theta(
void)
const;
384 double phi(
void)
const;
397 static DDSolid box(
const DDName&
name,
double xHalf,
double yHalf,
double zHalf);
406 const std::vector<double>& z,
407 const std::vector<double>& rmin,
408 const std::vector<double>& rmax);
415 const DDName& name,
double startPhi,
double deltaPhi,
const std::vector<double>& z,
const std::vector<double>&
r);
425 const std::vector<double>& z,
426 const std::vector<double>& rmin,
427 const std::vector<double>& rmax);
437 const std::vector<double>& z,
438 const std::vector<double>& r);
444 const std::vector<DDSolid>& a,
445 const std::vector<DDTranslation>& t,
446 const std::vector<DDRotation>& r);
486 static DDSolid tubs(
const DDName& name,
double zhalf,
double rIn,
double rOut,
double startPhi,
double deltaPhi);
510 static DDSolid torus(
const DDName& name,
double rMin,
double rMax,
double rTorus,
double startPhi,
double deltaPhi);
522 static DDSolid ellipticalTube(
const DDName& name,
double xSemiAxis,
double ySemiAxis,
double zHeight);
528 double zBottomCut = 0.,
529 double zTopCut = 0.);
532 const DDName& name,
double xHalf,
double yHalf,
double zHalf,
double alpha,
double theta,
double phi);
535 const std::vector<double>& x,
536 const std::vector<double>& y,
537 const std::vector<double>& z,
538 const std::vector<double>& zx,
539 const std::vector<double>& zy,
540 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.
alpha
zGenParticlesMatch = cms.InputTag(""),
std::ostream & operator<<(std::ostream &, const DDSolid &)