Geant4  10.01.p03
G4EmBiasingManager Class Reference

#include <G4EmBiasingManager.hh>

+ Collaboration diagram for G4EmBiasingManager:

Public Member Functions

 G4EmBiasingManager ()
 
 ~G4EmBiasingManager ()
 
void Initialise (const G4ParticleDefinition &part, const G4String &procName, G4int verbose)
 
void ActivateForcedInteraction (G4double length=0.0, const G4String &r="")
 
void ActivateSecondaryBiasing (const G4String &region, G4double factor, G4double energyLimit)
 
G4double GetStepLimit (G4int coupleIdx, G4double previousStep)
 
G4double ApplySecondaryBiasing (std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
 
G4double ApplySecondaryBiasing (std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForLoss *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
 
G4double ApplySecondaryBiasing (std::vector< G4Track * > &, G4int coupleIdx)
 
G4bool SecondaryBiasingRegion (G4int coupleIdx)
 
G4bool ForcedInteractionRegion (G4int coupleIdx)
 
void ResetForcedInteraction ()
 

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 &)
 
G4EmBiasingManageroperator= (const G4EmBiasingManager &right)
 

Private Attributes

G4int nForcedRegions
 
G4int nSecBiasedRegions
 
std::vector< const G4Region * > forcedRegions
 
std::vector< G4doublelengthForRegion
 
std::vector< const G4Region * > secBiasedRegions
 
std::vector< G4doublesecBiasedWeight
 
std::vector< G4doublesecBiasedEnegryLimit
 
std::vector< G4intnBremSplitting
 
std::vector< G4intidxForcedCouple
 
std::vector< G4intidxSecBiasedCouple
 
std::vector< G4DynamicParticle * > tmpSecondaries
 
G4VEnergyLossProcesseIonisation
 
const G4ParticleDefinitiontheElectron
 
G4double fSafetyMin
 
G4double currentStepLimit
 
G4bool startTracking
 

Detailed Description

Definition at line 67 of file G4EmBiasingManager.hh.

Constructor & Destructor Documentation

G4EmBiasingManager::G4EmBiasingManager ( )

Definition at line 65 of file G4EmBiasingManager.cc.

References G4Electron::Electron(), fSafetyMin, mm, and theElectron.

+ Here is the call graph for this function:

G4EmBiasingManager::~G4EmBiasingManager ( )

Definition at line 75 of file G4EmBiasingManager.cc.

G4EmBiasingManager::G4EmBiasingManager ( G4EmBiasingManager )
private

Member Function Documentation

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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, and secBiasedWeight.

Referenced by G4VEmProcess::ActivateSecondaryBiasing(), and G4VEnergyLossProcess::ActivateSecondaryBiasing().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4EmBiasingManager::ApplyRangeCut ( std::vector< G4DynamicParticle * > &  vd,
const G4Track track,
G4double eloss,
G4double  safety 
)
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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4EmBiasingManager::ApplyRussianRoulette ( std::vector< G4DynamicParticle * > &  vd,
G4int  index 
)
inlineprivate

Definition at line 194 of file G4EmBiasingManager.hh.

References G4UniformRand, n, and secBiasedWeight.

Referenced by ApplySecondaryBiasing().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4EmBiasingManager::ApplySecondaryBiasing ( std::vector< G4DynamicParticle * > &  vd,
const G4Track track,
G4VEmModel currentModel,
G4ParticleChangeForLoss pParticleChange,
G4double eloss,
G4int  coupleIdx,
G4double  tcut,
G4double  safety = 0.0 
)
G4double G4EmBiasingManager::ApplySecondaryBiasing ( std::vector< G4Track * > &  track,
G4int  coupleIdx 
)
G4double G4EmBiasingManager::ApplySplitting ( std::vector< G4DynamicParticle * > &  vd,
const G4Track track,
G4VEmModel currentModel,
G4int  index,
G4double  tcut 
)
private

Definition at line 430 of file G4EmBiasingManager.cc.

References G4Track::GetDynamicParticle(), G4Track::GetMaterialCutsCouple(), G4Track::GetWeight(), n, nBremSplitting, G4VEmModel::SampleSecondaries(), secBiasedWeight, and tmpSecondaries.

Referenced by ApplySecondaryBiasing().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4EmBiasingManager::ForcedInteractionRegion ( G4int  coupleIdx)
inline

Definition at line 177 of file G4EmBiasingManager.hh.

References idxForcedCouple, and nForcedRegions.

Referenced by G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

G4double G4EmBiasingManager::GetStepLimit ( G4int  coupleIdx,
G4double  previousStep 
)

Definition at line 250 of file G4EmBiasingManager.cc.

References currentStepLimit, DBL_MAX, G4UniformRand, idxForcedCouple, lengthForRegion, and startTracking.

Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength(), and G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4EmBiasingManager& G4EmBiasingManager::operator= ( const G4EmBiasingManager right)
private
void G4EmBiasingManager::ResetForcedInteraction ( )
inline

Definition at line 186 of file G4EmBiasingManager.hh.

References startTracking.

Referenced by G4VEmProcess::StartTracking(), and G4VEnergyLossProcess::StartTracking().

+ Here is the caller graph for this function:

G4bool G4EmBiasingManager::SecondaryBiasingRegion ( G4int  coupleIdx)
inline

Definition at line 168 of file G4EmBiasingManager.hh.

References idxSecBiasedCouple, and nSecBiasedRegions.

Referenced by G4VEnergyLossProcess::FillSecondariesAlongStep(), G4VEmProcess::PostStepDoIt(), and G4VEnergyLossProcess::PostStepDoIt().

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4EmBiasingManager::currentStepLimit
private

Definition at line 163 of file G4EmBiasingManager.hh.

Referenced by GetStepLimit().

G4VEnergyLossProcess* G4EmBiasingManager::eIonisation
private

Definition at line 158 of file G4EmBiasingManager.hh.

Referenced by ApplyRangeCut().

std::vector<const G4Region*> G4EmBiasingManager::forcedRegions
private

Definition at line 146 of file G4EmBiasingManager.hh.

Referenced by ActivateForcedInteraction(), and Initialise().

G4double G4EmBiasingManager::fSafetyMin
private

Definition at line 162 of file G4EmBiasingManager.hh.

Referenced by ApplySecondaryBiasing(), and G4EmBiasingManager().

std::vector<G4int> G4EmBiasingManager::idxForcedCouple
private

Definition at line 153 of file G4EmBiasingManager.hh.

Referenced by ForcedInteractionRegion(), GetStepLimit(), and Initialise().

std::vector<G4int> G4EmBiasingManager::idxSecBiasedCouple
private
std::vector<G4double> G4EmBiasingManager::lengthForRegion
private

Definition at line 147 of file G4EmBiasingManager.hh.

Referenced by ActivateForcedInteraction(), and GetStepLimit().

std::vector<G4int> G4EmBiasingManager::nBremSplitting
private
G4int G4EmBiasingManager::nForcedRegions
private
G4int G4EmBiasingManager::nSecBiasedRegions
private
std::vector<G4double> G4EmBiasingManager::secBiasedEnegryLimit
private

Definition at line 150 of file G4EmBiasingManager.hh.

Referenced by ActivateSecondaryBiasing(), and ApplySecondaryBiasing().

std::vector<const G4Region*> G4EmBiasingManager::secBiasedRegions
private

Definition at line 148 of file G4EmBiasingManager.hh.

Referenced by ActivateSecondaryBiasing(), and Initialise().

std::vector<G4double> G4EmBiasingManager::secBiasedWeight
private
G4bool G4EmBiasingManager::startTracking
private

Definition at line 164 of file G4EmBiasingManager.hh.

Referenced by GetStepLimit(), and ResetForcedInteraction().

const G4ParticleDefinition* G4EmBiasingManager::theElectron
private

Definition at line 160 of file G4EmBiasingManager.hh.

Referenced by ApplyRangeCut(), and G4EmBiasingManager().

std::vector<G4DynamicParticle*> G4EmBiasingManager::tmpSecondaries
private

Definition at line 156 of file G4EmBiasingManager.hh.

Referenced by ApplySplitting().


The documentation for this class was generated from the following files: