Loading...
Searching...
No Matches
RBEMessenger.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/RBEMessenger.cc
28/// \brief Implementation of the RadioBio::RBEMessenger class
29
30#include "RBEMessenger.hh"
31
32#include "RBE.hh"
33#include <G4UIcmdWithABool.hh>
34#include <G4UIcmdWithADouble.hh>
35#include <G4UIcmdWithAString.hh>
36#include <G4UIcmdWithAnInteger.hh>
37#include <G4UIcmdWithoutParameter.hh>
38#include <G4UIdirectory.hh>
39
40namespace RadioBio
41{
42
43//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
44
46{
47 // Directory for RBE commands
48 fRBEDir = new G4UIdirectory("/rbe/");
49 fRBEDir->SetGuidance("commands to setup RBE calculation");
50
51 // Activate RBE calculation
52 fCalculationCmd = new G4UIcmdWithABool("/rbe/calculate", this);
53 fCalculationCmd->SetGuidance("Whether to enable RBE calculation");
54 fCalculationCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
55 fCalculationCmd->SetToBeBroadcasted(false);
56
57 // Set RBE verbosity
58 fVerbosityCmd = new G4UIcmdWithAnInteger("/rbe/verbose", this);
59 fVerbosityCmd->SetGuidance("Set verbosity level of RBE");
60 fVerbosityCmd->SetGuidance("0 = quiet");
61 fVerbosityCmd->SetGuidance("1 = important messages (~10 per run)");
62 fVerbosityCmd->SetGuidance("2 = debug");
63 fVerbosityCmd->SetToBeBroadcasted(false);
64
65 // Load a LEM table
66 fLemTableCmd = new G4UIcmdWithAString("/rbe/loadLemTable", this);
67 fLemTableCmd->SetGuidance("Load a LEM table used in calculating alpha&beta");
68 fLemTableCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
69 fLemTableCmd->SetToBeBroadcasted(false);
70
71 // Load a cell line
72 fCellLineCmd = new G4UIcmdWithAString("/rbe/cellLine", this);
73 fCellLineCmd->SetGuidance("Set the cell line for alpha&beta calculation");
74 fCellLineCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
75 fCellLineCmd->SetToBeBroadcasted(false);
76
77 // Reset RBE data
78 fResetCmd = new G4UIcmdWithoutParameter("/rbe/reset", this);
79 fResetCmd->SetGuidance("Reset accumulated data");
80 fResetCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
81 fResetCmd->SetToBeBroadcasted(false);
82
83 // Print Parameters
84 fPrintCmd = new G4UIcmdWithoutParameter("/rbe/print", this);
85 fPrintCmd->SetGuidance("Print RBE parameters");
86 fPrintCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
87 fPrintCmd->SetToBeBroadcasted(false);
88}
89
90//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
91
93{
94 delete fRBEDir;
95 delete fCalculationCmd;
96 delete fVerbosityCmd;
97 delete fLemTableCmd;
98 delete fCellLineCmd;
99 delete fResetCmd;
100 delete fPrintCmd;
101}
102
103//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
104
106{
107 if (command == fCalculationCmd) {
108 fRBE->SetCalculationEnabled(fCalculationCmd->GetNewBoolValue(newValue));
109 }
110
111 if (command == fVerbosityCmd) {
112 fRBE->SetVerboseLevel(fVerbosityCmd->GetNewIntValue(newValue));
113 }
114
115 if (command == fLemTableCmd) {
116 fRBE->LoadLEMTable(newValue);
117 }
118
119 if (command == fCellLineCmd) {
120 fRBE->SetCellLine(newValue);
121 }
122
123 if (command == fResetCmd) {
124 fRBE->Reset();
125 }
126
127 if (command == fPrintCmd) {
129 }
130}
131
132//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
133
134} // namespace RadioBio
Definition of the RadioBio::RBEMessenger class.
Definition of the RadioBio::RBE class.
G4UIdirectory * fRBEDir
G4UIcmdWithAString * fLemTableCmd
void SetNewValue(G4UIcommand *, G4String) override
G4UIcmdWithABool * fCalculationCmd
G4UIcmdWithoutParameter * fResetCmd
G4UIcmdWithoutParameter * fPrintCmd
G4UIcmdWithAString * fCellLineCmd
G4UIcmdWithAnInteger * fVerbosityCmd
void SetCellLine(G4String name)
Definition RBE.cc:242
void PrintParameters() override
Definition RBE.cc:99
void LoadLEMTable(G4String path)
Definition RBE.cc:146
void Reset() override
Definition RBE.cc:636

Applications | User Support | Publications | Collaboration