42 G4int maxNumberOfSplits) :
43 fUpperLimitFaktor(upperLimitFaktor),
44 fSurvivalFaktor(survivalFaktor),
45 fMaxNumberOfSplits(maxNumberOfSplits)
57 G4double survivalWeight = lowerWeightBound * fSurvivalFaktor;
58 G4double upperWeight = lowerWeightBound * fUpperLimitFaktor;
65 if (init_w > upperWeight) {
70 G4double temp_wi_ws = init_w/upperWeight;
71 G4int split_i =
static_cast<int>(temp_wi_ws);
72 if(split_i != temp_wi_ws) split_i++;
102 }
else if (init_w < lowerWeightBound) {
104 G4double wi_ws = init_w/survivalWeight;
105 G4double p = std::max(wi_ws,1./fMaxNumberOfSplits);
virtual ~G4WeightWindowAlgorithm()
virtual G4Nsplit_Weight Calculate(G4double init_w, G4double lowerWeightBound) const
G4WeightWindowAlgorithm(G4double upperLimitFaktor=5, G4double survivalFaktor=3, G4int maxNumberOfSplits=5)