9#ifndef ENERGYLOSSFOREXTRAPOLATOR_H_
10#define ENERGYLOSSFOREXTRAPOLATOR_H_
12#include <CLHEP/Units/SystemOfUnits.h>
15#include <G4PhysicsTable.hh>
16#include <G4DataVector.hh>
19class G4ParticleDefinition;
21class G4MaterialCutsCouple;
22class G4ProductionCuts;
30 namespace Simulation {
44 G4double
ComputeDEDX(G4double kinEnergy,
const G4ParticleDefinition*);
47 G4double
ComputeRange(G4double kinEnergy,
const G4ParticleDefinition*);
50 G4double
ComputeEnergy(G4double range,
const G4ParticleDefinition*);
54 const G4Material*,
const G4ParticleDefinition*);
58 const G4Material*,
const G4ParticleDefinition*);
62 const G4Material*,
const G4ParticleDefinition* part);
75 const G4ParticleDefinition* part);
83 inline G4double
ComputeTrueStep(
const G4Material*,
const G4ParticleDefinition* part,
84 G4double kinEnergy, G4double stepLength);
126 void ComputeMuonDEDX(
const G4ParticleDefinition* part, G4PhysicsTable* table);
135 inline G4double
ComputeValue(G4double x,
const G4PhysicsTable* table);
357 const G4Material* mat,
358 const G4ParticleDefinition* part)
360 G4double theta = 0.0;
363 G4double y = std::max(0.001, t);
373 const G4ParticleDefinition* part,
378 return stepLength * std::sqrt(1.0 + 0.625 * theta * theta);
400 const G4PhysicsTable* table)
Abstract base class for different kinds of events.