#include <G4EnergyLossForExtrapolator.hh>
|
| G4EnergyLossForExtrapolator (G4int verb=1) |
|
| ~G4EnergyLossForExtrapolator () |
|
G4double | ComputeDEDX (G4double kinEnergy, const G4ParticleDefinition *) |
|
G4double | ComputeRange (G4double kinEnergy, const G4ParticleDefinition *) |
|
G4double | ComputeEnergy (G4double range, const G4ParticleDefinition *) |
|
G4double | EnergyAfterStep (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *) |
|
G4double | EnergyBeforeStep (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *) |
|
G4double | TrueStepLength (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part) |
|
G4double | EnergyAfterStep (G4double kinEnergy, G4double step, const G4Material *, const G4String &particleName) |
|
G4double | EnergyBeforeStep (G4double kinEnergy, G4double step, const G4Material *, const G4String &particleName) |
|
G4double | AverageScatteringAngle (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part) |
|
G4double | AverageScatteringAngle (G4double kinEnergy, G4double step, const G4Material *, const G4String &particleName) |
|
G4double | ComputeTrueStep (const G4Material *, const G4ParticleDefinition *part, G4double kinEnergy, G4double stepLength) |
|
G4double | EnergyDispersion (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *) |
|
G4double | EnergyDispersion (G4double kinEnergy, G4double step, const G4Material *, const G4String &particleName) |
|
void | SetVerbose (G4int val) |
|
void | SetMinKinEnergy (G4double) |
|
void | SetMaxKinEnergy (G4double) |
|
void | SetMaxEnergyTransfer (G4double) |
|
G4EnergyLossForExtrapolator::G4EnergyLossForExtrapolator |
( |
G4int |
verb = 1 | ) |
|
|
explicit |
Definition at line 67 of file G4EnergyLossForExtrapolator.cc.
68 : maxEnergyTransfer(
DBL_MAX), verbose(verb)
70 currentParticle =
nullptr;
71 currentMaterial =
nullptr;
80 mass = charge2 = electronDensity = radLength = bg2 = beta2
81 = kineticEnergy = tmax = 0.0;
84 idxDedxElectron = idxDedxPositron = idxDedxMuon = idxDedxProton
85 = idxRangeElectron = idxRangePositron = idxRangeMuon = idxRangeProton
86 = idxInvRangeElectron = idxInvRangePositron = idxInvRangeMuon
87 = idxInvRangeProton = idxMscElectron = 0;
89 electron = positron = proton = muonPlus = muonMinus =
nullptr;
static constexpr double TeV
static constexpr double MeV
G4EnergyLossForExtrapolator::~G4EnergyLossForExtrapolator |
( |
| ) |
|
Definition at line 248 of file G4EnergyLossForExtrapolator.hh.
255 if(SetupKinematics(part, mat, kinEnergy)) {
static constexpr double MeV
G4double G4Log(G4double x)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
Definition at line 240 of file G4EnergyLossForExtrapolator.cc.
244 if(part == electron) {
245 x = ComputeValue(ekin, GetPhysicsTable(
fDedxElectron), idxDedxElectron);
246 }
else if(part == positron) {
247 x = ComputeValue(ekin, GetPhysicsTable(
fDedxPositron), idxDedxPositron);
248 }
else if(part == muonPlus || part == muonMinus) {
249 x = ComputeValue(ekin, GetPhysicsTable(
fDedxMuon), idxDedxMuon);
252 x = ComputeValue(e, GetPhysicsTable(
fDedxProton), idxDedxProton)*charge2;
static constexpr double proton_mass_c2
Definition at line 282 of file G4EnergyLossForExtrapolator.cc.
286 if(part == electron) {
288 idxInvRangeElectron);
289 }
else if(part == positron) {
291 idxInvRangePositron);
292 }
else if(part == muonPlus || part == muonMinus) {
293 x = ComputeValue(range, GetPhysicsTable(
fInvRangeMuon), idxInvRangeMuon);
296 G4double r = range*massratio*charge2;
298 idxInvRangeProton)/massratio;
static constexpr double proton_mass_c2
Definition at line 260 of file G4EnergyLossForExtrapolator.cc.
264 if(part == electron) {
265 x = ComputeValue(ekin, GetPhysicsTable(
fRangeElectron), idxRangeElectron);
266 }
else if(part == positron) {
267 x = ComputeValue(ekin, GetPhysicsTable(
fRangePositron), idxRangePositron);
268 }
else if(part == muonPlus || part == muonMinus) {
269 x = ComputeValue(ekin, GetPhysicsTable(
fRangeMuon), idxRangeMuon);
273 x = ComputeValue(e, GetPhysicsTable(
fRangeProton), idxRangeProton)
274 /(charge2*massratio);
static constexpr double proton_mass_c2
Definition at line 95 of file G4EnergyLossForExtrapolator.cc.
100 if(0 == nmat) { Initialisation(); }
101 G4double kinEnergyFinal = kinEnergy;
102 if(SetupKinematics(part, mat, kinEnergy)) {
106 kinEnergyFinal = 0.0;
107 }
else if(step < linLossLimit*r) {
108 kinEnergyFinal -= step*
ComputeDEDX(kinEnergy,part);
114 return kinEnergyFinal;
Definition at line 120 of file G4EnergyLossForExtrapolator.cc.
126 if(0 == nmat) { Initialisation(); }
127 G4double kinEnergyFinal = kinEnergy;
129 if(SetupKinematics(part, mat, kinEnergy)) {
133 if(step < linLossLimit*r) {
134 kinEnergyFinal += step*
ComputeDEDX(kinEnergy,part);
140 return kinEnergyFinal;
Definition at line 279 of file G4EnergyLossForExtrapolator.hh.
285 if(SetupKinematics(part, mat, kinEnergy)) {
287 sig2 = (1.0/beta2 - 0.5)
static constexpr double twopi_mc2_rcl2
void G4EnergyLossForExtrapolator::SetMaxEnergyTransfer |
( |
G4double |
val | ) |
|
|
inline |
void G4EnergyLossForExtrapolator::SetMaxKinEnergy |
( |
G4double |
val | ) |
|
|
inline |
void G4EnergyLossForExtrapolator::SetMinKinEnergy |
( |
G4double |
val | ) |
|
|
inline |
void G4EnergyLossForExtrapolator::SetVerbose |
( |
G4int |
val | ) |
|
|
inline |
Definition at line 146 of file G4EnergyLossForExtrapolator.cc.
152 if(0 == nmat) { Initialisation(); }
155 if(SetupKinematics(part, mat, kinEnergy)) {
156 if(part == electron || part == positron) {
158 ComputeValue(kinEnergy, GetPhysicsTable(
fMscElectron), idxMscElectron);
160 if(x < 0.2) { res *= (1.0 + 0.5*x + x*x/3.0); }
161 else if(x < 0.9999) { res = -
G4Log(1.0 - x)*stepLength/x; }
G4double G4Log(G4double x)
The documentation for this class was generated from the following files: