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