Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
RMC01AnalysisManagerMessenger Class Reference

#include <Doxymodules_biasing.h>

Inheritance diagram for RMC01AnalysisManagerMessenger:
G4UImessenger

Public Member Functions

 RMC01AnalysisManagerMessenger (RMC01AnalysisManager *)
 
virtual ~RMC01AnalysisManagerMessenger ()
 
virtual void SetNewValue (G4UIcommand *, G4String)
 

Private Attributes

RMC01AnalysisManagerfAnalysisManager
 
G4UIdirectoryfAnalysisDir
 
G4UIcmdWithADoublefSetPrecisionForConvergenceTestCmd
 
G4UIcommandfSetExpSpectrumToNormaliseAdjResCmd
 
G4UIcommandfSetPowerLawSpectrumToNormaliseAdjResCmd
 

Detailed Description

Definition at line 171 of file Doxymodules_biasing.h.

Constructor & Destructor Documentation

◆ RMC01AnalysisManagerMessenger()

RMC01AnalysisManagerMessenger::RMC01AnalysisManagerMessenger ( RMC01AnalysisManager analysisManager)

Definition at line 48 of file RMC01AnalysisManagerMessenger.cc.

51 fAnalysisManager(analysisManager),
52 fAnalysisDir(0),
56{
57 fAnalysisDir = new G4UIdirectory("/RMC01/analysis/");
58 fAnalysisDir->SetGuidance("Analysis commands");
59
60 G4UIparameter* fluence_par = new G4UIparameter("Fluence",'d',true);
61 fluence_par->SetParameterRange("Fluence > 0");
62 fluence_par->SetGuidance("Omnidirectional fluence for primary spectrum");
63
64 G4UIparameter* fluence_unit_par = new G4UIparameter("Fluence_unit",'s',true);
65 fluence_unit_par->SetParameterCandidates("1/cm2 1/m2 cm-2 m-2");
66
67 G4UIparameter* alpha_par = new G4UIparameter("alpha",'d',true);
68
69 G4UIparameter* e0_par = new G4UIparameter("E0",'d',true);
70 e0_par->SetParameterRange("E0 > 0");
71
72 G4UIparameter* e1_par = new G4UIparameter("E1",'d',true);
73 e1_par->SetParameterRange("E1 > 0");
74
75 G4UIparameter* e2_par = new G4UIparameter("E2",'d',true);
76 e2_par->SetParameterRange("E2 > 0");
77
78 G4UIparameter* e_unit_par = new G4UIparameter("E_unit",'s',true);
79 e_unit_par->SetParameterCandidates("eV keV MeV GeV TeV");
80
81 G4UIparameter* part_name_par = new G4UIparameter("particle_name",'s',true);
82 part_name_par->SetParameterCandidates("e- gamma proton ");
83
85 new G4UIcommand("/RMC01/analysis/SetPowerLawPrimSpectrumForAdjointSim",this);
87 ->SetGuidance("Set the primary spectrum to which adjoint simulation "
88 "results will be normalised as a power law (Ekin^-alpha).");
89 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(part_name_par);
90 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(fluence_par);
91 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(fluence_unit_par);
92 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(alpha_par);
93 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(e1_par);
94 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(e2_par);
95 fSetPowerLawSpectrumToNormaliseAdjResCmd->SetParameter(e_unit_par);
97 ->AvailableForStates(G4State_PreInit,G4State_Idle);
98
99
100 fSetExpSpectrumToNormaliseAdjResCmd = new G4UIcommand("/RMC01/analysis/"
101 "SetExponentialSpectrumForAdjointSim",this);
103 ->SetGuidance("Set the primary spectrum to which adjoint simulation results"
104 "will be normalised as exponential (exp(-Ekin/E0)).");
106 ->SetParameter(new G4UIparameter(*part_name_par));
108 ->SetParameter(new G4UIparameter(*fluence_par));
110 ->SetParameter(new G4UIparameter(*fluence_unit_par));
112 ->SetParameter(new G4UIparameter(*e0_par));
114 ->SetParameter(new G4UIparameter(*e1_par));
116 ->SetParameter(new G4UIparameter(*e2_par));
118 ->SetParameter(new G4UIparameter(*e_unit_par));
120 ->AvailableForStates(G4State_PreInit,G4State_Idle);
121
122
124 "SetExpectedPrecisionOfResults",this);
126 ->SetGuidance("Set the precision in % that the computed energy deposited "
127 "in the sensitive volume should reached. If this precision is reached"
128 " before the end of the run, the run is aborted and the results are "
129 "registered.");
130 fSetPrecisionForConvergenceTestCmd->SetParameterName("Precision",true);
132 ->AvailableForStates(G4State_PreInit,G4State_Idle);
133}

◆ ~RMC01AnalysisManagerMessenger()

RMC01AnalysisManagerMessenger::~RMC01AnalysisManagerMessenger ( )
virtual

Definition at line 137 of file RMC01AnalysisManagerMessenger.cc.

138{
139 delete fAnalysisDir;
140}

Member Function Documentation

◆ SetNewValue()

void RMC01AnalysisManagerMessenger::SetNewValue ( G4UIcommand command,
G4String  newValue 
)
virtual

Definition at line 144 of file RMC01AnalysisManagerMessenger.cc.

146{
148 G4double alpha,e1,e2,fluence;
149 G4String f_unit,e_unit,part_name;
150 const char* nv = (const char*)newValue;
151 std::istringstream is(nv);
152 is >> part_name>>fluence>>f_unit>>alpha>>e1>>e2>>e_unit;
153
154 G4double factor_f_unit=1/cm2;
155 if (f_unit == "1/m2" || f_unit =="m-2") factor_f_unit=1/m2;
156 fluence*=factor_f_unit;
157 e1*= G4UnitDefinition::GetValueOf(e_unit);
158 e2*= G4UnitDefinition::GetValueOf(e_unit);
160 part_name, fluence, alpha, e1, e2);
161 }
162 else if( command == fSetExpSpectrumToNormaliseAdjResCmd){
163 G4double e0,e1,e2,fluence;
164 G4String f_unit,e_unit,part_name;
165 const char* nv = (const char*)newValue;
166 std::istringstream is(nv);
167 is >> part_name>>fluence>>f_unit>>e0>>e1>>e2>>e_unit;
168
169 G4double factor_f_unit=1/cm2;
170 if (f_unit == "1/m2" || f_unit =="m-2") factor_f_unit=1/m2;
171
172 fluence*=factor_f_unit;
173 e0*= G4UnitDefinition::GetValueOf(e_unit);
174 e1*= G4UnitDefinition::GetValueOf(e_unit);
175 e2*= G4UnitDefinition::GetValueOf(e_unit);
176
178 fluence, e0, e1, e2);
179
180 }
181 else if( command == fSetPrecisionForConvergenceTestCmd){
183 fSetPrecisionForConvergenceTestCmd->GetNewDoubleValue(newValue));
184 }
185}
void SetPrecision(G4double precision)
void SetPrimaryPowerLawSpectrumForAdjointSim(const G4String &particle_name, G4double fluence, G4double alpha, G4double Emin, G4double Emax)
void SetPrimaryExpSpectrumForAdjointSim(const G4String &particle_name, G4double fluence, G4double E0, G4double Emin, G4double Emax)

Member Data Documentation

◆ fAnalysisManager

RMC01AnalysisManager* RMC01AnalysisManagerMessenger::fAnalysisManager
private

Definition at line 69 of file RMC01AnalysisManagerMessenger.hh.

◆ fAnalysisDir

G4UIdirectory* RMC01AnalysisManagerMessenger::fAnalysisDir
private

Definition at line 71 of file RMC01AnalysisManagerMessenger.hh.

◆ fSetPrecisionForConvergenceTestCmd

G4UIcmdWithADouble* RMC01AnalysisManagerMessenger::fSetPrecisionForConvergenceTestCmd
private

Definition at line 73 of file RMC01AnalysisManagerMessenger.hh.

◆ fSetExpSpectrumToNormaliseAdjResCmd

G4UIcommand* RMC01AnalysisManagerMessenger::fSetExpSpectrumToNormaliseAdjResCmd
private

Definition at line 74 of file RMC01AnalysisManagerMessenger.hh.

◆ fSetPowerLawSpectrumToNormaliseAdjResCmd

G4UIcommand* RMC01AnalysisManagerMessenger::fSetPowerLawSpectrumToNormaliseAdjResCmd
private

Definition at line 75 of file RMC01AnalysisManagerMessenger.hh.


The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration