Loading...
Searching...
No Matches
DoseMessenger.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/DoseMessenger.cc
28/// \brief Implementation of the RadioBio::DoseMessenger class
29
30#include "DoseMessenger.hh"
31
32#include "Dose.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 // Diretory for dose commands
48 fDoseDir = new G4UIdirectory("/dose/");
49 fDoseDir->SetGuidance("commands to setup dose calculation");
50
51 // Activate dose calculation
52 fCalculationCmd = new G4UIcmdWithABool("/dose/calculate", this);
53 fCalculationCmd->SetGuidance("Whether to enable dose calculation");
54 fCalculationCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
55 fCalculationCmd->SetToBeBroadcasted(false);
56
57 // Set dose verbosity
58 fVerbosityCmd = new G4UIcmdWithAnInteger("/dose/verbose", this);
59 fVerbosityCmd->SetGuidance("Set verbosity level of dose");
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 // Reset dose data
66 fResetCmd = new G4UIcmdWithoutParameter("/dose/reset", this);
67 fResetCmd->SetGuidance("Reset accumulated data");
68 fResetCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
69 fResetCmd->SetToBeBroadcasted(false);
70
71 // Set dose filename
72 fDosePathCmd = new G4UIcmdWithAString("/dose/fileName", this);
73 fDosePathCmd->SetGuidance("Set the filename for the dose file");
74 fDosePathCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
75 fDosePathCmd->SetToBeBroadcasted(false);
76
77 // Print Parameters
78 fPrintCmd = new G4UIcmdWithoutParameter("/dose/print", this);
79 fPrintCmd->SetGuidance("Print dose parameters");
80 fPrintCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
81 fPrintCmd->SetToBeBroadcasted(false);
82}
83
84//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
85
87{
88 delete fDoseDir;
89 delete fCalculationCmd;
90 delete fVerbosityCmd;
91 delete fResetCmd;
92 delete fDosePathCmd;
93 delete fPrintCmd;
94}
95
96//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
97
99{
100 if (command == fCalculationCmd) {
101 fDose->SetCalculationEnabled(fCalculationCmd->GetNewBoolValue(newValue));
102 }
103
104 if (command == fVerbosityCmd) {
105 fDose->SetVerboseLevel(fVerbosityCmd->GetNewIntValue(newValue));
106 }
107
108 if (command == fResetCmd) {
109 fDose->Reset();
110 }
111
112 if (command == fDosePathCmd) {
113 fDose->SetPath(newValue);
114 }
115
116 if (command == fPrintCmd) {
118 }
119}
120
121//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
122
123} // namespace RadioBio
Definition of the RadioBio::DoseMessenger class.
Definition of the RadioBio::Dose class.
G4UIcmdWithAString * fDosePathCmd
G4UIcmdWithABool * fCalculationCmd
G4UIcmdWithoutParameter * fPrintCmd
G4UIdirectory * fDoseDir
void SetNewValue(G4UIcommand *, G4String) override
G4UIcmdWithAnInteger * fVerbosityCmd
G4UIcmdWithoutParameter * fResetCmd
void Reset() override
Definition Dose.cc:165
void PrintParameters() override
Definition Dose.cc:177

Applications | User Support | Publications | Collaboration