CMS 3D CMS Logo

EllipticalTube.h
Go to the documentation of this file.
1 #ifndef DDI_EllipticalTube_h
2 #define DDI_EllipticalTube_h
3 
5 #include <iosfwd>
6 #include <vector>
7 
9 #include "Solid.h"
10 
11 namespace DDI {
12 
13  class EllipticalTube : public Solid {
14  public:
15  EllipticalTube(double xSemiAxis, double ySemiAxis, double zHeight) : Solid(DDSolidShape::ddellipticaltube) {
16  p_.emplace_back(xSemiAxis);
17  p_.emplace_back(ySemiAxis);
18  p_.emplace_back(zHeight);
19  }
20  ~EllipticalTube() override {}
21 
23  double volume() const override;
24  void stream(std::ostream& os) const override;
25  };
26 
27 } // namespace DDI
28 #endif // DDI_EllipticalTube_h
double volume() const override
Not as flexible and possibly less accurate than G4 volume.
void stream(std::ostream &os) const override
Definition: Assembly.h:7
DDSolidShape
Definition: DDSolidShapes.h:6
std::vector< double > p_
Definition: Solid.h:30
EllipticalTube(double xSemiAxis, double ySemiAxis, double zHeight)
~EllipticalTube() override