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;
83 crossSectionHandler->LoadShellData(
"ioni/ion-ss-cs-");
94 G4int nmax = std::min(9,transitionManager->NumberOfShells(Z));
95 if(Z > 6 && Z < 93 && n < nmax &&
96 kinEnergy >= fLowEnergyLimit && kinEnergy <= fHighEnergyLimit) {
97 cross = crossSectionHandler->FindValue(Z, kinEnergy, n);
110 G4int nmax = std::min(9,transitionManager->NumberOfShells(Z));
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; }
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
G4VhShellCrossSection(const G4String &xname="")