////////////////////////////////////////////////////////////////////////
/// \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