Belle II Software  release-08-01-10
EnergyLossForExtrapolator Class Reference

Calculate energy loss, fluctuation, and multiple-scattering angle for extrapolator. More...

#include <EnergyLossForExtrapolator.h>

Collaboration diagram for EnergyLossForExtrapolator:

Public Member Functions

 EnergyLossForExtrapolator ()
 Constructor (WITHOUT GEANT4 verbosity flag)
 
 ~EnergyLossForExtrapolator ()
 Destructor.
 
G4double ComputeDEDX (G4double kinEnergy, const G4ParticleDefinition *)
 Get specific ionization energy loss for the given kinetic energy and particle.
 
G4double ComputeRange (G4double kinEnergy, const G4ParticleDefinition *)
 Get range for the given kinetic energy and particle.
 
G4double ComputeEnergy (G4double range, const G4ParticleDefinition *)
 Get kinetic energy corresponding to the given range and particle.
 
G4double EnergyAfterStep (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *)
 Get kinetic energy after a step in given material by given particle.
 
G4double EnergyBeforeStep (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *)
 Get kinetic energy before a step in given material by given particle.
 
G4double TrueStepLength (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part)
 Get true step length for given particle and kinetic energy.
 
G4double AverageScatteringAngle (G4double kinEnergy, G4double step, const G4Material *, const G4ParticleDefinition *part)
 Get kinetic energy after a step in given material by given particle. More...
 
G4double ComputeTrueStep (const G4Material *, const G4ParticleDefinition *part, G4double kinEnergy, G4double stepLength)
 Get average scattering angle after a step in given material by given particle. More...
 
void SetMinKinEnergy (G4double)
 Get energy dispersion for a step in given material by given particle. More...
 
void SetMaxKinEnergy (G4double)
 Change the maximum particle kinetic energy for this class (default is 10 TeV)
 
void SetMaxEnergyTransfer (G4double)
 Change the maximum energy loss or gain for this class (default is infinity)
 

Private Member Functions

void Initialisation ()
 Initialize tables used to calculate energy loss, fluctuation, and scattering for electrons, positrons, muons, pions, kaons, protons and deuterons in all materials.
 
G4bool SetupKinematics (const G4ParticleDefinition *, const G4Material *, G4double kinEnergy)
 Save current particle properties, kinetic energy and material in internal cached state.
 
G4PhysicsTable * PrepareTable ()
 Create a new table to store one type of kinematics data for a particle.
 
const G4ParticleDefinition * FindParticle (const G4String &name)
 Get the particle definition of the named particle.
 
void ComputeElectronDEDX (const G4ParticleDefinition *part, G4PhysicsTable *table)
 Fill the table with the specific ionization energy loss of an electron.
 
void ComputeMuonDEDX (const G4ParticleDefinition *part, G4PhysicsTable *table)
 Fill the table with the specific ionization energy loss of a muon.
 
void ComputeHadronDEDX (const G4ParticleDefinition *part, G4PhysicsTable *table)
 Fill the table with the specific ionization energy loss of a hadron.
 
void ComputeTransportXS (const G4ParticleDefinition *part, G4PhysicsTable *table)
 Fill the table with the multiple-scattering cross section of a particle.
 
G4double ComputeValue (G4double x, const G4PhysicsTable *table)
 Get the tabulated energy-loss, fluctuation, or scattering value for the given input.
 
EnergyLossForExtrapolatoroperator= (const EnergyLossForExtrapolator &right)
 Hide assignment operator.
 
 EnergyLossForExtrapolator (const EnergyLossForExtrapolator &)
 Hide copy-assignment operator.
 

Private Attributes

const G4ParticleDefinition * m_Particle
 Pointer to definition of the currently cached particle.
 
const G4ParticleDefinition * m_Electron
 Pointer to definition of the electron.
 
const G4ParticleDefinition * m_Positron
 Pointer to definition of the positron.
 
const G4ParticleDefinition * m_MuonPlus
 Pointer to definition of the positive muon.
 
const G4ParticleDefinition * m_MuonMinus
 Pointer to definition of the negative muon.
 
const G4ParticleDefinition * m_PionPlus
 Pointer to definition of the positive pion.
 
const G4ParticleDefinition * m_PionMinus
 Pointer to definition of the negative pion.
 
const G4ParticleDefinition * m_KaonPlus
 Pointer to definition of the positive kaon.
 
const G4ParticleDefinition * m_KaonMinus
 Pointer to definition of the negative kaon.
 
const G4ParticleDefinition * m_Proton
 Pointer to definition of the proton.
 
const G4ParticleDefinition * m_AntiProton
 Pointer to definition of the antiproton.
 
const G4ParticleDefinition * m_Deuteron
 Pointer to definition of the deuteron.
 
const G4ParticleDefinition * m_AntiDeuteron
 Pointer to definition of the antideuteron.
 
G4DataVector m_Cuts
 Vector of particle cuts.
 
G4ProductionCuts * m_ProductionCuts
 Pointer to the internal cache of default G4ProductionCuts.
 
std::vector< const G4MaterialCutsCouple * > m_Couples
 List of material-cuts pairings.
 
G4PhysicsTable * m_DedxElectron
 Pointer to the electron's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxPositron
 Pointer to the positron's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxMuon
 Pointer to the muon's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxPion
 Pointer to the pion's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxKaon
 Pointer to the kaon's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxProton
 Pointer to the proton's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_DedxDeuteron
 Pointer to the deuteron's specific ionization energy loss vs KE table.
 
G4PhysicsTable * m_RangeElectron
 Pointer to the electron's range vs KE table.
 
G4PhysicsTable * m_RangePositron
 Pointer to the positron's range vs KE table.
 
G4PhysicsTable * m_RangeMuon
 Pointer to the muon's range vs KE table.
 
G4PhysicsTable * m_RangePion
 Pointer to the pion's range vs KE table.
 
G4PhysicsTable * m_RangeKaon
 Pointer to the kaon's range vs KE table.
 
G4PhysicsTable * m_RangeProton
 Pointer to the proton's range vs KE table.
 
G4PhysicsTable * m_RangeDeuteron
 Pointer to the deuteron's range vs KE table.
 
G4PhysicsTable * m_InvRangeElectron
 Pointer to the electron's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangePositron
 Pointer to the positron's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangeMuon
 Pointer to the muon's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangePion
 Pointer to the pion's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangeKaon
 Pointer to the kaon's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangeProton
 Pointer to the proton's inverse-range vs KE table.
 
G4PhysicsTable * m_InvRangeDeuteron
 Pointer to the deuteron's inverse-range vs KE table.
 
G4PhysicsTable * m_MscatElectron
 Pointer to the electron's multiple-scattering cross section vs KE table.
 
const G4Material * m_Material
 Pointer to internally cached material.
 
G4int m_MaterialIndex
 Cached material index.
 
G4double m_ElectronDensity
 Cached material electron density.
 
G4double m_RadLength
 Cached material radiation length.
 
G4double m_Mass
 Cached particle mass.
 
G4double m_ChargeSq
 Cached charge-squared (in units of e)
 
G4double m_KineticEnergy
 Cached particle kinetic energy.
 
G4double m_Gamma
 Cached particle's gamma value.
 
G4double m_BetaGammaSq
 Cached particle's beta*gamma squared.
 
G4double m_BetaSq
 Cached particle's beta squared.
 
G4double m_Tmax
 Cached particle's maximum kinetic-energy loss.
 
G4double m_LinLossLimit
 Step-length limit in units of range (0.01); not modifiable by user.
 
G4double m_UserTmin
 User's minimum kinetic energy for particles (default 1 MeV)
 
G4double m_UserTmax
 User's maximum kinetic energy for particles (default 10 TeV)
 
G4double m_UserMaxEnergyTransfer
 User's upper limit on maximum kinetic-energy loss (default infinity)
 
G4int m_Nbins
 Number of bins in each energy loss, fluctuation, and multiple-scattering table (70, fixed)
 
G4int m_NMaterials
 Number of materials in current geometry.
 
G4bool m_Initialised
 UNUSED Flag to indicate that Initialisation() method has been called.
 

Detailed Description

Calculate energy loss, fluctuation, and multiple-scattering angle for extrapolator.

Definition at line 33 of file EnergyLossForExtrapolator.h.

Member Function Documentation

◆ AverageScatteringAngle()

G4double AverageScatteringAngle ( G4double  kinEnergy,
G4double  step,
const G4Material *  mat,
const G4ParticleDefinition *  part 
)
inline

Get kinetic energy after a step in given material by given particle.

Get kinetic energy before a step in given material by given particle Get average scattering angle after a step in given material by given particle

Definition at line 355 of file EnergyLossForExtrapolator.h.

359  {
360  G4double theta = 0.0;
361  if (SetupKinematics(part, mat, kinEnergy)) {
362  G4double t = stepLength / m_RadLength;
363  G4double y = std::max(0.001, t);
364  theta = 19.23 * CLHEP::MeV * std::sqrt(m_ChargeSq * t) * (1.0 + 0.038 * std::log(y)) / (m_BetaSq * m_Gamma * m_Mass);
365  }
366  return theta;
367  }
G4double m_RadLength
Cached material radiation length.
G4double m_ChargeSq
Cached charge-squared (in units of e)
G4double m_Gamma
Cached particle's gamma value.
G4bool SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kinEnergy)
Save current particle properties, kinetic energy and material in internal cached state.
G4double m_BetaSq
Cached particle's beta squared.
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

◆ ComputeTrueStep()

G4double ComputeTrueStep ( const G4Material *  mat,
const G4ParticleDefinition *  part,
G4double  kinEnergy,
G4double  stepLength 
)
inline

Get average scattering angle after a step in given material by given particle.

Get true step length for given particle and kinetic energy

Definition at line 372 of file EnergyLossForExtrapolator.h.

◆ SetMinKinEnergy()

void SetMinKinEnergy ( G4double  val)
inline

Get energy dispersion for a step in given material by given particle.

Get energy dispersion for a step in given material by given particle Change the GEANT4 verbosity for this class Change the minimum particle kinetic energy for this class (default is 1 MeV)

Definition at line 417 of file EnergyLossForExtrapolator.h.


The documentation for this class was generated from the following files: