BIASING¶
Summary
Biases the multiplicity of secondaries (only for hadron, heavy ion or muon/photon nuclear interactions) on a region by region basis. Sets importance sampling (Russian Roulette/splitting) at boundary crossing by region and by particle.
See also EMF–BIAS, LOW–BIAS, LAM–BIAS, WW–FACTOr, WW–PROFIle, WW–THRESh
The meaning of WHAT(1)…WHAT(6) and SDUM is different depending on the sign of WHAT(1):
If WHAT(1) ≥ 0.0:
- WHAT(1)
\(I_0+1000I_1\), where \(I_0\) specifies the particles to be biased:
- = 0.0:
all particles
- = 1.0:
hadrons, heavy ions and muons
- = 2.0:
electrons, positrons and photons
- = 3.0:
low-energy neutrons
\(I_1\) specifies the generation above which RR or splitting is played, meaningful only for
SDUM = RR-GENER. This parameter is global, not region dependent. Default: all particles, all generations.- WHAT(2) =
- RR (or splitting) factor by which the average number of secondaries produced in a collision should be reduced (or increased). Meaningful only for hadron, heavy ion, or muon/photon nuclear interactions.This value can be overridden in the user routine
UBSSETby assigning a value to variableRRHADR. - Default
= 1.0
- WHAT(3) =
- region importance (allowed values range from
0.0001to100000.0)This value can be overridden in the user routineUBSSETby assigning a value to one or more of the variables IMPHAD,IMPLOWandIMPEMF(depending on the value ofWHAT(1))IfSDUM = USER, settingWHAT(3) = 1.for a region will suppress all calls to routineUSIMBSduring tracking inside that region. - Default
= 1.0
- WHAT(4) =
- lower bound (or corresponding name) of the region indices with importance equal to
WHAT(3)and/or with multiplicity biasing factor equal toWHAT(2)(“From region ``WHAT(4)``…”) - Default
= 2.0
- WHAT(5) =
- upper bound (or corresponding name) of the region indices with importance equal to
WHAT(3)and/or with multiplicity biasing factor equal toWHAT(2)(“…to region ``WHAT(5)``…”) - Default
=
WHAT(4)- WHAT(6) =
- step length in assigning indices(”…in steps of ``WHAT(6)`` ”)
- Default
= 1.0
- SDUM
=
PRINT: importance biasing counters are printed (useful to tune importances and weightwindows)
- =
NOPRINT: counters are not printed (cancels any previousPRINTrequest)
- =
USER: importance biasing according to the user defined routineUSIMBS
- =
NOUSER: resets to default (cancels any previousUSERrequest)
- =
RRPRONLY: multiplicity biasing for primary particles only. This setting is global, not region dependent, and mutually exclusive withRR-GENER.
- =
RR-GENER: multiplicity biasing only for particles of generation higher than the value set withWHAT(1). This setting is global, not region dependent, and mutually exclusive withRRPRONLY.blank: ignored
- Default
=
NOPRINT,NOUSER, multiplicity biasing for all generations (if requested)
If WHAT(1) < 0.0:
- WHAT(1)
: flag indicating that all region importances shall be modified by a particle-dependent factor, based on a modifying parameter as explained in the Note 3 below
- WHAT(2) ≥ 0.0:
modifying parameter M (see Note 3). See also WARNING below.
- < 0.0:
M is reset to the default value
1.0(i.e. no modification)- WHAT(3) =
- lower bound (or corresponding name) of the particle numbers to which the indicated modifying parameter applies(“From particle ``WHAT(3)``…”)
- Default
= 1.0
- WHAT(4) =
- upper bound (or corresponding name) of the particle numbers to which the indicated modifying parameter applies( “…to particle ``WHAT(4)``…”)
- Default
=
WHAT(3)ifWHAT(3)> 0.0, all particles otherwise- WHAT(5) =
- step length in assigning particle numbers(“…in steps of ``WHAT(5)`` ”)
- Default
= 1.0
- WHAT(6)
= For sdum = RRTHRESH: (kinetic) energy threshold below which RR/splitting at interactions is played, default oo, a value < 0 resets to default, 0 is ignored. Please note that it is not particle dependent For sdum = RR-LPTHR: (kinetic) energy threshold below which the leading particle is no longer preserved in RR, default 0, a value < 0 resets to default, 0 is ignored. Please note that it is not particle dependent All other sdums’: not used
- SDUM =
PRIMARY: - importance biasing is applied also to primary particles (cancels any previous
NOPRIMARyrequest) - =
NOPRIMARy: importance biasing is applied only to secondaries
- Default
=
PRIMARYRRTHRESH:WHAT(6)is the maximum energy for RR/splitting at interactions.
WARNING
Summary
Even if a BIASING card is issued only to set PRIMARY/NOPRIMARy, remember that a value of 0.0 is meaningful for WHAT(2). Leaving blank WHAT(2) to WHAT(5) has the effect of turning off all importance biasing for all particles!
- Default
: (option
BIASINGnot given): no multiplicity or RR/splitting biasing
Notes
WHAT(2), withWHAT(1)≥ 0.0, governs the application of Russian Roulette (or splitting) at hadronic collisions, in order to achieve a reduction (resp. an increase) of the multiplicity of secondaries.The same secondary is loaded onto the particle stack for further transport 0, 1 or any number of times depending on a random choice, such that on average the requested multiplicity reduction (or increase) is achieved. The weight of the stacked particles is automatically adjusted in order to account for the bias thus introduced.
If Russian Roulette has been requested, the reduction will not affect the leading particle, which will always be retained, with unmodified weight. Also, no RR is performed when the number of secondaries is less than 3. On the contrary, there are no such limitations for splitting (multiplicity increase).
There is some analogy with leading particle biasing as performed for electrons and photons with option
EMF–BIAS, and for hadrons in codes like Casim [Van75]. WHAT(3), withWHAT(1)≥ 0.0, governs RR/splitting at boundary crossing. The number of particles of the selected type crossing a given boundary is reduced/increased on average by a factor equal to the ratio of the importances on either side of the boundary. What is relevant are the relative importances of adjacent regions, not their absolute values. As a guideline, in shielding and, in general, strong attenuation problems, the importance of a region should be about inversely proportional to the corresponding attenuation factor (absorption plus distance attenuation). This would exactly compensate the dilution of particle density leading to a particle population approximately uniform in space. In some cases, however, when the user is interested in improving statistics only in a limited portion of space, a uniform population density is not desirable, but it is convenient to set importances so as to increase particle densities in a particular direction.Different importances can be given to the same region for different particles, using the particle-dependent modifying factor M which can be defined setting
WHAT(1)< 0.0.The modifying parameter M (
WHAT(2), withWHAT(1)> 0.0) works as follows:At a boundary crossing, let us call \({I}_1\) the importance of the upstream region, and \({I}_2\) that of the downstream region.
If \({I}_2\,<\,{I}_1\), Russian Roulette will be played.
Without any modifying factor, the chance of particle survival is \({I}_2/{I}_1\).
For \(0.0\,\leq\,{M}\,\leq\,1.0\), the survival chance is modified to:
\[1.0\,-\,{\textbf{M}}\,\times\,(1.0\,-\,{I}_2/{I}_1)\]It can be seen that a value M
= 0.0resets the chance of survival to1.0, namely inhibits Russian Roulette biasing. A value M
= 1.0leaves the survival chance unmodified, while any value between0.0and1.0increases the probability of survival with respect to the basic setting.For \({M}\,\geq\,1.0\), the survival chance is modified to:
\[{I}_2/({\textbf{M}}\,\times\,{I}_1)\]So, a value larger than
1.0decreases the probability of survival with respect to the basic setting.If \({I}_2\,>\,{I}_1\), there will be splitting.
Without any modifying factor, the number of particles is increased on average by a factor \({I}_2/{I}_1\).
With the modifying factor, the number of particles is increased instead by:
\[1.0\,+\,{\textbf{M}}\,\times\,({I}_2/{I}_1\,-\,1.0)\]It can be seen that a value M
= 0.0resets the splitting factor to1.0, namely inhibits splitting.A value M
= 1.0leaves the number of particles unmodified; a value between0.0and1.0decreases the amount of splitting with respect to the basic setting; a value> 1.0increases the amount of splitting.
Hint: One of the most common uses of the modifying factor is to play Russian Roulette/splitting only for some selected particles: one does that by inhibiting biasing for all other particles, i.e. setting
= 0.0the modifying factor M (WHAT(2), withWHAT(1)< 0.0).In the most general case, increasing a region’s importance leads to an increased particle “traffic” through that region and consequently to a better scoring statistics in regions “beyond”. However, it should be avoided to have relatively large importances in scoring regions compared with those in adjacent ones to avoid correlated tallies. If that happens, the scoring statistics might look only apparently good. It must be avoided also to have too different importances in adjacent zones: the best biasing has to be done gently, without forcing and in a way as continuous as possible.
All these biasing techniques are intended to improve statistics in some parts of phase space at the expenses of the other parts. Biased runs in particular can neither accelerate convergence in all regions, nor reproduce natural fluctuations and correlations. Do not bias unless you know what you are doing!
Advice: When choosing the multiplicity reduction option of
BIASING, or any other biasing option which can introduce weight fluctuations in a given region, it is suggested to set also a weight window (cardsWW–FACTOrand WW–THRESh) in order to avoid too large fluctuations in weight. The window must be consistent with the other weight-modifying options, i.e. it must be approximately centred on the average value of the weight expected in the region in question. If necessary, setSDUM = PRINTto get such information.In case no window has been set, the code still keeps weights under control (but only those of low-energy neutrons) by imposing a maximum deviation from a central value. This reference level is usually equal to the inverse of the neutron importance in the region in question. However, since for technical reasons in FLUKA allowed importance values range only from
0.0001to100000.0, the user can multiply all the importances by a factor, only for the purpose of calculating the reference weight level, by means of optionWW–PROFIle.If the only biasing is via region importances set by
WHAT(3), only limited fluctuations arise (all particles of a given kind have about the same weight in the same region), and no window is needed.Importance biasing cannot be made by user routine
USIMBSand by setting region importances at the same time.
Example, for a number-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BIASING 2.0 0.0 10.0 7.0 11.0 2.0
BIASING 2.0 0.0 15.0 8.0 9.0 0.0
BIASING -1.0 0.0 3.0 4.0 0.0 0.0
BIASING 1.0 0.7 0.4 3.0 8.0 0.0 PRINT
* In this example, the first two BIASING cards set an importance = 10
* for electrons, positrons and photons in regions 7, 9 and 11; and
* an importance = 15 in regions 8 and 9 for the same particles.
* However, the following card requires a modifying factor = 0.0
* (no splitting or Russian Roulette) for electrons and positrons.
* The net result is that biasing at boundary crossing with the above
* region importances is played only for photons.
* The fourth card sets a reduction factor = 0.7 for the multiplicity
* of hadronic events in regions 3, 4, 5, 6, 7 and 8; the importance
* of these same regions is set = 0.4; and it is required that biasing
* counters be printed.
The following is the same example, in a name-based input:
BIASING 2.0 0.0 10.0 Seventh Eleventh 2.0
BIASING 2.0 0.0 15.0 Eighth Ninth 0.0
BIASING -1.0 0.0 ELECTRON POSITRON 0.0 0.0
BIASING 1.0 0.7 0.4 Third Eighth 0.0 PRINT