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