EllipticalTube

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#ifndef DDI_EllipticalTube_h
#define DDI_EllipticalTube_h

#include <DataFormats/GeometryVector/interface/Pi.h>
#include <iosfwd>
#include <vector>

#include "DetectorDescription/Core/interface/DDSolidShapes.h"
#include "Solid.h"

namespace DDI {

  class EllipticalTube : public Solid {
  public:
    EllipticalTube(double xSemiAxis, double ySemiAxis, double zHeight) : Solid(DDSolidShape::ddellipticaltube) {
      p_.emplace_back(xSemiAxis);
      p_.emplace_back(ySemiAxis);
      p_.emplace_back(zHeight);
    }
    ~EllipticalTube() override {}

    /// Not as flexible and possibly less accurate than G4 volume.
    double volume() const override;
    void stream(std::ostream& os) const override;
  };

}  // namespace DDI
#endif  // DDI_EllipticalTube_h