13 #ifndef ENERGYLOSSFOREXTRAPOLATOR_H_
14 #define ENERGYLOSSFOREXTRAPOLATOR_H_
16 #include <CLHEP/Units/SystemOfUnits.h>
19 #include <G4PhysicsTable.hh>
20 #include <G4DataVector.hh>
23 class G4ParticleDefinition;
25 class G4MaterialCutsCouple;
26 class G4ProductionCuts;
34 namespace Simulation {
48 G4double
ComputeDEDX(G4double kinEnergy,
const G4ParticleDefinition*);
51 G4double
ComputeRange(G4double kinEnergy,
const G4ParticleDefinition*);
54 G4double
ComputeEnergy(G4double range,
const G4ParticleDefinition*);
58 const G4Material*,
const G4ParticleDefinition*);
62 const G4Material*,
const G4ParticleDefinition*);
66 const G4Material*,
const G4ParticleDefinition* part);
79 const G4ParticleDefinition* part);
87 inline G4double
ComputeTrueStep(
const G4Material*,
const G4ParticleDefinition* part,
88 G4double kinEnergy, G4double stepLength);
124 const G4ParticleDefinition*
FindParticle(
const G4String& name);
130 void ComputeMuonDEDX(
const G4ParticleDefinition* part, G4PhysicsTable* table);
139 inline G4double
ComputeValue(G4double x,
const G4PhysicsTable* table);
361 const G4Material* mat,
362 const G4ParticleDefinition* part)
364 G4double theta = 0.0;
367 G4double y = std::max(0.001, t);
377 const G4ParticleDefinition* part,
382 return stepLength * std::sqrt(1.0 + 0.625 * theta * theta);
404 const G4PhysicsTable* table)