//////////////////////////////////////////////////////////////////////// /// \class RAT::PosGen_FillShell /// /// \brief Generate event vertices at random points within a spherical shell and contained in a specific volume. /// /// \author Phil Jones (p.g.jones@qmul.ac.uk) /// \author Matthew Mottram -- contact person /// /// REVISION HISTORY: /// - File inherited with rat at start of SNO+ /// - 2014-11-26: Matt Strait - doxygen fixes /// /// \details Syntax: /generator/pos/set //////////////////////////////////////////////////////////////////////// #ifndef __RAT_PosGen_FillShell__ #define __RAT_PosGen_FillShell__ #include #include #include namespace RAT { class PosGen_FillShell : public GLG4PosGen { public: PosGen_FillShell(const char* arg_dbname = "fillshell"); virtual void GeneratePosition(G4ThreeVector& argResult); void SetState(G4String newValues); G4String GetState() const; protected: G4VPhysicalVolume* FindPhysVolume(const std::string vol_name); void OffsetVolume(const std::string index, double& x, double& y, double& z); G4ThreeVector pos; std::vector pVolume; double ri; double ro; int max_iterations; }; } // namespace RAT #endif