Geant4
10.03
|
#include <G4VMultipleScattering.hh>
Protected Member Functions | |
virtual void | InitialiseProcess (const G4ParticleDefinition *)=0 |
G4double | GetMeanFreePath (const G4Track &track, G4double, G4ForceCondition *condition) override |
G4double | GetContinuousStepLimit (const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double ¤tSafety) override |
size_t | 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 () |
Private Member Functions | |
G4VMultipleScattering (G4VMultipleScattering &)=delete | |
G4VMultipleScattering & | operator= (const G4VMultipleScattering &right)=delete |
Additional Inherited Members | |
Static Public Member Functions inherited from G4VProcess | |
static const G4String & | GetProcessTypeName (G4ProcessType) |
Definition at line 92 of file G4VMultipleScattering.hh.
G4VMultipleScattering::G4VMultipleScattering | ( | const G4String & | name = "msc" , |
G4ProcessType | type = fElectromagnetic |
||
) |
Definition at line 91 of file G4VMultipleScattering.cc.
References currentModel, emManager, eV, fIonisation, firstParticle, fMultipleScattering, fParticleChange, fPositionChanged, G4GenericIon::GenericIon(), geomMin, gPathLength, G4EmParameters::Instance(), G4LossTableManager::Instance(), isActive, lowestKinEnergy, minDisplacement2, modelManager, nm, physStepLimit, G4VProcess::pParticleChange, G4LossTableManager::Register(), safetyHelper, G4VProcess::SetProcessSubType(), G4VProcess::SetVerboseLevel(), theParameters, and tPathLength.
|
virtual |
Definition at line 130 of file G4VMultipleScattering.cc.
References G4LossTableManager::DeRegister(), emManager, and modelManager.
|
privatedelete |
void G4VMultipleScattering::AddEmModel | ( | G4int | order, |
G4VEmModel * | p, | ||
const G4Region * | region = nullptr |
||
) |
Definition at line 144 of file G4VMultipleScattering.cc.
References G4EmModelManager::AddEmModel(), modelManager, G4VProcess::pParticleChange, and G4VEmModel::SetParticleChange().
Referenced by PhysicsList::ConstructEM(), G4AdjointPhysicsList::ConstructEM(), G4EmLivermorePolarizedPhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), PhysListEmStandardGS::ConstructProcess(), PhysListEmStandardWVI::ConstructProcess(), PhysListEmStandard_GS::ConstructProcess(), PhysListEmStandard_WVI::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysicsGS::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4MuMultipleScattering::InitialiseProcess(), G4eMultipleScattering::InitialiseProcess(), G4hMultipleScattering::InitialiseProcess(), G4eAdjointMultipleScattering::InitialiseProcess(), G4AdjointhMultipleScattering::InitialiseProcess(), G4EmConfigurator::PrepareModels(), and G4EmConfigurator::SetModelForRegion().
|
overridevirtual |
Reimplemented from G4VContinuousDiscreteProcess.
Definition at line 481 of file G4VMultipleScattering.cc.
References G4SafetyHelper::ComputeSafety(), G4VMscModel::ComputeTrueStepLength(), currentModel, currParticle, fDispBeyondSafety, fNewDirection, fNewPosition, fParticleChange, fPositionChanged, geomMin, G4Track::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4ParticleChangeForMSC::GetMomentumDirection(), G4StepPoint::GetMomentumDirection(), G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), G4VMscModel::GetRange(), G4Step::GetStepLength(), isActive, G4INCL::Math::min(), minDisplacement2, nm, physStepLimit, G4ParticleChangeForMSC::ProposeMomentumDirection(), G4ParticleChangeForMSC::ProposePosition(), G4VParticleChange::ProposeTrueStepLength(), G4SafetyHelper::RecheckDistanceToCurrentBoundary(), G4SafetyHelper::ReLocateWithinVolume(), safetyHelper, G4VMscModel::SampleScattering(), and tPathLength.
|
overridevirtual |
Reimplemented from G4VContinuousDiscreteProcess.
Definition at line 414 of file G4VMultipleScattering.cc.
References CandidateForSelection, G4VMscModel::ComputeTruePathLengthLimit(), currentModel, geomMin, G4MaterialCutsCouple::GetIndex(), G4Track::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetPDGMass(), gPathLength, isActive, G4VEmModel::IsActive(), isIon, lowestKinEnergy, NotCandidateForSelection, numberOfModels, physStepLimit, SelectModel(), and tPathLength.
Referenced by GetContinuousStepLimit().
|
overridevirtual |
Reimplemented from G4VProcess.
Definition at line 291 of file G4VMultipleScattering.cc.
References G4LossTableManager::BuildPhysicsTable(), G4EmModelManager::DumpModelList(), emManager, firstParticle, G4cout, G4endl, G4VEmModel::GetCrossSectionTable(), G4VProcess::GetMasterProcess(), GetModelByIndex(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4VEmModel::InitialiseLocal(), G4LossTableManager::Instance(), G4LossTableManager::IsMaster(), modelManager, G4EmModelManager::NumberOfModels(), numberOfModels, PrintInfo(), G4VEmModel::SetCrossSectionTable(), and G4VProcess::verboseLevel.
G4double G4VMultipleScattering::ContinuousStepLimit | ( | const G4Track & | track, |
G4double | previousStepSize, | ||
G4double | currentMinimalStep, | ||
G4double & | currentSafety | ||
) |
Definition at line 663 of file G4VMultipleScattering.cc.
References GetContinuousStepLimit().
G4VMscModel * G4VMultipleScattering::EmModel | ( | G4int | index = 1 | ) | const |
Definition at line 163 of file G4VMultipleScattering.cc.
References mscModels.
Referenced by G4MuMultipleScattering::InitialiseProcess(), G4eMultipleScattering::InitialiseProcess(), G4hMultipleScattering::InitialiseProcess(), and G4eAdjointMultipleScattering::InitialiseProcess().
|
inline |
Definition at line 405 of file G4VMultipleScattering.hh.
References firstParticle.
|
inline |
Definition at line 361 of file G4VMultipleScattering.hh.
References G4EmParameters::MscGeomFactor(), and theParameters.
Referenced by G4eMultipleScattering::PrintInfo(), G4hMultipleScattering::PrintInfo(), and G4eAdjointMultipleScattering::PrintInfo().
|
overrideprotectedvirtual |
Implements G4VContinuousDiscreteProcess.
Definition at line 647 of file G4VMultipleScattering.cc.
References AlongStepGetPhysicalInteractionLength(), and NotCandidateForSelection.
Referenced by ContinuousStepLimit().
|
overrideprotectedvirtual |
Implements G4VContinuousDiscreteProcess.
Definition at line 675 of file G4VMultipleScattering.cc.
G4VEmModel * G4VMultipleScattering::GetModelByIndex | ( | G4int | idx = 0 , |
G4bool | ver = false |
||
) | const |
Definition at line 173 of file G4VMultipleScattering.cc.
References G4EmModelManager::GetModel(), and modelManager.
Referenced by BuildPhysicsTable(), SetIonisation(), and StartTracking().
|
protectedpure virtual |
Implemented in G4AdjointhMultipleScattering, G4eAdjointMultipleScattering, G4hMultipleScattering, G4MuMultipleScattering, and G4eMultipleScattering.
Referenced by PreparePhysicsTable().
|
overridepure virtual |
Reimplemented from G4VProcess.
Implemented in G4AdjointhMultipleScattering, G4eAdjointMultipleScattering, G4hMultipleScattering, G4MuMultipleScattering, and G4eMultipleScattering.
|
inline |
Definition at line 316 of file G4VMultipleScattering.hh.
References latDisplacement.
Referenced by G4MuMultipleScattering::PrintInfo(), G4eMultipleScattering::PrintInfo(), G4hMultipleScattering::PrintInfo(), G4eAdjointMultipleScattering::PrintInfo(), and G4AdjointhMultipleScattering::PrintInfo().
|
inline |
Definition at line 391 of file G4VMultipleScattering.hh.
References lowestKinEnergy.
|
inlineprotected |
Definition at line 412 of file G4VMultipleScattering.hh.
References modelManager, and G4EmModelManager::NumberOfModels().
|
privatedelete |
|
inline |
Definition at line 368 of file G4VMultipleScattering.hh.
References G4EmParameters::MscThetaLimit(), and theParameters.
Referenced by G4MuMultipleScattering::PrintInfo().
|
overridevirtual |
Reimplemented from G4VContinuousDiscreteProcess.
Definition at line 639 of file G4VMultipleScattering.cc.
References fParticleChange, and G4ParticleChangeForMSC::Initialize().
|
overridevirtual |
Reimplemented from G4VContinuousDiscreteProcess.
Definition at line 470 of file G4VMultipleScattering.cc.
|
overridevirtual |
Reimplemented from G4VProcess.
Definition at line 181 of file G4VMultipleScattering.cc.
References currentModel, currParticle, G4Electron::Electron(), emax, emManager, facrange, fDispBeyondSafety, G4ParticleTable::FindParticle(), firstParticle, fMinimal, G4cout, G4endl, G4ProcessManager::GetAlongStepProcessVector(), G4VProcess::GetMasterProcess(), G4EmModelManager::GetModel(), G4ParticleDefinition::GetParticleName(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGMass(), G4ParticleDefinition::GetProcessManager(), G4VProcess::GetProcessName(), G4TransportationManager::GetSafetyHelper(), G4TransportationManager::GetTransportationManager(), G4VEmModel::HighEnergyLimit(), G4EmModelManager::Initialise(), G4SafetyHelper::InitialiseHelper(), InitialiseProcess(), isIon, latDisplacement, G4EmParameters::LatDisplacementBeyondSafety(), G4EmParameters::LateralDisplacement(), G4EmParameters::MaxKinEnergy(), MeV, G4INCL::Math::min(), modelManager, G4EmParameters::MscGeomFactor(), G4EmParameters::MscMuHadRangeFactor(), G4EmParameters::MscMuHadStepLimitType(), G4EmParameters::MscRangeFactor(), G4EmParameters::MscSkin(), G4EmParameters::MscStepLimitType(), G4EmParameters::MscThetaLimit(), G4EmParameters::MuHadLateralDisplacement(), n, G4EmModelManager::NumberOfModels(), numberOfModels, G4LossTableManager::PreparePhysicsTable(), safetyHelper, G4VMscModel::SetGeomFactor(), G4VEmModel::SetHighEnergyLimit(), G4VMscModel::SetIonisation(), G4VMscModel::SetLateralDisplasmentFlag(), G4VEmModel::SetMasterThread(), G4VEmModel::SetPolarAngleLimit(), G4VMscModel::SetRangeFactor(), G4VMscModel::SetSkin(), G4VMscModel::SetStepLimitType(), G4VProcess::SetVerboseLevel(), G4ProcessVector::size(), stepLimit, theParameters, G4EmParameters::Verbose(), G4VProcess::verboseLevel, and G4EmParameters::WorkerVerbose().
|
pure virtual |
Implemented in G4AdjointhMultipleScattering, G4eAdjointMultipleScattering, G4hMultipleScattering, G4MuMultipleScattering, and G4eMultipleScattering.
Referenced by BuildPhysicsTable(), and PrintInfoDefinition().
void G4VMultipleScattering::PrintInfoDefinition | ( | ) |
Definition at line 367 of file G4VMultipleScattering.cc.
References G4EmModelManager::DumpModelList(), firstParticle, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), modelManager, PrintInfo(), and G4VProcess::verboseLevel.
|
virtual |
Definition at line 748 of file G4VMultipleScattering.cc.
References G4endl, and G4VProcess::GetProcessName().
|
inline |
Definition at line 344 of file G4VMultipleScattering.hh.
References facrange.
Referenced by G4MuMultipleScattering::PrintInfo(), G4eMultipleScattering::PrintInfo(), G4hMultipleScattering::PrintInfo(), G4eAdjointMultipleScattering::PrintInfo(), and G4AdjointhMultipleScattering::PrintInfo().
|
overridevirtual |
Reimplemented from G4VProcess.
Definition at line 729 of file G4VMultipleScattering.cc.
|
inline |
Definition at line 309 of file G4VMultipleScattering.hh.
References modelManager, and G4EmModelManager::SelectModel().
Referenced by AlongStepGetPhysicalInteractionLength(), G4EmCalculator::FindEmModel(), and G4EmCalculator::FindLambdaTable().
void G4VMultipleScattering::SetEmModel | ( | G4VMscModel * | p, |
G4int | index = 1 |
||
) |
Definition at line 154 of file G4VMultipleScattering.cc.
Referenced by G4EmLowEPPhysics::ConstructProcess(), G4EmDNAPhysics_option1::ConstructProcess(), PhysListEmStandardNR::ConstructProcess(), PhysListEmStandard_WVI::ConstructProcess(), G4EmStandardPhysicsWVI::ConstructProcess(), G4eMultipleScattering::InitialiseProcess(), G4MuMultipleScattering::InitialiseProcess(), G4hMultipleScattering::InitialiseProcess(), and G4eAdjointMultipleScattering::InitialiseProcess().
void G4VMultipleScattering::SetIonisation | ( | G4VEnergyLossProcess * | p | ) |
Definition at line 738 of file G4VMultipleScattering.cc.
References firstParticle, GetModelByIndex(), numberOfModels, and G4VMscModel::SetIonisation().
|
inline |
Definition at line 323 of file G4VMultipleScattering.hh.
References latDisplacement.
|
inline |
Definition at line 398 of file G4VMultipleScattering.hh.
References lowestKinEnergy.
|
inline |
Definition at line 351 of file G4VMultipleScattering.hh.
References facrange, G4EmParameters::SetMscRangeFactor(), and theParameters.
Referenced by SetStepLimitType().
|
inline |
Definition at line 337 of file G4VMultipleScattering.hh.
References G4EmParameters::SetMscSkin(), and theParameters.
|
inline |
Definition at line 382 of file G4VMultipleScattering.hh.
References fMinimal, G4EmParameters::SetMscStepLimitType(), SetRangeFactor(), stepLimit, and theParameters.
Referenced by DMXPhysicsList::ConstructEM(), G4EmDNAPhysics_option3::ConstructProcess(), G4EmLivermorePolarizedPhysics::ConstructProcess(), G4EmDNAPhysics_option5::ConstructProcess(), G4EmDNAPhysics_option4::ConstructProcess(), G4EmDNAPhysics::ConstructProcess(), G4EmDNAPhysics_option2::ConstructProcess(), G4EmDNAPhysics_option1::ConstructProcess(), and G4EmDNAPhysics_option7::ConstructProcess().
|
inline |
Definition at line 330 of file G4VMultipleScattering.hh.
References G4EmParameters::MscSkin(), and theParameters.
Referenced by G4eMultipleScattering::PrintInfo(), G4hMultipleScattering::PrintInfo(), G4eAdjointMultipleScattering::PrintInfo(), and G4AdjointhMultipleScattering::PrintInfo().
|
overridevirtual |
Reimplemented from G4VProcess.
Definition at line 381 of file G4VMultipleScattering.cc.
References currentModel, currParticle, emManager, fIonisation, G4LossTableManager::GetEnergyLossProcess(), GetModelByIndex(), G4Track::GetParticleDefinition(), numberOfModels, G4VMscModel::SetIonisation(), and G4VEmModel::StartTracking().
Referenced by G4eAdjointMultipleScattering::StartTracking().
|
inline |
Definition at line 375 of file G4VMultipleScattering.hh.
References stepLimit.
Referenced by G4MuMultipleScattering::PrintInfo(), G4eMultipleScattering::PrintInfo(), G4hMultipleScattering::PrintInfo(), G4eAdjointMultipleScattering::PrintInfo(), and G4AdjointhMultipleScattering::PrintInfo().
|
overridevirtual |
Reimplemented from G4VProcess.
Definition at line 685 of file G4VMultipleScattering.cc.
References firstParticle, G4cout, G4endl, G4VEmModel::GetCrossSectionTable(), G4VProcess::GetMasterProcess(), G4EmModelManager::GetModel(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetPhysicsTableFileName(), G4VProcess::GetProcessName(), G4INCL::Math::min(), modelManager, G4InuclParticleNames::name(), G4EmModelManager::NumberOfModels(), G4PhysicsTable::StorePhysicsTable(), and G4VProcess::verboseLevel.
|
private |
Definition at line 289 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), AlongStepGetPhysicalInteractionLength(), G4VMultipleScattering(), PreparePhysicsTable(), and StartTracking().
|
private |
Definition at line 269 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), PreparePhysicsTable(), and StartTracking().
|
private |
Definition at line 258 of file G4VMultipleScattering.hh.
Referenced by BuildPhysicsTable(), G4VMultipleScattering(), PreparePhysicsTable(), StartTracking(), and ~G4VMultipleScattering().
|
private |
Definition at line 273 of file G4VMultipleScattering.hh.
Referenced by PreparePhysicsTable(), RangeFactor(), and SetRangeFactor().
|
private |
Definition at line 278 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), and PreparePhysicsTable().
|
private |
Definition at line 290 of file G4VMultipleScattering.hh.
Referenced by G4VMultipleScattering(), and StartTracking().
|
private |
Definition at line 268 of file G4VMultipleScattering.hh.
Referenced by BuildPhysicsTable(), FirstParticle(), G4VMultipleScattering(), PreparePhysicsTable(), PrintInfoDefinition(), SetIonisation(), and StorePhysicsTable().
|
private |
Definition at line 299 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt().
|
private |
Definition at line 298 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt().
|
protected |
Definition at line 284 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), G4VMultipleScattering(), and PostStepDoIt().
|
private |
Definition at line 300 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), and G4VMultipleScattering().
|
private |
Definition at line 292 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), AlongStepGetPhysicalInteractionLength(), and G4VMultipleScattering().
|
private |
Definition at line 296 of file G4VMultipleScattering.hh.
Referenced by AlongStepGetPhysicalInteractionLength(), and G4VMultipleScattering().
|
private |
Definition at line 301 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), AlongStepGetPhysicalInteractionLength(), and G4VMultipleScattering().
|
private |
Definition at line 277 of file G4VMultipleScattering.hh.
Referenced by AlongStepGetPhysicalInteractionLength(), and PreparePhysicsTable().
|
private |
Definition at line 276 of file G4VMultipleScattering.hh.
Referenced by LateralDisplasmentFlag(), PreparePhysicsTable(), and SetLateralDisplasmentFlag().
|
private |
Definition at line 274 of file G4VMultipleScattering.hh.
Referenced by AlongStepGetPhysicalInteractionLength(), G4VMultipleScattering(), LowestKinEnergy(), and SetLowestKinEnergy().
|
private |
Definition at line 293 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), and G4VMultipleScattering().
|
private |
Definition at line 257 of file G4VMultipleScattering.hh.
Referenced by AddEmModel(), BuildPhysicsTable(), G4VMultipleScattering(), GetModelByIndex(), NumberOfModels(), PreparePhysicsTable(), PrintInfoDefinition(), SelectModel(), StorePhysicsTable(), and ~G4VMultipleScattering().
|
private |
Definition at line 265 of file G4VMultipleScattering.hh.
Referenced by EmModel(), and SetEmModel().
|
private |
Definition at line 266 of file G4VMultipleScattering.hh.
Referenced by AlongStepGetPhysicalInteractionLength(), BuildPhysicsTable(), PreparePhysicsTable(), SetIonisation(), and StartTracking().
|
private |
Definition at line 294 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), AlongStepGetPhysicalInteractionLength(), and G4VMultipleScattering().
|
private |
Definition at line 263 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), G4VMultipleScattering(), and PreparePhysicsTable().
|
private |
Definition at line 271 of file G4VMultipleScattering.hh.
Referenced by PreparePhysicsTable(), SetStepLimitType(), and StepLimitType().
|
private |
Definition at line 259 of file G4VMultipleScattering.hh.
Referenced by G4VMultipleScattering(), GeomFactor(), PolarAngleLimit(), PreparePhysicsTable(), SetRangeFactor(), SetSkin(), SetStepLimitType(), and Skin().
|
private |
Definition at line 295 of file G4VMultipleScattering.hh.
Referenced by AlongStepDoIt(), AlongStepGetPhysicalInteractionLength(), and G4VMultipleScattering().