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
DDSolidShapes.h
DDI
Definition: DDCompactView.h:24
DDSolidShape
DDSolidShape
Definition: DDSolidShapes.h:6
DDI::EllipticalTube::EllipticalTube
EllipticalTube(double xSemiAxis, double ySemiAxis, double zHeight)
Definition: EllipticalTube.h:15
Solid.h
DDSolidShape::ddellipticaltube
Pi.h
DDI::EllipticalTube::volume
double volume() const override
Not as flexible and possibly less accurate than G4 volume.
Definition: EllipticalTube.cc:13
DDI::EllipticalTube
Definition: EllipticalTube.h:13
DDI::Solid
Definition: Solid.h:10
DDI::Solid::p_
std::vector< double > p_
Definition: Solid.h:30
DDI::EllipticalTube::stream
void stream(std::ostream &os) const override
Definition: EllipticalTube.cc:8
DDI::EllipticalTube::~EllipticalTube
~EllipticalTube() override
Definition: EllipticalTube.h:20