Loading...
Searching...
No Matches
LETMessenger.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27/// \file radiobiology/src/LETMessenger.cc
28/// \brief Implementation of the RadioBio::LETMessenger class
29
30#include "LETMessenger.hh"
31
32#include "LET.hh"
33#include <G4UIcmdWithABool.hh>
34#include <G4UIcmdWithAString.hh>
35#include <G4UIcmdWithAnInteger.hh>
36#include <G4UIcmdWithoutParameter.hh>
37#include <G4UIdirectory.hh>
38
39namespace RadioBio
40{
41
42//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
43
45{
46 // Directory for LET commands
47 fLETDir = new G4UIdirectory("/LET/");
48 fLETDir->SetGuidance("commands to setup LET calculation");
49
50 // Activate LET calculation
51 fCalculationCmd = new G4UIcmdWithABool("/LET/calculate", this);
52 fCalculationCmd->SetGuidance("Whether to enable LET calculation");
53 fCalculationCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
54 fCalculationCmd->SetToBeBroadcasted(false);
55
56 // Set LET verbosity
57 fVerbosityCmd = new G4UIcmdWithAnInteger("/LET/verbose", this);
58 fVerbosityCmd->SetGuidance("Set verbosity level of LET");
59 fVerbosityCmd->SetGuidance("0 = quiet");
60 fVerbosityCmd->SetGuidance("1 = important messages (~10 per run)");
61 fVerbosityCmd->SetGuidance("2 = debug");
62 fVerbosityCmd->SetToBeBroadcasted(false);
63
64 // Reset LET data
65 fResetCmd = new G4UIcmdWithoutParameter("/LET/reset", this);
66 fResetCmd->SetGuidance("Reset accumulated data");
67 fResetCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
68 fResetCmd->SetToBeBroadcasted(false);
69
70 // Set LET filename
71 fLETPathCmd = new G4UIcmdWithAString("/LET/fileName", this);
72 fLETPathCmd->SetGuidance("Set the filename for the LET file");
73 fLETPathCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
74 fLETPathCmd->SetToBeBroadcasted(false);
75
76 // Print Parameters
77 fPrintCmd = new G4UIcmdWithoutParameter("/LET/print", this);
78 fPrintCmd->SetGuidance("Print LET parameters");
79 fPrintCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
80 fPrintCmd->SetToBeBroadcasted(false);
81}
82
83//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
84
86{
87 delete fLETDir;
88 delete fCalculationCmd;
89 delete fVerbosityCmd;
90 delete fResetCmd;
91 delete fLETPathCmd;
92 delete fPrintCmd;
93}
94
95//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
96
98{
99 if (command == fCalculationCmd) {
100 fLET->SetCalculationEnabled(fCalculationCmd->GetNewBoolValue(newValue));
101 }
102
103 if (command == fVerbosityCmd) {
104 fLET->SetVerboseLevel(fVerbosityCmd->GetNewIntValue(newValue));
105 }
106
107 if (command == fResetCmd) {
108 fLET->Reset();
109 }
110
111 if (command == fLETPathCmd) {
112 fLET->SetPath(newValue);
113 }
114
115 if (command == fPrintCmd) {
117 }
118}
119
120//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
121
122} // namespace RadioBio
Definition of the RadioBio::LETMessenger class.
Definition of the RadioBio::LET class.
G4UIcmdWithAString * fLETPathCmd
G4UIcmdWithABool * fCalculationCmd
void SetNewValue(G4UIcommand *, G4String) override
G4UIcmdWithoutParameter * fResetCmd
G4UIdirectory * fLETDir
G4UIcmdWithoutParameter * fPrintCmd
G4UIcmdWithAnInteger * fVerbosityCmd
void Reset() override
Definition LET.cc:233
void PrintParameters() override
Definition LET.cc:285

Applications | User Support | Publications | Collaboration