52 fAnalysisManager(analysisManager),
54 fSetPrecisionForConvergenceTestCmd(0),
55 fSetExpSpectrumToNormaliseAdjResCmd(0),
56 fSetPowerLawSpectrumToNormaliseAdjResCmd(0)
63 fluence_par->
SetGuidance(
"Omnidirectional fluence for primary spectrum");
85 fSetPowerLawSpectrumToNormaliseAdjResCmd =
86 new G4UIcommand(
"/RMC01/analysis/SetPowerLawPrimSpectrumForAdjointSim",
this);
87 fSetPowerLawSpectrumToNormaliseAdjResCmd
88 ->
SetGuidance(
"Set the primary spectrum to which adjoint simulation "
89 "results will be normalised as a power law (Ekin^-alpha).");
90 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(part_name_par);
91 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(fluence_par);
92 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(fluence_unit_par);
93 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(alpha_par);
94 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(e1_par);
95 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(e2_par);
96 fSetPowerLawSpectrumToNormaliseAdjResCmd->
SetParameter(e_unit_par);
97 fSetPowerLawSpectrumToNormaliseAdjResCmd
101 fSetExpSpectrumToNormaliseAdjResCmd =
new G4UIcommand(
"/RMC01/analysis/"
102 "SetExponentialSpectrumForAdjointSim",
this);
103 fSetExpSpectrumToNormaliseAdjResCmd
104 ->
SetGuidance(
"Set the primary spectrum to which adjoint simulation results"
105 "will be normalised as exponential (exp(-Ekin/E0)).");
106 fSetExpSpectrumToNormaliseAdjResCmd
108 fSetExpSpectrumToNormaliseAdjResCmd
110 fSetExpSpectrumToNormaliseAdjResCmd
112 fSetExpSpectrumToNormaliseAdjResCmd
114 fSetExpSpectrumToNormaliseAdjResCmd
116 fSetExpSpectrumToNormaliseAdjResCmd
118 fSetExpSpectrumToNormaliseAdjResCmd
120 fSetExpSpectrumToNormaliseAdjResCmd
125 "SetExpectedPrecisionOfResults",
this);
126 fSetPrecisionForConvergenceTestCmd
127 ->
SetGuidance(
"Set the precision in % that the computed energy deposited "
128 "in the sensitive volume should reached. If this precision is reached"
129 " before the end of the run, the run is aborted and the results are "
132 fSetPrecisionForConvergenceTestCmd
148 if( command == fSetPowerLawSpectrumToNormaliseAdjResCmd){
151 const char* nv = (
const char*)newValue;
152 std::istringstream is(nv);
153 is >> part_name>>fluence>>f_unit>>alpha>>e1>>e2>>e_unit;
156 if (f_unit ==
"1/m2" || f_unit ==
"m-2") factor_f_unit=1/
m2;
157 fluence*=factor_f_unit;
161 part_name, fluence, alpha, e1, e2);
163 else if( command == fSetExpSpectrumToNormaliseAdjResCmd){
166 const char* nv = (
const char*)newValue;
167 std::istringstream is(nv);
168 is >> part_name>>fluence>>f_unit>>e0>>e1>>e2>>e_unit;
171 if (f_unit ==
"1/m2" || f_unit ==
"m-2") factor_f_unit=1/
m2;
173 fluence*=factor_f_unit;
179 fluence, e0, e1, e2);
182 else if( command == fSetPrecisionForConvergenceTestCmd){
void SetParameter(G4UIparameter *const newParameter)
void SetPrimaryPowerLawSpectrumForAdjointSim(const G4String &particle_name, G4double fluence, G4double alpha, G4double Emin, G4double Emax)
static constexpr double cm2
void SetParameterRange(const char *theRange)
void SetParameterCandidates(const char *theString)
virtual ~RMC01AnalysisManagerMessenger()
void SetPrimaryExpSpectrumForAdjointSim(const G4String &particle_name, G4double fluence, G4double E0, G4double Emin, G4double Emax)
static G4double GetValueOf(const G4String &)
void SetPrecision(G4double precision)
virtual void SetNewValue(G4UIcommand *, G4String)
static G4double GetNewDoubleValue(const char *paramString)
void SetGuidance(const char *aGuidance)
void AvailableForStates(G4ApplicationState s1)
Definition of the RMC01AnalysisManager class.
Definition of the RMC01AnalysisManagerMessenger class.
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
RMC01AnalysisManagerMessenger(RMC01AnalysisManager *)
void SetGuidance(const char *theGuidance)
static const G4double alpha
static constexpr double m2