51 fAnalysisManager(analysisManager),
53 fSetPrecisionForConvergenceTestCmd(0),
54 fSetExpSpectrumToNormaliseAdjResCmd(0),
55 fSetPowerLawSpectrumToNormaliseAdjResCmd(0)
61 fluence_par->SetParameterRange(
"Fluence > 0");
62 fluence_par->SetGuidance(
"Omnidirectional fluence for primary spectrum");
65 fluence_unit_par->SetParameterCandidates(
"1/cm2 1/m2 cm-2 m-2");
70 e0_par->SetParameterRange(
"E0 > 0");
73 e1_par->SetParameterRange(
"E1 > 0");
76 e2_par->SetParameterRange(
"E2 > 0");
79 e_unit_par->SetParameterCandidates(
"eV keV MeV GeV TeV");
82 part_name_par->SetParameterCandidates(
"e- gamma proton ");
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).");
97 ->AvailableForStates(G4State_PreInit,G4State_Idle);
101 "SetExponentialSpectrumForAdjointSim",
this);
103 ->SetGuidance(
"Set the primary spectrum to which adjoint simulation results"
104 "will be normalised as exponential (exp(-Ekin/E0)).");
120 ->AvailableForStates(G4State_PreInit,G4State_Idle);
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 "
132 ->AvailableForStates(G4State_PreInit,G4State_Idle);
148 G4double alpha,e1,e2,fluence;
150 const char* nv = (
const char*)newValue;
151 std::istringstream is(nv);
152 is >> part_name>>fluence>>f_unit>>alpha>>e1>>e2>>e_unit;
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);
163 G4double e0,e1,e2,fluence;
165 const char* nv = (
const char*)newValue;
166 std::istringstream is(nv);
167 is >> part_name>>fluence>>f_unit>>e0>>e1>>e2>>e_unit;
169 G4double factor_f_unit=1/cm2;
170 if (f_unit ==
"1/m2" || f_unit ==
"m-2") factor_f_unit=1/m2;
172 fluence*=factor_f_unit;
173 e0*= G4UnitDefinition::GetValueOf(e_unit);
174 e1*= G4UnitDefinition::GetValueOf(e_unit);
175 e2*= G4UnitDefinition::GetValueOf(e_unit);
178 fluence, e0, e1, e2);