50 #define G4VMscModel_h 1
346 x = (*xSectionTable)[(*theDensityIdx)[idx]]->Value(ekin,
idxTable)
347 *(*theDensityFactor)[idx]/(ekin*ekin);
352 return (x > 0.0) ? 1.0/x :
DBL_MAX;
void SetIonisation(G4VEnergyLossProcess *, const G4ParticleDefinition *part)
G4SafetyHelper * safetyHelper
G4ThreeVector fDisplacement
G4double GetDEDX(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4double ConvertTrueToGeom(G4double &tLength, G4double &gLength)
G4StepPoint * GetPreStepPoint() const
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax) override
G4double ComputeGeomLimit(const G4Track &, G4double &presafety, G4double limit)
G4double ComputeSafety(const G4ThreeVector &position, G4double limit=DBL_MAX)
virtual G4ThreeVector & SampleScattering(const G4ThreeVector &, G4double safety)
G4double GetPDGCharge() const
const G4ParticleDefinition * currentPart
void SetLateralDisplasmentFlag(G4bool val)
G4double GetDEDX(const G4ParticleDefinition *part, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4double CheckNextStep(const G4ThreeVector &position, const G4ThreeVector &direction, const G4double currentMaxStep, G4double &newSafety)
G4VMscModel(const G4String &nam)
G4double GetRangeForLoss(G4double &kineticEnergy, const G4MaterialCutsCouple *)
const G4ParticleDefinition const G4Material *G4double range
G4double GetRange(const G4ParticleDefinition *part, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
const G4ThreeVector & GetPosition() const
void SetStepLimitType(G4MscStepLimitType)
G4double GetKineticEnergy(G4double &range, const G4MaterialCutsCouple *)
virtual G4double ComputeTruePathLengthLimit(const G4Track &track, G4double &stepLimit)
const G4Step * GetStep() const
void SetRangeFactor(G4double)
const G4MaterialCutsCouple * CurrentCouple() const
virtual G4double ComputeTrueStepLength(G4double geomPathLength)
G4double GetTransportMeanFreePath(const G4ParticleDefinition *part, G4double kinEnergy)
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
G4ParticleChangeForMSC * GetParticleChangeForMSC(const G4ParticleDefinition *p=nullptr)
G4VMscModel & operator=(const G4VMscModel &right)=delete
G4MscStepLimitType steppingAlgorithm
void SetGeomFactor(G4double)
virtual G4double ComputeGeomPathLength(G4double truePathLength)
G4VEnergyLossProcess * ionisation
G4double ComputeSafety(const G4ThreeVector &pGlobalPoint, G4double maxRadius=DBL_MAX)
const G4Material * GetMaterial() const
G4VEnergyLossProcess * GetIonisation() const
G4double GetEnergy(const G4ParticleDefinition *part, G4double range, const G4MaterialCutsCouple *couple)
const G4ThreeVector & GetMomentumDirection() const
G4PhysicsTable * xSectionTable
G4double GetDensity() const