Geant4-11
|
#include <G4EmBiasingManager.hh>
Private Member Functions | |
G4double | ApplyDirectionalSplitting (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut) |
G4double | ApplyDirectionalSplitting (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut, G4ParticleChangeForGamma *partChange) |
void | ApplyRangeCut (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4double &eloss, G4double safety) |
G4double | ApplyRussianRoulette (std::vector< G4DynamicParticle * > &vd, G4int index) |
G4double | ApplySplitting (std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut) |
Private Attributes | |
G4double | currentStepLimit = 0.0 |
G4VEnergyLossProcess * | eIonisation = nullptr |
G4bool | fDirectionalSplitting = false |
G4double | fDirectionalSplittingRadius = 0.0 |
G4ThreeVector | fDirectionalSplittingTarget |
std::vector< G4double > | fDirectionalSplittingWeights |
std::vector< const G4Region * > | forcedRegions |
G4double | fSafetyMin |
std::vector< G4int > | idxForcedCouple |
std::vector< G4int > | idxSecBiasedCouple |
std::vector< G4double > | lengthForRegion |
std::vector< G4int > | nBremSplitting |
G4int | nForcedRegions = 0 |
G4int | nSecBiasedRegions = 0 |
std::vector< G4double > | secBiasedEnegryLimit |
std::vector< const G4Region * > | secBiasedRegions |
std::vector< G4double > | secBiasedWeight |
G4bool | startTracking = true |
const G4ParticleDefinition * | theElectron |
const G4ParticleDefinition * | theGamma |
std::vector< G4DynamicParticle * > | tmpSecondaries |
Definition at line 66 of file G4EmBiasingManager.hh.
G4EmBiasingManager::G4EmBiasingManager | ( | ) |
Definition at line 67 of file G4EmBiasingManager.cc.
References G4Electron::Electron(), fSafetyMin, G4Gamma::Gamma(), mm, theElectron, and theGamma.
G4EmBiasingManager::~G4EmBiasingManager | ( | ) |
Definition at line 77 of file G4EmBiasingManager.cc.
|
delete |
void G4EmBiasingManager::ActivateForcedInteraction | ( | G4double | length = 0.0 , |
const G4String & | r = "" |
||
) |
Definition at line 163 of file G4EmBiasingManager.cc.
References forcedRegions, G4cout, G4endl, G4RegionStore::GetInstance(), G4RegionStore::GetRegion(), lengthForRegion, G4InuclParticleNames::name(), nForcedRegions, and reg.
Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), and G4VEmProcess::ActivateForcedInteraction().
void G4EmBiasingManager::ActivateSecondaryBiasing | ( | const G4String & | region, |
G4double | factor, | ||
G4double | energyLimit | ||
) |
Definition at line 204 of file G4EmBiasingManager.cc.
References G4cout, G4endl, G4lrint(), G4RegionStore::GetInstance(), G4RegionStore::GetRegion(), G4InuclParticleNames::name(), nBremSplitting, nSecBiasedRegions, reg, secBiasedEnegryLimit, secBiasedRegions, and secBiasedWeight.
Referenced by G4VEmProcess::ActivateSecondaryBiasing(), and G4VEnergyLossProcess::ActivateSecondaryBiasing().
|
private |
Definition at line 643 of file G4EmBiasingManager.cc.
References CheckDirection(), fDirectionalSplittingWeights, G4UniformRand, G4Track::GetDynamicParticle(), G4Track::GetMaterialCutsCouple(), G4Track::GetPosition(), G4Track::GetWeight(), nBremSplitting, pos, G4VEmModel::SampleSecondaries(), secBiasedWeight, and tmpSecondaries.
|
private |
Definition at line 514 of file G4EmBiasingManager.cc.
References CheckDirection(), fDirectionalSplittingWeights, G4UniformRand, G4Track::GetDynamicParticle(), G4Track::GetMaterialCutsCouple(), G4Track::GetPosition(), G4ParticleChangeForGamma::GetProposedKineticEnergy(), G4ParticleChangeForGamma::GetProposedMomentumDirection(), G4Track::GetWeight(), nBremSplitting, pos, G4ParticleChangeForGamma::ProposeMomentumDirection(), G4VParticleChange::ProposeWeight(), G4VEmModel::SampleSecondaries(), secBiasedWeight, G4ParticleChangeForGamma::SetProposedKineticEnergy(), theGamma, and tmpSecondaries.
Referenced by ApplySecondaryBiasing().
|
private |
Definition at line 430 of file G4EmBiasingManager.cc.
References eIonisation, G4DynamicParticle::GetDefinition(), G4LossTableManager::GetEnergyLossProcess(), G4DynamicParticle::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4VEnergyLossProcess::GetRange(), G4LossTableManager::Instance(), CLHEP::detail::n, and theElectron.
Referenced by ApplySecondaryBiasing().
|
inlineprivate |
Definition at line 226 of file G4EmBiasingManager.hh.
References G4UniformRand, CLHEP::detail::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 342 of file G4EmBiasingManager.cc.
References ApplyDirectionalSplitting(), ApplyRangeCut(), ApplyRussianRoulette(), ApplySplitting(), fDirectionalSplitting, fSafetyMin, G4ParticleChangeForGamma::GetProposedKineticEnergy(), G4ParticleChangeForGamma::GetProposedMomentumDirection(), idxSecBiasedCouple, CLHEP::detail::n, nBremSplitting, G4ParticleChangeForGamma::ProposeMomentumDirection(), secBiasedEnegryLimit, and G4ParticleChangeForGamma::SetProposedKineticEnergy().
Referenced by G4eplusAnnihilation::AtRestDoIt(), 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 289 of file G4EmBiasingManager.cc.
References ApplyDirectionalSplitting(), ApplyRangeCut(), ApplyRussianRoulette(), ApplySplitting(), fDirectionalSplitting, fSafetyMin, G4ParticleChangeForLoss::GetProposedKineticEnergy(), G4ParticleChangeForLoss::GetProposedMomentumDirection(), idxSecBiasedCouple, CLHEP::detail::n, nBremSplitting, G4ParticleChangeForLoss::ProposeMomentumDirection(), secBiasedEnegryLimit, and G4ParticleChangeForLoss::SetProposedKineticEnergy().
G4double G4EmBiasingManager::ApplySecondaryBiasing | ( | std::vector< G4Track * > & | track, |
G4int | coupleIdx | ||
) |
Definition at line 396 of file G4EmBiasingManager.cc.
References G4UniformRand, idxSecBiasedCouple, CLHEP::detail::n, nBremSplitting, secBiasedEnegryLimit, and secBiasedWeight.
|
private |
Definition at line 471 of file G4EmBiasingManager.cc.
References G4Track::GetDynamicParticle(), G4Track::GetMaterialCutsCouple(), G4Track::GetWeight(), CLHEP::detail::n, nBremSplitting, G4VEmModel::SampleSecondaries(), secBiasedWeight, and tmpSecondaries.
Referenced by ApplySecondaryBiasing().
G4bool G4EmBiasingManager::CheckDirection | ( | G4ThreeVector | pos, |
G4ThreeVector | momdir | ||
) | const |
Definition at line 456 of file G4EmBiasingManager.cc.
References CLHEP::Hep3Vector::angle(), angle, CLHEP::Hep3Vector::cross(), fDirectionalSplittingRadius, fDirectionalSplittingTarget, halfpi, CLHEP::Hep3Vector::mag(), and pos.
Referenced by ApplyDirectionalSplitting().
Definition at line 209 of file G4EmBiasingManager.hh.
References idxForcedCouple, and nForcedRegions.
Referenced by G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().
|
inline |
Definition at line 267 of file G4EmBiasingManager.cc.
References currentStepLimit, DBL_MAX, G4UniformRand, idxForcedCouple, lengthForRegion, and startTracking.
Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().
Definition at line 629 of file G4EmBiasingManager.cc.
References fDirectionalSplittingWeights.
Referenced by G4eplusAnnihilation::AtRestDoIt(), G4VEmProcess::PostStepDoIt(), and G4VEnergyLossProcess::PostStepDoIt().
void G4EmBiasingManager::Initialise | ( | const G4ParticleDefinition & | part, |
const G4String & | procName, | ||
G4int | verbose | ||
) |
Definition at line 82 of file G4EmBiasingManager.cc.
References cm, fDirectionalSplitting, fDirectionalSplittingRadius, fDirectionalSplittingTarget, forcedRegions, G4cout, G4endl, G4EmParameters::GetDirectionalSplitting(), G4EmParameters::GetDirectionalSplittingRadius(), G4EmParameters::GetDirectionalSplittingTarget(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4Region::GetName(), G4ParticleDefinition::GetParticleName(), G4MaterialCutsCouple::GetProductionCuts(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), idxForcedCouple, idxSecBiasedCouple, G4EmParameters::Instance(), nForcedRegions, nSecBiasedRegions, secBiasedRegions, secBiasedWeight, SetDirectionalSplitting(), SetDirectionalSplittingRadius(), and SetDirectionalSplittingTarget().
Referenced by G4VEmProcess::PreparePhysicsTable(), and G4VEnergyLossProcess::PreparePhysicsTable().
|
delete |
|
inline |
Definition at line 218 of file G4EmBiasingManager.hh.
References startTracking.
Referenced by G4VEmProcess::StartTracking(), and G4VEnergyLossProcess::StartTracking().
Definition at line 200 of file G4EmBiasingManager.hh.
References idxSecBiasedCouple, and nSecBiasedRegions.
Referenced by G4eplusAnnihilation::AtRestDoIt(), G4VEnergyLossProcess::FillSecondariesAlongStep(), G4VEmProcess::PostStepDoIt(), and G4VEnergyLossProcess::PostStepDoIt().
|
inline |
Definition at line 126 of file G4EmBiasingManager.hh.
References fDirectionalSplitting.
Referenced by Initialise().
|
inline |
Definition at line 130 of file G4EmBiasingManager.hh.
References fDirectionalSplittingRadius.
Referenced by Initialise().
|
inline |
Definition at line 128 of file G4EmBiasingManager.hh.
References fDirectionalSplittingTarget.
Referenced by Initialise().
|
private |
Definition at line 173 of file G4EmBiasingManager.hh.
Referenced by GetStepLimit().
|
private |
Definition at line 167 of file G4EmBiasingManager.hh.
Referenced by ApplyRangeCut().
|
private |
Definition at line 180 of file G4EmBiasingManager.hh.
Referenced by ApplySecondaryBiasing(), GetDirectionalSplitting(), Initialise(), and SetDirectionalSplitting().
|
private |
Definition at line 174 of file G4EmBiasingManager.hh.
Referenced by CheckDirection(), Initialise(), and SetDirectionalSplittingRadius().
|
private |
Definition at line 182 of file G4EmBiasingManager.hh.
Referenced by CheckDirection(), Initialise(), and SetDirectionalSplittingTarget().
|
private |
Definition at line 183 of file G4EmBiasingManager.hh.
Referenced by ApplyDirectionalSplitting(), and GetWeight().
|
private |
Definition at line 189 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), and Initialise().
|
private |
Definition at line 172 of file G4EmBiasingManager.hh.
Referenced by ApplySecondaryBiasing(), and G4EmBiasingManager().
|
private |
Definition at line 193 of file G4EmBiasingManager.hh.
Referenced by ForcedInteractionRegion(), GetStepLimit(), and Initialise().
|
private |
Definition at line 194 of file G4EmBiasingManager.hh.
Referenced by ApplySecondaryBiasing(), Initialise(), and SecondaryBiasingRegion().
|
private |
Definition at line 185 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), and GetStepLimit().
|
private |
Definition at line 192 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), ApplyDirectionalSplitting(), ApplySecondaryBiasing(), and ApplySplitting().
|
private |
Definition at line 176 of file G4EmBiasingManager.hh.
Referenced by ActivateForcedInteraction(), ForcedInteractionRegion(), and Initialise().
|
private |
Definition at line 177 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), Initialise(), and SecondaryBiasingRegion().
|
private |
Definition at line 187 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), and ApplySecondaryBiasing().
|
private |
Definition at line 190 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), and Initialise().
|
private |
Definition at line 186 of file G4EmBiasingManager.hh.
Referenced by ActivateSecondaryBiasing(), ApplyDirectionalSplitting(), ApplyRussianRoulette(), ApplySecondaryBiasing(), ApplySplitting(), and Initialise().
|
private |
Definition at line 179 of file G4EmBiasingManager.hh.
Referenced by GetStepLimit(), and ResetForcedInteraction().
|
private |
Definition at line 169 of file G4EmBiasingManager.hh.
Referenced by ApplyRangeCut(), and G4EmBiasingManager().
|
private |
Definition at line 170 of file G4EmBiasingManager.hh.
Referenced by ApplyDirectionalSplitting(), and G4EmBiasingManager().
|
private |
Definition at line 196 of file G4EmBiasingManager.hh.
Referenced by ApplyDirectionalSplitting(), and ApplySplitting().