////////////////////////////////////////////////////////////////////////
/// \class RAT::TrackingMessenger
///
/// \brief Messenger class to the Tracking class
///
/// \author P G Jones
/// \author S Langrock -- contact person
///
/// REVISION HISTORY:\n
/// 2014-05-25 : P G Jones - New File \n
///
/// \details Change tracking settings.
///
////////////////////////////////////////////////////////////////////////
#ifndef __RAT_TrackingMessenger__
#define __RAT_TrackingMessenger__
#include
#include
class G4UIdirectory;
class G4UIcmdWithAString;
namespace RAT
{
class TrackingAction;
class TrackingMessenger : public G4UImessenger
{
public:
/// Construct the tracking messenger with a pointer to the TrackingAction
///
/// @param[in] trackingAction pointer
TrackingMessenger( TrackingAction* trackingAction );
/// Destroy the messenger, delete commands
virtual ~TrackingMessenger();
/// Called by Geant4 when a command is invoked
///
/// @param[in] command that has been invoked
/// @param[in] value that was set
void SetNewValue( G4UIcommand* command, G4String value );
protected:
TrackingAction* fTrackingAction; ///< Pointer to instance to pass commands to
G4UIdirectory* fTrackingDir; ///< The tracking UI directory
G4UIcmdWithAString* fStoreTrackingCmd; ///< Command to store tracking, including options
G4UIcmdWithAString* fOmitParticleCmd; ///< Command to omit tracking for a particle by name
};
} // namespace RAT
#endif