Geant4  10.04.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4VMultipleScattering Class Referenceabstract
Inheritance diagram for G4VMultipleScattering:
G4VContinuousDiscreteProcess G4VProcess G4AdjointhMultipleScattering G4eAdjointMultipleScattering G4eMultipleScattering G4hMultipleScattering G4MuMultipleScattering

Public Member Functions

 G4VMultipleScattering (const G4String &name="msc", G4ProcessType type=fElectromagnetic)
 
virtual ~G4VMultipleScattering ()
 
virtual G4bool IsApplicable (const G4ParticleDefinition &p) override=0
 
virtual void PrintInfo ()
 
virtual void ProcessDescription (std::ostream &outFile) const override
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
void BuildPhysicsTable (const G4ParticleDefinition &) override
 
G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override
 
G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
 
void StartTracking (G4Track *) override
 
G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety, G4GPILSelection *selection) override
 
G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4ForceCondition *condition) override
 
G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &) override
 
G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &) override
 
G4double ContinuousStepLimit (const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety)
 
G4VEmModelSelectModel (G4double kinEnergy, size_t idx)
 
void AddEmModel (G4int order, G4VEmModel *, const G4Region *region=nullptr)
 
void SetEmModel (G4VMscModel *, size_t index=0)
 
G4VMscModelEmModel (size_t index=0) const
 
G4VEmModelGetModelByIndex (G4int idx=0, G4bool ver=false) const
 
void SetIonisation (G4VEnergyLossProcess *)
 
G4bool LateralDisplasmentFlag () const
 
void SetLateralDisplasmentFlag (G4bool val)
 
G4double Skin () const
 
void SetSkin (G4double val)
 
G4double RangeFactor () const
 
void SetRangeFactor (G4double val)
 
G4double GeomFactor () const
 
G4double PolarAngleLimit () const
 
G4MscStepLimitType StepLimitType () const
 
void SetStepLimitType (G4MscStepLimitType val)
 
G4double LowestKinEnergy () const
 
void SetLowestKinEnergy (G4double val)
 
const G4ParticleDefinitionFirstParticle () const
 
- Public Member Functions inherited from G4VContinuousDiscreteProcess
 G4VContinuousDiscreteProcess (const G4String &, G4ProcessType aType=fNotDefined)
 
 G4VContinuousDiscreteProcess (G4VContinuousDiscreteProcess &)
 
virtual ~G4VContinuousDiscreteProcess ()
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
- Public Member Functions inherited from G4VProcess
 G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined)
 
 G4VProcess (const G4VProcess &right)
 
virtual ~G4VProcess ()
 
G4int operator== (const G4VProcess &right) const
 
G4int operator!= (const G4VProcess &right) const
 
G4double GetCurrentInteractionLength () const
 
void SetPILfactor (G4double value)
 
G4double GetPILfactor () const
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
const G4StringGetProcessName () const
 
G4ProcessType GetProcessType () const
 
void SetProcessType (G4ProcessType)
 
G4int GetProcessSubType () const
 
void SetProcessSubType (G4int)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *)
 
virtual const G4ProcessManagerGetProcessManager ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
virtual void DumpInfo () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
const G4VProcessGetMasterProcess () const
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 

Protected Member Functions

virtual void InitialiseProcess (const G4ParticleDefinition *)=0
 
virtual void StreamProcessInfo (std::ostream &, G4String) const
 
G4double GetMeanFreePath (const G4Track &track, G4double, G4ForceCondition *condition) override
 
G4double GetContinuousStepLimit (const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety) override
 
G4int NumberOfModels () const
 
- Protected Member Functions inherited from G4VContinuousDiscreteProcess
void SetGPILSelection (G4GPILSelection selection)
 
G4GPILSelection GetGPILSelection () const
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 

Protected Attributes

G4ParticleChangeForMSC fParticleChange
 
- Protected Attributes inherited from G4VProcess
const G4ProcessManageraProcessManager
 
G4VParticleChangepParticleChange
 
G4ParticleChange aParticleChange
 
G4double theNumberOfInteractionLengthLeft
 
G4double currentInteractionLength
 
G4double theInitialNumberOfInteractionLength
 
G4String theProcessName
 
G4String thePhysicsTableFileName
 
G4ProcessType theProcessType
 
G4int theProcessSubType
 
G4double thePILfactor
 
G4bool enableAtRestDoIt
 
G4bool enableAlongStepDoIt
 
G4bool enablePostStepDoIt
 
G4int verboseLevel
 

Private Member Functions

 G4VMultipleScattering (G4VMultipleScattering &)=delete
 
G4VMultipleScatteringoperator= (const G4VMultipleScattering &right)=delete
 
void StreamInfo (std::ostream &outFile, const G4ParticleDefinition &, G4String endOfLine=G4String("\n")) const
 

Private Attributes

G4EmModelManagermodelManager
 
G4LossTableManageremManager
 
G4EmParameterstheParameters
 
G4SafetyHelpersafetyHelper
 
std::vector< G4VMscModel * > mscModels
 
G4int numberOfModels
 
const G4ParticleDefinitionfirstParticle
 
const G4ParticleDefinitioncurrParticle
 
G4MscStepLimitType stepLimit
 
G4double facrange
 
G4double lowestKinEnergy
 
G4bool latDisplacement
 
G4bool isIon
 
G4bool fDispBeyondSafety
 
G4VMscModelcurrentModel
 
G4VEnergyLossProcessfIonisation
 
G4double geomMin
 
G4double minDisplacement2
 
G4double physStepLimit
 
G4double tPathLength
 
G4double gPathLength
 
G4ThreeVector fNewPosition
 
G4ThreeVector fNewDirection
 
G4bool fPositionChanged
 
G4bool isActive
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 

Constructor & Destructor Documentation

virtual ~G4VMultipleScattering ( )
virtual

Member Function Documentation

virtual void PrintInfo ( )
virtual
virtual void ProcessDescription ( std::ostream &  outFile) const
overridevirtual
virtual void StreamProcessInfo ( std::ostream &  ,
G4String   
) const
protectedvirtual
void PreparePhysicsTable ( const G4ParticleDefinition )
overridevirtual

Reimplemented from G4VProcess.

void BuildPhysicsTable ( const G4ParticleDefinition )
overridevirtual

Reimplemented from G4VProcess.

G4bool StorePhysicsTable ( const G4ParticleDefinition ,
const G4String directory,
G4bool  ascii = false 
)
overridevirtual

Reimplemented from G4VProcess.

G4bool RetrievePhysicsTable ( const G4ParticleDefinition ,
const G4String directory,
G4bool  ascii 
)
overridevirtual

Reimplemented from G4VProcess.

void StartTracking ( G4Track )
overridevirtual

Reimplemented from G4VProcess.

G4double AlongStepGetPhysicalInteractionLength ( const G4Track ,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double currentSafety,
G4GPILSelection selection 
)
overridevirtual

Reimplemented from G4VContinuousDiscreteProcess.

G4double PostStepGetPhysicalInteractionLength ( const G4Track ,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtual

Reimplemented from G4VContinuousDiscreteProcess.

G4VParticleChange* AlongStepDoIt ( const G4Track ,
const G4Step  
)
overridevirtual

Reimplemented from G4VContinuousDiscreteProcess.

G4VParticleChange* PostStepDoIt ( const G4Track ,
const G4Step  
)
overridevirtual

Reimplemented from G4VContinuousDiscreteProcess.

G4double ContinuousStepLimit ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double currentSafety 
)
G4VEmModel * SelectModel ( G4double  kinEnergy,
size_t  idx 
)
void AddEmModel ( G4int  order,
G4VEmModel ,
const G4Region region = nullptr 
)
void SetEmModel ( G4VMscModel ,
size_t  index = 0 
)
G4VMscModel* EmModel ( size_t  index = 0) const
G4VEmModel * GetModelByIndex ( G4int  idx = 0,
G4bool  ver = false 
) const
void SetIonisation ( G4VEnergyLossProcess )
G4bool LateralDisplasmentFlag ( ) const

References latDisplacement.

void SetLateralDisplasmentFlag ( G4bool  val)

References latDisplacement.

G4double Skin ( ) const
void SetSkin ( G4double  val)
G4double RangeFactor ( ) const

References facrange.

void SetRangeFactor ( G4double  val)
G4double GeomFactor ( ) const
G4double PolarAngleLimit ( ) const
G4MscStepLimitType StepLimitType ( ) const

References stepLimit.

G4double LowestKinEnergy ( ) const

References lowestKinEnergy.

void SetLowestKinEnergy ( G4double  val)

References lowestKinEnergy.

const G4ParticleDefinition * FirstParticle ( ) const

References firstParticle.

G4double GetMeanFreePath ( const G4Track track,
G4double  ,
G4ForceCondition condition 
)
overrideprotectedvirtual
G4double GetContinuousStepLimit ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double currentSafety 
)
overrideprotectedvirtual
G4int NumberOfModels ( ) const
protected
G4VMultipleScattering& operator= ( const G4VMultipleScattering right)
privatedelete
void StreamInfo ( std::ostream &  outFile,
const G4ParticleDefinition ,
G4String  endOfLine = G4String("\n") 
) const
private

Member Data Documentation

G4EmModelManager* modelManager
private
G4LossTableManager* emManager
private
G4SafetyHelper* safetyHelper
private
std::vector<G4VMscModel*> mscModels
private
G4int numberOfModels
private
const G4ParticleDefinition* firstParticle
private

Referenced by FirstParticle().

const G4ParticleDefinition* currParticle
private
G4MscStepLimitType stepLimit
private

Referenced by SetStepLimitType(), and StepLimitType().

G4double facrange
private

Referenced by RangeFactor(), and SetRangeFactor().

G4double lowestKinEnergy
private
G4bool latDisplacement
private
G4bool isIon
private
G4bool fDispBeyondSafety
private
G4ParticleChangeForMSC fParticleChange
protected
G4VMscModel* currentModel
private
G4VEnergyLossProcess* fIonisation
private
G4double geomMin
private
G4double minDisplacement2
private
G4double physStepLimit
private
G4double tPathLength
private
G4double gPathLength
private
G4ThreeVector fNewPosition
private
G4ThreeVector fNewDirection
private
G4bool fPositionChanged
private
G4bool isActive
private