#include <G4VRangeToEnergyConverter.hh>
◆ G4VRangeToEnergyConverter() [1/2]
G4VRangeToEnergyConverter::G4VRangeToEnergyConverter |
( |
| ) |
|
|
explicit |
◆ ~G4VRangeToEnergyConverter()
G4VRangeToEnergyConverter::~G4VRangeToEnergyConverter |
( |
| ) |
|
|
virtual |
◆ G4VRangeToEnergyConverter() [2/2]
◆ ComputeValue()
◆ 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
G4GLOB_DLL std::ostream G4cout
G4double ConvertForGamma(const G4double rangeCut, const G4Material *material)
G4double ConvertForElectron(const G4double rangeCut, const G4Material *material)
G4int GetVerboseLevel() const
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, ConvertForElectron(), ConvertForGamma(), Emax, Emin, fPDG, CLHEP::g, G4cout, G4endl, 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 ComputeValue(), e1, e2, LiniearInterpolation(), eplot::material, and Nbin.
Referenced by Convert().
◆ ConvertForGamma()
◆ FillEnergyVector()
void G4VRangeToEnergyConverter::FillEnergyVector |
( |
const G4double |
emin, |
|
|
const G4double |
emax |
|
) |
| |
|
staticprivate |
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
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
static G4int NbinPerDecade
References Emax, emax, Emin, Energy, G4Exp(), G4Log(), G4MUTEXLOCK, G4MUTEXUNLOCK, Nbin, and NbinPerDecade.
Referenced by G4VRangeToEnergyConverter(), SetEnergyRange(), and SetMaxEnergyCut().
◆ GetHighEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetHighEdgeEnergy |
( |
| ) |
|
|
static |
◆ GetLowEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetLowEdgeEnergy |
( |
| ) |
|
|
static |
◆ GetMaxEnergyCut()
G4double G4VRangeToEnergyConverter::GetMaxEnergyCut |
( |
| ) |
|
|
static |
◆ GetParticleType()
◆ GetVerboseLevel()
G4int G4VRangeToEnergyConverter::GetVerboseLevel |
( |
| ) |
const |
|
inline |
◆ LiniearInterpolation()
◆ operator!=()
◆ operator=()
◆ operator==()
◆ SetEnergyRange()
void G4VRangeToEnergyConverter::SetEnergyRange |
( |
const G4double |
lowedge, |
|
|
const G4double |
highedge |
|
) |
| |
|
static |
◆ SetMaxEnergyCut()
void G4VRangeToEnergyConverter::SetMaxEnergyCut |
( |
const G4double |
value | ) |
|
|
static |
◆ SetVerboseLevel()
void G4VRangeToEnergyConverter::SetVerboseLevel |
( |
G4int |
value | ) |
|
|
inline |
◆ Emax
G4double G4VRangeToEnergyConverter::Emax = 0.0 |
|
staticprotected |
◆ Emin
G4double G4VRangeToEnergyConverter::Emin = 0.0 |
|
staticprotected |
◆ Energy
std::vector< G4double > * G4VRangeToEnergyConverter::Energy = nullptr |
|
staticprotected |
◆ fPDG
G4int G4VRangeToEnergyConverter::fPDG = 0 |
|
protected |
◆ isFirstInstance
G4bool G4VRangeToEnergyConverter::isFirstInstance = false |
|
protected |
◆ Nbin
G4int G4VRangeToEnergyConverter::Nbin = 350 |
|
staticprotected |
◆ NbinPerDecade
G4int G4VRangeToEnergyConverter::NbinPerDecade = 50 |
|
staticprotected |
◆ theParticle
◆ verboseLevel
G4int G4VRangeToEnergyConverter::verboseLevel = 1 |
|
protected |
The documentation for this class was generated from the following files: