Geant4
10.02
|
#include <G4EmBiasingManager.hh>
Private Member Functions | |
void | ApplyRangeCut (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4double &eloss, G4double safety) |
G4double | ApplySplitting (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut) |
G4double | ApplyRussianRoulette (std::vector< G4DynamicParticle * > &vd, G4int index) |
G4EmBiasingManager (G4EmBiasingManager &) | |
G4EmBiasingManager & | operator= (const G4EmBiasingManager &right) |
Private Attributes | |
G4int | nForcedRegions |
G4int | nSecBiasedRegions |
std::vector< const G4Region * > | forcedRegions |
std::vector< G4double > | lengthForRegion |
std::vector< const G4Region * > | secBiasedRegions |
std::vector< G4double > | secBiasedWeight |
std::vector< G4double > | secBiasedEnegryLimit |
std::vector< G4int > | nBremSplitting |
std::vector< G4int > | idxForcedCouple |
std::vector< G4int > | idxSecBiasedCouple |
std::vector< G4DynamicParticle * > | tmpSecondaries |
G4VEnergyLossProcess * | eIonisation |
const G4ParticleDefinition * | theElectron |
G4double | fSafetyMin |
G4double | currentStepLimit |
G4bool | startTracking |
Definition at line 67 of file G4EmBiasingManager.hh.
G4EmBiasingManager::G4EmBiasingManager | ( | ) |
Definition at line 65 of file G4EmBiasingManager.cc.
References G4Electron::Electron(), fSafetyMin, mm, and theElectron.
G4EmBiasingManager::~G4EmBiasingManager | ( | ) |
Definition at line 75 of file G4EmBiasingManager.cc.
|
private |
void G4EmBiasingManager::ActivateForcedInteraction | ( | G4double | length = 0.0 , |
const G4String & | r = "" |
||
) |
Definition at line 146 of file G4EmBiasingManager.cc.
References forcedRegions, G4cout, G4endl, G4RegionStore::GetInstance(), G4RegionStore::GetRegion(), lengthForRegion, name, nForcedRegions, and reg.
Referenced by G4VEmProcess::ActivateForcedInteraction(), and G4VEnergyLossProcess::ActivateForcedInteraction().
void G4EmBiasingManager::ActivateSecondaryBiasing | ( | const G4String & | region, |
G4double | factor, | ||
G4double | energyLimit | ||
) |
Definition at line 187 of file G4EmBiasingManager.cc.
References factor, G4cout, G4endl, G4lrint(), G4RegionStore::GetInstance(), G4RegionStore::GetRegion(), name, nBremSplitting, nSecBiasedRegions, reg, secBiasedEnegryLimit, secBiasedRegions, secBiasedWeight, and w.
Referenced by G4VEmProcess::ActivateSecondaryBiasing(), and G4VEnergyLossProcess::ActivateSecondaryBiasing().
|
private |
Definition at line 402 of file G4EmBiasingManager.cc.
References eIonisation, G4DynamicParticle::GetDefinition(), G4LossTableManager::GetEnergyLossProcess(), G4DynamicParticle::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4VEnergyLossProcess::GetRangeForLoss(), G4LossTableManager::Instance(), n, and theElectron.
Referenced by ApplySecondaryBiasing().
|
inlineprivate |
Definition at line 194 of file G4EmBiasingManager.hh.
References G4UniformRand, n, and secBiasedWeight.
Referenced by ApplySecondaryBiasing().
G4double G4EmBiasingManager::ApplySecondaryBiasing | ( | std::vector< G4DynamicParticle * > & | vd, |
const G4Track & | track, | ||
G4VEmModel * | currentModel, | ||
G4ParticleChangeForGamma * | pParticleChange, | ||
G4double & | eloss, | ||
G4int | coupleIdx, | ||
G4double | tcut, | ||
G4double | safety = 0.0 |
||
) |
Definition at line 320 of file G4EmBiasingManager.cc.
References ApplyRangeCut(), ApplyRussianRoulette(), ApplySplitting(), fSafetyMin, G4ParticleChangeForGamma::GetProposedKineticEnergy(), G4ParticleChangeForGamma::GetProposedMomentumDirection(), idxSecBiasedCouple, n, nBremSplitting, G4ParticleChangeForGamma::ProposeMomentumDirection(), secBiasedEnegryLimit, and G4ParticleChangeForGamma::SetProposedKineticEnergy().
Referenced by G4VEnergyLossProcess::FillSecondariesAlongStep(), G4VEmProcess::PostStepDoIt(), and G4VEnergyLossProcess::PostStepDoIt().
G4double G4EmBiasingManager::ApplySecondaryBiasing | ( | std::vector< G4DynamicParticle * > & | vd, |
const G4Track & | track, | ||
G4VEmModel * | currentModel, | ||
G4ParticleChangeForLoss * | pParticleChange, | ||
G4double & | eloss, | ||
G4int | coupleIdx, | ||
G4double | tcut, | ||
G4double | safety = 0.0 |
||
) |
Definition at line 272 of file G4EmBiasingManager.cc.
References ApplyRangeCut(), ApplyRussianRoulette(), ApplySplitting(), fSafetyMin, G4ParticleChangeForLoss::GetProposedKineticEnergy(), G4ParticleChangeForLoss::GetProposedMomentumDirection(), idxSecBiasedCouple, n, nBremSplitting, G4ParticleChangeForLoss::ProposeMomentumDirection(), secBiasedEnegryLimit, and G4ParticleChangeForLoss::SetProposedKineticEnergy().
G4double G4EmBiasingManager::ApplySecondaryBiasing | ( | std::vector< G4Track * > & | track, |
G4int | coupleIdx | ||
) |
Definition at line 368 of file G4EmBiasingManager.cc.
References G4UniformRand, idxSecBiasedCouple, n, nBremSplitting, secBiasedEnegryLimit, and secBiasedWeight.
|
private |
Definition at line 430 of file G4EmBiasingManager.cc.
References G4Track::GetDynamicParticle(), G4Track::GetMaterialCutsCouple(), G4Track::GetWeight(), n, nBremSplitting, G4VEmModel::SampleSecondaries(), secBiasedWeight, tmpSecondaries, and w.
Referenced by ApplySecondaryBiasing().
Definition at line 177 of file G4EmBiasingManager.hh.
References idxForcedCouple, and nForcedRegions.
Referenced by G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().
Definition at line 250 of file G4EmBiasingManager.cc.
References currentStepLimit, DBL_MAX, G4UniformRand, idxForcedCouple, lengthForRegion, and startTracking.
Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().
void G4EmBiasingManager::Initialise | ( | const G4ParticleDefinition & | part, |
const G4String & | procName, | ||
G4int | verbose | ||
) |
Definition at line 80 of file G4EmBiasingManager.cc.
References forcedRegions, G4cout, G4endl, G4ProductionCutsTable::GetMaterialCutsCouple(), G4Region::GetName(), G4ParticleDefinition::GetParticleName(), G4MaterialCutsCouple::GetProductionCuts(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), idxForcedCouple, idxSecBiasedCouple, nForcedRegions, nSecBiasedRegions, secBiasedRegions, and secBiasedWeight.
Referenced by G4VEmProcess::PreparePhysicsTable(), and G4VEnergyLossProcess::PreparePhysicsTable().
|
private |
|
inline |
Definition at line 186 of file G4EmBiasingManager.hh.
References startTracking.
Referenced by G4VEmProcess::StartTracking(), and G4VEnergyLossProcess::StartTracking().
Definition at line 168 of file G4EmBiasingManager.hh.
References idxSecBiasedCouple, and nSecBiasedRegions.
Referenced by G4VEnergyLossProcess::FillSecondariesAlongStep(), G4VEmProcess::PostStepDoIt(), and G4VEnergyLossProcess::PostStepDoIt().
|
private |
Definition at line 163 of file G4EmBiasingManager.hh.
Referenced by GetStepLimit().
|
private |
Definition at line 158 of file G4EmBiasingManager.hh.
Referenced by ApplyRangeCut().
|
private |
Definition at line 146 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), and Initialise().
|
private |
Definition at line 162 of file G4EmBiasingManager.hh.
Referenced by ApplySecondaryBiasing(), and G4EmBiasingManager().
|
private |
Definition at line 153 of file G4EmBiasingManager.hh.
Referenced by ForcedInteractionRegion(), GetStepLimit(), and Initialise().
|
private |
Definition at line 154 of file G4EmBiasingManager.hh.
Referenced by ApplySecondaryBiasing(), Initialise(), and SecondaryBiasingRegion().
|
private |
Definition at line 147 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), and GetStepLimit().
|
private |
Definition at line 151 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), ApplySecondaryBiasing(), and ApplySplitting().
|
private |
Definition at line 144 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), ForcedInteractionRegion(), and Initialise().
|
private |
Definition at line 145 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), Initialise(), and SecondaryBiasingRegion().
|
private |
Definition at line 150 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), and ApplySecondaryBiasing().
|
private |
Definition at line 148 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), and Initialise().
|
private |
Definition at line 149 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), ApplyRussianRoulette(), ApplySecondaryBiasing(), ApplySplitting(), and Initialise().
|
private |
Definition at line 164 of file G4EmBiasingManager.hh.
Referenced by GetStepLimit(), and ResetForcedInteraction().
|
private |
Definition at line 160 of file G4EmBiasingManager.hh.
Referenced by ApplyRangeCut(), and G4EmBiasingManager().
|
private |
Definition at line 156 of file G4EmBiasingManager.hh.
Referenced by ApplySplitting().