////////////////////////////////////////////////////////////////////////
/// \class RAT::GeoPMTFactoryBase
///
/// \brief Base class for any pmt factory.
///
/// \author Phil Jones
/// \author Aksel Hallin -- contact person
///
/// REVISION HISTORY:\n
/// 07/09 : P.Jones - First Revision, new file (GeoPMTBuilderBase). \n
/// 02/12 : P.Jones - Second Revision, split functions out into
/// GeoPMTFactoryBase.
///
/// \details PMT Factories that derive from this class directly can take
/// read the .geo file and setup the PMTS.
///
///
////////////////////////////////////////////////////////////////////////
#ifndef __RAT_GeoPMTFactoryBase__
#define __RAT_GeoPMTFactoryBase__
#include
#include
class G4Material;
namespace RAT
{
class PMTSD;
class GeoPMTFactoryBase : public GeoPMTBuilderBase
{
public:
GeoPMTFactoryBase() : GeoPMTBuilderBase() {}
// Deletes things
virtual ~GeoPMTFactoryBase() {}
protected:
/// Adds the pre built parts together into a single envelope volume
void AssembleFullPMT( DBLinkPtr table,
G4Material* motherMaterial );
/// Creates the optical model
void SetupOpticalModel( DBLinkPtr table );
};
} //::RAT
#endif