98 for(
size_t i=0; i<101; ++i) {
117 char* path = std::getenv(
"G4LEDATA");
122 for(
size_t i=0; i<numOfElm; ++i) {
123 G4int Z = (*theElmTable)[i]->GetZasInt();
125 else if(Z > 100) { Z = 100; }
140 return "/livermore/brem/br";
151 const char* datadir = path;
154 datadir = std::getenv(
"G4LEDATA");
156 G4Exception(
"G4LivermoreBremsstrahlungModel::ReadData()",
"em0006",
161 std::ostringstream ost;
163 std::ifstream
fin(ost.str().c_str());
164 if( !
fin.is_open()) {
166 ed <<
"Bremsstrahlung data file <" << ost.str().c_str()
167 <<
"> is not opened!";
168 G4Exception(
"G4LivermoreBremsstrahlungModel::ReadData()",
"em0003",
170 "G4LEDATA version should be G4EMLOW6.23 or later.");
182 ed <<
"Bremsstrahlung data file <" << ost.str().c_str()
183 <<
"> is not retrieved!";
184 G4Exception(
"G4LivermoreBremsstrahlungModel::ReadData()",
"em0005",
186 "G4LEDATA version should be G4EMLOW6.23 or later.");
227 else { cross *=
G4Exp(xxx); }
240 std::vector<G4DynamicParticle*>* vdp,
249 if(cut >= emax) {
return; }
280 if(ylim > vmax) { vmax = ylim; }
282 if(x0 < 0.05) { vmax *= 1.2; }
290 if(x < 0.0) { x = 0.0; }
291 gammaEnergy = sqrt(x);
306 else { v *=
G4Exp(xxx); }
309 if (v > 1.05*vmax &&
nwarn < 5) {
312 ed <<
"### G4LivermoreBremsstrahlungModel Warning: Majoranta exceeded! "
313 << v <<
" > " << vmax <<
" by " << v/vmax
314 <<
" Egamma(MeV)= " << gammaEnergy
315 <<
" Ee(MeV)= " << kineticEnergy
319 ed <<
"\n ### G4LivermoreBremsstrahlungModel Warnings stopped";
321 G4Exception(
"G4LivermoreBremsstrahlungModel::SampleScattering",
"em0044",
339 vdp->push_back(gamma);
342 - gammaEnergy*gammaDirection).unit();
352 G4double finalE = kineticEnergy - gammaEnergy;
378 G4AutoLock l(&LivermoreBremsstrahlungModelMutex);