65#ifndef G4VMultipleScattering_h
66#define G4VMultipleScattering_h 1
105 G4bool rst =
false)
const;
127 G4bool ascii =
false)
override;
251 std::vector<G4VMscModel*> mscModels;
277 G4int numberOfModels = 0;
279 G4bool latDisplacement =
true;
281 G4bool fPositionChanged =
false;
293 return modelManager->
SelectModel(kinEnergy, coupleIndex);
300 return latDisplacement;
307 return theParameters->
MscSkin();
349 return lowestKinEnergy;
356 lowestKinEnergy = val;
363 return firstParticle;
370 return (index < mscModels.size()) ? mscModels[index] :
nullptr;
377 return numberOfModels;
G4double condition(const G4ErrorSymMatrix &m)
G4VEmModel * SelectModel(G4double energy, std::size_t index)
G4VEmModel * GetModel(G4int idx, G4bool ver=false) const
G4double MscThetaLimit() const
G4double MscGeomFactor() const
void SetMscStepLimitType(G4MscStepLimitType val)
G4double RangeFactor() const
void AddEmModel(G4int order, G4VMscModel *, const G4Region *region=nullptr)
const G4ParticleDefinition * FirstParticle() const
G4double GetMeanFreePath(const G4Track &track, G4double, G4ForceCondition *condition) override
G4ParticleChangeForMSC fParticleChange
G4int NumberOfModels() const
G4VMscModel * GetModelByIndex(G4int idx, G4bool ver=false) const
void StartTracking(G4Track *) override
G4VMultipleScattering(G4VMultipleScattering &)=delete
void PreparePhysicsTable(const G4ParticleDefinition &) override
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4double ContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety)
G4VMultipleScattering(const G4String &name="msc", G4ProcessType type=fElectromagnetic)
G4double PolarAngleLimit() const
void SetStepLimitType(G4MscStepLimitType val)
void ProcessDescription(std::ostream &outFile) const override
G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
void SetLowestKinEnergy(G4double val)
void SetEmModel(G4VMscModel *, G4int idx=0)
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4double GeomFactor() const
G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety, G4GPILSelection *selection) override
void StreamInfo(std::ostream &outFile, const G4ParticleDefinition &, G4bool rst=false) const
G4VMultipleScattering & operator=(const G4VMultipleScattering &right)=delete
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4ForceCondition *condition) override
G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &) override
G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override
~G4VMultipleScattering() override
G4bool LateralDisplasmentFlag() const
G4VEmModel * SelectModel(G4double kinEnergy, size_t idx)
virtual void StreamProcessInfo(std::ostream &) const
G4MscStepLimitType StepLimitType() const
G4double LowestKinEnergy() const
G4double GetContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety) override
G4bool UseBaseMaterial() const
G4VMscModel * EmModel(size_t index=0) const