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
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
208 else if(index < 0) { index = 0; }
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;
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));
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;
G4double CalculateFkt(G4double k, G4double theta, G4double A, G4double c) const
void set(double x, double y, double z)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4Generator2BN(const G4String &name="")
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=nullptr)
static constexpr double MeV
static const G4int LL[nN]
const G4ThreeVector & GetMomentumDirection() const
void PrintGeneratorInformation() const
Hep3Vector & rotateUz(const Hep3Vector &)
virtual ~G4Generator2BN()
static G4double Atab[320]
static constexpr double electron_mass_c2
static constexpr double twopi
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double out_energy, G4int Z, const G4Material *mat=0)
double A(double temperature)
static constexpr double eV
static constexpr double rad
static constexpr double pi2
double epsilon(double density, double temperature)
G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const
G4ThreeVector fLocalDirection
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
static constexpr double pi
G4double GetTotalEnergy() const
void ConstructMajorantSurface()
static constexpr double pi
G4Generator2BS fGenerator2BS
static G4double ctab[320]