71 #ifndef G4VMultipleScattering_h
72 #define G4VMultipleScattering_h 1
134 G4bool ascii =
false)
override;
353 if(val > 0.0 && val < 1.0) {
G4double condition(const G4ErrorSymMatrix &m)
G4EmParameters * theParameters
G4VEmModel * SelectModel(G4double kinEnergy, size_t idx)
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4ForceCondition *condition) override
G4EmModelManager * modelManager
G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety, G4GPILSelection *selection) override
CLHEP::Hep3Vector G4ThreeVector
void SetLateralDisplasmentFlag(G4bool val)
G4ThreeVector fNewPosition
void SetMscStepLimitType(G4MscStepLimitType val)
G4double GeomFactor() const
G4double MscGeomFactor() const
G4double MscThetaLimit() const
G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override
virtual void ProcessDescription(std::ostream &outFile) const
void SetEmModel(G4VMscModel *, G4int index=1)
virtual ~G4VMultipleScattering()
const G4ParticleDefinition * FirstParticle() const
const char * name(G4int ptype)
G4double PolarAngleLimit() const
G4double GetMeanFreePath(const G4Track &track, G4double, G4ForceCondition *condition) override
G4VEnergyLossProcess * fIonisation
G4VMultipleScattering(const G4String &name="msc", G4ProcessType type=fElectromagnetic)
const G4ParticleDefinition * currParticle
G4MscStepLimitType StepLimitType() const
G4ParticleChangeForMSC fParticleChange
G4double RangeFactor() const
G4double LowestKinEnergy() const
void SetMscRangeFactor(G4double val)
G4double minDisplacement2
G4LossTableManager * emManager
G4double GetContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety) override
G4bool LateralDisplasmentFlag() const
void PreparePhysicsTable(const G4ParticleDefinition &) override
G4int NumberOfModels() const
size_t NumberOfModels() const
void SetSkin(G4double val)
G4VMultipleScattering & operator=(const G4VMultipleScattering &right)=delete
G4double ContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety)
const G4ParticleDefinition * firstParticle
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &) override
virtual G4bool IsApplicable(const G4ParticleDefinition &p) override=0
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=nullptr)
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4VEmModel * SelectModel(G4double &energy, size_t &index)
G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &) override
G4MscStepLimitType stepLimit
G4ThreeVector fNewDirection
virtual void PrintInfo()=0
G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
void PrintInfoDefinition()
void BuildPhysicsTable(const G4ParticleDefinition &) override
void SetRangeFactor(G4double val)
G4VMscModel * EmModel(G4int index=1) const
std::vector< G4VMscModel * > mscModels
void StartTracking(G4Track *) override
void SetLowestKinEnergy(G4double val)
G4VMscModel * currentModel
void SetStepLimitType(G4MscStepLimitType val)
G4VEmModel * GetModelByIndex(G4int idx=0, G4bool ver=false) const
void SetMscSkin(G4double val)
G4SafetyHelper * safetyHelper
void SetIonisation(G4VEnergyLossProcess *)