48#define G4VMscModel_h 1
334 return (x > 0.0) ? 1.0/x :
DBL_MAX;
349 return (x > 0.0) ? 1.0/x :
DBL_MAX;
G4double ComputeSafety(const G4ThreeVector &pGlobalPoint, G4double maxRadius=DBL_MAX)
G4double CheckNextStep(const G4ThreeVector &position, const G4ThreeVector &direction, const G4double currentMaxStep, G4double &newSafety)
const G4ThreeVector & GetPosition() const
G4StepPoint * GetPreStepPoint() const
const G4ThreeVector & GetMomentumDirection() const
const G4Step * GetStep() const
G4PhysicsTable * xSectionTable
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
std::size_t basedCoupleIndex
const G4Material * pBaseMaterial
virtual G4double ComputeTruePathLengthLimit(const G4Track &track, G4double &stepLimit)=0
void SetLambdaLimit(G4double)
void DumpParameters(std::ostream &out) const
G4double GetDEDX(const G4ParticleDefinition *part, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
void SetRangeFactor(G4double)
G4double ComputeGeomLimit(const G4Track &, G4double &presafety, G4double limit)
void SetIonisation(G4VEnergyLossProcess *, const G4ParticleDefinition *part)
G4double GetTransportMeanFreePath(const G4ParticleDefinition *part, G4double kinEnergy)
void SetLateralDisplasmentFlag(G4bool val)
G4VMscModel(const G4String &nam)
G4ParticleChangeForMSC * GetParticleChangeForMSC(const G4ParticleDefinition *p=nullptr)
void SetSafetyFactor(G4double)
virtual G4double ComputeTrueStepLength(G4double geomPathLength)=0
G4VEnergyLossProcess * GetIonisation() const
G4double GetEnergy(const G4ParticleDefinition *part, G4double range, const G4MaterialCutsCouple *couple)
G4double GetRange(const G4ParticleDefinition *part, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4MscStepLimitType steppingAlgorithm
G4VMscModel(const G4VMscModel &)=delete
void SetGeomFactor(G4double)
void SetUseSplineForMSC(G4bool val)
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax) override
G4double ConvertTrueToGeom(G4double &tLength, G4double &gLength)
G4VMscModel & operator=(const G4VMscModel &right)=delete
G4double ComputeSafety(const G4ThreeVector &position, G4double limit=DBL_MAX)
G4ThreeVector fDisplacement
void InitialiseParameters(const G4ParticleDefinition *)
void SetStepLimitType(G4MscStepLimitType)
virtual G4double ComputeGeomPathLength(G4double truePathLength)=0
virtual G4ThreeVector & SampleScattering(const G4ThreeVector &, G4double safety)=0