///////////////////////////////////////////////////////////////////////////////
/// \class RAT::DetectorMessenger
///
/// \brief The messenger class detector aspects, geo and materials.
///
/// \author P G Jones,
///
/// REVISION HISTORY:\n
/// 2014-07-28 : P Jones - new file, roughly replaces GLG4DebugMessenger.\n
///
/// \details Introduces commands to output the materials, surface and geometry
/// properties in the simulation.
///
///////////////////////////////////////////////////////////////////////////////
#ifndef __RAT_DetectorMessenger_hh__
#define __RAT_DetectorMessenger_hh__
#include
#include
class G4UIdirectory;
class G4UIcmdWithABool;
class G4UIcmdWithAString;
namespace RAT
{
class Detector;
class DetectorMessenger: public G4UImessenger
{
public:
/// Construct this messenger with a pointer to the relevant detector instance
///
/// @param[in] detector for the commands to act upon
DetectorMessenger( Detector* const detector );
/// Cleanup commands
~DetectorMessenger();
/// Called when a user command is executed
///
/// @param[in] command specified by user
/// @param[in] value specified by user
void SetNewValue( G4UIcommand* command, G4String value );
private:
Detector* fDetector; ///< Pointer to the detector instance this acts on
G4UIdirectory* fDetectorDir; ///< The UI directory for detector commands
G4UIcmdWithAString* fMaterialCmd; ///< Command to output material properties
G4UIcmdWithAString* fGeometryCmd; ///< Command to output geometry properties
G4UIcmdWithAString* fSurfaceCmd; ///< Command to output surface properties
G4UIcmdWithABool* fCheckOverlapsCmd; //< Command to force overlap checking
};
} //::RAT
#endif