49 fLowEnergyLimit = 10.0*eV;
50 fHighEnergyLimit = 100.0*GeV;
63 delete crossSectionHandler;
70 const G4int binForFluo = 20;
71 G4int nbin =
G4int(std::log10(fHighEnergyLimit/fLowEnergyLimit) + 0.5);
72 if(nbin <= 0) { nbin = 1; }
76 if (crossSectionHandler) {
77 crossSectionHandler->
Clear();
78 delete crossSectionHandler;
96 if(Z > 6 && Z < 93 && n < nmax &&
97 kinEnergy >= fLowEnergyLimit && kinEnergy <= fHighEnergyLimit) {
99 cross = crossSectionHandler->
FindValue(Z, kinEnergy, n);
113 std::vector<G4double> vec(nmax,0.0);
114 for(
G4int i=0; i<nmax; ++i) {
130 size_t n = vec.size();
133 for(i=0; i<n; ++i) { sum += vec[i]; }
136 for(i=0; i<n; ++i) { vec[i] = vec[i]*sum; }
G4int NumberOfShells(G4int Z) const
static G4AtomicTransitionManager * Instance()
G4double CrossSection(G4int Z, G4AtomicShellEnumerator shell, G4double incidentEnergy, G4double mass=0.0, const G4Material *mat=0)
virtual ~G4LivermoreIonisationCrossSection()
G4LivermoreIonisationCrossSection(const G4String &nam="LivermorePIXE")
std::vector< G4double > Probabilities(G4int Z, G4double incidentEnergy, G4double mass=0.0, G4double deltaEnergy=0, const G4Material *mat=0)
std::vector< G4double > GetCrossSection(G4int Z, G4double incidentEnergy, G4double mass=0.0, G4double deltaEnergy=0.0, const G4Material *mat=0)
void LoadShellData(const G4String &dataFile)
G4double FindValue(G4int Z, G4double e) const