100 G4double* pMicroRoughnessTransTable,
101 G4double* pmaxMicroRoughnessTransTable)
129 if (Nthetadim*NEdim > 0) {
190 std::ofstream dateir(
"MRrefl.dat",std::ios::out);
191 std::ofstream dateit(
"MRtrans.dat",std::ios::out);
200 IntIplus(E, fermipot, theta_i, AngNoTheta, AngNoPhi,
205 IntIminus(E, fermipot, theta_i, AngNoTheta, AngNoPhi,
223 std::ofstream dateic(
"MRcheck.dat",std::ios::out);
224 std::ofstream dateimr(
"MRmaxrefl.dat",std::ios::out);
225 std::ofstream dateimt(
"MRmaxtrans.dat",std::ios::out);
248 G4cout <<
"Do not have theMicroRoughnessTable" <<
G4endl;
262 if (theta_i<theta_i_min || theta_i>
theta_i_max || Energy<Emin || Energy>
Emax)
288 if (theta_i<theta_i_min || theta_i>
theta_i_max || Energy<Emin || Energy>
Emax)
311 if (theta_i<theta_i_min || theta_i>
theta_i_max || Energy<Emin || Energy>
Emax)
332 Energy<Emin || Energy>
Emax) {
357 if (theta_i<theta_i_min || theta_i>
theta_i_max || Energy<Emin || Energy>
Emax)
378 Energy<Emin || Energy>
Emax) {
401 ProbIplus(Energy, fermipot, theta_i, theta_o, phi_o,
b,
w,
AngCut);
410 ProbIminus(Energy, fermipot,theta_i, theta_o, phi_o,
b,
w,
AngCut);
429 if (2*
b*k*std::cos(theta_i) < 1 && 2*
b*k_l < 1)
return true;
440 if (E*(std::cos(theta_i)*std::cos(theta_i)) < VFermi)
return false;
449 if (2*
b*std::sqrt(kS2)*std::cos(theta_i) < 1 && 2*
b*std::sqrt(k_l2) < 1)
return true;
static constexpr double nm
static constexpr double eV
static constexpr double degree
G4GLOB_DLL std::ostream G4cout
void AddConstProperty(const G4String &key, G4double propertyValue, G4bool createNewKey=false)
G4bool ConstPropertyExists(const G4String &key) const
G4double GetConstProperty(const G4String &key) const
void RemoveConstProperty(const G4String &key)
G4double GetMRMaxTransProbability(G4double, G4double)
void SetMicroRoughnessParameters(G4double, G4double, G4int, G4int, G4double, G4double, G4double, G4double, G4int, G4int, G4double)
G4double GetMRProbability(G4double, G4double, G4double, G4double, G4double)
G4bool ConditionsValid(G4double E, G4double VFermi, G4double theta_i)
void LoadMicroRoughnessTables(G4double *, G4double *, G4double *, G4double *)
virtual ~G4UCNMaterialPropertiesTable()
G4bool TransConditionsValid(G4double E, G4double VFermi, G4double theta_i)
void SetMRMaxProbability(G4double, G4double, G4double)
G4UCNMaterialPropertiesTable()
G4double * GetMicroRoughnessTable()
G4double * maxMicroRoughnessTable
void SetMRMaxTransProbability(G4double, G4double, G4double)
G4double GetMRIntTransProbability(G4double, G4double)
void ComputeMicroRoughnessTables()
G4double * maxMicroRoughnessTransTable
G4double GetMRMaxProbability(G4double, G4double)
G4double GetMRTransProbability(G4double, G4double, G4double, G4double, G4double)
G4double GetMRIntProbability(G4double, G4double)
G4double * theMicroRoughnessTable
void InitMicroRoughnessTables()
G4double * theMicroRoughnessTransTable
G4double * GetMicroRoughnessTransTable()
static G4UCNMicroRoughnessHelper * GetInstance()