47#ifndef G4EmBiasingManager_h
48#define G4EmBiasingManager_h 1
229 size_t n = vd.size();
231 for(
size_t k=0; k<
n; ++k) {
static const G4double pos
G4double ApplySplitting(std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut)
G4EmBiasingManager(G4EmBiasingManager &)=delete
std::vector< G4DynamicParticle * > tmpSecondaries
std::vector< const G4Region * > forcedRegions
std::vector< G4double > secBiasedEnegryLimit
void SetDirectionalSplittingRadius(G4double r)
void SetDirectionalSplitting(G4bool v)
G4bool ForcedInteractionRegion(G4int coupleIdx)
std::vector< G4double > secBiasedWeight
G4double ApplySecondaryBiasing(std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
G4VEnergyLossProcess * eIonisation
void ApplyRangeCut(std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4double &eloss, G4double safety)
const G4ParticleDefinition * theGamma
void ResetForcedInteraction()
G4double currentStepLimit
std::vector< G4int > idxSecBiasedCouple
void Initialise(const G4ParticleDefinition &part, const G4String &procName, G4int verbose)
G4double GetWeight(G4int i)
std::vector< const G4Region * > secBiasedRegions
G4bool GetDirectionalSplitting()
std::vector< G4int > nBremSplitting
std::vector< G4double > lengthForRegion
std::vector< G4double > fDirectionalSplittingWeights
G4ThreeVector fDirectionalSplittingTarget
const G4ParticleDefinition * theElectron
G4bool CheckDirection(G4ThreeVector pos, G4ThreeVector momdir) const
G4EmBiasingManager & operator=(const G4EmBiasingManager &right)=delete
G4double fDirectionalSplittingRadius
G4double ApplyDirectionalSplitting(std::vector< G4DynamicParticle * > &vd, const G4Track &track, G4VEmModel *currentModel, G4int index, G4double tcut, G4ParticleChangeForGamma *partChange)
void ActivateForcedInteraction(G4double length=0.0, const G4String &r="")
G4double ApplyRussianRoulette(std::vector< G4DynamicParticle * > &vd, G4int index)
void SetDirectionalSplittingTarget(G4ThreeVector v)
G4bool SecondaryBiasingRegion(G4int coupleIdx)
G4bool fDirectionalSplitting
G4double GetStepLimit(G4int coupleIdx, G4double previousStep)
std::vector< G4int > idxForcedCouple