71#ifndef G4VMultipleScattering_h
72#define G4VMultipleScattering_h 1
261 std::vector<G4VMscModel*> mscModels;
262 G4int numberOfModels;
309 return modelManager->
SelectModel(kinEnergy, coupleIndex);
316 return latDisplasment;
323 latDisplasment = val;
337 if(val < 1.0) { skin = 0.0; }
352 if(val > 0.0) facrange = val;
366 if(val > 0.0) facgeom = val;
373 return polarAngleLimit;
380 if(val < 0.0) { polarAngleLimit = 0.0; }
381 else if(val > CLHEP::pi) { polarAngleLimit = CLHEP::pi; }
382 else { polarAngleLimit = val; }
397 if(val ==
fMinimal) { facrange = 0.2; }
404 return firstParticle;
G4double condition(const G4ErrorSymMatrix &m)
G4VEmModel * SelectModel(G4double &energy, size_t &index)
G4GPILSelection valueGPILSelectionMSC
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=0)
void SetIonisation(G4VEnergyLossProcess *)
G4double RangeFactor() const
void SetSkin(G4double val)
virtual void PrintInfo()=0
void StartTracking(G4Track *)
G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false)
G4VMscModel * EmModel(G4int index=1)
const G4ParticleDefinition * FirstParticle() const
G4double GetMeanFreePath(const G4Track &track, G4double, G4ForceCondition *condition)
G4ParticleChangeForMSC fParticleChange
void SetPolarAngleLimit(G4double val)
G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
G4VEmModel * GetModelByIndex(G4int idx=0, G4bool ver=false) const
G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety, G4GPILSelection *selection)
G4double ContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety)
void PreparePhysicsTable(const G4ParticleDefinition &)
void SetRangeFactor(G4double val)
void SetModel(G4VMscModel *, G4int index=1)
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4ForceCondition *condition)
G4double PolarAngleLimit() const
void SetStepLimitType(G4MscStepLimitType val)
void SetEmModel(G4VMscModel *, G4int index=1)
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4double GeomFactor() const
G4VMscModel * Model(G4int index=1)
G4double GetContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety)
void PrintInfoDefinition()
void BuildPhysicsTable(const G4ParticleDefinition &)
void SetLateralDisplasmentFlag(G4bool val)
G4bool LateralDisplasmentFlag() const
G4VEmModel * SelectModel(G4double kinEnergy, size_t idx)
G4MscStepLimitType StepLimitType() const
virtual ~G4VMultipleScattering()
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void SetGeomFactor(G4double val)
virtual G4bool IsApplicable(const G4ParticleDefinition &p)=0
G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii)