//////////////////////////////////////////////////////////////////////// /// \class RAT::CylindricalPMTConstructor /// /// \brief Constructs a cylindrically shaped PMT /// /// \author Phil Jones /// \author Aksel Hallin -- contact person /// /// REVISION HISTORY:\n /// 03/12 : P.Jones - First Revision, new file. \n /// /// \details Extends PMTConstructor to produce a cylindrically shaped PMT. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_CylindricalPMTConstructor__ #define __RAT_CylindricalPMTConstructor__ #include #include #include namespace RAT { class CylindricalPMTConstructor : public PMTConstructor { public: /// Constructor for the class, needs parameters and a name CylindricalPMTConstructor( const std::string &prefix, ///< Prefix string const PMTConstructorParams ¶ms ///< Parameters that define the pmt ); /// Construct the G4LogicalVolume that is a RAT PMT void ConstructLogical(); /// Returns the Max height above the pmt equator of the bucket double GetMaxHeight(); /// Returns the Max depth below the pmt equator of the bucket (note returns a -ive number) double GetMaxDepth(); /// Returns the Max radius double GetHexRadius(); private: ///To prevent usage CylindricalPMTConstructor(); }; } //::RAT #endif