Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 #ifdef USE_INFERENCE 27 # ifndef PAR04INFERENCEMESSENGER_H 28 # define PAR04INFERENCEMESSENGER_H 29 30 # include "G4UImessenger.hh" // for G4UIme 31 32 # include <G4String.hh> // for G4String 33 class G4UIcmdWithADoubleAndUnit; 34 class G4UIcmdWithAString; 35 class G4UIcmdWithAnInteger; 36 class G4UIcommand; 37 class G4UIdirectory; 38 class Par04InferenceSetup; 39 40 /** 41 * @brief Inference messenger. 42 * 43 * Provides UI commands to setup the inference 44 * path to the ML model, size of the latent sp 45 * vector and flags for optimization and profi 46 * mesh size (in cylindrical coordinates) that 47 * (full simulation). 48 * 49 */ 50 51 class Par04InferenceMessenger : public G4UImes 52 { 53 public: 54 Par04InferenceMessenger(Par04InferenceSetu 55 ~Par04InferenceMessenger(); 56 /// Invokes appropriate methods based on t 57 virtual void SetNewValue(G4UIcommand*, G4S 58 /// Retrieves the current settings 59 virtual G4String GetCurrentValue(G4UIcomma 60 61 private: 62 /// Inference to setup 63 Par04InferenceSetup* fInference = nullptr; 64 /// Command to set the directory common to 65 /// example /Par04 66 G4UIdirectory* fExampleDir = nullptr; 67 /// Command to set the directory for infer 68 G4UIdirectory* fInferenceDir = nullptr; 69 /// Command to set the inference library 70 G4UIcmdWithAString* fInferenceLibraryCmd = 71 /// Command to set fModelPathNameCmd 72 G4UIcmdWithAString* fModelPathNameCmd = nu 73 /// Command to set the fSizeLatentVectorCm 74 G4UIcmdWithAnInteger* fSizeLatentVectorCmd 75 /// Command to set the fSizeConditionVecto 76 G4UIcmdWithAnInteger* fSizeConditionVector 77 /// Command to set the fProfileFlagCmd 78 G4UIcmdWithAnInteger* fProfileFlagCmd = nu 79 /// Command to set the fOptimizationFlagCm 80 G4UIcmdWithAnInteger* fOptimizationFlagCmd 81 /// Command to set the number of cells in 82 /// rho axis) 83 G4UIcmdWithAnInteger* fMeshNbRhoCellsCmd = 84 /// Command to set the number of cells in 85 /// phi axis) 86 G4UIcmdWithAnInteger* fMeshNbPhiCellsCmd = 87 /// Command to set the number of cells in 88 /// z axis) 89 G4UIcmdWithAnInteger* fMeshNbZCellsCmd = n 90 /// Command to the size of cells in the cy 91 /// axis) 92 G4UIcmdWithADoubleAndUnit* fMeshSizeRhoCel 93 /// Command to the size of cells in the cy 94 /// axis) 95 G4UIcmdWithADoubleAndUnit* fMeshSizeZCells 96 /// Commands to set execution provider fla 97 /// GPU 98 G4UIcmdWithAnInteger* fCudaFlagCmd = nullp 99 /// Cuda Commands 100 G4UIdirectory* fCudaOptionsDir = nullptr; 101 G4UIcmdWithAString* fCudaDeviceIdCmd = nul 102 G4UIcmdWithAString* fCudaGpuMemLimitCmd = 103 G4UIcmdWithAString* fCudaArenaExtendedStra 104 G4UIcmdWithAString* fCudaCudnnConvAlgoSear 105 G4UIcmdWithAString* fCudaDoCopyInDefaultSt 106 G4UIcmdWithAString* fCudaCudnnConvUseMaxWo 107 }; 108 109 # endif 110 #endif 111