50 fLowEnergyLimit = 10.0*
eV;
51 fHighEnergyLimit = 100.0*
GeV;
64 delete crossSectionHandler;
71 const G4int binForFluo = 20;
72 G4int nbin =
G4int(std::log10(fHighEnergyLimit/fLowEnergyLimit) + 0.5);
73 if(nbin <= 0) { nbin = 1; }
77 if (crossSectionHandler) {
78 crossSectionHandler->
Clear();
79 delete crossSectionHandler;
97 if(Z > 6 && Z < 93 && n < nmax &&
98 kinEnergy >= fLowEnergyLimit && kinEnergy <= fHighEnergyLimit) {
100 cross = crossSectionHandler->
FindValue(Z, kinEnergy, n);
107 std::vector<G4double>
114 std::vector<G4double> vec(nmax,0.0);
115 for(
G4int i=0; i<nmax; ++i) {
123 std::vector<G4double>
131 size_t n = vec.size();
134 for(i=0; i<
n; ++i) { sum += vec[i]; }
137 for(i=0; i<
n; ++i) { vec[i] = vec[i]*sum; }
std::vector< G4double > GetCrossSection(G4int Z, G4double incidentEnergy, G4double mass=0.0, G4double deltaEnergy=0.0, const G4Material *mat=0)
G4int NumberOfShells(G4int Z) const
std::vector< G4double > Probabilities(G4int Z, G4double incidentEnergy, G4double mass=0.0, G4double deltaEnergy=0, const G4Material *mat=0)
G4double FindValue(G4int Z, G4double e) const
static constexpr double eV
G4LivermoreIonisationCrossSection(const G4String &nam="LivermorePIXE")
void LoadShellData(const G4String &dataFile)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static constexpr double GeV
virtual ~G4LivermoreIonisationCrossSection()
static G4AtomicTransitionManager * Instance()
G4double CrossSection(G4int Z, G4AtomicShellEnumerator shell, G4double incidentEnergy, G4double mass=0.0, const G4Material *mat=0)