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