48 #ifndef G4EmBiasingManager_h
49 #define G4EmBiasingManager_h 1
197 size_t n = vd.size();
199 for(
size_t k=0; k<
n; ++k) {
void ResetForcedInteraction()
std::vector< G4double > lengthForRegion
G4EmBiasingManager & operator=(const G4EmBiasingManager &right)=delete
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
G4double ApplySplitting(std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut)
G4VEnergyLossProcess * eIonisation
void ActivateForcedInteraction(G4double length=0.0, const G4String &r="")
G4double ApplySecondaryBiasing(std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
std::vector< const G4Region * > secBiasedRegions
G4bool ForcedInteractionRegion(G4int coupleIdx)
G4bool SecondaryBiasingRegion(G4int coupleIdx)
void Initialise(const G4ParticleDefinition &part, const G4String &procName, G4int verbose)
std::vector< G4int > idxSecBiasedCouple
G4double currentStepLimit
std::vector< G4int > idxForcedCouple
G4double GetStepLimit(G4int coupleIdx, G4double previousStep)
void ApplyRangeCut(std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4double &eloss, G4double safety)
std::vector< G4int > nBremSplitting
G4double ApplyRussianRoulette(std::vector< G4DynamicParticle * > &vd, G4int index)
const G4ParticleDefinition * theElectron
std::vector< const G4Region * > forcedRegions
std::vector< G4double > secBiasedEnegryLimit
std::vector< G4double > secBiasedWeight
std::vector< G4DynamicParticle * > tmpSecondaries