#include <G4RDGenerator2BN.hh>
Definition at line 60 of file G4RDGenerator2BN.hh.
G4RDGenerator2BN::G4RDGenerator2BN |
( |
const G4String & |
name | ) |
|
Definition at line 154 of file G4RDGenerator2BN.cc.
static constexpr double rad
static constexpr double eV
G4RDVBremAngularDistribution(const G4String &name)
G4RDGenerator2BN::~G4RDGenerator2BN |
( |
| ) |
|
Definition at line 202 of file G4RDGenerator2BN.cc.
230 G4double L = std::log((E*E0-1+p*p0)/(E*E0-1-p*p0));
231 G4double delta0 = E0 - p0*std::cos(theta);
234 G4double sintheta2 = std::sin(theta)*std::sin(theta);
240 G4double delta04 = delta02* delta02;
241 G4double Q = std::sqrt(p02+k2-2*k*p0*std::cos(theta));
243 G4double epsilonQ = std::log((Q+p)/(Q-p));
246 dsdkdt_value = Z2 * (r02/(8*
pi*137)) * (1/k) * (p/p0) *
247 ( (8 * (sintheta2*(2*E02+1))/(p02*delta04)) -
248 ((2*(5*E02+2*E*E0+3))/(p02 * delta02)) -
249 ((2*(p02-k2))/((Q2*delta02))) +
250 ((4*E)/(p02*delta0)) +
252 ((4*E0*sintheta2*(3*k-p02*E))/(p02*delta04)) +
253 ((4*E02*(E02+E2))/(p02*delta02)) +
254 ((2-2*(7*E02-3*E*E0+E2))/(p02*delta02)) +
255 (2*k*(E02+E*E0-1))/((p02*delta0))
257 ((4*epsilon)/(p*delta0)) +
259 (4/delta02-(6*k/delta0)-(2*k*(p02-k2))/(Q2*delta0))
264 dsdkdt_value = dsdkdt_value*std::sin(theta);
static constexpr double MeV
static constexpr double pi
static constexpr double L
double epsilon(double density, double temperature)
Definition at line 195 of file G4RDGenerator2BN.cc.
198 Fkt_value =
A*std::pow(k,-b)*theta/(1+
c*theta*theta);
double A(double temperature)
void G4RDGenerator2BN::ConstructMajorantSurface |
( |
| ) |
|
Definition at line 268 of file G4RDGenerator2BN.cc.
281 G4cout <<
"**** Constructing Majorant Surface for 2BN Distribution ****" <<
G4endl;
283 if(kcut > kmin) kmin = kcut;
287 for(
G4int index = index_min; index < index_max; index++){
290 Ek = std::pow(10.,fraction);
297 for(theta = 0.; theta <
pi; theta = theta + dtheta){
308 if(Ek < kmin || thetamax == 0){
312 c = 1/(thetamax*thetamax);
313 A = 2*std::sqrt(c)*dsmax/(std::pow(kmin,-b));
325 vmax =
G4int(100.*std::log10(Ek/kmin));
329 k = std::pow(10.,fraction)*kmin;
331 for(theta = 0.; theta <
pi; theta = theta + dtheta){
335 Vds = Vds + ds*dk*dt;
337 Vdf = Vdf + df*dk*dt;
340 if(df != 0.) ratio = df/ds;
343 if(ratio < ratmin && ratio != 0.){
351 Atab[i] = A/ratmin * 1.04;
G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4double CalculateFkt(G4double k, G4double theta, G4double A, G4double c) const
static constexpr double pi
Definition at line 360 of file G4RDGenerator2BN.cc.
376 index =
G4int(std::log10(Ek)*100) - index_min;
381 if(index < index_max){
397 cte2 = 2*c/std::log(1+c*
pi2);
400 t = std::sqrt((std::exp(2*c*y/cte2)-1)/c);
409 if(ds > (A*fk*ft))
G4cout <<
"WARNING IN G4RDGenerator2BN !!!" << Ek <<
" " << (ds-A*fk*ft)/ds <<
G4endl;
411 }
while(u*A*fk*ft > ds);
G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
static constexpr double pi2
G4double G4RDGenerator2BN::GetGammaCutValue |
( |
| ) |
|
|
inline |
G4double G4RDGenerator2BN::GetInterpolationThetaIncrement |
( |
| ) |
|
|
inline |
void G4RDGenerator2BN::PrintGeneratorInformation |
( |
| ) |
const |
|
virtual |
void G4RDGenerator2BN::SetGammaCutValue |
( |
G4double |
cutValue | ) |
|
|
inline |
void G4RDGenerator2BN::SetInterpolationThetaIncrement |
( |
G4double |
increment | ) |
|
|
inline |
The documentation for this class was generated from the following files: