130 MinKineticEnergy(1.*
eV),
135 RecorderOfProcess(0),
268 for (
size_t J=0; J<numOfCouples; J++)
285 Value += (*pointer)[J]->GetValue(LowEdgeEnergy,isOutRange);
400 const G4Step& stepData)
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) {
477 const G4StepPoint* preStep = stepData.GetPreStepPoint();
478 const G4StepPoint* postStep = stepData.GetPostStepPoint();
482 G4double t = preStep->GetGlobalTime();
483 G4double deltaT = postStep->GetGlobalTime();
488 for (
size_t i=0; i<nSecondaries; i++) {
500 G4Track* newTrack =
new G4Track(part, time, position);
512 delete deexcitationProducts;
static void SetLowerBoundEloss(G4double val)
void insert(G4PhysicsVector *)
static G4PhysicsTable * theInverseRangePositronTable
static G4PhysicsTable * theProperTimePositronTable
static G4int CounterOfElectronProcess
static G4int NbOfProcesses
static G4PhysicsTable * thepRangeCoeffATable
static G4int GetNbOfProcesses()
static G4PhysicsTable * theRangeElectronTable
static G4double LowerBoundEloss
G4PhysicsTable * theDEDXTable
static G4double GetLowerBoundEloss()
static G4double ParticleMass
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)
static G4PhysicsTable * BuildLabTimeTable(G4PhysicsTable *theDEDXTable, G4PhysicsTable *theLabTimeTable, G4double Tmin, G4double Tmax, G4int nbin)
G4double GetLowEdgeEnergy(size_t binNumber) const
G4double GetKineticEnergy() const
static G4PhysicsTable * theLabTimePositronTable
G4GLOB_DLL std::ostream G4cout
static G4PhysicsTable * theeRangeCoeffATable
static G4EnergyLossMessenger * eLossMessenger
static G4PhysicsTable * theDEDXElectronTable
static G4PhysicsTable * BuildRangeCoeffBTable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theCoeffBTable, G4double Tmin, G4double Tmax, G4int nbin)
static G4bool EnlossFlucFlag
void PutValue(size_t index, G4double theValue)
void BuildDEDXTable(const G4ParticleDefinition &aParticleType)
G4eLowEnergyLoss(const G4String &)
static G4PhysicsTable * thepRangeCoeffBTable
static G4PhysicsTable * theRangePositronTable
static void MinusNbOfProcesses()
static void SetNbinEloss(G4int nb)
static G4double LOGRTable
static G4PhysicsTable ** RecorderOfPositronProcess
static G4PhysicsTable * theInverseRangeElectronTable
G4double MinKineticEnergy
static G4ProductionCutsTable * GetProductionCutsTable()
static G4double GetUpperBoundEloss()
static G4Positron * Positron()
static G4PhysicsTable * theeRangeCoeffCTable
static G4PhysicsTable ** RecorderOfElectronProcess
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
static G4int GetNbinEloss()
static G4PhysicsTable * theProperTimeElectronTable
G4double GetPDGMass() const
G4ParticleChange aParticleChange
size_t GetTableSize() const
static G4Electron * Electron()
static void PlusNbOfProcesses()
G4PhysicsTable * theLossTable
static G4int CounterOfPositronProcess
static void SetNbOfProcesses(G4int nb)
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
static const double eplus
virtual std::vector< G4DynamicParticle * > * DeexciteAtom(const G4MaterialCutsCouple *, G4double, G4double)
G4double GetLossWithFluct(const G4DynamicParticle *aParticle, const G4MaterialCutsCouple *couple, G4double MeanLoss, G4double step)
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
G4double GetPDGCharge() const
static G4PhysicsTable * theeRangeCoeffBTable
static G4PhysicsTable * BuildRangeCoeffCTable(G4PhysicsTable *theRangeTable, G4PhysicsTable *theCoeffCTable, G4double Tmin, G4double Tmax, G4int nbin)
static G4PhysicsTable * thepRangeCoeffCTable