65          { 0.0264767, 0.0260006, 0.0257112, 0.0252475, 0.024792, 0.0243443, 0.0240726, 0.0236367,
 
   66            0.023209,  0.0227892, 0.0225362, 0.0221284, 0.0217282,0.0214894, 0.0211005, 0.0207189,
 
   67            0.0204935, 0.0201227, 0.0197588, 0.019546,  0.0191923,0.0188454, 0.0186445, 0.0183072,
 
   68            0.0179763, 0.0177866, 0.0174649, 0.0172828, 0.0169702,0.0166634, 0.0164915, 0.0161933,
 
   69            0.0160283, 0.0157384, 0.0155801, 0.0152981, 0.0151463,0.0148721, 0.0147263, 0.0144598,
 
   70            0.01432,   0.0140607, 0.0139267, 0.0136744, 0.0135459,0.0133005, 0.0131773, 0.0129385,
 
   71            0.0128205, 0.0125881, 0.012475,  0.0122488, 0.0121406,0.0119204, 0.0118167, 0.0117158,
 
   72            0.0115032, 0.0114067, 0.0111995, 0.0111072, 0.0110175,0.0108173, 0.0107316, 0.0105365,
 
   73            0.0104547, 0.0102646, 0.0101865, 0.010111,  0.00992684,0.0098548,0.00967532,0.00960671,
 
   74            0.00943171,0.00936643,0.00930328,0.0091337, 0.00907372,0.00890831,0.00885141,0.00869003,
 
   75            0.00863611,0.00858428,0.00842757,0.00837854,0.0082256,0.00817931,0.00803,0.00798639,
 
   76            0.00784058,0.00779958,0.00776046,0.00761866,0.00758201,0.00744346,0.00740928,0.00727384,
 
   77            0.00724201,0.00710969,0.00708004,0.00695074,0.00692333,0.00679688,0.00677166,0.00664801,
 
   78            0.00662484,0.00650396,0.00648286,0.00636458,0.00634545,0.00622977,0.00621258,0.00609936,
 
   79            0.00608412,0.00597331,0.00595991,0.00585143,0.00583988,0.0057337,0.0057239,0.00561991,
 
   80            0.0056119, 0.00551005,0.00550377,0.00540399,0.00539938,0.00530162,0.00529872,0.00520292,
 
   81            0.0051091, 0.00510777,0.00501582,0.00501608,0.00492594,0.00492781,0.00483942,0.0048429,
 
   82            0.00475622,0.00476127,0.00467625,0.00468287,0.00459947,0.00451785,0.00452581,0.00444573,
 
   83            0.00445522,0.00437664,0.00438768,0.00431057,0.00432316,0.00424745,0.0042616,0.00418726,
 
   84            0.004203,  0.00413,   0.00405869,0.00407563,0.00400561,0.00402414,0.00395536,0.00397553,
 
   85            0.00390795,0.00392975,0.00386339,0.00379862,0.00382167,0.00375805,0.00378276,0.00372031,
 
   86            0.00374678,0.00368538,0.00371363,0.00365335,0.00359463,0.0036242, 0.00356653,0.003598,
 
   87            0.00354139,0.00357481,0.00351921,0.00355464,0.00350005,0.0034471,0.00348403,0.00343208,
 
   88            0.0034712, 0.00342026,0.00346165,0.00341172,0.00345548,0.00340657,0.00335944,0.00340491,
 
   89            0.00335885,0.00340692,0.00336191,0.00341273,0.00336879,0.00342249,0.00337962,0.00333889,
 
   90            0.00339463,0.00335506,0.00341401,0.00337558,0.00343797,0.00340067,0.00336584,0.00343059,
 
   91            0.0033969, 0.00346557,0.00343302,0.00350594,0.00347448,0.00344563,0.00352163,0.00349383,
 
   92            0.00357485,0.00354807,0.00352395,0.00360885,0.00358571,0.00367661,0.00365446,0.00375194,
 
   93            0.00373078,0.00371234,0.00381532,0.00379787,0.00390882,0.00389241,0.00387881,0.00399675,
 
   94            0.00398425,0.00411183,0.00410042,0.00409197,0.00422843,0.00422123,0.00436974,0.0043637,
 
   95            0.00436082,0.00452075,0.00451934,0.00452125,0.00469406,0.00469756,0.00488741,0.00489221,
 
   96            0.00490102,0.00510782,0.00511801,0.00513271,0.0053589, 0.00537524,0.00562643,0.00564452,
 
   97            0.0056677, 0.00594482,0.00596999,0.0059999, 0.00630758,0.00634014,0.00637849,0.00672136,
 
   98            0.00676236,0.00680914,0.00719407,0.0072439, 0.00730063,0.0077349, 0.00779494,0.00786293,
 
   99            0.00835577,0.0084276, 0.00850759,0.00907162,0.00915592,0.00924925,0.00935226,0.00999779,
 
  100            0.0101059, 0.0102249, 0.0109763, 0.0111003, 0.0112367, 0.0113862, 0.0122637, 0.0124196,
 
  101            0.0125898, 0.0136311, 0.0138081, 0.0140011, 0.0142112, 0.0154536, 0.0156723, 0.0159099,
 
  102            0.016168,  0.0176664, 0.0179339, 0.0182246, 0.0185396, 0.020381,  0.0207026, 0.0210558,
 
  103            0.0214374, 0.0237377, 0.0241275, 0.0245528, 0.0250106, 0.0255038, 0.0284158, 0.0289213,
 
  104            0.0294621, 0.0300526, 0.0338619, 0.0344537, 0.0351108, 0.0358099, 0.036554,  0.0416399
 
  107 G4double G4Generator2BN::ctab[320] =
 
  108     { 0.482253, 0.482253, 0.489021, 0.489021, 0.489021, 0.489021, 0.495933,
 
  109       0.495933, 0.495933, 0.495933, 0.502993, 0.502993, 0.502993, 0.510204,
 
  110       0.510204, 0.510204, 0.517572, 0.517572, 0.517572, 0.5251,   0.5251,
 
  111       0.5251,   0.532793, 0.532793, 0.532793, 0.540657, 0.540657, 0.548697,
 
  112       0.548697, 0.548697, 0.556917, 0.556917, 0.565323, 0.565323, 0.573921,
 
  113       0.573921, 0.582717, 0.582717, 0.591716, 0.591716, 0.600925, 0.600925,
 
  114       0.610352, 0.610352, 0.620001, 0.620001, 0.629882, 0.629882, 0.64,
 
  115       0.64,     0.650364, 0.650364, 0.660982, 0.660982, 0.671862, 0.683013,
 
  116       0.683013, 0.694444, 0.694444, 0.706165, 0.718184, 0.718184, 0.730514,
 
  117       0.730514, 0.743163, 0.743163, 0.756144, 0.769468, 0.769468, 0.783147,
 
  118       0.783147, 0.797194, 0.797194, 0.811622, 0.826446, 0.826446, 0.84168,
 
  119       0.84168,  0.857339, 0.857339, 0.873439, 0.889996, 0.889996, 0.907029,
 
  120       0.907029, 0.924556, 0.924556, 0.942596, 0.942596, 0.961169, 0.980296,
 
  121       0.980296, 1,        1,        1.0203,   1.0203,   1.04123,  1.04123,
 
  122       1.06281,  1.06281,  1.08507,  1.08507,  1.10803,  1.10803,  1.13173,
 
  123       1.13173,  1.1562,   1.1562,   1.18147,  1.18147,  1.20758,  1.20758,
 
  124       1.23457,  1.23457,  1.26247,  1.26247,  1.29132,  1.29132,  1.32118,
 
  125       1.32118,  1.35208,  1.35208,  1.38408,  1.38408,  1.41723,  1.41723,
 
  126       1.45159,  1.45159,  1.45159,  1.48721,  1.48721,  1.52416,  1.52416,
 
  127       1.5625,   1.5625,   1.60231,  1.60231,  1.64366,  1.64366,  1.68663,
 
  128       1.68663,  1.68663,  1.7313,   1.7313,   1.77778,  1.77778,  1.82615,
 
  129       1.82615,  1.87652,  1.87652,  1.92901,  1.92901,  1.98373,  1.98373,
 
  130       1.98373,  2.04082,  2.04082,  2.1004,   2.1004,   2.16263,  2.16263,
 
  131       2.22767,  2.22767,  2.22767,  2.29568,  2.29568,  2.36686,  2.36686,
 
  132       2.44141,  2.44141,  2.51953,  2.51953,  2.51953,  2.60146,  2.60146,
 
  133       2.68745,  2.68745,  2.77778,  2.77778,  2.87274,  2.87274,  2.87274,
 
  134       2.97265,  2.97265,  3.07787,  3.07787,  3.18878,  3.18878,  3.30579,
 
  135       3.30579,  3.30579,  3.42936,  3.42936,  3.55999,  3.55999,  3.69822,
 
  136       3.69822,  3.84468,  3.84468,  3.84468,  4,        4,        4.16493,
 
  137       4.16493,  4.34028,  4.34028,  4.34028,  4.52694,  4.52694,  4.7259,
 
  138       4.7259,   4.93827,  4.93827,  4.93827,  5.16529,  5.16529,  5.40833,
 
  139       5.40833,  5.40833,  5.66893,  5.66893,  5.94884,  5.94884,  6.25,
 
  140       6.25,     6.25,     6.57462,  6.57462,  6.92521,  6.92521,  6.92521,
 
  141       7.3046,   7.3046,   7.71605,  7.71605,  7.71605,  8.16327,  8.16327,
 
  142       8.65052,  8.65052,  8.65052,  9.18274,  9.18274,  9.18274,  9.76562,
 
  143       9.76562,  10.4058,  10.4058,  10.4058,  11.1111,  11.1111,  11.1111,
 
  144       11.8906,  11.8906,  12.7551,  12.7551,  12.7551,  13.7174,  13.7174,
 
  145       13.7174,  14.7929,  14.7929,  14.7929,  16,       16,       16,
 
  146       17.3611,  17.3611,  17.3611,  18.9036,  18.9036,  18.9036,  20.6612,
 
  147       20.6612,  20.6612,  22.6757,  22.6757,  22.6757,  22.6757,  25,
 
  148       25,       25,       27.7008,  27.7008,  27.7008,  27.7008,  30.8642,
 
  149       30.8642,  30.8642,  34.6021,  34.6021,  34.6021,  34.6021,  39.0625,
 
  150       39.0625,  39.0625,  39.0625,  44.4444,  44.4444,  44.4444,  44.4444,
 
  151       51.0204,  51.0204,  51.0204,  51.0204,  59.1716,  59.1716,  59.1716,
 
  152       59.1716,  59.1716,  69.4444,  69.4444,  69.4444,  69.4444,  82.6446,
 
  153       82.6446,  82.6446,  82.6446,  82.6446,  100
 
  207   if(index > index_max) { index = index_max; }
 
  208   else if(index < 0) { index = 0; }
 
  215   if(index < index_max) { A = 
std::max(A, Atab[index+1]); }
 
  228     cte2 = 2*c/std::log(1+c*
pi2);
 
  231     t = std::sqrt((
G4Exp(2*c*y/cte2)-1)/c);
 
  237     dmax = A*std::pow(k,-b)*t/(1+c*t*t);
 
  241     if(ds > dmax && nwarn >= 20) {
 
  243       G4cout << 
"### WARNING in G4Generator2BN: Ekin(MeV)= " << Ek/
MeV 
  244          << 
"  D(Ekin,k)/Dmax-1= " << (ds/dmax - 1)
 
  245          << 
"  results are not reliable!" 
  248     G4cout << 
"   WARNING in G4Generator2BN is closed" << 
G4endl;
 
  266   Fkt_value = A*std::pow(k,-b)*theta/(1+c*theta*theta);
 
  298      G4double LL = std::log((E*E0-1+p*p0)/(E*E0-1-p*p0));
 
  299      G4double delta0 = E0 - p0*std::cos(theta);
 
  302      G4double sintheta2 = std::sin(theta)*std::sin(theta);
 
  308      G4double delta04 =  delta02* delta02;
 
  309      G4double Q = std::sqrt(p02+k2-2*k*p0*std::cos(theta));
 
  311      G4double epsilonQ = std::log((Q+p)/(Q-p));
 
  314      dsdkdt_value = Z2 * (r02/(8*
pi*137)) * (1/k) * (p/p0) *
 
  315        ( (8 * (sintheta2*(2*E02+1))/(p02*delta04)) -
 
  316          ((2*(5*E02+2*E*E0+3))/(p02 * delta02)) -
 
  317          ((2*(p02-k2))/((Q2*delta02))) +
 
  318          ((4*E)/(p02*delta0)) +
 
  320                  ((4*E0*sintheta2*(3*k-p02*E))/(p02*delta04)) +
 
  321                  ((4*E02*(E02+E2))/(p02*delta02)) +
 
  322                  ((2-2*(7*E02-3*E*E0+E2))/(p02*delta02)) +
 
  323                  (2*k*(E02+E*E0-1))/((p02*delta0))
 
  325          ((4*epsilon)/(p*delta0)) +
 
  327          (4/delta02-(6*k/delta0)-(2*k*(p02-k2))/(Q2*delta0))
 
  332      dsdkdt_value = dsdkdt_value*std::sin(theta);
 
  349   G4cout << 
"**** Constructing Majorant Surface for 2BN Distribution ****" << 
G4endl;
 
  351   if(kcut > kmin) kmin = kcut;
 
  355   for(
G4int index = index_min; index < index_max; index++){
 
  358   Ek = std::pow(10.,fraction);
 
  365   for(theta = 0.; theta < 
pi; theta = theta + dtheta){
 
  376   if(Ek < kmin || thetamax == 0){
 
  380     c = 1/(thetamax*thetamax);
 
  381     A = 2*std::sqrt(c)*dsmax/(std::pow(kmin,-b));
 
  393   vmax = 
G4int(100.*std::log10(Ek/kmin));
 
  395   for(
G4int v = 0; v < vmax; v++){
 
  397     k = std::pow(10.,fractionLocal)*kmin;
 
  399     for(theta = 0.; theta < 
pi; theta = theta + dtheta){
 
  403       Vds = Vds + ds*dk*dt;
 
  405       Vdf = Vdf + df*dk*dt;
 
  408     if(df != 0.) ratio = df/ds;
 
  411       if(ratio < ratmin && ratio != 0.){
 
  419   Atab[i] = A/ratmin * 1.04;
 
  431   G4cout << 
"Bremsstrahlung Angular Generator is 2BN Generator from 2BN Koch & Motz distribution (Rev Mod Phys 31(4), 920 (1959))" << 
G4endl;
 
void set(double x, double y, double z)
 
G4double GetKineticEnergy() const 
 
G4double GetTotalEnergy() const 
 
virtual ~G4Generator2BN()
 
static constexpr double rad
 
G4Generator2BN(const G4String &name="")
 
G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const 
 
static constexpr double twopi
 
static constexpr double electron_mass_c2
 
void PrintGeneratorInformation() const 
 
G4GLOB_DLL std::ostream G4cout
 
double A(double temperature)
 
const G4ThreeVector & GetMomentumDirection() const 
 
Hep3Vector & rotateUz(const Hep3Vector &)
 
static constexpr double eV
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
void ConstructMajorantSurface()
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
G4double CalculateFkt(G4double k, G4double theta, G4double A, G4double c) const 
 
static const G4int LL[nN]
 
static constexpr double MeV
 
static constexpr double pi
 
G4ThreeVector fLocalDirection
 
double epsilon(double density, double temperature)
 
static constexpr double pi
 
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=0)
 
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=0)
 
static constexpr double pi2