80 crossSectionHandler(0), energySpectrum(0)
107 G4Exception(
"G4LivermoreIonisationModel::Initialise",
109 "Livermore Ionisation Model is applicable only to electrons");
131 const size_t nbins = 20;
134 G4int ndec =
G4int(std::log10(emax/emin) + 0.5);
135 if(ndec <= 0) { ndec = 1; }
140 emin,emax,nbins*ndec);
152 G4cout <<
"Livermore Ionisation model is initialized " << G4endl
185 G4Exception(
"G4LivermoreIonisationModel::ComputeCrossSectionPerAtom",
187 "The cross section handler is not correctly initialized");
200 G4cout <<
"Cross section for delta emission > "
201 << cutEnergy/
keV <<
" keV at "
202 << energy/
keV <<
" keV and Z = " << iZ <<
" --> "
221 const G4double* theAtomicNumDensityVector =
225 for (
size_t iel=0; iel<NumberOfElements; iel++ )
227 G4int iZ = (
G4int)((*theElementVector)[iel]->GetZ());
234 sPower += e * cs * theAtomicNumDensityVector[iel];
237 sPower += esp * theAtomicNumDensityVector[iel];
243 G4cout <<
"Stopping power < " << cutEnergy/
keV
244 <<
" keV at " << kineticEnergy/
keV <<
" keV = "
245 << sPower/(
keV/
mm) <<
" keV/mm" << G4endl;
254 std::vector<G4DynamicParticle*>* fvect,
280 kineticEnergy, shellIndex);
282 if (energyDelta == 0.)
292 fvect->push_back(delta);
299 finalP = finalP.
unit();
306 G4double finalKinEnergy = kineticEnergy - energyDelta - theEnergyDeposit;
307 if(finalKinEnergy < 0.0)
309 theEnergyDeposit += finalKinEnergy;
310 finalKinEnergy = 0.0;
318 if (theEnergyDeposit < 0)
320 G4cout <<
"G4LivermoreIonisationModel: Negative energy deposit: "
321 << theEnergyDeposit/
eV <<
" eV" <<
G4endl;
322 theEnergyDeposit = 0.0;
330 G4cout <<
"-----------------------------------------------------------" <<
G4endl;
331 G4cout <<
"Energy balance from G4LivermoreIonisation" <<
G4endl;
332 G4cout <<
"Incoming primary energy: " << kineticEnergy/
keV <<
" keV" <<
G4endl;
333 G4cout <<
"-----------------------------------------------------------" <<
G4endl;
334 G4cout <<
"Outgoing primary energy: " << finalKinEnergy/
keV <<
" keV" <<
G4endl;
336 G4cout <<
"Fluorescence: " << (bindingEnergy-theEnergyDeposit)/
keV <<
" keV" << G4endl;
337 G4cout <<
"Local energy deposit " << theEnergyDeposit/
keV <<
" keV" <<
G4endl;
340 G4cout <<
"-----------------------------------------------------------" <<
G4endl;