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;
257 fLocalDirection.set(sint*std::cos(phi), sint*std::sin(phi),std::cos(t));
266 Fkt_value = A*std::pow(k,-
b)*theta/(1+c*theta*theta);
281 if(kout > (Eel-electron_mass_c2)){
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);
359 Eel = Ek + electron_mass_c2;
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 GetKineticEnergy() const
CLHEP::Hep3Vector G4ThreeVector
G4double GetTotalEnergy() const
virtual ~G4Generator2BN()
G4Generator2BN(const G4String &name="")
G4double Calculatedsdkdt(G4double kout, G4double theta, G4double Eel) const
void PrintGeneratorInformation() const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
const G4ThreeVector & GetMomentumDirection() const
static const double twopi
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
void ConstructMajorantSurface()
G4Generator2BS fGenerator2BS
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 G4double Atab[320]
G4ThreeVector fLocalDirection
static G4double ctab[320]
double epsilon(double density, double temperature)
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)