48 #ifndef G4EmBiasingManager_h
49 #define G4EmBiasingManager_h 1
126 void ApplyRangeCut(std::vector<G4DynamicParticle*>& vd,
131 G4double ApplySplitting(std::vector<G4DynamicParticle*>& vd,
137 inline G4double ApplyRussianRoulette(std::vector<G4DynamicParticle*>& vd,
144 G4int nForcedRegions;
145 G4int nSecBiasedRegions;
146 std::vector<const G4Region*> forcedRegions;
147 std::vector<G4double> lengthForRegion;
148 std::vector<const G4Region*> secBiasedRegions;
149 std::vector<G4double> secBiasedWeight;
150 std::vector<G4double> secBiasedEnegryLimit;
151 std::vector<G4int> nBremSplitting;
153 std::vector<G4int> idxForcedCouple;
154 std::vector<G4int> idxSecBiasedCouple;
156 std::vector<G4DynamicParticle*> tmpSecondaries;
171 if(nSecBiasedRegions > 0) {
172 if(idxSecBiasedCouple[coupleIdx] >= 0) { res =
true; }
180 if(nForcedRegions > 0) {
181 if(idxForcedCouple[coupleIdx] >= 0) { res =
true; }
188 startTracking =
true;
194 G4EmBiasingManager::ApplyRussianRoulette(std::vector<G4DynamicParticle*>& vd,
197 size_t n = vd.size();
199 for(
size_t k=0; k<
n; ++k) {