////////////////////////////////////////////////////////////////////////
/// \class RAT::CuboidPMTConstructor
///
/// \brief Constructs a cube shape 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 cube shaped PMT.
///
////////////////////////////////////////////////////////////////////////
#ifndef __RAT_CuboidPMTConstructor__
#define __RAT_CuboidPMTConstructor__
#include
#include
#include
namespace RAT
{
class CuboidPMTConstructor : public PMTConstructor
{
public:
/// Constructor for the class, needs parameters and a name
CuboidPMTConstructor( const std::string& prefix, ///< Prefix string
const PMTConstructorParams& params ///< 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();
/// Returns the x dimension width
double GetXWidth();
/// Returns the y dimension width
double GetYWidth();
private:
///To prevent usage
CuboidPMTConstructor();
};
} //::RAT
#endif