#include <G4RToEConvForGamma.hh>
Definition at line 40 of file G4RToEConvForGamma.hh.
◆ G4RToEConvForGamma()
G4RToEConvForGamma::G4RToEConvForGamma |
( |
| ) |
|
|
explicit |
◆ ~G4RToEConvForGamma()
G4RToEConvForGamma::~G4RToEConvForGamma |
( |
| ) |
|
|
virtual |
◆ ComputeValue()
Implements G4VRangeToEnergyConverter.
Definition at line 65 of file G4RToEConvForGamma.cc.
67{
68
69
70
71
75
79
82
83 G4double smin = (0.01239+0.005585*Zlog-0.000923*Zlogsquare)*
G4Exp(1.5*Zlog);
84 G4double s200keV = (0.2651-0.1501*Zlog+0.02283*Zlogsquare)*Zsquare;
85
88
94
95
98 {
101 }
102 else if (
energy < t200keV )
103 {
105 xs = s200keV *
G4Exp(0.042*
Z*x*x);
106 }
108 {
110 xs = smin *
G4Exp(cmin*x*x);
111 }
112 else
113 {
115 }
117}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static const G4double tlow
static G4Pow * GetInstance()
G4double logZ(G4int Z) const
static constexpr double barn
static constexpr double keV
static constexpr double MeV
G4double energy(const ThreeVector &p, const G4double m)
References CLHEP::barn, G4INCL::KinematicsUtils::energy(), G4Exp(), G4Log(), G4Pow::GetInstance(), CLHEP::keV, G4Pow::logZ(), CLHEP::MeV, tlow, and Z.
◆ Convert()
Reimplemented in G4RToEConvForProton.
Definition at line 87 of file G4VRangeToEnergyConverter.cc.
89{
90#ifdef G4VERBOSE
92 {
93 G4cout <<
"G4VRangeToEnergyConverter::Convert() - ";
95 <<
" with Range Cut " << rangeCut/
mm <<
"[mm]" <<
G4endl;
96 }
97#endif
98
101 {
103 }
104 else
105 {
107
110 if(cut < lowen)
111 {
112
113 cut /= (1.+(1.-cut/lowen)*tune/(rangeCut*
material->GetDensity()));
114 }
115 }
116
118 return cut;
119}
static constexpr double mm
G4double ConvertForGamma(const G4double rangeCut, const G4Material *material)
G4double ConvertForElectron(const G4double rangeCut, const G4Material *material)
static constexpr double mm
static constexpr double cm3
static constexpr double g
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
References CLHEP::cm3, G4VRangeToEnergyConverter::ConvertForElectron(), G4VRangeToEnergyConverter::ConvertForGamma(), G4VRangeToEnergyConverter::Emax, G4VRangeToEnergyConverter::Emin, G4VRangeToEnergyConverter::fPDG, CLHEP::g, G4cout, G4endl, G4VRangeToEnergyConverter::GetVerboseLevel(), CLHEP::keV, eplot::material, G4INCL::Math::max(), G4INCL::Math::min(), CLHEP::mm, and mm.
Referenced by G4ProductionCutsTable::ConvertRangeToEnergy(), and G4ProductionCutsTable::UpdateCoupleTable().
◆ ConvertForElectron()
Definition at line 225 of file G4VRangeToEnergyConverter.cc.
227{
230
231
241 {
243 dedx2 = 0.0;
244 for (
G4int j=0; j<nelm; ++j)
245 {
247 }
248 range += (dedx1 + dedx2 > 0.0) ? 2*(
e2 -
e1)/(dedx1 + dedx2) : 0.0;
249 range2 = range;
250 if(range2 < rangeCut)
251 {
253 dedx1 = dedx2;
254 range1 = range2;
255 }
256 else
257 {
258 break;
259 }
260 }
262}
static const G4double e1[44]
static const G4double e2[44]
std::vector< const G4Element * > G4ElementVector
virtual G4double ComputeValue(const G4int Z, const G4double kinEnergy)=0
G4double LiniearInterpolation(const G4double e1, const G4double e2, const G4double r1, const G4double r2, const G4double r)
References G4VRangeToEnergyConverter::ComputeValue(), e1, e2, G4VRangeToEnergyConverter::LiniearInterpolation(), eplot::material, and G4VRangeToEnergyConverter::Nbin.
Referenced by G4VRangeToEnergyConverter::Convert().
◆ ConvertForGamma()
◆ FillEnergyVector()
void G4VRangeToEnergyConverter::FillEnergyVector |
( |
const G4double |
emin, |
|
|
const G4double |
emax |
|
) |
| |
|
staticprivateinherited |
Definition at line 161 of file G4VRangeToEnergyConverter.cc.
163{
165 {
166#ifdef G4MULTITHREADED
169 {
170#endif
175 (*Energy)[0] = emin;
178 for(
G4int i=1; i<
Nbin; ++i) { (*Energy)[i] = emin*
G4Exp(i * fact); }
179#ifdef G4MULTITHREADED
180 }
182#endif
183 }
184}
static const G4double emax
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
static G4int NbinPerDecade
static std::vector< G4double > * Energy
References G4VRangeToEnergyConverter::Emax, emax, G4VRangeToEnergyConverter::Emin, G4VRangeToEnergyConverter::Energy, G4Exp(), G4Log(), G4MUTEXLOCK, G4MUTEXUNLOCK, G4VRangeToEnergyConverter::Nbin, and G4VRangeToEnergyConverter::NbinPerDecade.
Referenced by G4VRangeToEnergyConverter::G4VRangeToEnergyConverter(), G4VRangeToEnergyConverter::SetEnergyRange(), and G4VRangeToEnergyConverter::SetMaxEnergyCut().
◆ GetHighEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetHighEdgeEnergy |
( |
| ) |
|
|
staticinherited |
◆ GetLowEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetLowEdgeEnergy |
( |
| ) |
|
|
staticinherited |
◆ GetMaxEnergyCut()
G4double G4VRangeToEnergyConverter::GetMaxEnergyCut |
( |
| ) |
|
|
staticinherited |
◆ GetParticleType()
◆ GetVerboseLevel()
G4int G4VRangeToEnergyConverter::GetVerboseLevel |
( |
| ) |
const |
|
inlineinherited |
◆ LiniearInterpolation()
◆ operator!=()
◆ operator==()
◆ SetEnergyRange()
void G4VRangeToEnergyConverter::SetEnergyRange |
( |
const G4double |
lowedge, |
|
|
const G4double |
highedge |
|
) |
| |
|
staticinherited |
◆ SetMaxEnergyCut()
void G4VRangeToEnergyConverter::SetMaxEnergyCut |
( |
const G4double |
value | ) |
|
|
staticinherited |
◆ SetVerboseLevel()
void G4VRangeToEnergyConverter::SetVerboseLevel |
( |
G4int |
value | ) |
|
|
inlineinherited |
◆ Emax
G4double G4VRangeToEnergyConverter::Emax = 0.0 |
|
staticprotectedinherited |
◆ Emin
G4double G4VRangeToEnergyConverter::Emin = 0.0 |
|
staticprotectedinherited |
◆ Energy
std::vector< G4double > * G4VRangeToEnergyConverter::Energy = nullptr |
|
staticprotectedinherited |
◆ fPDG
G4int G4VRangeToEnergyConverter::fPDG = 0 |
|
protectedinherited |
◆ isFirstInstance
G4bool G4VRangeToEnergyConverter::isFirstInstance = false |
|
protectedinherited |
◆ Nbin
G4int G4VRangeToEnergyConverter::Nbin = 350 |
|
staticprotectedinherited |
◆ NbinPerDecade
G4int G4VRangeToEnergyConverter::NbinPerDecade = 50 |
|
staticprotectedinherited |
◆ theParticle
◆ verboseLevel
G4int G4VRangeToEnergyConverter::verboseLevel = 1 |
|
protectedinherited |
The documentation for this class was generated from the following files: