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