45 lines
1.8 KiB
Plaintext
45 lines
1.8 KiB
Plaintext
Example GB03 : geometry based biasing
|
|
-------------------------------------
|
|
|
|
This example illustrates a use of generic biasing classes to implement a
|
|
technique near to "geometry importance biasing".
|
|
|
|
The geometry is the same than in EM tests, with the sampling calorimeter
|
|
made of a series of layers of absorber and gap.
|
|
|
|
The biasing applies to neutrons only.
|
|
|
|
Instead of explicitely assigning "importance" values to the layers, we
|
|
split neutrons moving forward and kill the ones moving backward, when they
|
|
reach the exit of an absorber volume.
|
|
|
|
The splitting factor can be controlled by command line, eg:
|
|
|
|
/GB03/biasing/setSplittingFactor 2
|
|
|
|
which also determines the killing probability : 1/(splitting factor).
|
|
|
|
It can be seen than when defining 10 layers (see exampleGB03.in), a
|
|
splitting factor 2 works fine : we don't suffer from under- or over-splitting.
|
|
If going to 20 layers, then a splitting with a factor 2 is too large,
|
|
and the biasing suffers from over-splitting. (And we can not go lower than
|
|
"2", which would mean "1" and hence, no biasing...)
|
|
|
|
To alleviate the over-splitting, we introduce a probability to apply the
|
|
splitting (and killing) (this is one solution, others can be considered), that
|
|
can be changed as:
|
|
|
|
/GB03/biasing/setApplyProbability 0.5
|
|
|
|
With above value, we can see that we recover a satisfactory biasing scheme,
|
|
with neutrons penetrating the entire setup, without over-splitting.
|
|
|
|
|
|
The classes involved are:
|
|
|
|
- GB03BOptnSplitOrKillOnBoundary : which is the biasing operation making
|
|
the splitting and killing;
|
|
- GB03BOptrGeometryBasedBiasing : which is the biasing operator, making
|
|
decision to use above operation, and configuring it, passing it the
|
|
splitting factor and probability to apply the biasing.
|
|
|