//////////////////////////////////////////////////////////////////// /// \class GLG4PosGen /// /// \brief Base class of Position Generators /// /// \author Phil G Jones -- contact person /// /// REVISION HISTORY:\n /// 11 Jun 2012 : P.Jones - Refactor of GLG4PosGen. /// /// \details Base class for generating positions /// //////////////////////////////////////////////////////////////////// #ifndef __GLG4PosGen__ #define __GLG4PosGen__ #include #include class GLG4PosGen { public: /// Constructor sets teh default db name GLG4PosGen( const std::string& dbname = std::string( "pos" ) ) : fDbName( dbname ) { }; /// Empty destructor virtual ~GLG4PosGen() { }; /// Abstract interface for generating the position virtual void GeneratePosition( G4ThreeVector& argResult ) = 0; /// Abstract interface for setting the state virtual void SetState( G4String newValues ) = 0; /// Abstract interface for getting the state virtual G4String GetState() const = 0; virtual void BeginOfRun() { }; virtual void EndOfRun() { }; protected: std::string fDbName; ///< GLG4param key prefix std::string _dbname; ///< GLG4param key prefix }; #endif