85 crossSectionHandler(0),
128 G4cout <<
"G4LowEnergyBremsstrahlung::BuildPhysicsTable start"
137 for(
size_t i=0; i<15; i++) {
140 if(i == 10) x = 0.95;
141 if(i == 11) x = 0.97;
142 if(i == 12) x = 0.99;
143 if(i == 13) x = 0.995;
147 const G4String dataName(
"/brem/br-sp.dat");
151 G4cout <<
"G4LowEnergyBremsstrahlungSpectrum is initialized"
168 <<
" is created; Cross section data: "
181 G4cout <<
"The loss table is built"
204 G4cout <<
"The MeanFreePath table is built"
213 G4cout <<
"G4LowEnergyBremsstrahlung::BuildPhysicsTable end"
245 for (
size_t j=0; j<numOfCouples; j++) {
258 tCut =
std::min(highKineticEnergy, tCut);
263 const G4double* theAtomicNumDensityVector =
266 G4cout <<
"Energy loss for material # " << j
267 <<
" tCut(keV)= " << tCut/
keV
272 for (
size_t i = 0; i<totBin; i++) {
278 for (
size_t iel=0; iel<NumberOfElements; iel++ ) {
279 G4int Z = (
G4int)((*theElementVector)[iel]->GetZ());
282 ionloss += e * cs * theAtomicNumDensityVector[iel];
285 <<
"; tCut(keV)= " << tCut/
keV
286 <<
"; E(keV)= " << lowEdgeEnergy/
keV
287 <<
"; Eav(keV)= " << e/
keV
289 <<
"; loss= " << ionloss
311 if(tCut >= kineticEnergy)
318 G4double finalEnergy = kineticEnergy - tGamma;
321 if((kineticEnergy < 1*MeV && kineticEnergy > 1*
keV &&
generatorName ==
"2bn")){
329 G4double sinTheta = std::sqrt(1. - dirZ*dirZ);
330 G4double dirX = sinTheta*std::cos(phi);
331 G4double dirY = sinTheta*std::sin(phi);
339 gammaDirection.
rotateUz(electronDirection);
342 if (finalEnergy < 0.) {
343 tGamma += finalEnergy;
347 G4double momentum = std::sqrt((totalEnergy + electron_mass_c2)*kineticEnergy);
349 G4double finalX = momentum*electronDirection.
x() - tGamma*gammaDirection.
x();
350 G4double finalY = momentum*electronDirection.
y() - tGamma*gammaDirection.
y();
351 G4double finalZ = momentum*electronDirection.
z() - tGamma*gammaDirection.
z();
354 G4double norm = 1./std::sqrt(finalX*finalX + finalY*finalY + finalZ*finalZ);
360 gammaDirection, tGamma);
369 G4String comments =
"Total cross sections from EEDL database.";
370 comments +=
"\n Gamma energy sampled from a parameterised formula.";
371 comments +=
"\n Implementation of the continuous dE/dx part.";
372 comments +=
"\n At present it can be used for electrons ";
373 comments +=
"in the energy range [250eV,100GeV].";
374 comments +=
"\n The process must work with G4LowEnergyIonisation.";
415 else if (name ==
"2bn")
421 else if (name ==
"2bs")
429 G4Exception(
"G4LowEnergyBremsstrahlung::SetAngularGenerator()",