70 #include "G4EnergyLossMessenger.hh"
130 MinKineticEnergy(1.*
eV),
135 RecorderOfProcess(0),
268 for (
size_t J=0; J<numOfCouples; J++)
285 Value += (*pointer)[J]->GetValue(LowEdgeEnergy,isOutRange);
404 static const G4double faclow = 1.5 ;
425 else finalT = E*(1.-std::sqrt(Step/
fRangeNow)) ;
446 MeanLoss = E-finalT ;
449 if ((
EnlossFlucFlag) && (finalT > 0.) && (finalT < E)&&(E > LowerBoundEloss))
452 if (finalT < 0.) finalT = 0.;
468 std::vector<G4DynamicParticle*>* deexcitationProducts = 0;
471 size_t nSecondaries = 0;
472 if (deexcitationProducts != 0) nSecondaries = deexcitationProducts->size();
475 if (nSecondaries > 0) {
488 for (
size_t i=0; i<nSecondaries; i++) {
512 delete deexcitationProducts;
static void SetLowerBoundEloss(G4double val)
void insert(G4PhysicsVector *)
static G4PhysicsTable * theInverseRangePositronTable
G4double GetKineticEnergy() const
CLHEP::Hep3Vector G4ThreeVector
static G4PhysicsTable * theProperTimePositronTable
G4double GetStepLength() const
const G4DynamicParticle * GetDynamicParticle() const
static G4int CounterOfElectronProcess
static G4int NbOfProcesses
static G4PhysicsTable * thepRangeCoeffATable
static G4int GetNbOfProcesses()
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
static G4PhysicsTable * theRangeElectronTable
static G4double LowerBoundEloss
G4PhysicsTable * theDEDXTable
static G4double GetLowerBoundEloss()
static G4double ParticleMass
G4double GetLowEdgeEnergy(size_t binNumber) const
static void SetUpperBoundEloss(G4double val)
G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &Step)
static G4PhysicsTable * BuildRangeTable(G4PhysicsTable *theDEDXTable, G4PhysicsTable *theRangeTable, G4double Tmin, G4double Tmax, G4int nbin)
static G4PhysicsTable * BuildProperTimeTable(G4PhysicsTable *theDEDXTable, G4PhysicsTable *ProperTimeTable, G4double Tmin, G4double Tmax, G4int nbin)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
static G4PhysicsTable * BuildLabTimeTable(G4PhysicsTable *theDEDXTable, G4PhysicsTable *theLabTimeTable, G4double Tmin, G4double Tmax, G4int nbin)
G4StepPoint * GetPreStepPoint() const
static G4PhysicsTable * theLabTimePositronTable
G4GLOB_DLL std::ostream G4cout
static G4PhysicsTable * theeRangeCoeffATable
size_t GetTableSize() const
const G4ThreeVector & GetPosition() const
static G4EnergyLossMessenger * eLossMessenger
static G4PhysicsTable * theDEDXElectronTable
static G4PhysicsTable * BuildRangeCoeffBTable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theCoeffBTable, G4double Tmin, G4double Tmax, G4int nbin)
static constexpr double eplus
static G4bool EnlossFlucFlag
void PutValue(size_t index, G4double theValue)
void BuildDEDXTable(const G4ParticleDefinition &aParticleType)
static constexpr double eV
G4eLowEnergyLoss(const G4String &)
static G4PhysicsTable * thepRangeCoeffBTable
static G4PhysicsTable * theRangePositronTable
static void MinusNbOfProcesses()
static void SetNbinEloss(G4int nb)
static G4double LOGRTable
static G4PhysicsTable ** RecorderOfPositronProcess
virtual void Initialize(const G4Track &)
static G4PhysicsTable * theInverseRangeElectronTable
G4double MinKineticEnergy
static G4ProductionCutsTable * GetProductionCutsTable()
static G4double GetUpperBoundEloss()
static G4Positron * Positron()
static G4PhysicsTable * theeRangeCoeffCTable
static G4PhysicsTable ** RecorderOfElectronProcess
G4double GetPDGMass() const
static G4PhysicsTable * theLabTimeElectronTable
static G4PhysicsTable * BuildInverseRangeTable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theRangeCoeffATable, G4PhysicsTable *theRangeCoeffBTable, G4PhysicsTable *theRangeCoeffCTable, G4PhysicsTable *theInverseRangeTable, G4double Tmin, G4double Tmax, G4int nbin)
static G4double UpperBoundEloss
void SetNumberOfSecondaries(G4int totSecondaries)
static G4int GetNbinEloss()
static G4PhysicsTable * theProperTimeElectronTable
G4StepPoint * GetPostStepPoint() const
void ProposeEnergy(G4double finalEnergy)
G4ParticleChange aParticleChange
static constexpr double GeV
void AddSecondary(G4Track *aSecondary)
static G4Electron * Electron()
static void PlusNbOfProcesses()
G4double GetGlobalTime() const
G4PhysicsTable * theLossTable
static G4int CounterOfPositronProcess
static void SetNbOfProcesses(G4int nb)
void ProposeTrackStatus(G4TrackStatus status)
static void Register(const G4ParticleDefinition *p, const G4PhysicsTable *tDEDX, const G4PhysicsTable *tRange, const G4PhysicsTable *tInverseRange, const G4PhysicsTable *tLabTime, const G4PhysicsTable *tProperTime, G4double lowestKineticEnergy, G4double highestKineticEnergy, G4double massRatio, G4int NumberOfBins)
static G4PhysicsTable * theDEDXPositronTable
virtual std::vector< G4DynamicParticle * > * DeexciteAtom(const G4MaterialCutsCouple *, G4double, G4double)
G4double GetLossWithFluct(const G4DynamicParticle *aParticle, const G4MaterialCutsCouple *couple, G4double MeanLoss, G4double step)
G4double GetPDGCharge() const
static G4double GetPreciseEnergyFromRange(const G4ParticleDefinition *aParticle, G4double range, const G4Material *aMaterial)
static G4PhysicsTable * BuildRangeCoeffATable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theCoeffATable, G4double Tmin, G4double Tmax, G4int nbin)
G4PhysicsTable ** RecorderOfProcess
static G4PhysicsTable * theeRangeCoeffBTable
static G4PhysicsTable * BuildRangeCoeffCTable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theCoeffCTable, G4double Tmin, G4double Tmax, G4int nbin)
static G4PhysicsTable * thepRangeCoeffCTable