/// @file AllPixDetectorMessenger.hh /// @brief Header file for the Allpix detector messenger class. #ifndef AllPixDetectorMessenger_h #define AllPixDetectorMessenger_h 1 // GEANT4 include statements. #include "globals.hh" #include "G4UImessenger.hh" // Forward declarations. class AllPixDetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithoutParameter; class G4UIcmdWith3VectorAndUnit; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; /// @brief The Allpix detector messenger class. /// /// @author J. Idarraga (principle author - idarraga@cern.ch) /// @author T. Whyntie (editor, CERN\@school - t.whyntie@qmul.ac.uk) /// @date Ed. February 2014 class AllPixDetectorMessenger: public G4UImessenger { public: /// @brief The constructor. AllPixDetectorMessenger(AllPixDetectorConstruction* ); /// @brief The destructor. ~AllPixDetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: AllPixDetectorConstruction * m_AllPixDetector; G4UIdirectory * m_allpixDir; G4UIdirectory * m_detDir; G4UIdirectory * m_configDir; G4UIdirectory * m_extrasDir; /// @brief Directory for lab-based commands. G4UIdirectory * m_labDir; // Detector configuration commands. /// @brief Command for selecting the detector ID. G4UIcmdWithAnInteger * m_detIdCmd; G4UIcmdWith3VectorAndUnit * m_detPosCmd; G4UIcmdWith3VectorAndUnit * m_detRotCmd; /// @brief Command for setting the detector foil thickness. G4UIcmdWithADoubleAndUnit * m_detFoilThicknessCmd; /// @brief Command for selecting which test structure to use. G4UIcmdWithAString * m_testStructureNameCmd; /// @brief Command for setting the test structure position. G4UIcmdWith3VectorAndUnit * m_testStructPosCmd; /// @brief Command for setting the test structure rotation. G4UIcmdWith3VectorAndUnit * m_testStructRotCmd; G4UIcmdWithAnInteger * m_testStructDetLinkCmd; /// @brief Command for setting the test structure shielding thickness. G4UIcmdWithADoubleAndUnit * m_testStructureShieldingThicknessCmd; G4UIcmdWith3VectorAndUnit * m_detAppliancePosCmd; // G4UIcmdWith3VectorAndUnit * m_wrapperEnhancementCmd; G4UIcmdWithADoubleAndUnit * m_magFieldCmd; /// @brief Command for setting the lab latitude. G4UIcmdWithADoubleAndUnit * m_labLatCmd; /// @brief Command for setting the lab longitude. G4UIcmdWithADoubleAndUnit * m_labLonCmd; /// @brief Command for setting the lab altitude. G4UIcmdWithADoubleAndUnit * m_labAltCmd; /// @brief Command for setting the lab roll angle. G4UIcmdWithADoubleAndUnit * m_labRollCmd; /// @brief Command for setting the lab pitch angle. G4UIcmdWithADoubleAndUnit * m_labPitchCmd; /// @brief Command for setting the lab yaw angle. G4UIcmdWithADoubleAndUnit * m_labYawCmd; /// @brief Command for setting the source ID. G4UIcmdWithAString * m_sourceIdCmd; G4UIcmdWithAString * m_worldMaterial; // // Configuration commands // //------------------------ // G4UIcmdWithAString * m_outputPrefix; // /// @brief The number of source particle events to store per frame. // G4UIcmdWithAnInteger * m_eventsPerFrame; // /// @brief The chip ID. // G4UIcmdWithAString * m_chipId; G4UIcmdWithADoubleAndUnit * m_HighTHLCmd; G4UIcmdWithADoubleAndUnit * m_LowTHLCmd; G4UIcmdWithADoubleAndUnit * m_AcqTimeCmd; G4UIcmdWithADoubleAndUnit * m_HVCmd; G4UIcmdWithADoubleAndUnit * m_ClockCmd; G4UIcmdWithADoubleAndUnit * m_StepLengthSensor; G4UIcmdWithoutParameter * m_UpdateCmd; #ifdef _EUTELESCOPE // Specific EUTelescope G4UIcmdWith3VectorAndUnit * m_scint1PosCmd; G4UIcmdWith3VectorAndUnit * m_scint2PosCmd; G4UIcmdWith3VectorAndUnit * m_scint3PosCmd; G4UIcmdWith3VectorAndUnit * m_scint4PosCmd; #endif };//end of the AllPixDetectorMessenger class definition. #endif