129 { fDirectionalSplittingTarget = v; }
131 { fDirectionalSplittingRadius = r; }
140 void ApplyRangeCut(std::vector<G4DynamicParticle*>& vd,
145 G4double ApplySplitting(std::vector<G4DynamicParticle*>& vd,
151 G4double ApplyDirectionalSplitting(std::vector<G4DynamicParticle*>& vd,
158 G4double ApplyDirectionalSplitting(std::vector<G4DynamicParticle*>& vd,
164 inline G4double ApplyRussianRoulette(std::vector<G4DynamicParticle*>& vd,
174 G4double fDirectionalSplittingRadius = 0.0;
176 G4int nForcedRegions = 0;
177 G4int nSecBiasedRegions = 0;
179 G4bool startTracking =
true;
180 G4bool fDirectionalSplitting =
false;
183 std::vector<G4double> fDirectionalSplittingWeights;
185 std::vector<G4double> lengthForRegion;
186 std::vector<G4double> secBiasedWeight;
187 std::vector<G4double> secBiasedEnegryLimit;
189 std::vector<const G4Region*> forcedRegions;
190 std::vector<const G4Region*> secBiasedRegions;
192 std::vector<G4int> nBremSplitting;
193 std::vector<G4int> idxForcedCouple;
194 std::vector<G4int> idxSecBiasedCouple;
196 std::vector<G4DynamicParticle*> tmpSecondaries;
G4double ApplySecondaryBiasing(std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)