50 G4cout <<
" G4RToEConvForGamma::G4RToEConvForGamma() ";
81 for (
size_t ibin=0; ibin<size_t(
TotBin); ibin++) {
83 for (
size_t iel=0; iel<size_t(NumEl); iel++) {
84 G4int IndEl = (*elementVector)[iel]->GetIndex();
85 SIGMA += atomicNumDensityVector[iel]*
86 (*((*aCrossSectionTable)[IndEl]))[ibin];
89 absorptionLengthVector->
PutValue(ibin, 5./SIGMA);
90 if (absorptionLengthMax < 5./SIGMA ) absorptionLengthMax = 5./SIGMA;
115 if(std::abs(AtomicNumber-Z)>0.1) {
121 s200keV = (0.2651-0.1501*Zlog+0.02283*Zlogsquare)*Zsquare;
122 tmin = (0.552+218.5/Z+557.17/Zsquare)*MeV;
123 smin = (0.01239+0.005585*Zlog-0.000923*Zlogsquare)*std::exp(1.5*Zlog);
124 cmin=std::log(s200keV/smin)/(std::log(tmin/t200keV)*std::log(tmin/t200keV));
125 tlow = 0.2*std::exp(-7.355/std::sqrt(Z))*MeV;
126 slow = s200keV*std::exp(0.042*Z*std::log(t200keV/tlow)*std::log(t200keV/tlow));
127 s1keV = 300.*Zsquare;
128 clow =std::log(s1keV/slow)/std::log(tlow/t1keV);
130 chigh=(7.55e-5-0.0542e-5*Z)*Zsquare*Z/std::log(t100MeV/tmin);
135 if ( KineticEnergy<tlow ) {
136 if(KineticEnergy<t1keV) xs = slow*std::exp(clow*std::log(tlow/t1keV));
137 else xs = slow*std::exp(clow*std::log(tlow/KineticEnergy));
139 }
else if ( KineticEnergy<t200keV ) {
141 * std::exp(0.042*Z*std::log(t200keV/KineticEnergy)*std::log(t200keV/KineticEnergy));
143 }
else if( KineticEnergy<tmin ){
145 * std::exp(cmin*std::log(tmin/KineticEnergy)*std::log(tmin/KineticEnergy));
148 xs = smin + chigh*std::log(KineticEnergy/tmin);
std::vector< G4Element * > G4ElementVector
G4DLLIMPORT std::ostream G4cout
const G4ElementVector * GetElementVector() const
size_t GetNumberOfElements() const
const G4double * GetAtomicNumDensityVector() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
void PutValue(size_t index, G4double theValue)
virtual ~G4RToEConvForGamma()
void BuildAbsorptionLengthVector(const G4Material *aMaterial, G4RangeVector *rangeVector)
G4double ComputeCrossSection(G4double AtomicNumber, G4double KineticEnergy) const
G4LossTable * theLossTable
G4int GetVerboseLevel() const
const G4ParticleDefinition * theParticle