CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DDSolid.h
Go to the documentation of this file.
1 #ifndef DDSolid_h
2 #define DDSolid_h
3 
4 #include <stddef.h>
5 #include <iosfwd>
6 #include <vector>
7 
13 
14 class DDSolid;
15 class DDStreamer;
16 namespace DDI {
17 class BooleanSolid;
18 class Reflection;
19 class Solid;
20 } // namespace DDI
21 struct DDSolidFactory;
22 
23 std::ostream & operator<<( std::ostream &, const DDSolid & );
24 
26 
37 class DDSolid : public DDBase<DDName, DDI::Solid*>
38 {
39  friend std::ostream & operator<<( std::ostream &, const DDSolid & );
40  friend struct DDSolidFactory;
41  friend class DDDToPersFactory;
42  friend class DDPersToDDDFactory;
43  friend class DDStreamer;
44 
45 public:
47  DDSolid( void );
48 
50 
58  DDSolid( const DDName & name );
59 
61  const std::vector<double> & parameters( void ) const;
62 
64  double volume( void ) const;
65 
67  DDSolidShape shape( void ) const;
68 
69 private:
70  DDSolid( const DDName &, DDI::Solid * );
71  DDSolid( const DDName &, DDSolidShape, const std::vector<double> & );
72 };
73 
75 
79 class DDTrap : public DDSolid
80 {
81 public:
82  DDTrap( const DDSolid & s );
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;
105 
106 private:
107  DDTrap( void );
108 };
109 
110 class DDPseudoTrap : public DDSolid
111 {
112 public:
113  DDPseudoTrap( const DDSolid & s );
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;
128 
129 private:
130  DDPseudoTrap( void );
131 };
132 
134 class DDTruncTubs : public DDSolid
135 {
136 public:
137  DDTruncTubs( const DDSolid & s );
139  double zHalf( void ) const;
141  double rIn( void ) const;
143  double rOut( void ) const;
145  double startPhi( void ) const;
147  double deltaPhi( void ) const;
149  double cutAtStart( void ) const;
151  double cutAtDelta( void ) const;
153  bool cutInside( void ) const;
154 
155 private:
156  DDTruncTubs( void );
157 };
158 
160 
164 class DDBox : public DDSolid
165 {
166 public:
167  DDBox( const DDSolid & s );
168  double halfX( void ) const;
169  double halfY( void ) const;
170  double halfZ( void ) const;
171 
172 private:
173  DDBox( void );
174 };
175 
177 class DDShapelessSolid : public DDSolid
178 {
179 public:
180  DDShapelessSolid( const DDSolid & s );
181 
182 private:
183  DDShapelessSolid( void );
184 };
185 
187 {
188 public:
189  DDReflectionSolid( const DDSolid & s );
190  DDSolid unreflected( void ) const;
191 
192 private:
193  DDReflectionSolid( void );
195 };
196 
197 class DDBooleanSolid : public DDSolid
198 {
199 public:
200  DDBooleanSolid( const DDSolid & s );
201  DDSolid solidA( void ) const;
202  DDSolid solidB( void ) const;
203  DDTranslation translation( void ) const;
204  DDRotation rotation( void ) const;
205 
206 private:
207  DDBooleanSolid( void );
209 };
210 
212 class DDPolySolid : public DDSolid
213 {
214 public:
215  DDPolySolid( const DDSolid & s );
216 
217 protected:
219  virtual std::vector<double> getVec( const size_t& which, const size_t& offset = 0, const size_t& nVecs = 1 ) const;
220  DDPolySolid( void );
221 };
222 
223 class DDPolycone : public DDPolySolid
224 {
225 public:
226  DDPolycone( const DDSolid & s );
227  double startPhi( void ) const;
228  double deltaPhi( 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;
233 
234 private:
235  DDPolycone( void );
236 };
237 
238 class DDPolyhedra : public DDPolySolid
239 {
240 public:
241  DDPolyhedra( const DDSolid & s );
242  int sides( void ) const;
243  double startPhi( void ) const;
244  double deltaPhi( 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;
249 
250 private:
251  DDPolyhedra( void );
252 };
253 
254 class DDTubs : public DDSolid
255 {
256 public:
257  DDTubs( const DDSolid & s );
258  double zhalf( void ) const;
259  double rIn( void ) const;
260  double rOut( void ) const;
261  double startPhi( void ) const;
262  double deltaPhi( void ) const;
263 
264 private:
265  DDTubs( void );
266 };
267 
268 class DDCutTubs : public DDSolid
269 {
270 public:
271  DDCutTubs( const DDSolid & s );
272  double zhalf( void ) const;
273  double rIn( void ) const;
274  double rOut( void ) const;
275  double startPhi( void ) const;
276  double deltaPhi( void ) const;
277  std::array<double, 3> lowNorm( void ) const;
278  std::array<double, 3> highNorm( void ) const;
279 
280 private:
281  DDCutTubs( void );
282 };
283 
284 class DDCons : public DDSolid
285 {
286 public:
287  DDCons( const DDSolid & s );
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;
294  double deltaPhi( void ) const;
295 
296 private:
297  DDCons( void );
298 };
299 
300 class DDTorus : public DDSolid
301 {
302 public:
303  DDTorus( const DDSolid & s );
304  double rMin( void ) const;
305  double rMax( void ) const;
306  double rTorus( void ) const;
307  double startPhi( void ) const;
308  double deltaPhi( void ) const;
309 
310 private:
311  DDTorus( void );
312 };
313 
314 class DDUnion : public DDBooleanSolid
315 {
316 public:
317  DDUnion( const DDSolid & s );
318 
319 private:
320  DDUnion( void );
321 };
322 
324 {
325 public:
326  DDIntersection( const DDSolid & s );
327 
328 private:
329  DDIntersection( void );
330 };
331 
333 {
334 public:
335  DDSubtraction( const DDSolid & s );
336 
337 private:
338  DDSubtraction( void );
339 };
340 
341 class DDSphere : public DDSolid
342 {
343 public:
344  DDSphere( const DDSolid & s );
345  double innerRadius( void ) const;
346  double outerRadius( void ) const;
347  double startPhi( void ) const;
348  double deltaPhi( void ) const;
349  double startTheta( void ) const;
350  double deltaTheta( void ) const;
351 
352 private:
353  DDSphere( void );
354 };
355 
356 class DDOrb : public DDSolid
357 {
358 public:
359  DDOrb( const DDSolid & s );
360  double radius( void ) const;
361 
362 private:
363  DDOrb( void );
364 };
365 
366 class DDEllipticalTube : public DDSolid
367 {
368 public:
369  DDEllipticalTube( const DDSolid & s );
370  double xSemiAxis( void ) const;
371  double ySemiAxis( void ) const;
372  double zHeight( void ) const;
373 
374 private:
375  DDEllipticalTube( void );
376 };
377 
378 class DDEllipsoid : public DDSolid
379 {
380 public:
381  DDEllipsoid( const DDSolid & s );
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;
387 
388 private:
389  DDEllipsoid( void );
390 };
391 
392 class DDParallelepiped : public DDSolid
393 {
394 public:
395  DDParallelepiped( const DDSolid & s );
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;
402 
403 private:
404  DDParallelepiped( void );
405 };
406 
407 // Solid generation functions
408 //
410 {
412 
418  static DDSolid box( const DDName & name,
419  double xHalf,
420  double yHalf,
421  double zHalf );
422 
424 
427  static DDSolid polycone( const DDName & name, double startPhi, double deltaPhi,
428  const std::vector<double> & z,
429  const std::vector<double> & rmin,
430  const std::vector<double> & rmax );
431 
433 
436  static DDSolid polycone( const DDName & name, double startPhi, double deltaPhi,
437  const std::vector<double> & z,
438  const std::vector<double> & r );
439 
441 
444  static DDSolid polyhedra( const DDName & name,
445  int sides,
446  double startPhi, double deltaPhi,
447  const std::vector<double> & z,
448  const std::vector<double> & rmin,
449  const std::vector<double> & rmax );
450 
452 
455  static DDSolid polyhedra( const DDName & name,
456  int sides,
457  double startPhi, double deltaPhi,
458  const std::vector<double> & z,
459  const std::vector<double> & r );
460 
461  static DDSolid unionSolid( const DDName & name,
462  const DDSolid & a,
463  const DDSolid & b,
464  const DDTranslation & t,
465  const DDRotation & r );
466 
467  static DDSolid intersection( const DDName & name,
468  const DDSolid & a,
469  const DDSolid & b,
470  const DDTranslation & t,
471  const DDRotation & r );
472 
473  static DDSolid subtraction( const DDName & name,
474  const DDSolid & a,
475  const DDSolid & b,
476  const DDTranslation & t,
477  const DDRotation & r );
478 
479  static DDSolid trap( const DDName & name,
480  double pDz,
481  double pTheta, double pPhi,
482  double pDy1, double pDx1, double pDx2,
483  double pAlp1,
484  double pDy2, double pDx3, double pDx4,
485  double pAlp2 );
486 
487  static DDSolid pseudoTrap( const DDName & name,
488  double pDx1,
489  double pDx2,
490  double pDy1,
491  double pDy2,
492  double pDz,
493  double radius,
494  bool atMinusZ );
496  static DDSolid truncTubs( const DDName & name,
497  double zHalf,
498  double rIn,
499  double rOut,
500  double startPhi,
501  double deltaPhi,
502  double cutAtStart,
503  double cutAtDelta,
504  bool cutInside );
505 
506  static DDSolid tubs( const DDName & name,
507  double zhalf,
508  double rIn, double rOut,
509  double startPhi,
510  double deltaPhi );
511 
512  static DDSolid cuttubs( const DDName & name,
513  double zhalf,
514  double rIn, double rOut,
515  double startPhi,
516  double deltaPhi,
517  double lx, double ly, double lz,
518  double tx, double ty, double tz);
519 
520  static DDSolid cons( const DDName & name,
521  double zhalf,
522  double rInMinusZ,
523  double rOutMinusZ,
524  double rInPlusZ,
525  double rOutPlusZ,
526  double phiFrom,
527  double deltaPhi );
528 
529  static DDSolid torus( const DDName & name,
530  double rMin,
531  double rMax,
532  double rTorus,
533  double startPhi,
534  double deltaPhi );
535 
536  static DDSolid sphere( const DDName & name,
537  double innerRadius,
538  double outerRadius,
539  double startPhi,
540  double deltaPhi,
541  double startTheta,
542  double deltaTheta );
543 
544  static DDSolid orb( const DDName & name,
545  double radius );
546 
547  static DDSolid ellipticalTube( const DDName & name,
548  double xSemiAxis,
549  double ySemiAxis,
550  double zHeight );
551 
552  static DDSolid ellipsoid( const DDName & name,
553  double xSemiAxis,
554  double ySemiAxis,
555  double zSemiAxis,
556  double zBottomCut = 0.,
557  double zTopCut = 0. );
558 
559  static DDSolid parallelepiped( const DDName & name,
560  double xHalf, double yHalf, double zHalf,
561  double alpha, double theta, double phi );
562 
563 
564  static DDSolid shapeless( const DDName & name );
565 
566  static DDSolid reflection( const DDName & name,
567  const DDSolid & s );
568 };
569 
570 #endif
double zhalf(void) const
Definition: DDSolid.cc:465
Definition: DDBase.h:10
static DDSolid torus(const DDName &name, double rMin, double rMax, double rTorus, double startPhi, double deltaPhi)
Definition: DDSolid.cc:813
double startPhi(void) const
Definition: DDSolid.cc:422
double zhalf(void) const
Definition: DDSolid.cc:670
double cutAtStart(void) const
truncation at begin of the tube-section
Definition: DDSolid.cc:218
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
Definition: DDSolid.cc:157
double xHalf(void) const
Definition: DDSolid.cc:647
double xSemiAxis(void) const
Definition: DDSolid.cc:626
float alpha
Definition: AMPTWrapper.h:95
double phi(void) const
Definition: DDSolid.cc:657
double halfZ(void) const
half of the z-Axis
Definition: DDSolid.cc:174
def which
Definition: eostools.py:335
bool cutInside(void) const
true, if truncation is on the inner side of the tube-section
Definition: DDSolid.cc:222
double halfZ(void) const
Definition: DDSolid.cc:265
std::vector< double > rVec(void) const
Definition: DDSolid.cc:379
A truncated tube section.
Definition: DDSolid.h:134
double theta(void) const
Definition: DDSolid.cc:655
double x1(void) const
Half-length along x of the side at y=-pDy1 of the face at -pDz.
Definition: DDSolid.cc:182
const DDName & name() const
Definition: DDBase.h:78
double zHalf(void) const
half of the z-Axis
Definition: DDSolid.cc:208
double y2(void) const
half length along y on +z
Definition: DDSolid.cc:243
double halfY(void) const
Definition: DDSolid.cc:263
double startTheta(void) const
Definition: DDSolid.cc:581
std::vector< double > rMaxVec(void) const
Definition: DDSolid.cc:447
double deltaPhi(void) const
angular span of the tube-section
Definition: DDSolid.cc:216
static DDSolid pseudoTrap(const DDName &name, double pDx1, double pDx2, double pDy1, double pDy2, double pDz, double radius, bool atMinusZ)
Definition: DDSolid.cc:772
double deltaPhi(void) const
Definition: DDSolid.cc:579
std::vector< double > rMaxVec(void) const
Definition: DDSolid.cc:400
static DDSolid parallelepiped(const DDName &name, double xHalf, double yHalf, double zHalf, double alpha, double theta, double phi)
Definition: DDSolid.cc:882
Abstract class for DDPolycone and DDPolyhedra. Basically a common member function.
Definition: DDSolid.h:212
double phi(void) const
Azimuthal angle of the line joining the centres of the faces at -/+pDz.
Definition: DDSolid.cc:178
This is simply a handle on the solid.
Definition: DDSolid.h:177
virtual std::vector< double > getVec(const size_t &which, const size_t &offset=0, const size_t &nVecs=1) const
note defaults please.
Definition: DDSolid.cc:340
static DDSolid cons(const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi)
Definition: DDSolid.cc:798
std::array< double, 3 > highNorm(void) const
Definition: DDSolid.cc:684
static DDSolid polycone(const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polycone (refere to Geant3 or Geant4 documentation)
Definition: DDSolid.cc:691
friend class DDPersToDDDFactory
Definition: DDSolid.h:42
double rTorus(void) const
Definition: DDSolid.cc:494
DDSolidShape
Definition: DDSolidShapes.h:6
std::vector< double > rVec(void) const
Definition: DDSolid.cc:426
double cutAtDelta(void) const
truncation at end of the tube-section
Definition: DDSolid.cc:220
double phiFrom(void) const
Definition: DDSolid.cc:475
Geom::Theta< T > theta() const
Streaming the DDD transient store from/into a std::istream/std::ostream */.
Definition: DDStreamer.h:42
double zTopCut(void) const
Definition: DDSolid.cc:634
DDTorus(void)
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:16
double radius(void) const
Definition: DDSolid.cc:596
double rIn(void) const
inner radius
Definition: DDSolid.cc:210
double rOutMinusZ(void) const
Definition: DDSolid.cc:469
double rOutPlusZ(void) const
Definition: DDSolid.cc:473
DDTranslation translation(void) const
Definition: DDSolid.cc:547
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:188
double ySemiAxis(void) const
Definition: DDSolid.cc:628
double innerRadius(void) const
Definition: DDSolid.cc:573
A DDSolid represents the shape of a part.
Definition: DDSolid.h:37
DDPseudoTrap(void)
double y1(void) const
half length along y on -z
Definition: DDSolid.cc:241
DDSolid solidB(void) const
Definition: DDSolid.cc:557
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
double rMax(void) const
Definition: DDSolid.cc:492
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:66
DDTubs(void)
static DDSolid cuttubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi, double lx, double ly, double lz, double tx, double ty, double tz)
Definition: DDSolid.cc:831
std::array< double, 3 > lowNorm(void) const
Definition: DDSolid.cc:680
double outerRadius(void) const
Definition: DDSolid.cc:575
DDUnion(void)
DDSolid unreflected(void) const
Definition: DDSolid.cc:279
double x4(void) const
Half-length along x of the side at y=+pDy2 of the face at +pDz.
Definition: DDSolid.cc:192
DDI::BooleanSolid * boolean_
Definition: DDSolid.h:208
static DDSolid intersection(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Definition: DDSolid.cc:749
DDRotation rotation(void) const
Definition: DDSolid.cc:542
double yHalf(void) const
Definition: DDSolid.cc:649
bool atMinusZ(void) const
true, if cut-out or rounding is on the -z side
Definition: DDSolid.cc:247
double halfZ(void) const
half of the z-Axis
Definition: DDSolid.cc:235
std::vector< double > rMinVec(void) const
Definition: DDSolid.cc:393
double startPhi(void) const
Definition: DDSolid.cc:518
double startPhi(void) const
Definition: DDSolid.cc:375
double xSemiAxis(void) const
Definition: DDSolid.cc:609
static DDSolid sphere(const DDName &name, double innerRadius, double outerRadius, double startPhi, double deltaPhi, double startTheta, double deltaTheta)
Definition: DDSolid.cc:841
static DDSolid orb(const DDName &name, double radius)
Definition: DDSolid.cc:854
DDI::Reflection * reflected_
Definition: DDSolid.h:194
double deltaPhi(void) const
Definition: DDSolid.cc:377
static DDSolid ellipsoid(const DDName &name, double xSemiAxis, double ySemiAxis, double zSemiAxis, double zBottomCut=0., double zTopCut=0.)
Definition: DDSolid.cc:865
Interface to a Trapezoid.
Definition: DDSolid.h:79
double startPhi(void) const
Definition: DDSolid.cc:577
double alpha(void) const
Definition: DDSolid.cc:653
double y1(void) const
Half-length along y of the face at -pDz.
Definition: DDSolid.cc:180
double rInMinusZ(void) const
Definition: DDSolid.cc:467
DDSolidShape shape(void) const
The type of the solid.
Definition: DDSolid.cc:151
double rOut(void) const
Definition: DDSolid.cc:674
double deltaTheta(void) const
Definition: DDSolid.cc:583
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
Definition: DDSolid.cc:823
double ySemiAxis(void) const
Definition: DDSolid.cc:611
DDPolySolid(void)
static DDSolid truncTubs(const DDName &name, double zHalf, double rIn, double rOut, double startPhi, double deltaPhi, double cutAtStart, double cutAtDelta, bool cutInside)
Definition: DDSolid.cc:785
DDTrap(void)
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
Definition: DDSolid.cc:758
double rMin(void) const
Definition: DDSolid.cc:490
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
Definition: DDSolid.cc:526
std::vector< double > rMinVec(void) const
Definition: DDSolid.cc:440
double rOut(void) const
Definition: DDSolid.cc:516
double deltaPhi(void) const
Definition: DDSolid.cc:678
DDPolycone(void)
DDOrb(void)
DDCutTubs(void)
int sides(void) const
Definition: DDSolid.cc:420
DDSolid solidA(void) const
Definition: DDSolid.cc:552
double deltaPhi(void) const
Definition: DDSolid.cc:477
DDTruncTubs(void)
double deltaPhi(void) const
Definition: DDSolid.cc:520
double startPhi(void) const
Definition: DDSolid.cc:496
double halfX(void) const
Definition: DDSolid.cc:261
DDPolyhedra(void)
static DDSolid ellipticalTube(const DDName &name, double xSemiAxis, double ySemiAxis, double zHeight)
Definition: DDSolid.cc:859
std::vector< double > zVec(void) const
Definition: DDSolid.cc:433
double deltaPhi(void) const
Definition: DDSolid.cc:498
Interface to a Box.
Definition: DDSolid.h:164
DDIntersection(void)
static DDSolid subtraction(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Definition: DDSolid.cc:740
friend class DDDToPersFactory
Definition: DDSolid.h:41
double b
Definition: hdecay.h:120
double alpha1(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy1 to the centre at y=+pDy1 of t...
Definition: DDSolid.cc:186
DDSphere(void)
DDSubtraction(void)
double alpha2(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy2 to the centre at y=+pDy2 of t...
Definition: DDSolid.cc:194
DDBooleanSolid(void)
double startPhi(void) const
angular start of the tube-section
Definition: DDSolid.cc:214
double zBottomCut(void) const
Definition: DDSolid.cc:632
Definition: DDSolid.h:356
double x2(void) const
Half-length along x of the side at y=+pDy1 of the face at -pDz.
Definition: DDSolid.cc:184
double zhalf(void) const
Definition: DDSolid.cc:512
static DDSolid reflection(const DDName &name, const DDSolid &s)
Definition: DDSolid.cc:896
static DDSolid shapeless(const DDName &name)
Definition: DDSolid.cc:890
DDBox(void)
DDEllipsoid(void)
double zHeight(void) const
Definition: DDSolid.cc:613
double a
Definition: hdecay.h:121
double zSemiAxis(void) const
Definition: DDSolid.cc:630
double deltaPhi(void) const
Definition: DDSolid.cc:424
double y2(void) const
Half-length along y of the face at +pDz.
Definition: DDSolid.cc:188
double rInPlusZ(void) const
Definition: DDSolid.cc:471
DDSolid(void)
Uninitialilzed solid reference-object; for further details on reference-objects see documentation of ...
Definition: DDSolid.cc:59
double zHalf(void) const
Definition: DDSolid.cc:651
static DDSolid unionSolid(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Definition: DDSolid.cc:731
friend std::ostream & operator<<(std::ostream &, const DDSolid &)
Definition: DDSolid.cc:37
double x2(void) const
half length along x on +z
Definition: DDSolid.cc:239
double rIn(void) const
Definition: DDSolid.cc:672
double rIn(void) const
Definition: DDSolid.cc:514
double rOut(void) const
outer radius
Definition: DDSolid.cc:212
double theta(void) const
Polar angle of the line joining the centres of the faces at -/+pDz.
Definition: DDSolid.cc:176
static DDSolid polyhedra(const DDName &name, int sides, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polyhedra (refere to Geant3 or Geant4 documentation)
Definition: DDSolid.cc:708
double x3(void) const
Half-length along x of the side at y=-pDy2 of the face at +pDz.
Definition: DDSolid.cc:190
double volume(void) const
Returns the volume of the given solid (does not work with boolean soids !)
Definition: DDSolid.cc:140
std::vector< double > zVec(void) const
Definition: DDSolid.cc:386
double x1(void) const
half length along x on -z
Definition: DDSolid.cc:237
DDCons(void)
double startPhi(void) const
Definition: DDSolid.cc:676
double radius(void) const
radius of the cut-out (neg.) or rounding (pos.)
Definition: DDSolid.cc:245