56 #ifndef G4EmCalculator_h
57 #define G4EmCalculator_h 1
G4double ComputeNuclearDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *)
G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
void PrintInverseRangeTable(const G4ParticleDefinition *)
const G4PhysicsTable * currentLambda
G4double GetMeanFreePath(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=nullptr)
void FindLambdaTable(const G4ParticleDefinition *, const G4String &processName, G4double kinEnergy, G4int &proctype)
const G4Material * currentMaterial
const G4Region * FindRegion(const G4String &)
void SetupMaterial(const G4Material *)
const G4ParticleDefinition * lambdaParticle
const G4ParticleDefinition * theGenericIon
G4double GetDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
void CheckMaterial(G4int Z)
G4double ComputeDEDXForCutInRange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *mat, G4double rangecut=DBL_MAX)
G4double ComputeElectronicDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *mat, G4double cut=DBL_MAX)
G4DynamicParticle dynParticle
const G4ParticleDefinition * FindIon(G4int Z, G4int A)
G4ionEffectiveCharge * ionEffCharge
G4VProcess * FindProcess(const G4ParticleDefinition *part, const G4String &processName)
G4VMultipleScattering * FindMscProcess(const G4ParticleDefinition *, const G4String &processName)
const G4Material * FindMaterial(const G4String &)
G4String currentProcessName
G4double GetShellIonisationCrossSectionPerAtom(const G4String &part, G4int Z, G4AtomicShellEnumerator shell, G4double kinEnergy)
const G4ParticleDefinition const G4Material *G4double range
void PrintDEDXTable(const G4ParticleDefinition *)
G4double GetKinEnergy(G4double range, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
G4double ComputeMeanFreePath(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
const G4ParticleDefinition * FindParticle(const G4String &)
G4VEnergyLossProcess * currentProcess
double A(double temperature)
G4double ComputeTotalDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, G4double cut=DBL_MAX)
G4VEmModel * currentModel
G4double ComputeGammaAttenuationLength(G4double kinEnergy, const G4Material *)
G4bool UpdateCouple(const G4Material *, G4double cut)
G4double ComputeCrossSectionPerAtom(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, G4double Z, G4double A, G4double cut=0.0)
void PrintRangeTable(const G4ParticleDefinition *)
std::vector< const G4Material * > localMaterials
G4VEnergyLossProcess * FindEnLossProcess(const G4ParticleDefinition *, const G4String &processName)
G4double ComputeCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
G4double ComputeCrossSectionPerShell(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, G4int Z, G4int shellIdx, G4double cut=0.0)
G4double GetCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=nullptr)
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
const G4MaterialCutsCouple * currentCouple
G4String currentMaterialName
G4String currentParticleName
G4LossTableManager * manager
G4bool FindEmModel(const G4ParticleDefinition *, const G4String &processName, G4double kinEnergy)
G4VEmProcess * FindDiscreteProcess(const G4ParticleDefinition *, const G4String &processName)
G4double GetRange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=nullptr)
static const G4double reg
std::vector< const G4MaterialCutsCouple * > localCouples
const G4MaterialCutsCouple * FindCouple(const G4Material *, const G4Region *r=nullptr)
G4EmParameters * theParameters
void SetVerbose(G4int val)
const G4ParticleDefinition * baseParticle
G4bool UpdateParticle(const G4ParticleDefinition *, G4double kinEnergy)
G4EmCalculator & operator=(const G4EmCalculator &right)=delete
G4VEnergyLossProcess * FindEnergyLossProcess(const G4ParticleDefinition *)
const G4ParticleDefinition * currentParticle
G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=DBL_MAX)
G4double ComputeShellIonisationCrossSectionPerAtom(const G4String &part, G4int Z, G4AtomicShellEnumerator shell, G4double kinEnergy, const G4Material *mat=nullptr)
const G4Material * cutMaterial
G4double ComputeEnergyCutFromRangeCut(G4double range, const G4ParticleDefinition *, const G4Material *)
G4bool ActiveForParticle(const G4ParticleDefinition *part, G4VProcess *proc)