Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:24

0001 #ifndef DDI_EllipticalTube_h
0002 #define DDI_EllipticalTube_h
0003 
0004 #include <DataFormats/GeometryVector/interface/Pi.h>
0005 #include <iosfwd>
0006 #include <vector>
0007 
0008 #include "DetectorDescription/Core/interface/DDSolidShapes.h"
0009 #include "Solid.h"
0010 
0011 namespace DDI {
0012 
0013   class EllipticalTube : public Solid {
0014   public:
0015     EllipticalTube(double xSemiAxis, double ySemiAxis, double zHeight) : Solid(DDSolidShape::ddellipticaltube) {
0016       p_.emplace_back(xSemiAxis);
0017       p_.emplace_back(ySemiAxis);
0018       p_.emplace_back(zHeight);
0019     }
0020     ~EllipticalTube() override {}
0021 
0022     /// Not as flexible and possibly less accurate than G4 volume.
0023     double volume() const override;
0024     void stream(std::ostream& os) const override;
0025   };
0026 
0027 }  // namespace DDI
0028 #endif  // DDI_EllipticalTube_h