41 theStepLimit = 1.*CLHEP::mm;
45void G4ErrorEnergyLoss::InstantiateEforExtrapolator()
51 delete theELossForExtrapolator;
74 G4double kinEnergyEnd = kinEnergyStart;
78 kinEnergyEnd = theELossForExtrapolator->EnergyBeforeStep( kinEnergyStart,
82 G4double kinEnergyHalfStep = (kinEnergyStart + kinEnergyEnd) * 0.5;
86 G4cout <<
" G4ErrorEnergyLoss FWD end " << kinEnergyEnd
87 <<
" halfstep " << kinEnergyHalfStep <<
G4endl;
91 kinEnergyEnd = theELossForExtrapolator->EnergyBeforeStep( kinEnergyHalfStep,
95 kinEnergyEnd = kinEnergyStart - (kinEnergyHalfStep - kinEnergyEnd );
99 kinEnergyEnd = theELossForExtrapolator->EnergyAfterStep( kinEnergyStart,
103 G4double kinEnergyHalfStep = (kinEnergyStart + kinEnergyEnd) * 0.5;
106 G4cout <<
" G4ErrorEnergyLoss BCKD end " << kinEnergyEnd
107 <<
" halfstep " << kinEnergyHalfStep <<
G4endl;
111 kinEnergyEnd = theELossForExtrapolator->EnergyAfterStep( kinEnergyHalfStep,
115 kinEnergyEnd = kinEnergyStart - (kinEnergyHalfStep - kinEnergyEnd );
118 G4double edepo = kinEnergyEnd - kinEnergyStart;
122 G4cout <<
"AlongStepDoIt Estart= " << kinEnergyStart <<
" Eend " << kinEnergyEnd
123 <<
" Ediff " << kinEnergyStart-kinEnergyEnd <<
" step= " << step_length
124 <<
" mate= " << aMaterial->
GetName()
146 G4double range = theELossForExtrapolator->ComputeRange(ekin, part, mat);
147 G4double delta = std::max(range*theFractionLimit, theStepLimit);
150 G4cout <<
" G4ErrorEnergyLoss: limiting Step " << delta
151 <<
" energy(GeV) " << ekin / CLHEP::GeV
@ G4ErrorMode_PropBackwards
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetDefinition() const
G4double GetContinuousStepLimit(const G4Track &aTrack, G4double, G4double currentMinimumStep, G4double &) override
G4VParticleChange * AlongStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
G4ErrorEnergyLoss(const G4String &processName="G4ErrorEnergyLoss", G4ProcessType type=fElectromagnetic)
G4bool IsApplicable(const G4ParticleDefinition &aParticleType) override
~G4ErrorEnergyLoss() override
static G4ErrorPropagatorData * GetErrorPropagatorData()
G4ErrorMode GetMode() const
const G4String & GetName() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
G4double GetStepLength() const
G4Material * GetMaterial() const
const G4DynamicParticle * GetDynamicParticle() const
G4double GetKineticEnergy() const
G4VContinuousProcess(const G4String &aName, G4ProcessType aType=fNotDefined)
G4ParticleChange aParticleChange
const G4String & GetProcessName() const