/////////////////////////////////////////////////////////////////////////////// /// \class RAT::geo::SnoVessel /// /// \brief Builds a snoVessel /// /// \author Phil G Jones /// \author Aksel Hallin -- contact person /// /// REVISION HISTORY:\n /// 2013-08-07 : P G Jones - New file. \n /// /// \details SnoVessel solid factory. A sphere with a tube on top (along z /// axis). /// /////////////////////////////////////////////////////////////////////////////// #ifndef __RAT_geo_SnoVessel_hh__ #define __RAT_geo_SnoVessel_hh__ #include #include namespace RAT { namespace geo { class SnoVessel : public GeoSolid { public: /// Construct a SnoVessel SnoVessel() : GeoSolid( "snoVessel" ) { } /// Return the solid shape, as defined in the table /// /// @param[in] name the prefix for the solid name /// @param[in] table is the ratdb table defining the sno-vessel /// @return The geant4 solid for the sno-vessel virtual G4VSolid* Construct( const std::string& name, DBLinkPtr table ) const; protected: /// Build the SnoVessel shape /// /// @param[in] name the prefix for the solid name /// @param[in] rSphere radius of the sphere /// @param[in] rNeck radius of the neck /// @param[in] zNeck height of the neck /// @return The geant4 solid for the sno-vessel G4VSolid* ConstructSnoVessel( const std::string& name, const double rSphere, const double rNeck, const double zNeck ) const; }; } //::geo } //::RAT #endif