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