1
*====================================================================*
* *
* *
* *
* *
* FFFFF L U U K K AAA 222 000 222 11 *
* F L U U K K A A 2 2 0 0 2 2 111 *
* F L U U K K A A 2 0 0 2 1111 *
* FFFF L U U KK AAAAA === 2 0 0 2 11 *
* F L U U K K A A 2 0 0 2 11 *
* F L U U K K A A 2 0 0 2 11 *
* F LLLLL UUU K K A A 22222 000 22222 11111 *
* *
* http://www.fluka.org *
* *
* Copyright (C) 2019-2021 *
* Alberto Fasso`, Alfredo Ferrari, and their *
* collaborators, *
* INFN (Italian National Institute for Nuclear Physics) *
* All rights reserved *
* *
* ( Copyright (C) 1989-2019: *
* INFN (Italian National Institute for Nuclear Physics) *
* CERN (European Organization for Nuclear Research) ) *
* *
* Authors: A.Fasso`, A.Ferrari, J.Ranft, P.R.Sala *
* *
* Contributors : G.Arico`, G.Battistoni, *
* R.dos Santos Augusto, T.Empl, *
* Anna Ferrari, M.Lantz, A.Mairani, *
* M.C.Morone, S.Muller, S.Muraro, *
* V.Patera, M.Santana, G.Smirnov *
* Past contributors : T.T.Boehlen, F.Cerutti, M.Chin, *
* A.Fontana, M.V.Garzelli, S.Roesler, *
* F.Salvat-Pujol, P.Schoofs, *
* F.Sommerer, V.Vlachoudis *
* *
* *
* 2021 version of the FLUKA code by : *
* *
* Alberto Fasso` - SLAC/USA *
* fasso_at_slac.stanford.edu *
* *
* Alfredo Ferrari - Universitätsklinikum Heidelberg, *
* Private *
* Alfredo.Ferrari_at_kit.edu *
* *
* Paola Sala - INFN Milan *
* Paola.Sala_at_mi.infn.it *
* *
* Johannes Ranft - Siegen University *
* (deceased) *
* *
*====================================================================*
1
11 January 2022
The documentation for Fluka2020/21 is followed by:
F. Broggi Istituto Nazionale di Fisica Nucleare, via Celoria 16,
20133 Milano, Italy
Present (active) FLUKA authors (since FLUKA89):
A. Fasso`, retired, SLAC Stanford (USA)
A. Ferrari, private, Universitätsklinikum, Heidelberg, Germany,
J. Ranft, Universitaet Gesamthochschule Siegen, Fachbereich Physik,
D-57068 Siegen, Germany (deceased)
P. R. Sala Istituto Nazionale di Fisica Nucleare, via Celoria 16,
20133 Milano, Italy
Present contributors:
G. Arico` Italy
G. Battistoni Istituto Nazionale di Fisica Nucleare, via Celoria 16,
20133 Milano, Italy
R. dos Santos Augusto TRIUMF, 4004 Wesbrook Mall Vancouver, BC V6T 2A3
Canada
A. Empl Houston University, Texas, USA
A. Ferrari HDZR, Dresden, Germany
M. Lantz Uppsala University, Box 516 751 20 Uppsala,
Sweden
A. Mairani CNAO, Str. Campeggi, 53, 27100 Pavia, and
Heidelberger Ionenstrahl-Therapie (HIT), Heidelberg,
Germany
M.C.Morone Universita' Tor Vergata, Roma, and INFN, Italy
S. Muller HDZR, Dresden, Germany
S. Muraro Istituto Nazionale di Fisica Nucleare, via Celoria 16,
20133 Milano, Italy
V. Patera Universita' La Sapienza, Roma, and INFN Frascati,
Italy
M. Santana SLAC Stanford, Menlo Park, CA 94025, USA
G. Smirnov Dubna, Russian Federation
Other contributors who contributed to previous versions of the modern
FLUKA:
T.T. Boehlen PSI, Villigen, Switzerland
F. Cerutti The European Organization for Nuclear Research,
1211 Geneva 23, Switzerland
M. Chin Malaysia
A. Fontana Istituto Nazionale di Fisica Nucleare, via Bassi 6,
27100 Pavia, Italy
M. V. Garzelli Universita' degli Studi di Milano, Physics Department
via Celoria 16, 20133 Milano, Italy
S. Roesler The European Organization for Nuclear Research,
1211 Geneva 23, Switzerland
F. Salvat-Pujol The European Organization for Nuclear Research,
1211 Geneva 23, Switzerland
P. Schoofs The European Organization for Nuclear Research,
1211 Geneva 23, Switzerland
F. Sommerer Heidelberger Ionenstrahl-Therapie (HIT), Heidelberg,
Germany
V. Vlachoudis The European Organization for Nuclear Research,
1211 Geneva 23, Switzerland
Other contributors to previous FLUKA versions (from FLUKA82 up to FLUKA92):
P. Aarnio Helsinki University of Technology, Dept. of Technical
Physics Otakaari 1, SF-02150 ESPOO, Finland
(up to FLUKA87)
J.-H. Moehring Leipzig University, Germany, Fachbereich Physik,
LEIPZIG, Germany
(up to FLUKA92)
G. R. Stevenson TIS/RP, CERN, CH-1211 GENEVE 23, Switzerland
(up to FLUKA90)
J. M. Zazula Institute of Nuclear Physics, CRACOW, Poland
(up to FLUKA90)
1
Depending on whether the Licensee requested and got approval for
a User or Trial FLUKA version, the FLUKA User license or the FLUKA
Trial Version license applies respectively (see below). For
commercial users, ad hoc licenses are agreed, hence none of the
licenses below applies.
FLUKA User license
COPYRIGHT NOTICE AND LICENSE CONDITIONS
FLUKA is a fully integrated particle physics Monte Carlo
code. The FLUKA software results in particular from work
performed by Alberto Fasso`, Alfredo Ferrari, Johannes Ranft,
Paola Sala (the "FLUKA Authors"), and collaborators (the
"Collaborators").
The copyright in the FLUKA software Version 2011.2x is
entirely vested in INFN and CERN jointly. The copyright in
further versions is vested as following:
Copyright in developments carried out after September 1st
2019 is vested in Alberto Fasso`, Alfredo Ferrari, their
collaborators(*) and INFN. Those parts which are partially or
totally copyright of Alberto Fasso` and/or Alfredo Ferrari
are licensed free of charge for use in FLUKA as distributed
by the FLUKA Authors and INFN (**).
Copyright in developments carried out before September 1st
2019 is vested in INFN and CERN jointly.
Authorship is detailed for every routine in the source code.
All rights not expressly granted under this license are
reserved. Requests for permissions not granted under this
license shall be addressed to the Authors. Any permission may
only be granted in writing.
The Authors are the exclusive source of distribution of the
code, bug fixes and documentation of the FLUKA software
version 2021.2.3 and beyond, and may authorise distribution
by mirror sites.
This license cancels and replaces any prior license condi-
tions but their warranty and liability provisions shall con-
tinue to apply to any use or modifications made under such
prior license conditions.
* Creation date and last modification date of each routine
as well as its authors are indicated in the source code
** A non-exhaustive list of routines and modules which are
partially or totally copyright of Alberto Fasso` and/or
Alfredo Ferrari is included in the LICENSED.routines file.
DEFINITIONS
The FLUKA software ("FLUKA") means the fully integrated
particle physics Monte Carlo simulation software package
being developed since 1989 by the Authors and available,
under the name "FLUKA", from http://www.fluka.org and/or
mirror sites authorised by the Authors.
FLUKA includes FLUKA core code, and FLUKA User Routines (as
defined below).
FLUKA User Routines means the set of subroutines collected in
the usermvax section of FLUKA and forming part of the
standard distribution of FLUKA.
The Licensee means any person acting individually within a
non-profit organisation, exercising any permission granted by
this license.
LICENSE GRANT
1.
Subject to the terms and conditions of this license, the
FLUKA Copyright Holders herewith grant to the Licensee a
worldwide, non-exclusive, royalty-free, source and object
code license to use and reproduce FLUKA for internal
scientific non commercial non-military purposes only.
Notwithstanding the foregoing, the Licensee shall not execute
FLUKA in a manner that produces an output whose contents are
directly useable or easily employable to simulate the physics
models embedded within FLUKA in a generic manner, or excise
portions of FLUKA source or object code, and execute them
independently of FLUKA. Extracting specific isolated results
from any of the individual internal physics models embedded
within FLUKA is not permitted. Permitted use and reproduction
are referred to below as "Use".
2.
Modification (including translation) of FLUKA, in whole or
in part, is not permitted, except for modification of FLUKA
User Routines that do not circumvent, replace, add to or
modify any of the functions of the FLUKA core code. Permitted
modifications are referred to below as "Modifications".
3.
FLUKA is licensed for Use by the Licensee only, and the
Licensee shall not market, distribute, transfer, license or
sub-license, or in any way make available ("Make Available")
FLUKA or Modifications, in whole or in part, to third
parties, without prior written permission. The Licensee shall
not assign or transfer this license.
4.
Notwithstanding section 3, the Licensee may Make Available
his Modifications of FLUKA User Routines to third parties
under these license conditions.
5.
The Licensee shall not insert FLUKA code or Modifications,
in whole or in part, into other codes without prior written
permission.
6.
The Licensee shall not reverse engineer, decompile, decrypt,
disassemble or otherwise attempt to derive the source code
from the FLUKA binary code or FLUKA data libraries (except as
and only to the extent that any foregoing restriction is
prohibited by Law),
7.
Any use of FLUKA outside the scope of this license is subject
to prior written permission.
8.
The Licensee shall report as soon as practical any errors or
bugs found in any portion of FLUKA to the Authors.
PUBLICATIONS AND ACKNOWLEDGEMENT
9.
The Licensee shall explicitly acknowledge his use of FLUKA in
any publication or communication, scientific or otherwise,
relating to such use, by citing the FLUKA set of references
(see below) and the FLUKA copyright notice.
10.
The Licensee shall ensure that the FLUKA set of references,
the FLUKA copyright notice and these license conditions are
not altered or removed from FLUKA and that all embodiments of
FLUKA and Modifications contain in full the FLUKA set of
references, the FLUKA copyright notice, and these license
conditions.
11.
Any insertion of FLUKA code or Modifications, in whole or in
part, into other codes with permission under section 5 shall
preserve the FLUKA set of references, the FLUKA copyright
notice and these license conditions in the FLUKA code or
Modifications concerned, and must also reproduce these within
any additional global notices included along or embedded
within the software into which the FLUKA code or the
Modifications have been integrated, in whole or in part. Any
part of the FLUKA code or Modifications so inserted shall
continue to be subject to these license conditions.
12.
Publication of any results of comparisons of specific
internal physics models extracted from FLUKA with permission
under section 6 with data or with other codes or models is
subject to prior written permission.
13.
Contributions to any formal code comparisons and validation
exercises pertaining to FLUKA, sponsored by recognised bodies
or within the framework of recognised conferences and
workshops, are subject to prior written permission.
WARRANTY AND LIABILITY
14.
DISCLAIMER FLUKA IS PROVIDED BY THE FLUKA COPYRIGHT HOLDERS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, OF
SATISFACTORY QUALITY, AND FITNESS FOR A PARTICULAR PURPOSE OR
USE ARE DISCLAIMED. THE FLUKA COPYRIGHT HOLDERS AND THE
AUTHORS MAKE NO REPRESENTATION THAT FLUKA AND MODIFICATIONS
THEREOF WILL NOT INFRINGE ANY PATENT, COPYRIGHT, TRADE SECRET
OR OTHER PROPRIETARY RIGHT.
15.
LIMITATION OF LIABILITY THE FLUKA COPYRIGHT HOLDERS AND ANY
CONTRIBUTOR SHALL HAVE NO LIABILITY FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, CONSEQUENTIAL, EXEMPLARY, PUNITIVE OR
OTHER DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE,
DATA OR PROFITS, OR BUSINESS INTERRUPTION, HOWEVER CAUSED AND
ON ANY THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING
NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, ARISING IN ANY
WAY OUT OF THE USE OF FLUKA, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES, AND THE LICENSEE SHALL HOLD THE
COPYRIGHT HOLDERS AND ANY CONTRIBUTOR FREE AND HARMLESS FROM
ANY LIABILITY, INCLUDING CLAIMS BY THIRD PARTIES, IN RELATION
TO SUCH USE.
TERMINATION
16.
This license shall terminate with immediate effect and
without notice if the Licensee fails to comply with any of
the terms of this license, or if the Licensee initiates
litigation against any of the FLUKA Copyright Holders or any
contributors with regard to FLUKA. It shall also terminate
with immediate effect from the date on which a new version of
FLUKA becomes available. In either case sections 14 and 15
above shall continue to apply to any Use or Modifications
made under these license conditions.
FLUKA set of references, subject to change
"The FLUKA Code: Developments and Challenges for High Energy
and Medical Applications"
T.T. Bohlen, F. Cerutti, M.P.W. Chin, A. Fasso`, A. Ferrari,
P.G. Ortega, A. Mairani, P.R. Sala, G. Smirnov, and
V. Vlachoudis, Nuclear Data Sheets 120, 211-214 (2014)
"FLUKA: a multi-particle transport code"
A. Ferrari, P.R. Sala, A. Fasso`, and J. Ranft,
CERN-2005-10 (2005), INFN/TC_05/11, SLAC-R-773
Additional FLUKA references can be added, provided they are
relevant for the FLUKA version under consideration.
Note: Copyright statements contained in individual files re-
ferring explicitly to one or more of the Authors and/or
Collaborators, must be interpreted as "Copyright INFN
and CERN, Authors: ...", for the period 1989-September
1st 2019, and as "Copyright Alberto Fasso`, Alfredo
Ferrari, their collaborators, and INFN, Authors: ... ",
from September 1st 2019 onwards.
FLUKA set of references, subject to change
"The FLUKA Code: Developments and Challenges for High Energy
and Medical Applications"
T.T. Bohlen, F. Cerutti, M.P.W. Chin, A. Fasso`, A. Ferrari,
P.G. Ortega, A. Mairani, P.R. Sala, G. Smirnov, and
V. Vlachoudis, Nuclear Data Sheets 120, 211-214 (2014)
"FLUKA: a multi-particle transport code"
A. Ferrari, P.R. Sala, A. Fasso`, and J. Ranft,
CERN-2005-10 (2005), INFN/TC_05/11, SLAC-R-773
Additional FLUKA references can be added, provided they are
relevant for the FLUKA version under consideration.
This set of references is subject to change in time. New ones will be
communicated, when necessary, in the Release Notes of new FLUKA versions.
For questions/clarifications/problems about the license or in general the
use of FLUKA please contact the INFN FLUKA responsible person:
Dr. Paola R. Sala
INFN - Via Celoria 16 I-20133 Milano (Italy)
Paola.Sala_at_mi.infn.it
or one of the Authors.
1
FLUKA2021 MANUAL
IMPORTANT WARNING FOR THE USERS
This manual is a reference tool for preparing input for the FLUKA
particle transport code. It is not complete and it is not guaranteed to
be free from errors. It is continually evolving just as the code does.
It should not be cited: the proper references to be cited in any recent
work related to FLUKA are listed above (see also the list of References
in 19}). In using the code, the user agrees on the authorship
and copyright and hence is bound to quote the above references.
Please note also that early versions of the FLUKA hadronic event generator
as implemented in other codes (in particular GEANT) should be referenced
as such (e.g. GEANT-FLUKA) and not as FLUKA. They have little in common
with the present version and should be considered virtually obsolete.
The proper reference to GEANT-FLUKA is Fas93a.
It must be noted that after the termination of the INFN-CERN Agreement of
2003, CERN started to distribute a so-called ``FLUKA-4'' code, whose
legality is legally disputed by the surviving FLUKA Authors, A.Fasso`,
A.Ferrari, P.R. Sala, who consider that it infringes on their authorship
rights as protected by the Berne convention, and by the Swiss, Italian, and
European laws.
Some parts of the manual must be "enriched": output etc.; the part on
auxiliary programs must be updated.
Please refer to fasso@slac.stanford.edu / Alfredo.Ferrari@mi.infn.it for any
comment or criticism on this manual and/or the code.
Alberto Fasso`, Alfredo Ferrari
1********************************************************************************
Index of the FLUKA manual on-line
(search for string " 1}", " 2}" etc. for quick location)
********************************************************************************
0} What is FLUKA?
1} A quick look at FLUKA's physics, structure and capabilities
2} A FLUKA beginner's guide
3} Installation
4} FLUKA modules (Fortran files)
5} Particle and material codes
6} General features of FLUKA input
7} Description of FLUKA input options
8} Combinatorial Geometry
9} Output
10} Low-energy neutrons in FLUKA
11} Collision tape
12} Generating and propagating optical photons
13} User routines
14} Use of RAY pseudoparticles
15} Special source: colliding beams
16} Special source: cosmic rays
17} Special source: synchrotron radiation
18} History of FLUKA
19} References
1********************************************************************************
0} What is FLUKA?
********************************************************************************
FLUKA is a general purpose tool for calculations of particle transport and
interactions with matter, covering an extended range of applications spanning
from proton and electron accelerator shielding to target design, calorimetry,
activation, dosimetry, detector design, Accelerator Driven Systems, cosmic
rays, neutrino physics, radiotherapy etc.
The highest priority in the design and development of FLUKA has always been
the implementation and improvement of sound and modern physical
models. Microscopic models are adopted whenever possible, consistency among
all the reaction steps and/or reaction types is ensured, conservation laws
are enforced at each step, results are checked against experimental data at
single interaction level. As a result, final predictions are obtained with a
minimal set of free parameters fixed for all energy/target/projectile
combinations. Therefore results in complex cases, as well as properties and
scaling laws, arise naturally from the underlying physical models,
predictivity is provided where no experimental data are directly available,
and correlations within interactions and among shower components are
preserved.
FLUKA can simulate with high accuracy the interaction and propagation in
matter of about 60 different particles, including photons and electrons from
100 eV-1 keV to thousands of TeV, neutrinos, muons of any energy, hadrons of
energies up to 20 TeV (up to 10 PeV by linking FLUKA with the DPMJET code)
and all the corresponding antiparticles, neutrons down to thermal energies
and heavy ions. The program can also transport polarised photons (e.g.,
synchrotron radiation) and optical photons. Time evolution and tracking of
emitted radiation from unstable residual nuclei can be performed online.
FLUKA can handle even very complex geometries, using an improved version of
the well-known Combinatorial Geometry (CG) package. The FLUKA CG has been
designed to track correctly also charged particles (even in the presence of
magnetic or electric fields). Various visualisation and debugging tools are
also available.
For most applications, no programming is required from the user. However, a
number of user interface routines (in Fortran 77) are available for users
with special requirements.
The FLUKA physical models are described in several journal and conference
papers; on the technical side the stress has been put on four apparently
conflicting requirements, namely efficiency, accuracy, consistency and
flexibility.
Efficiency has been achieved by having a frequent recourse to table look-up
sampling and a systematic use of double precision has had a great impact on
overall accuracy: both qualities have benefited from a careful choice of the
algorithms adopted. To attain a reasonable flexibility while minimising the
need for user-written code, the program has been provided with a large number
of options available to the user, and has been completely restructured
introducing dynamical dimensioning.
Another feature of FLUKA, probably not found in any other Monte Carlo
program, is its double capability to be used in a biased mode as well as a
fully analogue code. That means that while it can be used to predict
fluctuations, signal coincidences and other correlated events, a wide choice
of statistical techniques are also available to investigate punchthrough or
other rare events in connection with attenuations by many orders of
magnitude.
1********************************************************************************
1} A quick look at FLUKA's physics, structure and capabilities
********************************************************************************
Only a very short summary will be given here of the capabilities and the
limitations of FLUKA, since this is meant to be mainly a practical
guide. More detailed descriptions of the physical models, algorithms and
techniques will be found in cited references and hopefully in a future more
comprehensive Reference Manual.
1.1} Physics
------------
1.1.1} Hadron inelastic nuclear interactions
The FLUKA hadron-nucleon interaction models are based on resonance
production and decay below a few GeV, and on the Dual Parton model
above. Two models are used also in hadron-nucleus interactions. At momenta
below 3--5 GeV/c the PEANUT package includes a very detailed Generalised
Intra-Nuclear Cascade (GINC) and a preequilibrium stage, while at high
energies the Gribov-Glauber multiple collision mechanism is included in a
less refined GINC. Both modules are followed by equilibrium processes:
evaporation, fission, Fermi break-up, gamma deexcitation. FLUKA can also
simulate photonuclear interactions (described by Vector Meson Dominance,
Delta Resonance, Quasi-Deuteron and Giant Dipole Resonance), electronuclear
interactions, photomuon production and electromagnetic dissociation.
A schematic outline is presented below:
* Inelastic cross sections for hadron-hadron interactions are represented by
parameterised fits based on available experimental data [PDG].
* For hadron-nucleus interactions, a mixture of tabulated data and
parameterised fits is used [Bar72, Moh83, She91, Pra98, Pra98a].
* Elastic and charge exchange reactions are described by phase-shift
analyses and eikonal approximation.
* Inelastic hadron-hadron interactions are simulated by different event
generators, depending on energy:
- Momentum < 20 TeV and > 5 GeV/c:
Dual Parton Model (DPM) [Cap94]. The version used in FLUKA has been
derived by A. Ferrari and P.R. Sala [Fer94, Fas95, Fer95, Fer96b] from
the original version by J. Ranft and collaborators [Ran83, Ran83a]. A
description of modifications and improvements can be found in [Fer96b,
Col00]
- Momentum from threshold to 5 GeV/c:
Resonance production and decay model [Fer96b] (Improved version of the
H"anssgen et al. model [Han79, Han80, Han84, Han84a, Han84b, Han86,
Han86a])
* Inelastic hadron-nucleus interactions are simulated by different event
generators depending on energy and projectile:
- Momentum < 20 TeV and > 5 GeV/c: Glauber-Gribov multiple scattering
followed by Generalized Intranuclear Cascade (GINC)
- Below 5 GeV/c for nucleons, anti-nucleons and pions; below 1.5 GeV
kinetic for kaons:
Preequilibrium-cascade model PEANUT (Ferrari-Sala) [Fer94, Fas95] - In
between PEANUT and DPM for kaons: K. H"anssgen et al. GINC modified to
take into account correlations among cascade particles and more refined
nuclear effects (Ferrari-Sala).
* All three models include evaporation and gamma deexcitation of the
residual nucleus [Fer96, Fer96a]. Light residual nuclei are not evaporated
but fragmented into a maximum of 6 bodies, according to a Fermi break-up
model.
* Treatment of antiparticle capture: the basic antinucleon-nucleon process is
modeled through the production and decay of two or more intermediate states
whose branchings are adjusted to reproduce experimental pion/kaon/resonances
multiplicities.
In nuclei, all nuclear effects (density, Fermi motion, Pauli-blocking,
re-interaction of secondaries...) are treated by the PEANUT model as for all
other hadronic interactions. Annihilations occur at shallow depths inside
the nucleus. The depth is chosen as a function of the atomic number,
the interaction being more and more peripheral as the nuclear mass
increases.
In case of compounds, the relative annihilation probabilities are
calculated following [Pon73] for hydrogenated compounds, and [Dan75] for
other compounds.
1.1.2} Elastic Scattering
* Parameterised nucleon-nucleon cross sections.
* Tabulated nucleon-nucleus cross sections [Pra98, Pra98a].
* Tabulated phase shift data for pion-proton and phase-shift analysis for
kaon-proton scattering.
* Detailed kinematics of elastic scattering on hydrogen nuclei and transport
of proton recoils (Ferrari-Sala)
1.1.3} Nucleus-Nucleus interactions
Nuclear interactions generated by ions are treated through interfaces to
external event generators.
* Above 5 GeV per nucleon: DPMJET-II or DPMJET-III [Roe01], with special
initialisation procedure.
* Between 0.125 and 5 GeV per nucleon: modified RQMD (Relativistic Quantum
Molecular Dynamics) [Sor89, Sor89a, Sor95]
* Below 0.125 GeV per nucleon: BME (Boltzmann Master Equation) [Cav96,
Cav01, Cer06]
1.1.4} Transport of charged hadrons and muons
An original treatment of multiple Coulomb scattering and of ionisation
fluctuations allows the code to handle accurately some challenging problems
such as electron backscattering and energy deposition in thin layers even in
the few keV energy range.
1.1.5} Energy loss
* Bethe-Bloch theory [Bet30, Bet32, Bet34, Blo33, Blo33a]. Barkas Z^3 effect
[Bar56, Bar63] and Bloch Z^4 effect [Blo33]. Mott correction to the
Rutherford scattering cross section [Mot29, Ins09]. Improved ionisation
potential, handling of porous substances, ranging out particles below
energy cutoff [Fas97].
* Optional delta-ray production and transport with account for spin effects
and ionisation fluctuations. The present version includes a special
treatment [Fas97a] which combines delta-ray production with properly
restricted ionisation fluctuations and includes corrections for particle
spin and electrons/positrons and "distant collision" straggling
corrections (similar to Blunck-Leisegang ones). Original approach making
use of very general statistical properties of the problem. Within this
framework "practical" solutions have been implemented into the code with
very satisfactory results. This approach exploits the properties of the
cumulants of distributions, and in particular of the cumulants of the
distribution of Poisson distributed variables. * Shell and other
low-energy corrections derived from Ziegler [Zie77].
* Ionisation potentials and density effect parameters according to
Sternheimer, Berger and Seltzer [Ste84].
* Non-ionising energy losses (NIEL) [Sum95, Ins09]
* Displacements Per Atom (DPAs) [Fas10]
* Special transport algorithm, based on Moli\`ere's theory of multiple
Coulomb scattering improved by Bethe [Mol48, Mol55, Bet53], with account
of several correlations:
- between lateral and longitudinal displacement and the deflection angle
- between projected angles
- between projected step length and total deflection
* Accurate treatment of boundaries and curved trajectories in magnetic and
electric fields
* Automatic control of the step
* Path length correction
* Spin-relativistic effects at the level of the second Born approximation
[Fer91a]
* Nuclear size effects (scattering suppression) on option (simple nuclear
charge form factors are implemented, more sophisticated ones can be
supplied by the user)
* Fano correction for heavy charged particle multiple scattering.
* Single scattering: algorithm based on the Rutherford formula with a
screening factor in the form used by Moli\`ere (for consistency with the
multiple scattering model used by FLUKA), integrated analytically without
any approximation. Nuclear form factors and spin-relativistic corrections
at the first or second Born approximation level accounted for by a
rejection technique.
* Correction for cross section variation with energy over the step.
* Bremsstrahlung and electron pair production at high energy by heavy
charged particles, treated as a continuous energy loss and deposition or
as discrete processes depending on user choice
* Muon photonuclear interactions, with or without transport of the produced
secondaries.
1.1.6} Low-energy neutrons
For neutrons with energy lower than 20 MeV, FLUKA uses its own neutron cross
section library (P5 Legendre angular expansion, 260 neutron energy groups),
containing more than 250 different materials, selected for their interest in
physics, dosimetry and accelerator engineering and derived from the most
recently evaluated data.
* multigroup P5 cross sections with 260 groups [Cuc91]
* Gamma-ray generation and different temperatures available.
* Doppler broadening for temperatures above 0 K.
Transport:
* Standard multigroup transport with photon and fission neutron generation.
* Detailed kinematics of elastic scattering on hydrogen nuclei.
* Transport of proton recoils and protons from 14-N(n,p)14-C reaction.
* Capture photons are generated according to the multigroup treatment,
but transported with the more accurate EMF package which performs
continuous transport in energy and allows for secondary electron
generation.
For nuclei other than hydrogen, kerma factors are used to calculate energy
deposition (including from low-energy fission).
For details about the available materials, group structure etc., see 10}
1.1.7} Electrons
* FLUKA uses an original transport algorithm for charged particles [Fer91a],
including complete multiple Coulomb scattering treatment giving the
correct lateral displacement even near a boundary (see hadron and muon
transport above).
* The variations with energy of the discrete event cross sections and of the
continuous energy loss in each transport step are taken into account
exactly.
* Differences between positrons and electrons are taken into account
concerning both stopping power and bremsstrahlung [Kim86].
* The bremsstrahlung differential cross sections of Seltzer and Berger
[Sel85, Sel86] have been extended to include the finite value at "tip"
energy, and the angular distribution of bremsstrahlung photons is sampled
accurately.
* The Landau-Pomeranchuk-Migdal suppression effect [Lan53, Lan53a, Mig56,
Mig57] and the Ter-Mikaelyan polarisation effect in the soft part of the
bremsstrahlung spectrum [Ter54] are also implemented.
* Electrohadron production
* Positron annihilation in flight and at rest.
* Delta-ray production via Bhabha and M\oller scattering.
Note: the present lowest transport limit for electrons is 1 keV. Although in
high-Z materials the Moli\`ere multiple scattering model becomes unreliable
below 20-30 keV, a single-scattering option is available which allows to
obtain satisfactory results in any material also in this low energy range.
The minimum recommended energy for PRIMARY electrons is about 50 to 100 keV
for low-Z materials and 100-200 keV for heavy materials, unless the single
scattering algorithm is used. Single scattering transport allows to overcome
most of the limitations at low energy for the heaviest materials at the
price of some increase in CPU time.
1.1.8} Photons
* Pair production with actual angular distribution of electrons and
positrons.
* Landau-Pomeranchuk-Migdal pair production suppression effect [Lan53,
Lan53a, Mig56, Mig57]
* Compton effect with Doppler broadening using a fit of the Compton profiles
[Rib75, Big75], and account for atomic bonds through use of inelastic
Hartree-Fock form factors.
* Photoelectric effect with actual photoelectron angular distribution
according to the fully relativistic theory of Sauter [Sau31]. Interactions
sampled separately for each component element and for each edge. The edge
fine structure is taken into account. Parameterisations/tabulations for
photoelectric cross sections including all known edges up to Z=100 and
down to a few eV. Optional emission of fluorescence photons and
approximate treatment of Auger electrons for all K and most L lines.
* Rayleigh effect.
* Photon polarisation taken into account for Compton, Rayleigh and
Photoelectric effects.
* Photohadron production:
- Vector Meson Dominance Model (Ranft [Ran87b]), modified and improved
(Ferrari-Sala) using PEANUT below 770 MeV [Fas95].
- Quasideuteron interactions
- Giant Dipole Resonance
Note: the present lowest transport limit for photons is 100 eV. However,
fluorescence emission may be underestimated at energies lower than the
K-edge in high-Z materials, because of lack of Coster-Kronig effect. The
minimum recommended energy for PRIMARY photons is about 1 keV.
1.1.9} Optical photons
* Generation and transport (on user's request) of Cherenkov, Scintillation
and Transition Radiation.
* Transport of light of given wavelength in materials with user-defined
optical properties.
1.1.10} Neutrinos
* Electron and muon (anti)neutrinos are produced and tracked on option,
without interactions.
* Neutrino interactions however are implemented, but independently from
tracking.
1.2} Geometry
-------------
A part of the code where efficiency, accuracy, consistency and flexibility
have combined giving very effective results is the FLUKA geometry. Derived
from the Combinatorial Geometry package, it has been entirely rewritten. A
completely new, fast tracking strategy has been developed, with special
attention to charged particle transport, especially in magnetic fields. New
bodies have been introduced, resulting in increased rounding accuracy, speed
and even easier input preparation.
* Combinatorial Geometry (CG) from MORSE [Emm75], with additional bodies
(infinite circular and elliptical cylinder parallel to X,Y,Z axis, generic
plane, planes perpendicular to the axes, generic quadrics).
* Possibility to use body and region names instead of numbers.
* Possibility of using body combinations inside nested parentheses.
* Geometry directives for body expansions and roto-translation
transformations.
* Distance to nearest boundary taken into account for improved performance.
* Accurate treatment of boundary crossing with multiple scattering and
magnetic or electric fields.
* The maximum number of regions (without recompiling the code) is 10000.
* The tracking strategy has been substantially changed with respect to the
original CG package. Speed has been improved and interplay with charged
particle transport (multiple scattering, magnetic and electric field
transport) has been properly set.
* A limited repetition capability (lattice capability) is available. This
allows to avoid describing repetitive structures in all details. Only one
single module has to be described and then can be repeated as many times
as needed. This repetition does not occur at input stage but is hard-wired
into the geometry package, namely repeated regions are not set up in
memory, but the given symmetry is exploited at tracking time using the
minimum amount of bodies/regions required. This allows in principle to
describe geometries with even tens of thousands regions (e.g. spaghetti
calorimeters) with a reasonable number of region and body definitions.
* Voxel geometry is available on option, completely integrated into CG.
Special options:
* Geometry debugger.
* Plotting of selected sections of the geometry, based on the Ispra PLOTGEOM
program.
* Pseudoparticle RAY to scan the geometry in a given direction.
1.3} Transport
--------------
* Condensed history tracking for charged particles, with single scattering
option.
* Time cutoff.
* Legendre angular expansion for low-energy neutron scattering.
* Transport of charged particles in magnetic and electric fields.
Transport limits:
Secondary particles Primary particles
charged hadrons 1 keV-20 TeV (*) 100 keV-20 TeV (*) (**)
neutrons thermal-20 TeV (*) thermal-20 TeV (*)
antineutrons 1 keV-20 TeV (*) 10 MeV-20 TeV (*)
muons 1 keV-1000 TeV 100 keV-1000 TeV (**)
electrons 1 keV-1000 TeV 70 keV-1000 TeV (low-Z materials) (**)
150 keV-1000 TeV (hi-Z materials) (**)
photons 100 eV-10000 TeV 1 keV-10000 TeV
heavy ions <10000 TeV/n <10000 TeV/n
(*) upper limit 10 PeV with the DPMJET interface
(**) lower limit 10 keV in single scattering mode
1.4} Biasing
------------
* Leading particle biasing for electrons and photons: region dependent,
below user-defined energy threshold and for selected physical effects.
* Russian Roulette and splitting at boundary crossing based on region
relative importance.
* Region-dependent multiplicity tuning in high energy nuclear interactions.
* Region-dependent biased downscattering and non-analogue absorption of
low-energy neutrons.
* Biased decay length for increased daughter production.
* Biased inelastic nuclear interaction length.
* Biased interaction lengths for electron and photon electromagnetic
interactions.
* Biased angular distribution of decay secondary particles.
* Region-dependent weight window in three energy ranges (and energy group
dependent for low energy neutrons).
* Bias setting according to a user-defined logics.
* User-defined neutrino direction biasing.
* User-defined step by step importance biasing.
1.5} Optimisation
-----------------
* Optimisation of the step length, user-defined or automatic, by material
and/or by region.
1.6} Scoring
------------
* Star density by producing particle and region.
* Energy density by region, total or from electrons/photons only.
* Star, energy and momentum transfer density and specific activity in a
geometry-independent binning structure (Cartesian or cylindrical),
averaged over the run or event by event.
* Energy deposition weighted by a quenching factor (Birks law).
* Step size independent of bin size.
* Time window.
* Coincidences and anti-coincidences.
* Fluence and current scoring as a function of energy and angle, via
boundary-crossing, collision and track-length estimators coincident with
regions or region boundaries.
* Dose Equivalent via boundary-crossing, collision and track-length
estimators coincident with regions or region boundaries, convoluted with
conversion coefficients or obtained multiplying doses by a LET-dependent
quality factor.
* Track-length fluence or Dose Equivalent in a binning structure (Cartesian
or cylindrical) independent of geometry.
* Particle yield from a target or differential cross section with respect to
several different kinematic variables.
* Residual nuclei.
* Fission density.
* Momentum transfer density.
* Neutron balance.
* No limit to the number of detectors and binnings within the total memory
available (but a maximum number must be fixed at compilation time).
* Energy deposition can be scored on option disregarding the particle
weights (useful for studying computer performance, etc.)
* All quantities from radioactive decay of residual nuclei can be scored
according to user-defined irradiation and cooling time profiles.
1.7} Code structure, technical aspects
--------------------------------------
* The whole program, including the numerical constants, is coded in double
precision (at least the versions for 32-bit word machines). The only
exceptions are the low-energy neutron cross sections, which are stored in
single precision to save space.
* Consistent use of the latest recommended set of the physical constant
values [PDG].
* Dynamic memory allocation is implemented as far as possible.
* Extensive use of INCLUDE statements and of constant parameterisation.
* 64-bit random number generator [Mar04].
1.8} MAIN DIFFERENCES BETWEEN FLUKA AND EARLIER CODES WITH SAME NAME
--------------------------------------------------------------------
The history of FLUKA, spanning more than 40 years, is narrated in detail in
Chap. 18}. It is possible to distinguish three different generation of
"FLUKA" codes along the years, which can be roughly identified as the FLUKA
of the '70s (main authors J. Ranft and J. Routti), the FLUKA of the '80s
(P. Aarnio, A. Fasso`, H.-J. M"ohring, J. Ranft, G.R. Stevenson), and the
FLUKA of today (A. Fasso`, A. Ferrari, J. Ranft and P.R. Sala).
These codes stem from the same root and of course every new "generation"
originated from the previous one. However, each new "generation" represented
not only an improvement of the existing program, but rather a quantum jump in
the code physics, design and goals. The same name "FLUKA" has been preserved
as a reminder of this historical development - mainly as a homage to J. Ranft
who has been involved in it as an author and mentor from the beginning until
the present days - but the present code is completely different from the
versions which were released before 1990, and in particular from the last one
of the second generation, FLUKA87 [Aar86, Aar87].
Major changes and additions have affected the physical models used, the code
structure, the tracking strategy and scoring. Important additions, such as a
wider range of biasing possibilities and some specialised tools for
calorimeter simulation, have extended the field of its possible applications.
An exhaustive description of all these changes and new features along the
years is reported in Chap. 18}. However, the best gauge of the program
evolution is probably the widening of the application fields, and the boost
of its recognition and diffusion all over the world.
1.9} Applications
------------------
While FLUKA86-87 was essentially a specialised program to calculate shielding
of high energy proton accelerators, the present version can be regarded as a
general purpose tool for an extended range of applications. In addition to
traditional target design and shielding, applications are now spanning from
calorimetry to prediction of activation, radiation damage, isotope
transmutation, dosimetry and detector studies.
Prediction of radiation damage has always been a traditional field of
application of FLUKA, restricted however in earlier versions to hadron damage
to accelerator components. The new capability to deal with the low-energy
neutron component of the cascade has extended the field of interest to
include electronics and other sensitive detector parts. In addition,
radiation damage calculations and shielding design are not limited to proton
accelerators any longer, but include electron accelerators of any energy,
photon factories, and any kind of radiation source, be it artificial or
natural.
The present version of FLUKA has been used successfully in such diverse
domains as background studies for underground detectors, cosmic ray physics,
shielding of synchrotron radiation hutches, calculation of dose received by
aircraft crews, evaluation of organ dose in a phantom due to external
radiation, detector design for radiation protection as well as for high
energy physics, electron, proton and heavy ion radiotherapy, nuclear
transmutation, neutrino physics, shielding of free-electron lasers,
calculation of tritium production at electron accelerators, energy
amplifiers, maze design for medical accelerators, etc.
1********************************************************************************
2} A FLUKA beginner's guide
********************************************************************************
2.1} Introduction
-----------------
This Chapter is intended to provide a minimal set of instructions to install
and run FLUKA for a beginner user, going through the different steps required
to run a simple example. References to the relevant chapters of the manual
are given to help the user in finding more detailed information on the
different topics. After describing the installation procedure, instructions
are given on how to build the input file for a simple case. Instructions for
running and accessing the results are also reported. As a further step, the
user is addressed to Chapter 13} to learn how to tailor FLUKA to specific
needs by means of user routines.
2.2} Installing FLUKA
---------------------
A full description of the installation procedure is given in Chapter 3}. The
FLUKA packages are distributed as tar and RPM files which can be downloaded
from the FLUKA Website http://www.fluka.org or other authorised mirror site.
2.3} Building a FLUKA input
---------------------------
2.3.1} Generalities about FLUKA input
-------------------------------------
FLUKA reads user input from an ASCII "standard input" file with extension
.inp. The general characteristics and rules of FLUKA input are described in
Chapter 6}. The input consists of a variable number of "commands" (called
also "options"), each consisting of one or more "lines" (called also "cards"
for historical reasons).
Apart from FLUKA commands, the input file may contain also the description of
the geometry of the simulated set-up. Also this description is provided by
means of specific geometry "command cards" in a special format described in
Chapter 6}.
The geometry description can, on request, be kept in a separate ASCII file:
this feature is especially useful when the same geometry is used in several
different inputs, not only to save space but because modifications can be
made in one single place.
The typical structure of a FLUKA input file is the following:
* Titles and comments for documentation purposes (optional, but recommended)
* Description of the problem geometry (solid bodies and surfaces, combined to
partition space into regions) (mandatory)
* Definition of the materials (mandatory unless pre-defined materials are
used)
* Material assignments (correspondence material-region, mandatory)
* Definition of the particle source (mandatory)
* Definition of the requested "detectors". Each of these is a phase space
domain (region of space, particle direction and energy) where the user
wants to calculate the expectation value of a physical quantity such as
dose, fluence, etc. Various kinds of detectors are available, corresponding
to different quantities and to different algorithms used to estimate them
("estimators"). Detectors are optional, but one at least is expected, at
least in the production phase
* Definition of biasing schemes (optional)
* Definition of problem settings such as energy cutoffs, step size, physical
effects not simulated by default, particles not to be transported, etc.
(optional)
* Initialisation of the random number sequence (mandatory if an estimation of
the statistical error is desired)
* Starting signal and number of requested histories (mandatory)
In addition, special commands are available in FLUKA for more advanced
problems involving magnetic fields, time-dependent calculations, writing of
history files (so-called "collision tapes"), transport of optical photons,
event-by-event scoring, calling user-written routines, etc. These options are
expected to be requested only by users having some previous experience with
the more common commands: therefore they will be mostly ignored in this
beginner's guide.
Let's first recall the general structure of the FLUKA command lines (cards).
The geometry commands will be reviewed later. Each card contains:
* one keyword,
* six floating point values (called WHATs),
* one character string (called SDUM)
Some WHATs represent numerical quantities (e.g. energy, coordinates), while
others, converted to integers, are indices corresponding to a material, a
type of particle, a region etc. In this latter case, it is possible to
replace the number by the corresponding name (a character string). Not
necessarily all WHATs and SDUMs are used. In some cases, a command line can
be followed by a line of text (for instance a filename path or a title). Any
line having an asterisk (*) in the first position is treated as a
comment. All lines (commands, text strings and comments) are echoed on the
standard output (the file with extension .out). In case of problems, it is a
good idea to check how every line has been printed in the standard output.
Often, output reveals typing or format errors by showing how the program has
misinterpreted them.
In addition to the simple echo, an "interpreted" feedback to all commands is
provided in the next section of the standard output. Checking this part of
the output is also very useful, because it helps making sure that the user's
intentions have been expressed correctly and understood by the code. See
Chapter 9} on FLUKA output for a detailed description.
If a line contains an exclamation mark (!) all following characters are
replaced by blanks. This feature can be used for short in-line comments which
will not be echoed in output.
The order of input commands is generally free, with only a few exceptions
reported in Chapter 7}. Therefore, the order suggested in the following
should not be considered as mandatory, but only one of the possible ways to
write FLUKA input.
2.3.2} Input alignment
----------------------
Be careful to properly align keywords and numbers. Format is not free, unless
a command is issued at the beginning of input: see option GLOBAL or FREE.
Even in the free format for the input file, the part of the input describing
the geometry can still be written in fixed format (which is different from
the general FLUKA input format, see Chap. 6}). There is the possibility of
having free format also for the geometry part: this can also be activated
using the GLOBAL command.
In fixed format, in order to ensure proper alignment, a comment line showing
a scale can be used anywhere in the input file, for instance:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
In numerical fields, blanks are treated as zero. Therefore, numbers written
with a decimal period and without an exponent (e.g. 1.2345) can be placed
anywhere inside their respective format fields, For instance, the following
two input lines are equally acceptable:
BEAM 200. 0.2 1.5 1.2 0.7 1.0 PROTON
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 200. 0.2 1.5 1.2 0.7 1.0PROTON
If a number is written in exponential notation (e.g. 2.3E5) or in integer form
(without decimal point), it must be aligned to the right of the field.
Depending on the platform and the compiler, sometimes the number is correctly
interpreted even if the alignment rule is not respected. However THIS IS NOT
GUARANTEED AND THE RIGHT ALIGNMENT RULE SHOULD ALWAYS BE FOLLOWED.
For instance in:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 2.E2 0.2 1.5 1.2 0.7 1. PROTON
the first value might be interpreted as 2.E200. Another case is the
following:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 200. 0.2 1.5 1.2 0.7 1 PROTON
here the last numerical field would be interpreted as 1000000000. To avoid
mistakes due to this kind of input errors, the present FLUKA versions now
recognise such potential problems and the program is forced to stop. At the
same time a message is printed on the standard output file, as shown here for
the above example:
*** The 6th field 1 of the following input card ***
BEAM 200. 0.2 1.5 1.2 0.7 1 PROTON
*** does not contain a valid formatted fortran real number!!! ***
*** It is ambiguous and it could be read differently on different compilers ***
*** depending how strictly the blank=0 formatted input rule is implemented ***
Keywords (character strings such as BEAM and PROTON) must be aligned to the
left of their field and must be in upper case. An exception is the
continuation character & used in some commands, which can be placed anywhere
within its 10-characters field.
Non-numerical values of WHATs ("names") can be aligned anywhere within the
corresponding fixed-format fields. Sometimes a special option requires a
region or a particle number to be entered with a negative sign: in this case
the equivalent name must also be entered preceded by a minus sign.
2.3.3} A simple example
-----------------------
Let us now consider a simple starting application. We want to calculate the
charged pion fluence produced by a monochromatic proton beam of momentum 50
GeV/c impinging on a 5 cm thick beryllium target of simple shape: a small
parallelepiped (20 cm x 20 cm x 5 cm). A further simplification will be made
for the purpose of this example, neglecting all the surrounding environment
and substituting it with ideal vacuum.
We will guide the reader through the different parts of a possible input file
suited for this application. The information which follows is meant to serve
as a guide, but does not cover all the important points. It is recommended
that for each option card selected, the user read carefully the relevant
manual entry, and especially the explanatory notes.
2.3.4} The title
------------------
Typically, an input file begins with a TITLE card followed by one line of
text describing the problem, or identifying that particular run, or providing
some kind of generic information. In our case, for example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
TITLE
Charged pion fluence inside and around a proton-irradiated Be target
Further information can be provided by comment cards, but the title, because
it is printed at the top of the standard output and of each estimator output,
is a useful reminder of what the corresponding file is about. In addition,
the title is printed in all separate output files (error file, estimator
files etc.) together with the date and time of the FLUKA run, allowing to
keep track of their origin.
Commands such as GLOBAL and DEFAULTS, if needed, must immediately
follow. Since this is intended as a beginner's guide, these can be ignored
here (for most common problems the defaults provided are sufficient). Let us
recall that without specifying a DEFAULTS value, the NEW-DEFAults set of
FLUKA parameters is loaded.
2.3.5} Definition of the primary particles
--------------------------------------------
All "events" or "histories" are initiated by primary particles, which in the
simplest case are monoenergetic, monodirectional and start from a single
point in space (pencil beam). The card BEAM defines the particle energy (or
momentum) while the card BEAMPOS controls their starting position and
direction. These two commands can be used also to define particle beams
having a simple angular or momentum distribution (Gaussian or rectangular),
or a simple transverse profile (Gaussian, rectangular or annular), or a
simple space distribution of starting points (spherical, cartesian or
cylindrical shell). Isotropic or semi-isotropic angular emission can be
described as a special case of an angular rectangular distribution.
For particle sources with more complex distributions in energy, space and
direction, the user must write, compile and link a special routine (SOURCE),
following the instructions given in Chap. 13}, and input a card SOURCE.
A summary of the input data concerning primary particles is printed in the
standard output under the title "Beam properties".
The beam definition for our example can be the following (monochromatic,
monodirectional proton beam of momentum 50 GeV/c):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 50.E+00 PROTON
In our example, the beam starting point is given by:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAMPOS 0.0 0.0 -50.0
In the cartesian geometry used by FLUKA, the previous card means that the
beam is injected at x, y, z coordinates: 0, 0, -50 cm and is directed along
the positive z axis. Of course, the choice of the point of injection, the
direction, etc., must be coherent with the geometrical description of the
set-up, as discussed in the following section.
2.3.6} The geometry
---------------------
The input for the Combinatorial Geometry (bodies, regions and optional region
volumes) must be immediately preceded by a GEOBEGIN card and immediately
followed by a GEOEND card. These two cards follow the normal FLUKA format. It
is recalled that the format for the geometry has its own special rules,
described in Chap. 8}.
Comment lines in the geometry input have an asterisk in first position as in
the rest of FLUKA input (but on-line comments are not allowed). Body
numerical data can be written in two different formats, a "short" one (field
length 10) and a "long" one (field length 22). The latter one is to be
preferred when higher precision is needed, for instance when using bodies
such as truncated cones, cylinders or planes not aligned with axes. It must
be realised that using too few decimals can cause geometry errors when bodies
are combined into regions (portions of space not defined or doubly defined).
The whole geometry must be surrounded by a region of "blackhole" limited by a
closed body (generally an RPP parallelepiped). It is often a good idea to
make this body much larger than the minimum required size: this makes easier
to introduce possible future extensions. In some cases, as in our basic
example, it is also useful to surround the actual geometry by a region of
ideal vacuum, and to have the blackhole region surrounding the vacuum. This
can be useful, for instance, in order to start the trajectory of the primary
particles outside the physical geometry (a particle may not be started on a
boundary).
Both the body input section and the region input section must be ended with
an END card. Optionally, region volumes can be input between the region END
card and the GEOEND card (this option can be requested by setting a special
flag in the Geometry title card, see Chap. 8}). The only effect of specifying
region volumes is to normalise per cm3 the quantities calculated via the
SCORE option (see below): for other estimators requiring volume normalisation
the volume is input as part of the detector definition (USRTRACK, USRCOLL,
USRYIELD), or is calculated directly by the program (USRBIN). The GEOEND
card indicates the end of the geometry description, but can also be used to
invoke the geometry debugger.
The geometry output is an expanded echo of the corresponding input,
containing information also on memory allocation and on the structure of
composite regions made of several sub-regions by means of the OR operator.
A possible realisation of the geometry set up for our basic example can be
seen in the Figure below:
z ^ -----------------------------------
| / ______________________ /|
| / / / / |
| ----------------------------------- |
| | / vacuum (region 2) / | | |
| | ------------------------ | | |
| | | ___________ | | | |
| | | / Be /| | | | |
| | | ------------ | | | | |
| | | | (reg. 4) |/| | | | |
| | | ----------- | | | | |
| | | | (reg. 3) |/ | | | |
+-- | | ------------ | | | |-------->
/ | | ^ | / | | y
/ | | | Beam |/ | |
/ | ------------------------ | /
/ | Blackhole (region 1) |/
/ -----------------------------------
x
Only four bodies are used here: an RPP body (Rectangular Parallelepiped, body
no. 3) to define a volume which will be the Be target region, inside another
larger RPP body (no. 2), which will be filled with ideal vacuum and in turn
is contained inside another larger RPP body (no. 1), to define the blackhole
region. The fourth body, an XYP half-space (defined by a plane perpendicular
to the z axis), will be used to divide the target into 2 different regions:
the upstream half will be defined as the portion of body 3 contained inside
the half-space, and the downstream half as the portion outside it. Therefore,
region "3" (the upstream half of the target) is the part of body no. 3 which
is also inside body 4, while region "4" (downstream half of the target) is
the part of body no. 3 which is not inside body 4. Region "2" (the vacuum
around the target) is defined as the inside of body no. 2 from which body
no. 3 is subtracted. Region "1" is simply the interior of body no. 1 from
which body no. 2 is subtracted.
Note that bodies and regions can be identified by numbers, as described
above, or with names (alphanumeric strings). The latter option is
recommended, since it makes the preparation of the geometry much easier,
especially if free format is also chosen. Here below we will show both
possibilities.
The beam starting point has been chosen so that it is in the vacuum, outside
the target region. The geometry part of the input file can then be written
as:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GEOBEGIN COMBINAT
0 0 A simple Be target inside vacuum
RPP 1-5000000.0+5000000.0-5000000.0+5000000.0-5000000.0+5000000.0
RPP 2-1000000.0+1000000.0-1000000.0+1000000.0 -100.0+1000000.0
RPP 3 -10.0 +10.0 -10.0 +10.0 0.0 +5.0
* plane to separate the upstream and downstream part of the target
XYP 4 2.5
END
* black hole
BH1 5 +1 -2
* vacuum around
VA2 5 +2 -3
* Be target 1st half
BE3 5 +3 +4
* Be target 2nd half
BE4 5 +3 -4
END
GEOEND
The same geometry can be described in name-based free format as follows:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GEOBEGIN COMBNAME
0 0 A simple Be target inside vacuum
RPP blakhole -5000000.0 +5000000.0 -5000000.0 +5000000.0 -5000000.0 +5000000.0
RPP vacumbox -1000000.0 +1000000.0 -1000000.0 +1000000.0 -100.0 +1000000.0
RPP betarget -10.0 +10.0 -10.0 +10.0 0.0 +5.0
* plane to separate the upstream and downstream part of the target
XYP cutplane 2.5
END
* black hole
Blckhole 5 +blakhole -vacumbox
* vacuum around
Vacarund 5 +vacumbox -betarget
* Be target 1st half
UpstrBe 5 +betarget +cutplane
* Be target 2nd half
DwnstrBe 5 +betarget -cutplane
END
GEOEND
2.3.7} Materials
------------------
Each geometry region is supposed to be filled with a homogeneous material, or
with vacuum, or with "blackhole". The latter is a fictitious material used to
terminate particle trajectories: any particle is discarded when reaching a
blackhole boundary. Materials can be simple elements or compounds, where an
element can have either natural composition or consist of a single nuclide,
and compound indicates a chemical compound or a mixture or an alloy (or an
isotopic mixture) of known composition.
An element can be either predefined (see list in 5}) or defined by a MATERIAL
card giving its atomic number, atomic weight, density, name and a material
identification number > 2. The number of a non-pre-defined material can be
chosen by the user, with the restriction that all lower numbers must also be
defined (but not necessarily used). However, in a name-based input, it is
convenient to leave the number blank: in this case the user does not need to
know the number, which is assigned automatically by the code and will be used
only internally.
Number 1 is reserved for blackhole and 2 for ideal vacuum. There are 25
pre-defined materials; but each of the numbers from 3 to 25 can be redefined
freely, overriding the default definition. However, if the input is
explicitly number-based only (via command GLOBAL), a pre-defined material can
only be redefined using the same name by assigning to it a number equal to
the original one. If the input is name-based, it is better to leave the
number blank.
Materials can also be defined with higher numbers, provided no gaps are left
in the numbering sequence. For instance a material cannot be defined to have
number 28 unless also 26 and 27 have been defined. Again, assigning
explicitly a number is not necessary if the input is fully name-based.
A compound is defined by a MATERIAL card plus as many COMPOUND cards as
needed to describe its composition. The MATERIAL card used to define a
compound carries only the compound name, density and, if input is explicitly
number-based only, material number (atomic number and atomic weight having no
meaning in this case). Some special pre-defined compounds are available: for
them the stopping power is not calculated by a formula but is determined
using the parameters recommended by ICRU [ICRU84]. Reference to these
pre-defined compounds is normally by name and no MATERIAL and COMPOUND cards
are needed: if the input is explicitly number-based only (via command
GLOBAL), a number using a MATERIAL card needs to be assigned to them, of
course leaving no gaps in the numbering sequence.
Materials predefined or defined in the standard input are referred to as
"FLUKA materials", to distinguish them from materials available in the
low-energy neutron cross section library (called "low-energy cross section
materials").
When transport of low-energy neutrons (E < 20 MeV) is requested (explicitly
or by the chosen defaults), a correspondence is needed between each elemental
(i.e. not compound) "FLUKA material" and one of the "low-energy cross section
materials" available in the FLUKA low-energy neutron library. The default
correspondence is set by the name and if more than one material with that
name exist in the neutron library, the first in the list with that name (see
Chap. 10}) is assumed by default. The default can be changed using option
LOW-MAT.
In the case of our example, only Beryllium is necessary, apart from blackhole
and vacuum. In principle, since Beryllium is one of the pre-defined FLUKA
materials, this part could even be omitted. However, for pedagogical reasons
the following card is proposed, where index 5 is assigned to the target
material:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MATERIAL 4.0 0.0 1.848 5.0 BERYLLIU
Notice that the chosen name is BERYLLIU and not BERYLLIUM, in order to match
the name in the list of "low-energy cross section materials" for low energy
neutrons (see Chap. 10}), where material names have a maximum length of 8
characters.
The standard output concerning materials is very extended. First a list of
multiple scattering parameters (printed by subroutine MULMIX) is reported for
each material requested. This is mostly of scarce interest for the normal
user, except for a table giving for each requested material the proportion of
components, both by number of atoms (normalised to 1) and by weight
(normalised to material density). The same information is repeated later on
in another table entitled "Material compositions". If low-energy neutron
transport has been requested (explicitly or by a chosen default), the
following section reports the relevant material information: in particular, a
table entitled "Fluka to low en. xsec material correspondence" specifies
which material in the neutron cross section library has been mapped to each
input material. Note that a much more detailed cross section information can
be obtained by setting a printing flag (WHAT(4)) in the LOW-NEUT command.
The Table "Material compositions" contains information about the requested
materials, those pre-defined by default and the elements used to define
compounds. In addition to effective atomic number and weight, density and
composition, the table shows the value of some typical quantities: inelastic
and elastic scattering length for the beam particles (not valid for electron
and photon beams), radiation length and inelastic scattering length for 20
MeV neutrons.
The next table contains material data related to stopping power (average
excitation energy, density effect parameters, and pressure in the case of
gases) plus information about the implementation of various physical effects
and the corresponding thresholds and tabulations. The last material table is
printed just before the beginning of the history calculations, and concerns
the "Correspondence of regions and EMF-FLUKA material numbers and names".
2.3.8} Assigning materials to regions
---------------------------------------
A material must be associated to each of the geometry regions, except to
those defined as blackhole. This is done in a very straightforward way by
command ASSIGNMAt. Assigning explicitly blackhole to a region is allowed, but
is not necessary (except for region 2) because a region is blackhole by
default unless another material has been associated to it. Region 2, if no
material is assigned, is COPPER by default). The table entitled "Regions:
materials and fields", in the standard output, can be consulted to check that
material assignment has been done as desired.
For the present example the assignment could be:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Be target, 1st and 2nd half
ASSIGNMAT 5.0 3.0 4.0
* External Black Hole
ASSIGNMAT 1.0 1.0
* Vacuum
ASSIGNMAT 2.0 2.0
The same material assignments in a name-based input would be the following
(BLCKHOLE and VACUUM are the predefined names of material 1 and 2):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Be target, 1st and 2nd half
ASSIGNMAT BERYLLIU UpstrBe DwnstrBe
* External Black Hole
ASSIGNMAT BLCKHOLE Blckhole
* Vacuum
ASSIGNMAT VACUUM Vacarund
2.3.9} Production thresholds
------------------------------
The implicit NEW-DEFA default setting adopted in the example, sets, among
other things, the production and transport threshold of heavy particles to 10
MeV. Production thresholds for e+e- and photons must be explicitly set using
the EMFCUT command for all materials in the problem. Let us choose also in
this case a 10 MeV threshold for the single material of the example
(previously marked with material index 5 and name BERYLLIU). Following the
instructions about the EMFCUT option, the card can be written as:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* e+e- and gamma production threshold set at 10 MeV
EMFCUT -0.010 0.010 1.0 5.0 PROD-CUT
where the first numerical field is the threshold for e+e- (the minus sign
meaning kinetic energy) and the second is for photons. The material number is
given in the fourth numerical field. For details on all other parameters,
and for other possibilities (for example how to introduce a transport cutoff
different from production threshold) the user should accurately consult the
Notes to EMFCUT.
In a name-based input, the above card could be:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
EMFCUT -0.010 0.010 1.0 BERYLLIU PROD-CUT
Production and transport threshold for all other particles can be overwritten
using the PART-THR command.
2.3.10} Estimators and Detectors
---------------------------------
Even though, for setting-up purposes, it is conceivable that no estimator be
requested in a preliminary run, in most cases FLUKA is used to predict the
expectation value of one or more quantities, as determined by the radiation
field and by the material geometry described by the user: for such a task
several different estimators are available. The quantities which are most
commonly scored are dose and fluence, but others are available. Dose
equivalent is generally calculated from differential fluence using conversion
coefficients.
The simplest estimator available to the user is a historical vestige,
survived from the "ancient" FLUKA (pre-1988) where the only possible output
quantities were energy deposition and star density in regions. It is invoked
by option SCORE, requesting evaluation of one to four different
quantities. These can be different forms of energy density (proportional to
dose), or of star density (approximately proportional to fluence of selected
high-energy hadrons).
For this estimator, the detectors are pre-determined: the selected quantities
are reported for each region of the geometry. The corresponding results,
printed in the main output immediately after the last history has been
completed, are presented in 6 columns as follows:
region region region first second third fourth
number name volume quantity quantity quantity quantity
1 ...... ...... ........ ........ ........ ........
2 ...... ...... ........ ........ ........ ........
etc.
on a line for each geometry region. The region volumes (in cm3) have the
value 1.0, or values optionally supplied by the user at the end of the
geometry description. All other columns are normalised per region volume and
per primary particle.
The input could be as follows:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* score in each region energy deposition and stars produced by primaries
SCORE 208.0 210.0
The same, in a name-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SCORE ENERGY BEAMPART
Other estimators are more flexible: the corresponding detectors can be
requested practically in any number, can be written as unformatted or text
files, and in most cases can provide differential distributions with respect
to one or more variables. On the other hand, their output is presented in a
very compact array form and must generally be post-processed by the user. For
this purpose several utility programs are available: but output in text
format can even be exported to a spreadsheet for post-processing.
USRBDX is the command required to define a detector for the boundary-crossing
estimator. It calculates fluence or current, mono- or bi-directional,
differential in energy and angle on any boundary between two selected
regions. The area normalisation needed to obtain a current in particles per
cm2 is performed using an area value input by the user: if none is given, the
area is assumed to be = 1 cm2 and the option amounts simply to counting the
total number of particles crossing the boundary. Similarly if fluence is
scored, but in this case each particle is weighted with the secant of the
angle between the particle trajectory and the normal to the boundary surface
at the crossing point.
This is one of the estimators proposed for our example. We will request two
boundary crossing detectors, one to estimate fluence and one for current, of
particles crossing the boundary which separates the upstream and the
downstream half of the target.
The following group of cards can be inserted:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Boundary crossing fluence in the middle of the target (log intervals, one-way)
USRBDX 99.0 209.0 -47.0 3.0 4.0 400. piFluenUD
USRBDX +50.0 +50.0 0.0 10.0 &
*
* Boundary crossing current in the middle of the target (log intervals, one-way)
USRBDX -1.0 209.0 -47.0 3.0 4.0 400. piCurrUD
USRBDX +50.00 +50.0 0.0 10.0 &
The same, in a name-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
USRBDX 99.0 PIONS+- -47.0 UpstrBe DwnstrBe 400. piFluenUD
USRBDX +50.0 +50.0 0.0 10.0 &
*
USRBDX -1.0 PIONS+- -47.0 UpstrBe DwnstrBe 400. piCurrUD
USRBDX +50.00 +50.0 0.0 10.0 &
According to the instructions reported in the description of the USRBDX
command, it can be seen that the combined fluence of pi+ and pi- is requested
only when particles exit region "3" ("UpstrBe", the upstream half of the
target) to enter into region "4" ("DwnstrBe", the downstream half). There is
no interest in the reverse, therefore "one-way scoring" is selected. The
scoring of the first detector will be inverse cosine-weighted, in order to
define correctly the fluence. Results will be written unformatted on unit 47
for both quantities (so there will be two "Detectors" on the same output
unit, but this is not mandatory). The energy distribution is going to be
binned in 50 logarithmic intervals, from 0.001 GeV (the default minimum) up
to 50 GeV. The angular distribution will be binned into 10 linear solid angle
intervals from 0. to 2pi (having chosen the one-way estimator). The results
will be normalised dividing by the area of the boundary (separation surface
between the two regions, in this case the transverse section of the target),
and will provide a double- differential fluence or current averaged over that
surface in cm-2 GeV-1 sr-1.
Other fluence scoring options, based respectively on a track-length and on a
collision estimator, are USRTRACK and USRCOLL which request the estimation of
volume-averaged fluence (differential in energy) for any type of particle or
family of particles in any selected region. The volume normalisation needed
to obtain the fluence as track-length density or collision density is
performed using a volume value input by the user: if none is given, the
volume is assumed to be = 1 cm3 and the result will be respectively the total
track-length in that region, or the total number of collisions (weighted with
the mean free path at each collision point).
Note that if additional normalisation factors are desired (e.g. beam power)
this can be achieved by giving in input the "volume" or "area" value
multiplied or divided by those factors. Options USRTRACK, USRCOLL and USRBDX
can also calculate energy fluence, if the "particle" type is set = 208
(energy, name ENERGY) or 211 (electron and photon energy, name EM-ENRGY).
In our example, we are requesting two track-length detectors, to get the
average fluence in the upstream half and in the downstream half of the
target, respectively.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Tracklength fluence inside the target, Upstream part and Downstream part
* Logarithmic energy intervals
USRTRACK -1.0 209.0 -48.0 3.0 1000.0 20. piFluenU
USRTRACK 50.0 0.001 &
USRTRACK -1.0 209.0 -49.0 4.0 1000.0 20. piFluenD
USRTRACK 50.0 0.001 &
The volume input is 20 x 20 x 2.5 = 1000 cm3. We are requesting an energy
spectrum in 20 logarithmic intervals between 0.001 and 50 GeV. In this case,
we ask that the corresponding output be printed, unformatted, on two
different files.
In a name-based input, the above example could be:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
USRTRACK -1.0 PIONS+- -48.0 UpstrBe 1000.0 20. piFluenU
USRTRACK 50.0 0.001 &
USRTRACK -1.0 PIONS+- -49.0 DwnstrBe 1000.0 20. piFluenD
USRTRACK 50.0 0.001 &
Option USRBIN provides detailed space distributions of energy deposition,
star density or integrated fluence (not energy fluence, unless by writing a
special user routine). Using some suitable graphics package, USRBIN output
can be presented in the form of colour maps. Programs for this purpose are
available in the $FLUPRO/flutil directory (pawlevbin.f and various kumac
files), and on the FLUKA website www.fluka.org.
USRBIN results are normalised to bin volumes calculated automatically by the
program (except in the case of region binning and special 3-variable binning
which are only seldom used).
The binning structure does not need to coincide with any geometry region. In
our example we propose to ask for two Cartesian space distributions, one of
charged pion fluence and one of total energy deposited. The first will extend
over a volume larger than the target, because fluence can be calculated even
in vacuum. Energy deposition, on the other hand, will be limited to the
target volume.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Cartesian binning of the pion fluence inside and around the target
USRBIN 10.0 209.0 -50.0 50.0 50.0 50. piFluBin
USRBIN -50.0 -50.0 -10.0 100.0 100.0 60.0 &
* Cartesian binning of the deposited energy inside the target
USRBIN 10.0 208.0 -51.0 10.0 10.0 5. Edeposit
USRBIN -10.0 -10.0 0.0 20.0 20.0 5.0 &
Also in this case, the request is for output on two separate files.
Or, using names:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
USRBIN 10.0 PIONS+- -50.0 50.0 50.0 50. piFluBin
USRBIN -50.0 -50.0 -10.0 100.0 100.0 60.0 &
USRBIN 10.0 ENERGY -51.0 10.0 10.0 5. Edeposit
USRBIN -10.0 -10.0 0.0 20.0 20.0 5.0 &
Angular yields around a fixed direction of particles exiting a given surface
can be calculated using option USRYIELD. The results are double-differential
distributions with respect to a pair of variables, one of which is generally
energy-like (kinetic energy, momentum, etc.) and the other one angle-like
(polar angle, rapidity, Feynman-x, etc.) Distributions in LET (Linear Energy
Transfer) can also be requested by this option. An arbitrary normalisation
factor can be input.
Another commonly used scoring option is RESNUCLEi, which calculates residual
nuclei production in a given region. A normalisation factor (usually the
region volume) can be input.
A detailed summary of the requested detectors is printed on standard output.
The same information is printed in the same format in estimator ASCII output
files, and is available in coded form in unformatted estimator files.
2.3.11} Initialisation of the random number sequence
-----------------------------------------------------
The random number sequence used in a run is initialised by default by the
seeds contained in file random.dat provided with the code. To calculate the
statistical error of the results, it is necessary to perform other
independent runs (at least 4 or 5), each with a different independent
initialisation, using the seeds written by the program at the end of each
run. The rfluka script provided with the code on UNIX and LINUX platforms
takes care of this task, provided the following card is issued in the input
file:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
RANDOMIZe 1.0 0.0
The seeds of the random number generator are printed on a special file in
hexadecimal form at the end of each group of histories (the size of a group
depends on the number of histories requested in the START card).
Instead of getting the seeds from the last run, it is also possible to
initialise directly another independent random number sequence by setting the
second RANDOMIZe parameter equal to a different number, for instance:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
RANDOMIZE 1.0 1198.
2.3.12} Starting signal and number of requested histories
----------------------------------------------------------
At the end of the input file, a START card is mandatory in order to actually
start the calculation. That card must indicate also the number of particle
histories requested. The run, however, may be completed before all the
histories have been handled in two cases: if a time limit has been met (on
some systems) or if a "stop file" is created by the user (see instructions in
Note 2 to option START). The START card is optionally followed by a STOP
card. For example, if the user wants to generate 100000 histories, the input
file can be closed with the following two cards:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
START 100000.0
STOP
2.3.13} The sample input file
-----------------------------
In summary, the input file for our basic example (example.inp), name-based
and written in fixed format, could be the following:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
TITLE
Charged pion fluence inside and around a proton-irradiated Be target
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 50.E+00 PROTON
BEAMPOS 0.0 0.0 -50.0
*
GEOBEGIN COMBNAME
0 0 A simple Be target inside vacuum
RPP blakhole -5000000.0 +5000000.0 -5000000.0 +5000000.0 -5000000.0 +5000000.0
RPP vacumbox -1000000.0 +1000000.0 -1000000.0 +1000000.0 -100.0 +1000000.0
RPP betarget -10.0 +10.0 -10.0 +10.0 0.0 +5.0
* plane to separate the upstream and downstream part of the target
XYP cutplane 2.5
END
* black hole
Blckhole 5 +blakhole -vacumbox
* vacuum around
Vacarund 5 +vacumbox -betarget
* Be target 1st half
UpstrBe 5 +betarget +cutplane
* Be target 2nd half
DwnstrBe 5 +betarget -cutplane
END
GEOEND
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MATERIAL 4.0 0.0 1.848 5.0 BERYLLIU
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Be target, 1st and 2nd half
ASSIGNMAT BERYLLIU UpstrBe DwnstrBe
* External Black Hole
ASSIGNMAT BLCKHOLE Blckhole
* Vacuum
ASSIGNMAT VACUUM Vacarund
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* e+e- and gamma production threshold set at 10 MeV
EMFCUT -0.010 0.010 1.0 BERYLLIU PROD-CUT
* score in each region energy deposition and stars produced by primaries
SCORE ENERGY BEAMPART
* Boundary crossing fluence in the middle of the target (log intervals, one-way)
USRBDX 99.0 PIONS+- -47.0 UpstrBe DwnstrBe 400. piFluenUD
USRBDX +50.0 +50.0 0.0 10.0 &
* Boundary crossing current in the middle of the target (log intervals, one-way)
USRBDX -1.0 PIONS+- -47.0 UpstrBe DwnstrBe 400. piCurrUD
USRBDX +50.00 +50.0 0.0 10.0 &
* Tracklength fluence inside the target, Upstream part and Downstream part
* Logarithmic energy intervals
USRTRACK -1.0 PIONS+- -48.0 UpstrBe 1000.0 20. piFluenU
USRTRACK 50.0 0.001 &
USRTRACK -1.0 PIONS+- -49.0 DwnstrBe 1000.0 20. piFluenD
USRTRACK 50.0 0.001 &
* Cartesian binning of the pion fluence inside and around the target
USRBIN 10.0 PIONS+- -50.0 50.0 50.0 50. piFluBin
USRBIN -50.0 -50.0 -10.0 100.0 100.0 60.0 &
* Cartesian binning of the deposited energy inside the target
USRBIN 10.0 ENERGY -51.0 10.0 10.0 5. Edeposit
USRBIN -10.0 -10.0 0.0 20.0 20.0 5.0 &
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
RANDOMIZe 1.0
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
START 100000.0
STOP
The same input file, number-based and using the free format option for the
FLUKA commands, but not for the geometry, can instead be written as follows:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
TITLE
Charged pion fluence inside and around a proton-irradiated Be target
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GLOBAL 2.0
BEAM 50.E+00 0. 0. 0. 0. 0. PROTON
BEAMPOS 0. 0. -50.0 0. 0. 0. ' '
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GEOBEGIN COMBINAT
A simple Be target inside vacuum
RPP 1-5000000.0+5000000.0-5000000.0+5000000.0-5000000.0+5000000.0
RPP 2-1000000.0+1000000.0-1000000.0+1000000.0 -100.0+1000000.0
RPP 3 -10.0 +10.0 -10.0 +10.0 0.0 +5.0
XYP 4 2.5
END
* black hole
BH1 5 +1 -2
* vacuum around
VA2 5 +2 -3
* Be target 1st half
BE3 5 +3 +4
* Be target 2nd half
BE4 5 +3 -4
END
GEOEND
MATERIAL 4.0 0.0 1.848 5.0 0. 0. BERYLLIU
* Be target, 1st and 2nd half
ASSIGNMAT 5.0 3.0 4.0 0. 0. 0.
* External Black Hole
ASSIGNMAT 1.0 1.0 0. 0. 0. 0.
* Vacuum
ASSIGNMAT 2.0 2.0 0. 0. 0. 0.
* e+e- and gamma production threshold set at 10 MeV
EMFCUT -0.010 0.010 1.0 5.0, , , PROD-CUT
* score in each region energy deposition and stars produced by primaries
SCORE 208.0 210. 0. 0. 0. 0.
* Boundary crossing fluence in the middle of the target (log intervals, one-way)
USRBDX 99.0 +209.0 -47.0 3.0 4.0 +400.0 piFluenUD
USRBDX +50.00 0. +50.0 0. 0. 10.0 &
* Boundary crossing current in the middle of the target (log intervals, one-way)
USRBDX -1.0 +209.0 -47.0 3.0 4.0 +400.0 piCurrUD
USRBDX +50.00 0. +50.0 0. 0. 10.0 &
* Tracklength fluence inside the target, Upstream part and Downstream part
* Logarithmic energy intervals
USRTRACK -1.0 209.0 -48.0 3.0 1000.0 20. piFluenU
USRTRACK 50.0 0.001 0. 0. 0. 0. &
USRTRACK -1.0 209.0 -49.0 4.0 1000.0 20. piFluenD
USRTRACK 50.0 0.001 0. 0. 0. 0. &
* Cartesian binning of the pion fluence inside and around the target
USRBIN 10.0 209.0 -50.0 50.0 50.0 50. piFluBin
USRBIN -50.0 -50.0 -10.0 100.0 100.0 60.0 &
* Cartesian binning of the deposited energy inside the target
USRBIN 10.0 208.0 -51.0 10.0 10.0 5. Edeposit
USRBIN -10.0 -10.0 0.0 20.0 20.0 5.0 &
RANDOMIZe 1.0 0. 0. 0. 0. 0.
START 100000.0 0. 0. 0. 0. 0.
STOP
Other possible combinations are name-based free format and number-based fixed
format.
2.4} Running FLUKA
---------------------
It is advisable, but not mandatory, to keep separate the $FLUPRO directory
from that or those where calculations are run and input files are kept.
For instance, flukawork:
cd /home/user/flukawork
As mentioned above, the rfluka script in $FLUPRO/flutil should be used to
drive the FLUKA run. In the following it is supposed that the user is going
to ask for five statistically independent runs, each one made of 100000
histories, of the proposed basic example. The command is:
$FLUPRO/flutil/rfluka -N0 -M5 example &
(on LINUX/UNIX, the & character allows to run the program in the background
without "freezing" the terminal window).
The script creates a temporary subdirectory called fluka_nnnn where nnnn is
tbe number of the subprocess. For instance, when the first run (or "cycle")
starts, the user will see on the terminal lines similar to the following
ones:
$TARGET_MACHINE = Linux
$FLUPRO = /home/user/flupro
2789: old priority 0, new priority 10
Initial seed already existing
Running fluka in /home/user/flukawork/fluka_2789
================================ Running FLUKA for cycle # 1 ===================
At the end of each cycle the output files will be copied onto the running
directory, the temporary directory will be erased and a new one will be
created where the next run will take place. The names of the output files
from each run are built by appending to the input file name the run number
and an extension depending on their content: .out for the standard output,
.err for the error file, .log for the log file and _fort.nn for the estimator
files (with nn = absolute value of the selected output unit). The file
containing the random number seeds will be called "ran".
The error file may contain error messages related to the event generators
(for instance when the program does not manage to conserve exactly energy or
another quantity) or to the geometry tracking. Most of those are generally
only warning messages which can be ignored unless there is a large number of
them.
The log file generally contains messages related to fatal errors (input
errors, overflow, etc.)
During a multiple run, lines like the following will appear on the user's
screen:
================================ Running FLUKA for cycle # 1 ====================
Removing links
Removing temporary files
Saving output and random number seed
Saving additional files generated
Moving fort.47 to /home/fasso/Fluka/test/example01_fort.47
Moving fort.48 to /home/fasso/Fluka/test/example01_fort.48
Moving fort.49 to /home/fasso/Fluka/test/example01_fort.49
Moving fort.50 to /home/fasso/Fluka/test/example01_fort.50
Moving fort.51 to /home/fasso/Fluka/test/example01_fort.51
================================ Running FLUKA for cyle # 2 ====================
Removing links
Removing temporary files
Saving output and random number seed
Saving additional files generated
Moving fort.47 to /home/fasso/Fluka/test/example002_fort.47
Moving fort.48 to /home/fasso/Fluka/test/example002_fort.48
Moving fort.49 to /home/fasso/Fluka/test/example002_fort.49
Moving fort.50 to /home/fasso/Fluka/test/example002_fort.50
Moving fort.51 to /home/fasso/Fluka/test/example002_fort.51
================================ Running FLUKA for cycle # 3 ===================
.....
================================ Running FLUKA for cycle # 4 ===================
.....
================================ Running FLUKA for cycle # 5 ===================
Removing links
Removing temporary files
Saving output and random number seed
Saving additional files generated
Moving fort.47 to /home/fasso/Fluka/test/example005_fort.47
Moving fort.48 to /home/fasso/Fluka/test/example005_fort.48
Moving fort.49 to /home/fasso/Fluka/test/example005_fort.49
Moving fort.50 to /home/fasso/Fluka/test/example005_fort.50
Moving fort.51 to /home/fasso/Fluka/test/example005_fort.51
End of FLUKA run
At this time, in the working directory, the following new files exist:
example001_fort.47 example002_fort.47 .... example005_fort.47
example001_fort.48 example002_fort.48 .... example005_fort.48
example001_fort.49 example002_fort.49 .... example005_fort.49
example001_fort.50 example002_fort.50 .... example005_fort.50
example001_fort.51 example002_fort.51 .... example005_fort.51
example001.out example002.out .... example005.out
example001.err example002.err .... example005.err
In Chapter 9} the user can find a comprehensive description of the content of
the FLUKA standard output. For the purpose of this beginner's guide, it can
just be pointed out that, according to the content of the USRBDX command, the
files with extension fort.47 contain, in binary form, the boundary crossing
estimator output for the required pion fluence and current detectors (for
more details see Chap. 9}). These files must be combined together to produce
a table of values with their statistical errors which can be easily
interfaced by the user to some analysis codes and/or graphic visualisation
tools. Similarly, the files with extension fort.48 and fort.49 will contain
the tracklength estimator output, and those with extension fort.50 and
fort.51 the output from USRBIN.
2.5} Accessing results
-------------------------
2.5.1} Boundary crossing estimator
---------------------------
Binary files from the USRBDX estimator can be accessed by means of the
usxsuw.f readout code, which is located in the $FLUPRO/flutil directory.
That readout code can be easily compiled. For example, the same compiling and
linking FLUKA tools can be used for this purpose:
cd $FLUPRO/flutil
./lfluka usxsuw.f -o usxsuw
The simplest way, however, is to use the makefile which is available in the
$FLUPRO/flutil directory. In that directory, just type: make and all the
postprocessing utilities will be compiled and linked.
In order to process the 5 output files produced by the proposed example, the
following interactive procedure can be used:
cd /home/user/flukawork
$FLUPRO/flutil/usxsuw
The readout code will ask for the first FLUKA detector file name:
Type the input file:
For each detector file the program will show the content of the TITLE card of
the FLUKA input file, the date and time of the FLUKA run and the number of
histories for the given run. The request will be iterated until a blank line
is given. This will be interpreted as the end of the list of files, and then
a name for the output file prefix will be requested. Let's use, for example,
the name "pionbdx":
Type the input file: example001_fort.47
Charged pion fluence inside and around a proton-irradiated Be target
DATE: 7/15/ 5, TIME: 16:22:11
100000.
100000
Type the input file: example002_fort.47
Charged pion fluence inside and around a proton-irradiated Be target
DATE: 7/15/ 5, TIME: 16:23: 3
100000.
100000
Type the input file: example003_fort.47
Charged pion fluence inside and around a proton-irradiated Be target
DATE: 7/15/ 5, TIME: 16:23:54
100000.
100000
Type the input file: example004_fort.47
Charged pion fluence inside and around a proton-irradiated Be target
DATE: 7/15/ 5, TIME: 16:24:51
100000.
100000
Type the input file: example005_fort.47
Charged pion fluence inside and around a proton-irradiated Be target
DATE: 7/15/ 5, TIME: 16:25:45
100000.
100000
Type the input file:
Type the output file name: pionbdx
At this point the following 3 new files are produced:
pionbdx
pionbdx_sum.lis
pionbdx_tab.lis
The first one (pionbdx) is again a binary file that can be read out at any
time by usxsuw. The content of this file is statistically equivalent to that
of the sum of the files used to obtain it, and it can replace them to be
combined with further output files if desired (the usxsuw program takes care
of giving it the appropriate weight).
The other two files are ASCII text files.
Let us first examine pionbdx_sum.lis. This contains many comments which can
help the user to understand the results. Since by means of the USRBDX command
separate detectors for pion fluence and current have been requested, with
their output on the same logical unit, there will be two different sections
in the file, identified by the word "Detector": Detector no. 1 is for fluence
and Detector no. 2 is for current, because this is the order in which the
USRBDX commands have been given.
Let us inspect the output from Detector no. 1:
Charged pion fluence inside and around a proton-irradiated Be target
Total primaries run: 500000
Total weight of the primaries run: 500000.
Detector n: 1( 1) piFluenUD
(Area: 400. cmq,
distr. scored: 209 ,
from reg. 3 to 4,
one way scoring,
fluence scoring)
Tot. resp. (Part/cmq/pr) 8.6904905E-04 +/- 0.6976866 %
( --> (Part/pr) 0.3476196 +/- 0.6976866 % )
The total (summed) number of primaries (histories) is reported at first, then
the main features of USRBDX request are summarised. The following numbers
represent the energy and angle integrated fluence ("total response").
Here and later, the statistical error is always expressed in percentage.
After this heading, the differential fluence tabulation as a function of
(pion) energy, and integrated over solid angle, is reported, starting with
the boundaries of the energy bins. As a general convention, these values are
given from the highest to the lowest value:
**** Different. Fluxes as a function of energy ****
**** (integrated over solid angle) ****
Energy boundaries (GeV):
49.99992 40.27077 32.43475 26.12349 21.04029
16.94620 13.64875 10.99293 8.853892 7.131072
5.743484 4.625898 3.725775 3.000802 2.416896
1.946608 1.567831 1.262757 1.017045 0.8191454
0.6597533 0.5313764 0.4279793 0.3447017 0.2776285
0.2236066 0.1800965 0.1450527 0.1168279 9.4095118E-02
7.5785778E-02 6.1039131E-02 4.9161937E-02 3.9595842E-02 3.1891152E-02
2.5685664E-02 2.0687662E-02 1.6662188E-02 1.3420003E-02 1.0808695E-02
8.7055033E-03 7.0115575E-03 5.6472253E-03 4.5483690E-03 3.6633324E-03
2.9505091E-03 2.3763892E-03 1.9139835E-03 1.5415541E-03 1.2415934E-03
Lowest boundary (GeV): 1.0000000E-03
Flux (Part/GeV/cmq/pr):
1.5418744E-09 +/- 99.00000 % 4.8503271E-08 +/- 6.709127 %
2.3456116E-07 +/- 6.506497 % 5.9040013E-07 +/- 3.466331 %
1.2585346E-06 +/- 4.051404 % 2.5295039E-06 +/- 2.039807 %
4.6113087E-06 +/- 2.195296 % 7.6260553E-06 +/- 1.939942 %
1.2214471E-05 +/- 0.8310503 % 1.8394410E-05 +/- 0.6178440 %
2.6636921E-05 +/- 1.128397 % 3.6855919E-05 +/- 1.204921 %
5.1703457E-05 +/- 1.100655 % 6.9101960E-05 +/- 0.7564522 %
9.0419722E-05 +/- 1.799108 % 1.1945122E-04 +/- 1.256268 %
1.5757892E-04 +/- 0.8898824 % 1.9452766E-04 +/- 1.332425 %
2.4165030E-04 +/- 1.521364 % 3.0573772E-04 +/- 2.473622 %
3.6900895E-04 +/- 1.399170 % 4.4734811E-04 +/- 0.9543594 %
5.2953843E-04 +/- 1.964312 % 6.1596523E-04 +/- 1.349476 %
6.4003764E-04 +/- 3.323846 % 6.8828161E-04 +/- 0.9288639 %
6.8151421E-04 +/- 2.018673 % 7.0822553E-04 +/- 4.401796 %
7.4972271E-04 +/- 2.600316 % 6.9859857E-04 +/- 3.693749 %
6.8915845E-04 +/- 4.332464 % 6.6514849E-04 +/- 8.753220 %
6.4636284E-04 +/- 11.30834 % 5.5008888E-04 +/- 7.691558 %
4.3721433E-04 +/- 11.36630 % 3.2056248E-04 +/- 8.380781 %
4.2511927E-04 +/- 12.24571 % 2.2697043E-04 +/- 12.99932 %
2.0069227E-04 +/- 13.10813 % 1.7180138E-04 +/- 16.90801 %
9.9383309E-05 +/- 21.15753 % 2.9268101E-04 +/- 39.29378 %
1.5672133E-04 +/- 44.01294 % 2.1093644E-04 +/- 34.72458 %
7.4201569E-05 +/- 33.68359 % 7.2452240E-05 +/- 33.54827 %
8.6934262E-05 +/- 62.03180 % 1.0245090E-04 +/- 99.00000 %
1.6312006E-04 +/- 82.06016 % 1.3002084E-04 +/- 52.15991 %
Soon after, the cumulative fluence distribution as a function of energy is
also given:
**** Cumulative Fluxes as a function of energy ****
**** (integrated over solid angle) ****
Energy boundaries (GeV):
49.99992 40.27077 32.43475 26.12349 21.04029
16.94620 13.64875 10.99293 8.853892 7.131072
5.743484 4.625898 3.725775 3.000802 2.416896
1.946608 1.567831 1.262757 1.017045 0.8191454
0.6597533 0.5313764 0.4279793 0.3447017 0.2776285
0.2236066 0.1800965 0.1450527 0.1168279 9.4095118E-02
7.5785778E-02 6.1039131E-02 4.9161937E-02 3.9595842E-02 3.1891152E-02
2.5685664E-02 2.0687662E-02 1.6662188E-02 1.3420003E-02 1.0808695E-02
8.7055033E-03 7.0115575E-03 5.6472253E-03 4.5483690E-03 3.6633324E-03
2.9505091E-03 2.3763892E-03 1.9139835E-03 1.5415541E-03 1.2415934E-03
Lowest boundary (GeV): 1.0000000E-03
Cumul. Flux (Part/cmq/pr):
1.5001119E-08 +/- 99.00000 % 3.9507350E-07 +/- 7.326498 %
1.8754495E-06 +/- 5.464718 % 4.8765669E-06 +/- 1.819896 %
1.0029117E-05 +/- 1.898280 % 1.8370021E-05 +/- 1.277005 %
3.0616819E-05 +/- 0.6900454 % 4.6929261E-05 +/- 0.9553517 %
6.7972585E-05 +/- 0.7029299 % 9.3496434E-05 +/- 0.6531623 %
1.2326548E-04 +/- 0.5382378 % 1.5644032E-04 +/- 0.6154544 %
1.9392396E-04 +/- 0.6043725 % 2.3427299E-04 +/- 0.5368618 %
2.7679623E-04 +/- 0.5548110 % 3.2204165E-04 +/- 0.6000980 %
3.7011484E-04 +/- 0.6263003 % 4.1791250E-04 +/- 0.6480659 %
4.6573509E-04 +/- 0.7125404 % 5.1446725E-04 +/- 0.7778813 %
5.6183949E-04 +/- 0.8066853 % 6.0809392E-04 +/- 0.7142704 %
6.5219263E-04 +/- 0.7654761 % 6.9350738E-04 +/- 0.7260005 %
7.2808337E-04 +/- 0.8159186 % 7.5803063E-04 +/- 0.7573094 %
7.8191340E-04 +/- 0.7549785 % 8.0190296E-04 +/- 0.7531289 %
8.1894622E-04 +/- 0.7366922 % 8.3173712E-04 +/- 0.6872664 %
8.4189989E-04 +/- 0.6799491 % 8.4980001E-04 +/- 0.6579692 %
8.5598318E-04 +/- 0.6862395 % 8.6022145E-04 +/- 0.6667165 %
8.6293457E-04 +/- 0.6859071 % 8.6453673E-04 +/- 0.6995495 %
8.6624804E-04 +/- 0.6864265 % 8.6698390E-04 +/- 0.6886846 %
8.6750800E-04 +/- 0.6864119 % 8.6786930E-04 +/- 0.6882262 %
8.6803763E-04 +/- 0.6885374 % 8.6843700E-04 +/- 0.6933275 %
8.6860918E-04 +/- 0.6915213 % 8.6879585E-04 +/- 0.6911866 %
8.6884876E-04 +/- 0.6931223 % 8.6889038E-04 +/- 0.6942393 %
8.6893054E-04 +/- 0.6953420 % 8.6896872E-04 +/- 0.6967193 %
8.6901762E-04 +/- 0.6981055 % 8.6904905E-04 +/- 0.6976866 %
The numbers for the cumulative distribution have been obtained by multiplying
each value of the differential distribution by the corresponding energy bin
width (variable if the distribution is logarithmic as in our example). The
integral fluence in any given energy interval can be obtained as the
difference between the values of the cumulative distribution at the two
bounds of that interval.
Since more than one angular interval was requested, at this point the angular
distribution WITH RESPECT TO THE NORMAL AT THE BOUNDARY CROSSING POINT is
reported, both in steradians and in degrees:
**** Double diff. Fluxes as a function of energy ****
Solid angle minimum value (sr): 0.000000
Solid angle upper boundaries (sr):
0.6283185 1.256637 1.884956 2.513274 3.141593
3.769911 4.398230 5.026548 5.654867 6.283185
Angular minimum value (deg.): 0.000000
Angular upper boundaries (deg.):
25.84193 36.86990 45.57299 53.13010 60.00000
66.42182 72.54239 78.46304 84.26083 90.00000
Let us take for instance the energy bin between 0.345 GeV and 0.278 GeV:
Energy interval (GeV): 0.3447016 0.2776284
Flux (Part/sr/GeV/cmq/pr):
2.2090337E-04 +/- 2.271138 % 1.6099877E-04 +/- 2.023665 %
1.2373505E-04 +/- 3.802638 % 9.4749055E-05 +/- 2.419357 %
7.0389280E-05 +/- 5.640523 % 6.6853667E-05 +/- 9.292711 %
6.8042267E-05 +/- 5.421218 % 6.8482914E-05 +/- 11.91976 %
5.8157104E-05 +/- 2.943847 % 4.8027632E-05 +/- 39.71496 %
Flux (Part/deg/GeV/cmq/pr):
5.3710260E-06 +/- 2.271138 % 9.1729089E-06 +/- 2.023665 %
8.9330297E-06 +/- 3.802638 % 7.8776966E-06 +/- 2.419357 %
6.4377805E-06 +/- 5.640523 % 6.5410413E-06 +/- 9.292711 %
6.9850003E-06 +/- 5.421218 % 7.2676362E-06 +/- 11.91976 %
6.3026077E-06 +/- 2.943847 % 5.2580162E-06 +/- 39.71496 %
The same structure is then replicated for Detector no. 2:
Detector n: 2( 2) piCurrUD
(Area: 400. cmq,
distr. scored: 209 ,
from reg. 3 to 4,
one way scoring,
current scoring)
Tot. resp. (Part/cmq/pr) 7.1694393E-04 +/- 0.7243900 %
( --> (Part/pr) 0.2867776 +/- 0.7243900 % )
and so on.
Note that in this case the ratio between the calculated fluence (8.690E-04)
and the corresponding current (7.169E-04) is about 1.2. The ratio between the
numerical values of the two quantities would be 1 if the pions were all
crossing the boundary at a right angle, 2 in the case of an isotropic
distribution, and could even tend to infinity if the particle direction were
mainly parallel to the boundary:
FLUENCE AND CURRENT ARE VERY DIFFERENT QUANTITIES AND SHOULD NOT BE CONFUSED!
Note also that the above output reports also the current value not normalised
per unit area. This is equivalent to a simple count of crossing particles, so
we see that in our example about 0.287 charged pions per primary proton cross
the middle plane of the target.
The previous file has a structure which is not easily interfaceable to other
readout codes. This can be easily achieved by means of the other output file,
pionbdx_tab.lis: there the user can find, for each Detector, a simple
4-column structure for the differential fluence integrated over solid
angle. The table starts from the lowest energy and the four columns represent
respectively E_min, E_max, the differential fluence and the statistical error
in percentage:
# Detector n: 1 piFluenUD (integrated over solid angle)
# N. of energy intervals 50
1.000E-03 1.242E-03 1.300E-04 5.216E+01
1.242E-03 1.542E-03 1.631E-04 8.206E+01
1.542E-03 1.914E-03 1.025E-04 9.900E+01
1.914E-03 2.376E-03 8.693E-05 6.203E+01
2.376E-03 2.951E-03 7.245E-05 3.355E+01
2.951E-03 3.663E-03 7.420E-05 3.368E+01
3.663E-03 4.548E-03 2.109E-04 3.472E+01
4.548E-03 5.647E-03 1.567E-04 4.401E+01
5.647E-03 7.012E-03 2.927E-04 3.929E+01
.....
By convention, when in a given bin the statistics is not sufficient to
calculate a standard deviation, the statistical error is printed as 99%. For
a null fluence the statistical error is also null.
After this table, the double differential fluence is reported. First, one or
more lines marked by a # sign in column 1 give, from minimum to maximum, the
extremes of the solid angle intervals. Then, for each energy interval, the
minimum and maximum of the interval followed by as many pairs of values as
the number of angular bins: the first value is the calculated
double-differential quantity (fluence or current) in cm-2 sr-1 and the second
is the corresponding statistical error in percent.
For instance, for our example we obtain the following printout (for the sake
of space only 3 bins in energy are shown):
# double differential distributions
# number of solid angle intervals 10
# 0.000E+00 6.283E-01 6.283E-01 1.257E+00 1.257E+00 1.885E+00 ...
#
....
2.069E-02 2.569E-02 4.013E-05 2.472E+01 4.509E-05 2.068E+01 ...
2.569E-02 3.189E-02 5.408E-05 1.907E+01 4.657E-05 2.200E+01 ...
3.189E-02 3.960E-02 5.150E-05 7.137E+00 5.355E-05 1.587E+01 ...
....
2.5.2} Track length estimator
----------------------
The program to analyse USRTRACK binary output is called ustsuw.f and can also
be found in $FLUPRO/flutil. Its use is very similar to that of usxsuw.f
described above. Applying it to the example00*_fort.48 files (output of the
first USRTRACK detector in our example), we obtain for the average fluence of
charged pions in the upstream half of the beryllium target:
Tot. response (p/cmq/pr) 5.4765277E-04 +/- 0.6965669 %
and from the example00*_fort.49 files (pion fluence in the downstream half):
Tot. response (p/cmq/pr) 1.3474772E-03 +/- 0.5352812 %
As it was to be expected, the average fluence obtained above by the boundary
crossing estimator on the middle surface (8.69E-04 cm-2) has a value which is
intermediate between these two.
2.5.3} Binning estimator
-----------------
To analyse the binary output from USRBIN, two programs are needed, both
available in $FLUPRO/flutil. The first, usbsuw.f, performs a statistical
analysis of the results and produces a new unformatted file, with a name
chosen by the user. The second program, usbrea.f, reads the latter file and
writes on a formatted file two arrays, namely the content of each bin,
averaged over the given number of runs, followed by the corresponding errors
in percent. The second USRBIN detector defined in example.inp gives the
following values of energy deposition (in GeV/cm3):
1
Cartesian binning n. 1 "Edeposit " , generalized particle n. 208
X coordinate: from -1.0000E+01 to 1.0000E+01 cm, 20 bins ( 1.0000E+00 cm wide)
Y coordinate: from -1.0000E+01 to 1.0000E+01 cm, 20 bins ( 1.0000E+00 cm wide)
Z coordinate: from 0.0000E+00 to 5.0000E+00 cm, 5 bins ( 1.0000E+00 cm wide)
Data follow in a matrix A(ix,iy,iz), format (1(5x,1p,10(1x,e11.4)))
accurate deposition along the tracks requested
1.7164E-07 3.4587E-07 2.1976E-07 3.0997E-07 1.4963E-07 3.5431E-07 .....
5.6597E-07 7.5792E-07 3.6563E-07 2.7822E-07 2.6084E-07 2.8645E-07 .....
2.6191E-07 1.6716E-07 3.8680E-07 2.4925E-07 4.2334E-07 3.5025E-07 .....
.............................................................................
and the following corresponding percentage errors:
Percentage errors follow in a matrix A(ix,iy,iz), format (1(5x,1p,10(1x,e11.4)))
1.3936E+01 4.3211E+01 3.0601E+01 2.2874E+01 1.7783E+01 2.7942E+01 .....
1.6548E+01 1.2291E+01 1.4539E+01 2.4576E+01 2.7828E+01 1.7247E+01 .....
2.2423E+01 1.7258E+01 2.0349E+01 3.7997E+01 2.6855E+01 2.9230E+01 .....
.............................................................................
2.5.4} Readout of other FLUKA estimators
-----------------------------------------
The $FLUPRO/flutil directory contains other similar programs to average the
outputs from other FLUKA estimators (not used in the present example):
* usrsuw.f: to read out the RESNUCLEi output
* usysuw.f: to read out the USRYIELD output
2.6} Various settings
------------------------
Accuracy and computer speed depend on several parameters that can be freely
tuned by the user: but in general an increase of either one results in a
decrease of the other. The proper balance must be based both on physical and
on practical considerations. The present defaults have been designed to give
satisfactory results in the most common cases: but other sets of defaults can
be implemented using option DEFAULTS (to be placed at the beginning of the
input file, just after the title).
Even when one set of defaults is enforced, the user can still override some
of them by modifying single parameters. The most used ones concern energy
cutoffs (option EMFCUT for electrons and photons, LOW-BIAS for low-energy
neutrons, PART-THR for all other particles), thresholds for delta-ray
production (option DELTARAY), particles to be ignored (option DISCARD),
switching on or off some physical effect (EMFCUT, IONFLUCT, MUPHOTON,
PAIRBREM, PHOTONUC, PHYSICS, POLARIZAti), and (more rarely) the size of the
step for transporting charged particles (FLUKAFIX, MCSTHRES, MULSOPT,
STEPSIZE).
Energy cutoffs for each particle are listed in a table on standard output
("Particle transport thresholds").
2.7} Biasing
---------------
Although FLUKA is able to perform fully analogue particle transport
calculations (i.e. to reproduce faithfully actual particle histories), in
many cases of very non-uniform radiation fields, such as those encountered in
shielding design, only a very small fraction of all the histories contributes
to the desired response (dose, fluence) in the regions of interest, for
instance behind thick shielding. In these cases, the user's concern is not to
simulate exactly what occurs in reality, but to estimate in the most
efficient way the desired response. This can be obtained by replacing the
actual physical problem with a mathematically equivalent one, i.e. having the
same solution but faster statistical convergence.
A rigorous mathematical treatment of such variance-reduction techniques can
be found in several textbooks (see for instance those of Lux and Koblinger
[Lux91] or Carter and Cashwell [Car75]).
In the present practical introduction we will only issue a few important
warnings:
1. In the limit of the number of histories tending to infinity, the value of
all calculated quantities tend EXACTLY to the same average in the analogue
and in the corresponding biased calculation. In other words, biasing is
mathematically correct and implies no approximation. However, an
acceleration of convergence in certain regions of phase space
(space/energy/angle) will generally be paid for by a slower convergence in
other regions.
Because an actual calculation does not use an infinite number of
particles, but is necessarily truncated after a finite number of
histories, results must be considered with some judgment. For instance, if
the number of histories is too small, it can happen that total energy is
not conserved (check the energy budget summary at the very end of main
output!)
2. A bad choice of biasing parameters may have consequences opposite to what
is desired, namely a slower convergence. A long experience, and often some
preliminary trial-and-error investigation, are needed in order to fully
master these techniques (but some biasing algorithms are "safer" than
others).
3. Because biasing implies replacing some distributions by others having the
same expectation values but different variance (and different higher
moments), biasing techniques in general do not conserve correlations and
cannot describe correctly fluctuations.
The simplest (and safest) biasing option offered by FLUKA is importance
biasing, which can be requested by option BIASING. Each geometry region is
assigned an "importance", namely a number between 1.0E-4 and 1.0E+4,
proportional to the contribution that particles in that region are expected
to give to the desired result. The ratio of importances in any two adjacent
regions is used to drive a classical biasing algorithm ("Splitting" and
"Russian Roulette"). In a simple, monodimensional attenuation problem, the
importance is often set equal to the inverse of the expected fluence
attenuation factor for each region.
In electron accelerator shielding, two other biasing options are commonly
employed: EMF-BIAS and LAM-BIAS. The first one is used to request leading
particle biasing, a technique which reduces considerably the computer time
required to handle high-energy electromagnetic showers. With this option, CPU
time becomes proportional to primary energy rather than increasing
exponentially with it. Option LAM-BIAS is necessary in order to sample with
acceptable statistics photonuclear reactions which have a much lower
probability than competing electromagnetic photon reactions, but are often
more important from the radiological point of view.
Other important options are those which set weight window biasing (WW-FACTOr
WW-THRESh and WW-PROFIle) but their use requires more experience than assumed
here for a beginner.
Particle importances, weight windows and low-energy neutron biasing
parameters are reported for each region in standard output. On user's request
(expressed as SDUM = PRINT in a BIASING card), Russian Roulette and Splitting
counters are printed for each region on standard output before the final
summary. Such counters can be used for a better tuning of the biasing
options.
2.8} FLAIR
----------
Flair [Fla09] is an advanced user interface for FLUKA to facilitate the
editing of FLUKA input files, execution of the code and visualization of the
output files. It is based entirely on python and Tkinter
(http://wiki.python.org).
Flair provides the following functionality:
1. front-end interface for an easy and almost error free editing as well as
validation and error correction, of the input file during editing
2. interactive geometry editor, allowing to edit bodies and regions in
a visual/graphical way with immediate debugging information
3. compiling, debugging, running and monitoring of the status during a run
4. back-end interface for post-processing of the output files and plot
generation through an interface with gnuplot (http://www.gnuplot.info) or
3D photorealistic images
5. library of materials and geometrical objects, for easier editing, storing
and sharing among other users and projects
6. python API for manipulating the input files, post processing of the results
and interfacing to gnuplot
7. import/export to various formats, (mcnp, povray, dxf, bitmap-images)
The philosophy of Flair is to work on an intermediate level of user interface.
Not too high, that hides the inner functionality of FLUKA from the user, and
not so low that the user is in constant need of the FLUKA manual to verify the
options needed for each card. Flair works directly with the input file of
FLUKA and is able to read/write all acceptable FLUKA input formats. Inside
the Flair editor the user is working directly with the FLUKA cards having a
small dialog for each card that displays the card information in an
interpreted human readable way. The only exception is that the cards in Flair
are called "extended cards" where each card is not composed only by 6 WHATs
and 1 SDUM, but rather it contains all related information in one unit
(comments preceding the card, continuation cards, titles, etc).
Flair includes its own manual.
1********************************************************************************
3} Installation
********************************************************************************
3.1} Requirements
-----------------
FLUKA is available at the moment only for x86 and x86_64 Linux system.
The FLUKA package can be downloaded from the FLUKA Website www.fluka.org.
This version of the code should be run on the platforms for which it has been
released, which are:
o FLUKA 32 bits, requires gcc/g77 (version >= 3.4)
o FLUKA 64 bits, requires gcc/gfortran (version >= 4.6)
The Linux x86 version must be compiled at 32 bits with g77 but can run on both
32 and 64 bit machines while the Linux x86_64 version must be compiled with
gfortran and works only on 64 bits machines. The latter is still tentative, we
cannot exclude some issues with that version. The code has been checked and
validated only for these platforms/compilers for the time being.
The availability of the source code (available under the license reported at
the beginning of this volume) shall not be exploited for tentative builds on
other architectures or with different compilers/compiler options than the ones
recommended by the development team. Our experience shows that for a code of the
complexity of FLUKA the chances of hitting one or more compiler issues are very
large. Therefore users shall not make use for every serious task, including
whichever form of publication or presentation, of code versions built on
platforms and/or with compiler options which have not been cleared as safe by
the development team.
We distribute a package containing a compiled library, user routines in source
form, INCLUDE files, various unformatted and formatted data files and a number
of scripts for compiling (fff), linking (lfluka) and running (rfluka) the
program on a given platform. A list of the contents is provided in a README
file, and information on the current version, possibly overriding parts of the
present manual, may be contained in a file RELEASE-NOTES.
No external library routines are required. The timing and other necessary
service routines are already included.
3.2} Installation instructions
------------------------------
Different packages can be downloaded from the FLUKA Website www.fluka.org:
o 32 bits, requires gcc/g77 (version >= 3.4)
- Linux x86 (tar.gz package): fluka2016.x-linuxAA.tar.gz
- Linux x86 (rpm installer): fluka2016.x-i686.rpm
o 64 bits, requires gcc/gfortran (version >= 4.6)
- Linux x86_64 (tar.gz package): fluka2016.x-linux-gfor64bitAA.tar.gz
3.2.1} Installation of the tar.gz packages
------------------------------------------
1) The user must define few environmental variables:
- FLUPRO: pointing to the directory where the distribution tar file will be
decompressed. If you work on bash do:
'> export FLUPRO=/pathto/fluka'
or if you work on csh or tcsh do:
'> setenv FLUPRO /pathto/fluka'
If the directory does not exist you should first create it by:
'> mkdir /pathto/fluka'
- FLUFOR (optional): containing the compiler type ("gfortran" or "g77") which
must be coherent with the architecture of the package you downloaded.
If you work on bash do:
'> export FLUFOR=g77' OR '> export FLUFOR=gfortran'
or if you work on csh or tcsh do:
'> setenv FLUFOR g77' OR '> setenv FLUFOR gfortran'
In case FLUFOR is not set the script does an attempt of checking if the
name of the $FLUPRO directory contains the "gfor" string. In this case
gfortran is selected. If the FLUFOR variable is not set and the compiler
platform name is not coded in the directory name "g77" is selected.
- GFORFLU (optional): set to specify the specific version of gfortran to be
used if more than one is available (i.e. if on your machine "gfortran"
points to a version < 4.6, and "gfortran46" points to version 4.6, you can
set GFORFLU to "gfortran46" and happily use the FLUKA gfortran 64 bits
version).
Note: Such definition of the environment variables are lost when you logout.
In order to make it permanently available you should add the export/setenv
command to your shell configuration file:
- If you work on bash add them to your ".bashrc" file;
- If you work on csh (or tcsh) add them to your .cshrc (or .tcshrc) file;
2) Go to the FLUPRO directory and move there the selected FLUKA package
'> cd $FLUPRO'
then
'> cp /path/fluka2016.x-linuxAA.tar.gz ./'
or
'> cp /path/fluka2016.x-linux-gfor64bitAA.tar.gz ./'
3) Uncompress the tar.gz the package
'> tar -zxvf fluka2016.x-linuxAA.tar.gz'
or
'> tar -zxvf fluka2016.x-linux-gfor64bitAA.tar.gz'
4) Compile the flutils, link and install FLUKA by typing:
'> make'
this creates the default executable 'flukahp' and compiles auxiliary
programs in the directory flutil.
3.2.2} Installation of the RPM package
--------------------------------------
We also distribute a RPM package which can be installed in principle on each
x86 RPM-enable distribution (Fedora, Redhat, Ubuntu, Suse ..etc). The package
requires the 'compat-libf2c-34' and 'compat-gcc-34' packages.
In order to install the RPM on the Fedora/Redhat just type (as root):
'> rpm -ivh fluka2016.x-i686.rpm'
Other x86 RPM-enabled distributions might have different name for the
'compat-libf2c-34' and 'compat-gcc-34' packages'. In this case you might have
to install them separately and then run (as root):
'> rpm -ivh --nodeps fluka2016.x-i686.rpm'
In you want instead to upgrade a previous installation run (as root):
'> rpm -Fvh fluka2016.x-i686.rpm'
3.3} Package content
--------------------
The FLUKA libraries and most data files will be located in $FLUPRO, the INCLUDE
files in $FLUPRO/flukapro/, the default user routines in $FLUPRO/usermvax/,
compilation and linking scripts (as well as several postprocessing programs to
analyse user scores) in $FLUPRO/flutil/.
If the source code is included in the distribution, it will be contained in
$FLUPRO files with names of the form ...mvax.for.
The basic FLUKA program on UNIX/LINUX machines consists of 35 files (*):
aamodmvax.for bamjmvax.for blockmvax.for bmemvax.for comlatmvax.for
decaymvax.for dedxmvax.for dumvax.for elsmvax.for emfmvax.for
eventqmvax.for eventvmvax.for evffrmvax.for fluoxmvax.for geolatmvax.for
gcrmvax.for kaskadmvax.for lowneumvax.for mainmvax.for mathmvax.for
neutrimvax.for noptmvax.for nundismvax.for nunresmvax.for opphmvax.for
outputmvax.for pemfmvax.for pgmvax.for preclmvax.for preeqmvax.for
pripromvax.for pwxsmvax.for rndmvax.for usermvax.for XXXmvax.for (**)
Two more files contain source code related to the DPMJET and RQMD packages,
which can be linked with FLUKA to run problems involving heavy ion nuclear
interactions:
dpmmvax.for rqmdmvax.for
(*) The form ...vax.for has historical reasons. Actually, as seen later, the
files are automatically split by a Makefile into single routines (with
extension .f) before compilation.
(**) XXX stands for hp, ibm, linux, osf etc. depending on the platform.
Most UNIX Fortran compilers require that the extension .for be replaced by
.f (but the Makefile provided with FLUKA takes care of this, see below).
See 4} for a short description of the content of these files.
If the source code is present, the INCLUDE files needed to compile the program
may be grouped into three files emfadd.add, flukaadd.add and lowneuadd.add.
A Makefile and a number of auxiliary programs split these files into individual
routines and INCLUDE files, which are placed in 29+1 separate directories and
compiled. The object files are inserted in a FLUKA library libflukahp.a.
A shell script lfluka links all routines into an executable flukahp (the name
is the same for all UNIX platforms, the "hp" being due to historical reasons).
The DPMJET and RQMD object files are collected in two separate libraries.
The FLUKA distribution tar file normally does not contain an executable file.
To create the default FLUKA executable, type:
$FLUPRO/flutil/lfluka -m fluka
(the name of the resulting executable will be flukahp)
or, if heavy ion nuclear interactions are needed:
$FLUPRO/flutil/ldpmqmd
(the name of the resulting executable will be flukadpm)
User-written routines (in particular a SOURCE subroutine, see list of user
interface routines in 13}) can be compiled separately and linked overriding
the default routines of the library. The $FLUPRO/flutil/lfluka script can
take care of them in three different ways:
* appending the Fortran files (xxx.f) as last arguments to the
lfluka procedure (Linux only);
* appending the object files (precompiled using the $FLUPRO/flutil/fff
procedure supplied with the code) as last arguments to the lfluka
procedure;
* inserting the object files into a library and giving the library
name to the script with the -O or -l options.
An on-line help is available issuing lfluka -h.
The program needs several auxiliary data files, containing cross sections,
nuclear and atomic data and so on. Nine of these files are unformatted
and have an extension .bin (or .dat).
The auxiliary files are generally kept in the main FLUKA directory and
require no modification by the user.
Here is the list:
cohff.bin
Coherent atomic form factors
fluodt.dat
Fluorescence emission data, needed for problems involving
low-energy electron-photon transport
gxsect.bin
Photon cross sections
neuxsc-ind_260.bin
Low-energy neutron cross sections: needed for all problems with
neutron transport below 20 MeV.
nuclear.bin
Nuclide masses, abundances and other data: needed for all
hadronic problems
elasct.bin
Elastic cross sections for hadronic problems
sigmapi.bin
Pion cross sections
brems_fin.bin
Bremsstrahlung cross sections
endfb8r0.fyi, jeff33.fyi, jendl40.fyi, xnloan.dat
Fission nuclide yields and neutron multiplicities
sidae.dat, sidan.dat, sidap.dat, sidapi.dat
Silicon damage weighting functions
Pre-connected I/O files
-----------------------
FLUKA reads its main input from standard logical unit 5 and writes its main
output to logical unit 11. Both are parameterised in the INCLUDE file
IOUNIT as LUNIN and LUNOUT, and can therefore be redefined if necessary.
Assignment of unit number 5 and log messages to the corresponding files is
achieved (on Linux/UNIX) via the redirection symbols < and >.
Other input and output files on UNIX can be assigned a I/O unit number by
means of symbolic links (but the syntax for Fortran implicit connection is
not standard and forms like fort.xx or ftnxx can both be found on
different platforms). An alternative way is offered by the OPEN command of
FLUKA, which allows to perform explicit connections.
The $FLUPRO/rfluka script supplied with the code contains all relevant I/O
file definitions, and can be used to run the code interactively or through
a batch queue. It allows to submit multiple runs with a single command. Both
rfluka and lfluka (the script used for linking, see above) contain usage
instructions.
The rfluka script creates a temporary directory where it copies the
necessary files and deletes it after the results have been copied back to
the parent directory, thus allowing to run more than one job at the same
time in the same directory. Appropriate names for the output files are
generated by rfluka, including a sequential number for each run.
If user routines are linked and a new executable executable is created, the
name of the new executable can be input using the -e option. Some on-line
help is available issuing rfluka -h.
1********************************************************************************
4} FLUKA modules (Fortran files)
********************************************************************************
Since several years, the FLUKA source code has been organised in "modules".
This word must not be intended to have the technical meaning which it has
been assigned later in Fortran 90. A FLUKA module is simply a collection of
routines covering the same physics field or belonging to the same class
of functionality.
In the FLUKA2016 version, there are 36 modules:
AAMODM : dynamic memory allocation routines
BAMJM : new hadronisation package (strongly improved version of the
original BAMJET [Rit84])
BLOCKM : block data routines
BMEM : the Boltzmann Master Equation nucleus-nucleus interaction
package for nucleus-nucleus interactions below 150 MeV/u
COMLATM : all geometry routines specific for combinatorial geometry
(CG) and repetition (lattice capability) in the geometry
description
DECAYM : all routines connected with particle decays during transport,
including those managing polarisation or non phase-space-like
decays for pions, kaons, muons and taus
DEDXM : all routines connected with dE/dx and radiative losses of
hadrons and muons, including delta-ray production and cross-
sections for muon photonuclear interactions
DPMM : interface routines for the DPMJET generator
DUM : dummy routines
ELSM : all hadron and photon (photonuclear) cross section routines
EMFM : all routines dealing with electron, positron and photon transport
and interactions (except for photon photonuclear interactions,
fluorescent X-ray and Auger production)
EVENTQM : auxiliary routines for the high energy hadronic interaction
generators
EVENTVM : all routines (besides those in EVENTQM) connected with the high
energy hadronic inelastic interaction package
EVFFRM : separate module with all evaporation, fission and Fermi break-up
routines
FLUOXM : all routines dealing with fluorescence X-ray and Auger production
GCRM : cosmic ray and solar flare simulation package
GEOLATM : geometry navigation and debugging routines
KASKADM : general event steering, most of the relevant transport routines
for hadron and muon transport, including magnetic field tracking,
most of material and region dependent initialisation and source
routines
LOWNEUM : all routines concerning the multigroup treatment of "low" energy
(E < 20 MeV) neutrons
MAINM : main, input parsing and auxiliary routines
MATHM : mathematical auxiliary routines (interpolation, integration, etc)
Many of them adapted from SLATEC (http://www.netlib.org/slatec).
NEUTRIM : nuclear interactions of neutrinos
NOPTM : all routines connected with new scoring options implemented after
FLUKA86, and blank COMMON setting for scoring options
NUNDISM : neutrino-nucleon deep inelastic scattering
NUNRESM : neutrino-nucleon resonance production
OPPHM : optical photon production and transport
OUTPUTM : printing routines (apart from output of new options which is
performed in NOPTM)
PEMFM : electromagnetic initialisation
PGM : PLOTGEOM geometry drawing package
PRECLM : full PEANUT second part
PREEQM : full PEANUT first part
PRIPROM : initialisation and drivers for PEANUT
PWXSM : pointwise low energy neutron interactions
RNDM : random number generation, including gaussian-distributed random
numbers
RQMDM : interface routines for the RQMD generator
USERM : user oriented routines (see list below)
IBMM/HPM/LINUXM/OSFM/VAXM : timing and "environment" routines. These are
machine specific.
User oriented routines (see description in 13}):
The "FLUKA User Routines" mentioned at point 3) in the FLUKA User License are
those (and only those) contained in the directory usermvax, both in the source
and binary versions of the code.
ABSCFF : absorption coefficient (for optical photons)
COMSCW : response functions, user dependent selection for density-like
quantities
DFFCFF : diffusion coefficient (for optical photons)
ELEFLD : to use an electric field map
ENDSCP : energy density distributed - change of positions
FLDSCP : fluence distributed - change of positions
FLUSCW : response functions, user dependent selection for flux-like
quantities
FORMFU : nuclear charge form factors
FRGHNS : material roughness (for optical photons)
FTELOS : called at the very end of a FLUKA run
FUSRBV : defines a continuous variable for 3-D binnings
LATTIC : symmetry transformation for lattice geometry
LUSRBL : defines a discrete variable for 3-D binnings
MAGFLD : to use a magnetic field map
MDSTCK : management of secondary stack
MGDRAW : to dump trajectories, etc.
MUSRBR : defines a discrete variable for 3-D binnings
OPHBDX : boundary crossing properties (for optical photons)
PSHCKP : call user when pushing Cherenkov photons to the stack
PSHSCP : call user when pushing scintillation photons to the stack
QUEFFC : quantum efficiency (for optical photons)
RFLCTV : reflectivity (for optical photons)
RFRNDX : refraction index (for optical photons)
SOEVSV : saving source events
SOURCE : to generate any distribution for source particles
SPHSPC : to generate scintillation photons according to a spectrum
STUPRE : set user variables (electrons and photons)
STUPRF : set user variables (hadrons, muons and neutrinos)
UBSSET : to override input biasing parameters
UDCDRL : decay direction biasing
USFSCI : to set the number of scintillation photons produced per GeV
USIMBS : user-defined importance biasing
USREIN : event initialisation
USREOU : post-event output
USRGLO : user global settings
USRHSC : user provided density scaling factors
USRINI : user initialisation
USRMED : to perform user driven biasing and/or particle selections
on a material basis
USROUT : user output
USRRNC : user customisation of residual nuclei scoring
USTCKV : user customisation of Cherenkov photon production
WVLNSH : wave-length shitfing of optical photons
1********************************************************************************
5} Particle and material codes
********************************************************************************
5.1} Particles codes
--------------------
Each particle which can be transported by FLUKA is identified by an
alphanumeric name and by an integer number. Negative values of such numerical
identifiers are reserved to light and heavy ions, and to optical photons. The
value 0 indicates a pseudoparticle RAY, which can be used to scan the
geometry. Numbers > 200 designate "families" of particles, grouped according
to some common characteristics (all hadrons, or all charged particles, etc.).
In FLUKA, they are called Generalised Particles and can be used only for
scoring. Various forms of scored energy, transferred momentum, induced
activity etc. are also treated as Generalised Particles.
The identifier values are reported in the following Table, together with the
corresponding particle numbering scheme of the Particle Data Group [PDG].
Fluka name Fluka number Common name Standard PDG number
(Particle Data Group)
4-HELIUM (1) -6 Alpha ---
3-HELIUM (1) -5 Helium-3
TRITON (1) -4 Triton ---
DEUTERON (1) -3 Deuteron ---
HEAVYION (1) -2 Generic heavy ion with Z > 2
(see command HI-PROPE)
OPTIPHOT -1 Optical Photon ---
RAY (2) 0 Pseudoparticle ---
PROTON 1 Proton 2212
APROTON 2 Antiproton -2212
ELECTRON 3 Electron 11
POSITRON 4 Positron -11
NEUTRIE 5 Electron Neutrino 12
ANEUTRIE 6 Electron Antineutrino -12
PHOTON 7 Photon 22
NEUTRON 8 Neutron 2112
ANEUTRON 9 Antineutron -2112
MUON+ 10 Positive Muon -13
MUON- 11 Negative Muon 13
KAONLONG 12 Kaon-zero long 130
PION+ 13 Positive Pion 211
PION- 14 Negative Pion -211
KAON+ 15 Positive Kaon 321
KAON- 16 Negative Kaon -321
LAMBDA 17 Lambda 3122
ALAMBDA 18 Antilambda -3122
KAONSHRT 19 Kaon zero short 310
SIGMA- 20 Negative Sigma 3112
SIGMA+ 21 Positive Sigma 3222
SIGMAZER 22 Sigma-zero 3212
PIZERO 23 Pion-zero 111
KAONZERO 24 Kaon-zero 311
AKAONZER 25 Antikaon-zero -311
Reserved 26 --- ---
NEUTRIM 27 Muon neutrino 14
ANEUTRIM 28 Muon antineutrino -14
Blank 29 --- ---
Reserved 30 --- ---
ASIGMA- 31 Antisigma-minus -3222
ASIGMAZE 32 Antisigma-zero -3212
ASIGMA+ 33 Antisigma-plus -3112
XSIZERO 34 Xi-zero 3322
AXSIZERO 35 Antixi-zero -3322
XSI- 36 Negative Xi 3312
AXSI+ 37 Positive Xi -3312
OMEGA- 38 Omega-minus 3334
AOMEGA+ 39 Antiomega -3334
Reserved 40 --- ---
TAU+ 41 Positive Tau -15
TAU- 42 Negative Tau 15
NEUTRIT 43 Tau neutrino 16
ANEUTRIT 44 Tau antineutrino -16
D+ 45 D-plus 411
D- 46 D-minus -411
D0 47 D-zero 421
D0BAR 48 AntiD-zero -421
DS+ 49 D_s-plus 431
DS- 50 D_s-minus -431
LAMBDAC+ 51 Lambda_c-plus 4122
XSIC+ 52 Xi_c-plus 4232
XSIC0 53 Xi_c-zero 4132
XSIPC+ 54 Xi'_c-plus 4322
XSIPC0 55 Xi'_c-zero 4312
OMEGAC0 56 Omega_c-zero 4332
ALAMBDC- 57 Antilambda_c-minus -4122
AXSIC- 58 AntiXi_c-minus -4232
AXSIC0 59 AntiXi_c-zero -4132
AXSIPC- 60 AntiXi'_c-minus -4322
AXSIPC0 61 AntiXi'_c-zero -4312
AOMEGAC0 62 AntiOmega_c-zero -4332
Reserved 63 --- ---
Reserved 64 --- ---
(1) Heavy fragments produced in evaporation are loaded in a special stack
(COMMON FHEAVY, contained in the INCLUDE file with the same name).
The internal code for heavy evaporation fragments is the following:
3 = deuteron, 4 = 3-H, 5 = 3-He, 6 = 4-He, 7-12 = fission fragments.
Transport capabilities (dE/dx, with account of effective charge and
effective charge straggling, multiple Coulomb scattering, no interaction
yet) are now available for d, t, 3-He and 4-He. Heavier ions can be
transported on demand (see option IONTRANS), with or without nuclear
interactions. Fission fragments and fragments from Fermi break-up, when
produced, are also put in COMMON FHEAVY with id's ranging from 7 to 12
(usually 7 and 8 for two fragments).
(2) A "RAY" is not a real particle, but a straight line trajectory through the
FLUKA geometry. When a primary particle (defined by options BEAM and
BEAMPOS, or by a SOURCE subroutine) is found to be a RAY, the program
tracks through the geometry in the given direction calculating a number of
quantities (distance traversed in each material, number of radiation
lengths, number of interaction lengths etc.). See 14} for instructions
about its use.
Generalised particles (to be used only for scoring):
--- 40 Low-energy neutrons (used only in some input
options)
ALL-PART 201 All transportable particles
ALL-CHAR 202 All charged particles
ALL-NEUT 203 All neutral particles
ALL-NEGA 204 All negative particles
ALL-POSI 205 All positive particles
NUCLEONS 206 Protons and neutrons
NUC&PI+- 207 Protons, neutrons and charged pions
ENERGY 208 For dose scoring: Deposited energy
For energy fluence scoring: Kinetic energy
PIONS+- 209 Charged pions
BEAMPART 210 Primary (source or beam) particles
EM-ENRGY 211 Electromagnetic energy (of electrons, positrons
or photons)
MUONS 212 Muons
E+&E- 213 Electrons and positrons
AP&AN 214 Antiprotons and antineutrons
KAONS 215 All kaons
STRANGE 216 All kaons and all hyperons and anti-hyperons
(i.e., all strange particles)
KAONS+- 217 Charged kaons
HAD-CHAR 218 Charged hadrons
FISSIONS 219 Fissions
HE-FISS 220 High energy fissions
LE-FISS 221 Low energy fissions
NEU-BALA 222 Neutron balance (algebraic sum of outgoing
neutrons minus incoming neutrons for all
interactions)
HAD-NEUT 223 Neutral hadrons
KAONS0 224 Neutral kaons
C-MESONS 225 Charmed mesons
C-(A)BAR 226 Charmed (anti)baryons
CHARMED 227 Charmed hadrons
DOSE 228 Dose (energy deposited per unit mass, GeV/g)
UNB-ENER 229 Unbiased deposited energy (GeV) (3)
UNB-EMEN 230 Unbiased electromagnetic energy (of electrons,
positrons or photons) (GeV) (3)
X-MOMENT 231 X component of momentum transfer (GeV/c)
Y-MOMENT 232 Y component of momentum transfer (GeV/c)
Z-MOMENT 233 Z component of momentum transfer (GeV/c)
ACTIVITY 234 Activity per unit volume (Bq/cm3) (4)
ACTOMASS 235 Activity per unit mass (Bq/g) (4)
SI1MEVNE 236 Silicon 1 MeV-neutron equivalent fluence (cm-2)
HADGT20M 237 Fluence of hadrons with energy > 20 MeV (cm-2)
Unstable hadrons (but neutrons) of lower
energies are also counted
NIEL-DEP 238 Non Ionising Energy Loss deposition (GeV) (5)
DPA-SCO 239 Displacements per atoms with efficiency function
DOSE-EQ 240 Dose Equivalent (pSv) (6)
DOSE-EM 241 Dose Electromagnetic only (GeV/g)
NET-CHRG 242 Net charge (in units of elementary electron charge)
DOSEQLET 243 Dose equivalent with Q(LET) (GeV/g) (7)
RES-NIEL 244 Restricted above damage threshold NIEL
deposition (GeV) (5)
LOWENNEU 246 Low energy (E<20 MeV) neutrons
NTLOWENE 247 High energy (E>20 MeV) neutrons
ALL-IONS 248 All nuclei with mass number equal or larger than 2
HEHAD-EQ 249 High energy hadron equivalent fluence (cm-2) (8)
THNEU-EQ 250 Thermal neutron equivalent fluence (cm-2) (9)
RES-NUCL 251
DOSE-H2O 252 Dose to water
ALPHA-D 253
SQBETA-D 254
LGH-IONS 255 All ions equal or lighter than alphas included
HVY-IONS 256 All ions heavier than alphas
E+E-GAMM 257 e+/- and photons
ANNIHRST 258 Positron annihilations at rest
DPA-NRT 259 NRT Displacements per atoms
(3) "Unbiased energy" means that the energy deposited (or the energy fluence)
is scored with weight 1, independent of the actual weight of the particle.
Of course, the result will have no physical meaning, but in some
circumstances it will provide useful information about the run itself (for
instance in order to optimise biasing).
(4) "Activity per unit volume" and "Activity per unit mass"
are meaningful only when used within a 2D or 3D USRBIN estimator
associated (by means of the DCYSCORE option) with a decay time defined
with the DCYTIMES option. The resulting output units are Bq/cm**3 and
Bq/g respectively, unless a binning by region or a special binning is
requested, in which case the output is Bq or Bq cm**3/g.
(5) "Non Ionizing Energy Loss deposition" describes the energy loss
due to atomic displacement (recoil nucleus) as a particle traverses a
material. The "Restricted NIEL deposition" gives the same energy loss but
restricted to recoils having an energy above the damage threshold defined
for each material with the use of MAT-PROP with SDUM=DPA-ENER.
(6) "Dose equivalent" is computed using various sets of conversion
coefficients (see AUXSCORE for details) converting particle fluences
into Ambient Dose equivalent or Effective Dose. Dose Equivalent of
particles for which conversion coefficients are not available, typically
heavy ions, can be calculated by scoring generalised particle DOSEQLET.
(7) "Dose equivalent" is computed using the Q(LET) relation as
defined in ICRP60 [ICRP60], where LET is LET_oo in water.
(8) "High energy hadron equivalent fluence" is proportional to the number of
Single Event Upsets (SEU's) due to hadrons with energy > 20 MeV. Unstable
hadrons (but neutrons) of lower energies are also counted. Neutrons
of lower energies are weighted according to the ratio of their SEU cross
section to the one of > 20 MeV hadrons (substantially reflecting the
(n,alpha) cross section behaviour in different microchip materials)
[Roe11,Roe12].
(9) "Thermal neutron equivalent fluence" is proportional to the number of
SEU's due to thermal neutrons. Neutrons of higher energies are weighted
according to the ratio of their capture cross section to the one of
thermal neutrons (following the 1/v law) [Roe11,Roe12].
5.2} Pre-defined materials
--------------------------
Materials can be easily defined by option MATERIAL by assigning a density, a
name, a code number (compulsory only if the input has been defined as purely
numeric), and, in the case of single elements, an atomic number and an atomic
weight. For compounds, the MATERIAL option card must be accompanied by a
COMPOUND definition referred to the same material name. If low-energy neutrons
(E < 20 MeV) need to be transported, the chosen name of a single element
material must coincide with that of one for which cross sections are available
(see Table in 10}).
However, for user's convenience, 25 common single-element materials are
already pre-defined (see Table below): they are assigned a default density,
name and code number even if no MATERIAL definition has been given. The user
can override any of these if desired (but cannot change the code number), and
can add more material definitions by means of one or more MATERIAL cards. The
only constraints are:
* the number sequence of the defined materials must be UNINTERRUPTED, i.e.,
there may not be any gap in the numbering sequence from 25 onwards. If the
input is name-based, omitting the material number is the easiest way to
ensure this, since the code will assign a correct number automatically.
* if one of the pre-defined materials is re-defined using the same name, its
number (if expressed explicitly) must be equal to that of the pre-defined
material.
Note that the above constraints can be ignored if the input is name-based and
the material number in the MATERIAL option is left blank. In that case, the
material name must be used in all relevant command (e.g. ASSIGNMAt, COMPOUND).
In addition to the 25 pre-defined single-element materials, some pre-defined
compounds are available. For them, the stopping power of charged particles is
not calculated directly from the component elements by the Bragg formula, but
the Sternheimer parameters and the ionisation potential recommended by ICRU
[ICRU84] are applied. Composition is also that recommended by ICRU. Reference
to these pre-defined compounds is normally by name and no MATERIAL and
COMPOUND cards are needed: if the input is explicitly number-based only (via
command GLOBAL), a number needs to be assigned to them using a MATERIAL card,
of course leaving no gaps in the numbering sequence.
If a user defines a compound with the same name and similar composition, the
code automatically "matches" its stopping power parameters to those of the
pre-defined one. It is also possible to modify the Sternheimer parameters with
command STERNHEIme and the ionisation potential with MAT-PROP.
List of pre-defined single-element FLUKA materials
--------------------------------------------------
FLUKA name FLUKA Common name A Z Density
number [g/cm^3]
BLCKHOLE 1 Blackhole or External Vacuum 0 0 0
VACUUM 2 Vacuum or Internal Vacuum 0 0 0
HYDROGEN 3 Hydrogen 1.00794 1. 0.0000837
HELIUM 4 Helium 4.002602 2. 0.000166
BERYLLIU 5 Beryllium 9.012182 4. 1.848
CARBON 6 Carbon 12.0107 6. 2.000
NITROGEN 7 Nitrogen 14.0067 7. 0.00117
OXYGEN 8 Oxygen 15.9994 8. 0.00133
MAGNESIU 9 Magnesium 24.3050 12. 1.740
ALUMINUM 10 Aluminium 26.981538 13. 2.699
IRON 11 Iron 55.845 26. 7.874
COPPER 12 Copper 63.546 29. 8.960
SILVER 13 Silver 107.8682 47. 10.500
SILICON 14 Silicon 28.0855 14. 2.329
GOLD 15 Gold 196.96655 79. 19.320
MERCURY 16 Mercury 200.59 80. 13.546
LEAD 17 Lead 207.2 82. 11.350
TANTALUM 18 Tantalum 180.9479 73. 16.654
SODIUM 19 Sodium 22.989770 11. 0.971
ARGON 20 Argon 39.948 18. 0.00166
CALCIUM 21 Calcium 40.078 20. 1.550
TIN 22 Tin 118.710 50. 7.310
TUNGSTEN 23 Tungsten 183.84 74. 19.300
TITANIUM 24 Titanium 47.867 22. 4.540
NICKEL 25 Nickel 58.6934 28. 8.902
List of pre-defined ICRU compounds
----------------------------------
Fluka name Common name Density
[g/cm^3]
WATER Water 1.0
POLYSTYR Polystyrene 1.06
PLASCINT Plastic scintillator 1.032
PMMA Polymethyl methacrylate, Plexiglas, Lucite, Perspex 1.19
BONECOMP Compact bone 1.85
BONECORT Cortical bone 1.85
MUSCLESK Skeletal muscle 1.04
MUSCLEST Striated muscle 1.04
ADTISSUE Adipose tissue 0.92
KAPTON Kapton polyimide film 1.42
POLYETHY Polyethylene 0.94
AIR Dry air at NTP conditions 0.00120479
5.3} Physical units
-------------------
Physical units consistently used in FLUKA input and output are:
distance cm (and derived units cm^2 for areas and cm^3 for volumes)
energy GeV
Exceptions:
eV is used for average ionisation potential and for damage
energy threshold input by option MAT-PROP
g/(MeV cm^2) is used for the first Birks coefficient input
by option TCQUENCH, and g^2/(MeV^2 cm^4) for the second
coefficient.
momentum GeV/c
temperature degree Kelvin
solid angle sr (exception: degrees may be used, on user's request, with
option USRYIELD)
magnetic field T
electric field MV/m
time s (option TCQUENCH) or ns (option TIME-CUT)
activity Bq
LET keV/(micrometer g/cm^3)
dose equivalent pSv
1********************************************************************************
6} General features of FLUKA input
********************************************************************************
The input of FLUKA consists of a text file containing a sequence of option
lines (often called "cards") which are followed sometimes by data cards
specific of the option (or command) requested. Option cards have all the same
structure, and can be read in fixed format or in free format. A description
of free format is given in 7}, options GLOBAL and FREE.
Syntax:
CODEWD, (WHAT(I), I = 1, 6), SDUM
(the fixed format is A8, 2X, 6E10.0, A8)
where:
* CODEWD is the option keyword
* The WHAT-parameters are numerical data (or logical data in numerical form)
* SDUM, if present, contains character data (only in two exceptional cases,
the STERNHEIme and WW-FACTOr options, SDUM contains numerical information)
Since 2006, a very practical and appealing feature has been introduced: INPUT
BY NAMES. This means that the numeric WHAT fields can be filled with
pre-defined or user-defined names, such as:
- material names
- particle or generalised particle names
- region names, if the geometry too is written in free format "name" based
- estimator names
- detector/binning names
Names must be at most 8 character long, with the exception of detector names
(estimator options (USRBDX, USRTRACK, USRCOLL, USRBIN, USRYIELD, RESNUCLEi)
which can be 10 character long. Leading and trailing blanks are automatically
stripped, and the input parser is case sensitive.
A special name (@LASTMAT, @LASTPAR, @LASTREG) can be used corresponding to the
largest material number, particle id, and region number respectively.
Name values and numeric values can both be used in the same input file, since
the program is able to distinguish a numeric field from a character field. For
this reason, names that can be interpreted as numbers must be avoided. This
means that old numeric inputs need no modification. Fully-numeric
interpretation, however, can be forced by means of the GLOBAL card.
Due to the introduction of input by names, input data cards are no longer
interpreted in the same order as in the input file, therefore the echo on
standard output will look different from the original input.
When using numeric fields, note that even if the values to be assigned
to WHAT-parameters were logically integers, because of the format used
they must be given with a decimal point.
The order of the input cards is almost free, with the following exceptions:
* GLOBAL declarations, if present, must precede any executable option.
* Option DEFAULTS must be issued at the very beginning of input.
It can be preceded only by a GLOBAL card and by command TITLE.
* The START command initiates execution. While old versions of FLUKA were
allowing multiple re-starts, only the first START command is executed now.
Thus any input given after START is ignored, with the exception of
USROCALL and STOP.
* The STOP command stops the execution of the program. Thus any input present
after STOP is ignored.
* Some option cards must or can be immediately followed by a variable amount
of information, not always in the standard format indicated above. These
are:
- OPEN is generally followed by the name of the file to be opened (scratch
files are an exception)
- DETECT, USRBIN, USRBDX, USRCOLL, USRTRACK, USRYIELD, EVENTBIN, EVENTDAT:
data concerning user-defined detectors and binnings extend in general
over two cards. The second card ("continuation card") must come after the
first, but doesn't need to follow it immediately. A continuation card
may be needed also for option GEOEND, when used to invoke the geometry
debugger.
- Input included between GEOBEGIN and GEOEND:
geometry data must be given in a well-defined order and in a special
format between a GEOBEGIN and a GEOEND definition (but the LATTICE and
VOXELS geometry options, and the GEOBEGIN and GEOEND cards themselves
follow the normal FLUKA format convention).
- PLOTGEOM:
Unless a different logical input unit is specified, the call to the
PLOTGEOM program must be followed immediately by the PLOTGEOM input,
in special format.
- TITLE:
the card following the TITLE command is considered as the title of the
run and is reproduced in the output.
* For old, fully numeric input format ONLY:
- In some cases, the MAT-PROP option must be requested after the
corresponding MATERIAL card.
- The PLOTGEOM command must be issued after the geometry input, and,
in case the user chooses to plot only boundaries between different
materials, it must come also after all the ASSIGNMAt cards.
It is also recommended that PLOTGEOM be issued before any biasing
and any other option which makes use of permanent and/or temporary
storage.
Most definitions have some default values. If these are acceptable, it is not
compulsory that the corresponding option card appear explicitly in the input
sequence. Furthermore for most WHAT and/or SDUM parameters a default value
(that may be different from the default value when the definition has not been
input) is applied if the corresponding field is left blank (or set = 0.0) in
the input card.
Several option cards may appear more than once in the input sequence. In most
cases, each of such additional cards obviously adds more definitions to those
already given, provided they are different and not contradictory. In case of
conflict, the last given generally overrides the previous one(s). This feature
may be successfully exploited in the numerous cases where whole arrays are
assigned according to the scheme:
"From .... to .... in step of ...." (corresponding to a Fortran DO-loop)
making the input more compact. An example can be found below in the
description of option ASSIGNMAt, which is used to set a one-to-many
correspondence between material numbers and region numbers.
In most cases of such "DO-loop" assignments, especially when the same option
card can be used to assign a value to more than one quantity, a blank or zero
field does not assign the default value but leaves the previously given value
unchanged. To remove any possible ambiguity, resetting the default value needs
then to be done explicitly (generally -1. has to be input in such cases).
"DO-loop" assignments can be used also when the input is name-based, since the
program replaces each name by the corresponding numerical index. The
correspondence can be found by examining the output frolm a short test run:
however, it must be remembered that adding a new material, or a new region,
will change the numerical sequence unless the new item is issued as the last
of material or region definitions. In this case, if the "DO-loop" indicates
all materials, or all regions, using the generic names @LASTMAT and @LASTREG
makes a modification of the assignment definition unnecessary.
All defaults and exceptions are listed under the description of each FLUKA
input option. Different defaults, tuned to the type of application of
interest, can be specified using the option DEFAULTS.
6.1} The input preprocessor
---------------------------
FLUKA, since 2005, comes bundled with an internal preprocessor, a simplified
version of a C-like preprocessor. The preprocessor can modify the input file
before it is executed with the use of conditions. Presently the functionality
is limited to 3 types of directives, DEFINITION, CONDITIONAL and INCLUDE.
The preprocessor is a particularly useful way to include or remove blocks of
input cards, allowing a more flexible and easy organisation of an input file,
and to parameterize input parameters allowing for an easy an safe way of
varying them just modifying a #define statement. One can write the input file
around a few directives to allow easier debugging, changingthresholds,
biasing and scoring cards for the final production.
Syntax
------
All preprocessor directives are single lines starting with the # character in
the first column and can appear anywhere in the input file, either between
normal input cards or inside the geometry definition (inline or externally
defined). Each identifier can be up to 40 characters in length.
Definition of Constants
-----------------------
With the DEFINITION DIRECTIVES one can define identifiers to be used later for
inclusion or removal parts of the input file:
#define [identifier_name]
defines [identifier_name] without giving it a value. This can be used in
conjunction with another set of directives that allow conditional execution.
#define [identifier_name] [value]
defines [identifier_name] giving it a value [value]. [value] can be a
numeric or character value and its definition can be up to 40 characters in
length. This can be used in conjunction with another set of directives that
allow conditional execution, or to assign the value [value] anywhere in the
input cards, geometry included, by referencing to it as $[identifier_name].
Examples:
#define Ekbeam 100.0
#define Beampart PROTON
...
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM -$Ekbeam $BeamPart
...
#define Zbeam -100.0
...
BEAMPOS 0.0 0.0 $Zbeam
...
#define Xbox +10.0
#define Ybox +20.0
#define Zbox +50.0
...
RPP TargBox -$Xbox $Xbox -$Ybox $Ybox -$Zbox $Zbox
...
#define Targmat IRON
...
ASSIGNMAt $Targmat 1.0 @LASTREG
...
The following names [identifier_name] are predefined (be careful they
are case sensitive):
- Pipipi: pi (3.1415...)
- Minute: minute (60 s)
- Hour : hour (3600 s)
- Day : day (86400 s)
- Week : week (604800 s)
- Month : month, 1/12 of a mean tropical year (365.242374/12 x Day s)
- Year : mean tropical year (365.242374 x Day s)
#undef [identifier_name]
deletes any previously defined [identifier_name].
Conditional directives
----------------------
With the CONDITIONAL DIRECTIVES one can include or remove parts of the input
file before execution. The #if, #elif, #else blocks must be terminated with a
closing #endif. There is a maximum of 10 nesting levels that can be used.
#if [identifier_name]
...
#elif [identifier_name]
...
#else
...
#endif
The #if and #elif (else-if) directive is followed by an identifier. If the
identifier is defined then the statement evaluates to true, otherwise to false.
Example:
#define DEBUG
#define PLOT1
...
#if DEBUG
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GEOEND 100.0 100.0 100.0 -100.0 -100.0 -100.0 DEBUG
GEOEND 50.0 50.0 50.0 &
#else
GEOEND
#endif
...
#if PLOT1
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
PLOTGEOM 1.0 -2000.0
MBWD6L1
-100.0 0.0 -21620.0 100.0 0.0 -21250.0
1.0 0.0 0.0 0.0 0.0 1.0
-100.0 0.0 -21200.0 100.0 0.0 -20800.0
STOP
#endif
Include directive
-----------------
The INCLUDE DIRECTIVE switches the input stream from the original input file to
a different file, and back to the original file after the end-of-file is met.
It can be applied also to geometry input. Include directives can be nested at
multiple levels.
#include [path/filename]
where "path" can be an absolute path, or a relative path (relative to the
"launching" directory).
Example:
#include /home/geometries/target2.geom
#include frontplanes.geom
Parametric expressions
-----------------------
The PARAMETRIC EXPRESSIONS allow to use symbolic algebra in the definition
of input parameters. They are an extension of the DEFINITION DIRECTIVES
where instead of defining a numeric or character value, the user can define
a complex arithmetical expression which can make use of various mathematical
operators and functions and/or of previously defined values.
#define [identifier_name] [expression]
defines [identifier_name] giving it the value corresponding to the
evaluation of the mathematical expression [expression]. The definition
of [expression] can be up to 60 characters in length and cannot contain
any blank character. [expression] can make use of previously defined
[identifier_name]s, of the mathematical operators "+", "-", "*", "/"
and "^" (power), and of the following standard (fortran) mathematical
functions (please note that they are case sensitive):
- Sin([argument])
- Cos([argument])
- Tan([argument])
- Exp([argument])
- Log([argument])
- Abs([argument])
- Sind([argument])
- Cosd([argument])
- Tand([argument])
- Asin([argument])
- Acos([argument])
- Atan([argument])
- Sqrt([argument])
- Sinh([argument])
- Cosh([argument])
- Asind([argument])
- Acosd([argument])
- Atand([argument])
- Asinh([argument])
- Acosh([argument])
The function argument [argument] must be enclosed in parentheses as shown
above, and can be a simple numerical factor, or an [identifier_name]!, or
another mathematical expression. The expression [expression] can contain
several levels of nested parentheses, and it is evaluated according to the
rules of symbolic algebra.
The value eventually assigned to an [identifier_name] defined by means of
an expression [expression] is echoed on the output file, and on a special
copy of the input file ([input name]-echo.inp) which is automatically
generated in the directory from where Fluka has been launched and which
contains only the active parts of the input. The creation or not of the
echo input file can be controlled by means of the environmental variable
FLUKAECHO. If FLUKAECHO is set to y/Y/Yes/yes/1 the echo input file is
always created and retained, if FLUKAECHO is set to n/N/No/no/0 the
echo input file is never created. The default action (FLUKAECHO undefined
or with an invalid value) is to create a temporary echo input file and
retain it if there is at least one parametric expression in the input,
deleting it otherwise.
Examples:
#define Pbeam 7000.0
#define Zbeam 1.0
...
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM $Pbeam PROTON
...
#define Km 100000.0
#define RadCurv 27.0*Km/2.0/Pipipi
...
#define RadInner RadCurv-100.0
#define RadOuter RadCurv+100.0
...
ZCC LHCinner 0.0 0.0 $RadInner
ZCC LHCouter 0.0 0.0 $RadOuter
...
#define MagnNumb 1000.0
#define MagChord 2.0*RadCurv*Sind(360.0/MagnNumb/2.0)
...
RCC Magnet 0.0 0.0 0.0 $MagChord 0.0 0.0 50.0
...
#define AvBField Pbeam/RadCurv/Zbeam/2.99792458E-03
...
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MGNFIELD 30.0 0.1 0.75 0.0 0.0 $AvBField
...
1********************************************************************************
7} Description of FLUKA input options
********************************************************************************
There are more than 80 option keywords available for input in FLUKA. A summary
is given in the next section, where the commands will be shortly introduced and
grouped by type of functionality. Some of the commands, which can provide
several different services, will be mentioned in the context of more than one
group.
A complete description of each command will follow, in alphabetical order.
Introduction to the FLUKA input options
Summary of the available options.
Here is a list of the options (commands) that are at the disposal of the FLUKA
user to prepare an input file. In the rest of this section, the same commands
will be presented by grouping them according to the different services they can
provide.
ASSIGNMAt defines the correspondence between region and material indices and
defines regions where a magnetic field exists
AUXSCORE allows to filter scoring detectors of given estimator type with
auxiliary (generalized) particle distributions and dose equivalent
conversion factors, and with isotope ranges
BEAM defines most of the beam characteristics (energy, profile,
divergence, particle type)
BEAMAXES defines the axes used for a beam reference frame different from the
geometry frame
BEAMPOS defines the starting point of beam particles and the beam direction
BIASING sets importance sampling (Russian Roulette/splitting) at boundary
crossings and at high-energy hadronic collisions on a region by
region basis
COMPOUND defines a compound or a mixture or a mixture of isotopes
CORRFACT allows to alter material density for dE/dx and nuclear processes on
a region-by-region basis
DCYSCORE associates selected scoring detectors of given estimator type with
user-defined decay times
DCYTIMES defines decay times for radioactive product scoring
DEFAULTS sets FLUKA defaults for specified kinds of problems
DELTARAY activates delta-ray production by heavy charged particles and
controls energy loss and deposition
DETECT scores energy deposition in coincidence or anti-coincidence with a
trigger, on an event by event basis
DISCARD defines the particles which must not be transported
ELCFIELD sets the tracking conditions for transport in electric fields and
possibly defines an homogeneous electric field
EMF requests detailed transport of electrons, positrons and photons
EMF-BIAS defines electron/photon leading particle biasing or biases
electron/photon interaction length
EMFCUT sets energy cutoffs for electrons, positrons and photons, for
transport and production, or for switching off some physical
interactions
EMFFIX sets the size of electron steps corresponding to a fixed fraction
loss of the total energy
EMFFLUO activates production of fluorescence X rays in selected materials
EMFRAY activates Rayleigh (coherent) scattering in selected regions
EVENTBIN scores energy or star densities in a binning structure independent
from the geometry, and prints the binning output after each "event"
(primary history)
EVENTDAT prints event by event the scored star production and/or energy
deposition in each region, and the total energy balance
EXPTRANS requests exponential transformation ("path stretching") (not yet
implemented)
FLUKAFIX sets the size of the step of muons and charged hadrons to a fixed
fraction loss of the kinetic energy
FREE switches to free-format input (geometry excluded)
GCR-SPE initialises Galactic Cosmic Ray calculations
GEOBEGIN starts the geometry description
GEOEND ends the geometry description; can also be used to activate the
geometry debugger
GLOBAL issues global declarations about the class of the problem (analogue
or weighted) and about the complexity of the geometry. It also
allows to use free format input (geometry included)
HI-PROPE defines the properties of a heavy ion primary
IONFLUCT calculates ionisation energy losses with fluctuations
IRRPROFI defines an irradiation profile for radioactive decay calculations
LAM-BIAS biases decay length and interaction length
LOW-BIAS requests non-analogue absorption and defines the energy cutoff for
low-energy neutron transport on a region by region basis
LOW-DOWN biases the downscattering probability in low energy neutron
transport on a region by region basis
LOW-MAT sets the correspondence between FLUKA materials and low-energy
neutron cross section data
LOW-NEUT requests low-energy neutron transport
LOW-PWXS sets the correspondence between the Fluka and the pointwise low
energy neutron xsec materials
MATERIAL defines a material and its properties
MAT-PROP supplies extra information about gaseous materials and materials
with fictitious or inhomogeneous density and defines other material
properties
MCSTHRES defines energy thresholds for applying the multiple Coulomb
scattering algorithm to the transport of muons and charged hadrons
MGNFIELD sets the tracking conditions for transport in magnetic fields
and possibly defines a homogeneous magnetic field
MULSOPT controls optimisation of multiple Coulomb scattering treatment. It
can also request transport with single scattering
MUPHOTON controls photonuclear interactions of high-energy heavy charged
particles (mediated by virtual photons)
OPEN defines input/output files without pre-connecting
OPT-PROP defines optical properties of materials
OPT-PROD controls Cherenkov and Transition Radiation photon production
PAIRBREM controls simulation of pair production and bremsstrahlung by
high-energy heavy charged particles
PART-THR sets different energy cutoffs for selected particles
PHOTONUC activates photon and electron interactions with nuclei, and
photomuon production
PHYSICS controls some physical processes for selected particles
PLOTGEOM calls the PLOTGEOM package to draw a slice of the geometry
POLARIZA defines polarised beams (only for photons at present)
RAD-BIOL reading BIOlogical parameter CaRDs
RADDECAY requests simulation of radioactive decays and sets the corresponding
biasing and transport conditions
RANDOMIZe sets the seeds and selects a sequence for the random number
generator
RESNUCLEi scores residual nuclei after inelastic hadronic interactions
ROT-DEFIni defines rotations/translations to be applied to user-defined
binnings
ROTPRBIN sets the storage precision (single or double) and assigns possible
rotations/translations for a given user-defined binning (USRBIN or
EVENTBIN)
SCORE defines the energy deposited or the stars to be scored by region
SOURCE tells FLUKA to call a user-defined source routine
SPECSOUR calls special pre-defined source routines (synchrotron radiation
photons, particles created by colliding beams or by cosmic ray
sources, USRBIN as source, multiple beam spots).
SPOTBEAM defines multiple beam spots in the corresponding special source case
SPOTDIR defines multiple beam spots in the corresponding special source case
SPOTPOS defines multiple beam spots in the corresponding special source case
SPOTTRAN defines transformation for multiple beam spots
START defines the number of primary particles to follow, gets a primary
particle from a beam or from a source, starts the transport and
repeats until the predetermined number of primaries is reached
STEPSIZE sets the maximum step size in cm (by region) for transport of
charged particles
STERNHEIme allows users to input their own values of the density effect
parameters
STOP stops input reading
TCQUENCH sets scoring time cutoffs and/or Birks quenching parameters
THRESHOLd defines the energy threshold for star density scoring, and sets
thresholds for elastic and inelastic hadron reactions
TIME-CUT sets transport time cutoffs
TITLE gives the title of the run
TPSSCORE This card controls some scoring parameters relevant for TPS-like
calculations
USERDUMP requests a collision file and defines the events to be written
USERWEIG defines extra weighting to be applied to scored yields, fluences,
doses, residual nuclei or star densities (at scoring time)
USRBDX defines a detector for a boundary crossing fluence or current
estimator
USRBIN scores energy, star density or particle fluence in a binning
structure independent from the geometry
USRCOLL defines a detector for a collision fluence estimator
USRGCALL calls user-dependent global initialisation
USRICALL calls user-dependent initialisation
USROCALL calls user-dependent output
USRTRACK defines a detector for a track-length fluence estimator
USRYIELD defines a detector for scoring particle yield around a given
direction
WW-FACTOr defines weight windows in selected regions
WW-PROFIle defines energy group-dependent extra factors ("profiles") to modify
the basic setting of the low-energy neutron weight windows in
selected sets of regions, or the low-energy neutron importances in
each region
WW-THRESh defines the energy limits for a RR/splitting weight window
7.1} Basic commands
-------------------
Most FLUKA commands are optional, and if anyone of them is not used an
appropriate set of defaults is provided. A few commands, however, are nearly
always needed in order to provide a meaningful definition of the problem to be
studied.
In general, for a problem to be fully determined, the following elements need
to be defined:
1) the radiation source
2) the geometrical layout
3) the materials
4) the requested results
5) setting of parameters, accuracy, conditions, and in general technical
directives to the program on how the calculation shall be performed
Defaults are provided in FLUKA for all the above features, but those for
items 1), 2) and 3) are unlikely to be useful: therefore the few commands used
to define source, geometry and materials are practically always present in the
input file.
For what concerns item 4), the user has a choice of several options to request
the estimation of various radiometric quantities. Of course, there is no much
point in running the program without requesting any result, but in a phase of
input preparation it is quite common to have a few runs without any scoring
commands. A typical minimum input containing only specifications for the above
items 1), 2) and 3) will still produce some useful information. Looking at the
standard FLUKA output, the user can do several consistency checks, and can get
some better insight into the problem from the final statistics and energy
balance.
The last part of problem definition, element 5) (setting) is important but is
supported by very robust defaults. In many cases, the only user concern should
consist in choosing the right set of defaults. However, there are some
applications which require explicit setting commands, for instance to request
photonuclear reactions for electron accelerator shielding.
7.2} Definition of the radiation source
---------------------------------------
The simplest particle source is pointlike, monoenergetic and monodirectional,
that is, a "particle beam". Option BEAM, fully described later, is used to
define the particle type and momentum (or energy). If desired, this option can
also define an energy spread, a beam profile shape and an angular divergence.
However, the two latter distributions are restricted to a beam directed in
the positive z direction: to describe divergence and beam profile for an
arbitrary beam direction it is necessary to define a beam reference frame by
means of option BEAMAXES.
The energy declared with BEAM is used by the program to initialise
cross section tables and other energy-dependent arrays: therefore that command
must always be present, even when a more complex source is described by means
of a user routine.
The particle starting point and direction are declared by means of option
BEAMPOS. If BEAMPOS is not present, the beam particles are assumed to start
from the origin of the coordinates 0., 0., 0. and to be directed along the z
axis. It is important that the starting point be not on a boundary and not
inside a blackhole region. In many cases, starting in vacuum upstream of the
actual target can be convenient.
BEAMPOS can be used also to define sources extended in space (spherical,
cylindrical, etc.) Both BEAM and BEAMPOS commands can be placed anywhere in the
input file, before the START command.
Some special particle sources can be defined with command SPECSOUR: synchrotron
radiation photons, cosmic rays, particles produced by colliding beams.
Particle sources with more complicated features (with arbitrary distribution in
energy, space, angle, time, and even with more than one type of particle) can
be described by a user-written subroutine SOURCE. To call it, a command SOURCE
must be present in input.
7.3} Description of the geometry
--------------------------------
The Combinatorial Geometry used by FLUKA is based on two important concepts:
bodies and regions. The first ones are closed solid bodies (spheres,
parallelepipeds, etc.) or semi-infinite portions of space (half-spaces,
infinite cylinders) delimited by surfaces of first or second degree. The user
must combine bodies by boolean operations (addition, intersection and
subtraction) to perform a complete partition of the space of interest into
regions, namely cells of uniform material composition. One important rule to
remember is that inside the space of interest, defined by means of an external
closed body, every point must belong to one and only one region.
Input for the geometry description, which has its own format and rules,
explained in Chap. 9, must be contained between a GEOBEGIN and a GEOEND card.
These two cards follow the normal FLUKA input syntax. An option offered by the
GEOBEGIN command is to read the geometry input from a separate file. Command
GEOEND can be used also to invoke the geometry debugger, a check which is
always strongly recommended.
Geometry input, sandwiched between a GEOBEGIN and a GEOEND card can be placed
anywhere in the input file (before the START command). It is mandatory in all
cases.
An optional command related to geometry is PLOTGEOM. It is used to display
sections of the geometry and needs to read its own input, as explained later.
7.3.1} The FLUKA geometry reference frame
-----------------------------------------
The FLUKA geometry, described in Chap. 8}, and all particle space coordinates
(position x, y, z, and corresponding direction cosines) are based on a
right-handed Cartesian reference frame. The origin of the frame (0, 0, 0) and
the direction of the three perpendicular axes can be chosen arbitrarily by the
user, but by default a particle beam and its space characteristics (angular
divergence, transversal profile, polarisation) are referred to a beam direction
coincident with the z-axis of the geometry frame of reference. A different beam
direction can be specified by means of command BEAMAXES: see a description of
the command and especially the corresponding Notes.
Also some scoring structures (binnings, see command USRBIN) are defined as
meshes parallel to the reference axes, and in the case of cylindrical binnings
the basic axis is again the z-axis. In a similar way, some geometrical bodies
(planes, parallelepipeds, infinite cylinders) are described by their
orientation with respect to the axes. But rototranslation transformations,
defined by commands ROT-DEFIni and ROTPRBIN, allow the user to input binnings
and geometrical bodies with arbitrary orientation with respect to axes.
7.4} Materials
--------------
Materials in FLUKA are identified by a name (an 8-character string) and by a
number, or material index. Both are used to create correspondences, for
instance between region number and material number, or between material name
and neutron cross section name.
Some materials are already pre-defined. A Table in 5} lists the 25 available
pre-defined materials with their default name, index number, density, atomic
number and atomic weight. The user can either refer to any one of them as it is,
or override it with a new number, name and other properties, or define a new
material. In the latter two cases, the new material definition is done by
option MATERIAL. If the material is not a single element or isotope, but a
compound, mixture or alloy, a command COMPOUND, extended on as many cards as
necessary, is needed to specify its atomic composition. The correspondence
between the material and the composition is set using the same name in the
MATERIAL and in the COMPOUND cards. Note that material names, if low-energy
neutron transport is desired, cannot be assigned arbitrarily but must match one
of the names available in the FLUKA cross section library (see Table in
Chap. 10}.
Once all the materials to be assigned to the various geometry regions have been
defined (either explicitly with MATERIAL or implicitly in the pre-defined
list), it is necessary to specify of which material each region is made, by
setting a correspondence material index --> region number. This is done by
command ASSIGNMAt.
Command ASSIGNMAt is used also to indicate that a magnetic field exists inside
one or more given regions: in this case a command MGNFIELD is needed to specify
intensity and direction of a constant magnetic field, or a complex one defined
by a user routine as explained below. Note that in practice at least one
ASSIGNMAt command must always be present.
A less common kind of correspondence is set by option LOW-MAT. By default, the
correspondence between a material and a low-energy neutron cross section set
established by name, but in some circumstances this cannot be done, for
instance when two different materials share the same cross section set, or when
two cross section sets have the same name. Option LOW-MAT can be used to set a
different correspondence.
Another FLUKA option concerning the definition of materials is MAT-PROP. It is
used for a variety of purposes: to describe porous, inhomogeneous or gas
materials, to override the default average ionisation potential, to set a
threshold energy for DPA calculations and to request a call to a special user
routine when particles are transported in a given material.
7.5} Setting options
--------------------
Many FLUKA input options are not used to describe the radiation transport
problem but to issue directives to the program about how to do the
calculations. Other options are used just to select a preferred input format.
We refer to these options as "setting options".
Thanks to a complete and well-tuned set of defaults, setting options are not
always necessary, especially for a beginner or in a preliminary phase of input
preparation. However, an experienced user can often improve considerably the
code performance by a judicious selection of parameters.
7.6} Format setting
-------------------
The default, fixed input format can be replaced by a free format using option
FREE or better GLOBAL. The latter allows to choose free format for both the
normal input and the geometry input separately, and serves also a few other
purposes: it can be used to increase the maximum allowed number of geometry
regions, and to force a calculation to be fully analogue (i.e., simulating
physical reality as directly as possible, without any biasing to accelerate
statistical convergence. A more esoteric capability of GLOBAL, used mainly for
debugging, is to ensure that the random number sequence be exactly reproduced
even in cases where the geometry tracking algorithm has the possibility to
follow different logical paths to achieve the same result.
7.7} General setting options
----------------------------
The difficult task of choosing the best settings for a calculation problem is
made much easier by the existence of several "pre-packaged" sets of defaults,
each of which is optimised for a particular type of application. Each set is
chosen by option DEFAULTS, which has to be placed at the beginning of the input
file, possibly preceded only by TITLE or GLOBAL. Several possibilities include
hadrotherapy, calorimetry, pure electromagnetic runs without photonuclear
reactions, low-energy neutron runs without gamma production, and others. One
set of defaults is tuned for maximum precision (but not necessarily great time
efficiency). Reasonable defaults, acceptable for most generic routine
calculations, are provided in case DEFAULTS is missing. In most cases, the user
has the possibility to use some of the other setting options described below,
to override one or more of the defaults provided by the chosen set.
In any case, it is important to check the list of defaults to make sure that
nothing important is missing or has been overlooked. For instance, photonuclear
reactions, which are critical for electron accelerator shielding, are not
provided by any of the available default sets and must be added by the user by
means of the PHOTONUC command.
Another setting option, DISCARD, is used to indicate particles which shall not
be transported. The energy of those particles is not deposited anywhere but is
added up in an accumulator which is printed at the end of the FLUKA standard
output. Of course it is the user's responsibility to see that the discarded
particles and their progeny would not give a significant contribution to the
requested results.
7.8} Multiple Coulomb scattering
--------------------------------
The concept of multiple scattering is an approximation to physical reality
(condensed history approximation [Ber63], where charged particles undergo a
very large number of single collisions with the atomic electrons, too many to
be simulated in detail except in very special cases. All the theoretical
treatments which have been developed are valid only within certain limits, and
none of them gives rules on how to handle material boundaries and magnetic
fields. FLUKA uses an original approach [Fer91a, based on Moli\`ere's theory
[Mol47,Mol48,Bet53,Mol55], which gives very good results for all charged
particles in all circumstances (even in backscattering problems), preserving
various angular and space correlations and freeing the user from the need to
control the particle step length.
Although the default treatment is always more than satisfactory, the user has
the possibility to request various kinds of optimisation, for both
electrons/positrons and heavy charged particles. This can be done by means of
option MULSOPT, which offers also the possibility to switch off completely
multiple scattering in selected materials. The latter is a technique used when
simulating particle interactions in gases of very low density such as are
contained in accelerator vacuum chambers: the simulation is done for a gas of
much larger density and the results are scaled to the actual low density: but
scaling is meaningful only if no scattering takes place.
Another very important feature of option MULSOPT is single scattering, which
can be requested in various degrees at boundary crossing, when the limits of
Moli\`ere's theory are not satisfied, and even all the time (but the latter
possibility is to be used only for problems of very low energy, because it is
very demanding in CPU time).
There is also another option connected with multiple scattering, which however
concerns only heavy charged particles such as hadrons and muons: MCSTHRES
allows to set a threshold below which multiple Coulomb scattering is not
performed. However, the CPU time saved is minimal and the option is not
frequently used.
7.9} Step length
----------------
Another aspect of the condensed history approximation is that charged particle
transport is performed in steps. The finite fraction of the particle energy
which is lost and deposited in matter in each step is an approximation for the
sum of innumerable tiny amounts of energy lost by the particle in elastic and
inelastic collisions.
In early Monte Carlo programs results could depend critically on the size of
the step, mainly due to the inaccurate determination of the path length
correction (ratio between the length of the actual wiggling path of the
particle and that of the straight step connecting the two endpoints). For a
more complete discussion, see [Aar93a,Fas01]. The multiple scattering algorithm
used by FLUKA [Fer91a] provides a robust independence of the results from the
step size, but for problems where a special accuracy is requested, or when
magnetic fields are present, it is possible for the user to override the
default step length. Two options control the maximum fractional energy loss per
step: EMFFIX for electrons and positrons, and FLUKAFIX for muons and charged
hadrons. The second one is seldom used, however, except in problems of very
large dimensions typical of cosmic ray research. Option STEPSIZE is used
instead to limit the absolute length of the step, independent of the energy
lost. Contrary to EMFFIX and FLUKAFIX, it works also in vacuum. While its use
is highly recommended in problems with magnetic fields, to ensure that steps be
smaller than the dimensions of the current regions and of those that border it,
when no magnetic fields are present this option should better be avoided, as it
would imply no obvious advantage and could even downgrade performance.
7.10} Energy cutoffs
--------------------
Setting energy cutoffs, for both transport and production, is an important
responsibility of the user, who is interested in choosing the best compromise
between accuracy and time efficiency. Each of the parameter sets available via
option DEFAULTS, including the basic defaults set which exists when that option
has not been explicitly requested, offers a well-optimised choice for the
corresponding class of applications, with only one exception. But even so, it
is often convenient to override some of the default cutoffs in order to
improve performance. The exception concerns the default particle production
cutoffs for electrons, positrons and photons, which are dependent on other
settings (see EMFCUT below).
Transport cutoffs, or thresholds, are set with command PART-THRes for hadrons
and muons, with EMFCUT for electrons, positrons and photons, and with LOW-BIAS
for low-energy neutrons. Despite the similar functionality of the three
commands, there are important differences in their syntax and in the way the
threshold is implemented for the three families of particles. PART-THRes can
assign different transport thresholds to different particles, but the
thresholds are the same in all materials and regions. When the hadron or muon
energy becomes lower than the relevant threshold, the particle is not stopped
but ranged out in a simplified way. Because the electron and photon cutoffs
are more critical with respect to calculation accuracy, EMFCUT can assign
transport thresholds on a region basis: on the other hand no ranging out is
performed, due to the difficulty to clearly define electron ranges. For
low-energy neutrons, the transport threshold is set by LOW-BIAS also on a
region basis, but as a group number rather than an energy.
Two input commands can set particle production cutoffs, respectively for heavy
particles and for electrons, positrons and photons.
Thresholds for delta ray production by charged hadrons and muons are assigned,
on a material basis, by means of option DELTARAY. Energy transfers to electrons
lower than the threshold are handled in the continuous slowing down
approximation. Production of bremsstrahlung by electrons and of M\oller/Bhabha
secondary electrons is simulated explicitly above thresholds set on a material
basis with option EMFCUT. Defaults for electron and photon production cutoffs
are dependent on other settings in a complex way. Therefore it is recommended
to check the values printed on standard output, or to set EMFCUT production
cutoffs explicitly for each material. Note also that the same EMFCUT command
is used to set both transport and production cutoffs: but the setting is done
by region in the first case and by material in the second.
To complete the list of commands used for cutoff setting, we will mention
THRESHOLd, which is used to set an energy threshold for star scoring. In
principle, a "star" is any high energy inelastic hadron interaction
(spallation) and star density has always been one the quantities which can be
scored by FLUKA. Since a popular technique to estimate induced radioactivity
was based originally on the density of stars produced by hadrons with energies
higher than 50 MeV, the possibility to set a scoring energy limit is provided.
7.11} Time cutoffs
-------------------
For time-dependent calculations, two time cutoff options are available: one
for particle transport, TIME-CUT, and one for scoring, TCQUENCH. While option
TIME-CUT sets a particle-dependent time limit after which the corresponding
particle history is terminated, the limits set by TCQUENCH are assigned to
selected binnings. Scoring contributions to a binning by particles having
exceeded the corresponding time limit are ignored, but particle transport
continues, possibly contributing to other detector scores.
7.12} Ionisation energy loss
----------------------------
Transport of charged particles can be done in many ways: without delta ray
production and ionisation fluctuations (continuous slowing down approximation),
with ionisation fluctuations and no delta rays, with delta ray production above
a chosen energy threshold and no ionisation fluctuations below the threshold,
and with both: delta rays above the threshold and ionisation fluctuations below
it. Depending on the application type chosen with option DEFAULTS, different
defaults and thresholds apply, which can be modified by the user by means of
options IONFLUCT, DELTARAY and EMFCUT. Option IONFLUCT is used to request
(restricted) ionisation fluctuations on a material basis. In FLUKA, these
fluctuations are not simulated according to Landau or Vavilov theory but
according to an original statistical approach [Fas97a]. They can be requested
separately for electrons and positrons and for muons and charged hadrons. Delta
ray production thresholds are instead set for the two particle families by two
separate options, which have already been mentioned above in the context of
production cutoffs: EMFCUT and DELTARAY. DELTARAY can be used also to define
(and print) the mesh width of the stopping power tabulations used by the program.
The user has also the possibility to change the default parameters used in the
calculation of stopping power. Command STERNHEIme allows to change the density
effect parameters,and MAT-PROP can set, in addition to several other material
properties, a user-defined average ionisation potential.
7.13} Special radiation components or effects
---------------------------------------------
In FLUKA, an effort has been made to implement a full cross-talk between
different radiation components (hadronic, muonic, electromagnetic, low-energy
neutrons, heavy ions, optical photons). However, some components are not
activated by default, and others are only activated in some of the available
default settings. Input options are provided to switch them on and off.
In a similar way, some physical effects may need to be activated, overriding
the chosen defaults. On the other hand, in some cases it can be of interest
(but possibly dangerous!) to ignore some effects. A number of commands are
available for these purposes.
7.13.1} Radiation components
High-energy hadrons and muons are always generated and transported, except with
defaults settings EM-CASCA and NEUTRONS (however, they cannot be requested
overriding these two defaults). To suppress them, one can use command DISCARD.
Option EMF (E_lectroM_agnetic F_luka) can be used to request electron, positron
and photon transport, and also to ask for its suppression (the latter could be
obtained also by discarding electrons, positrons and photons by means of DISCARD).
Low-energy neutron transport (if not already on by default) can be activated
with option LOW-NEUT. Explicit suppression is not possible: but the same effect
can be obtained using option LOW-BIAS to set a cutoff at energy group 1.
Heavy ion transport (only ionisation energy loss, without nuclear interactions)
is implicit with some default settings, while with others it is not available.
Details can be found in the description of command IONTRANS. The same command
can be used also to request heavy ion interactions using different event
generators: in this case the corresponding libraries must be linked.
A special option, HI-PROPErt, is necessary to define the properties of a heavy
ion primary, since the particle type input via the BEAM command can only be a
generic heavy ion.
Generation and transport of optical photons is available only on explicit user
request. Activation (and deactivation) are requested via OPT-PROD (for
Cherenkov, transition radiation or scintillation photon production) and
OPT-PROP (transport).
7.13.2} Physics effects
Some physical effects are automatically activated, but only when certain
default sets are in force (see option DEFAULTS), and can be switched on or off
with appropriate commands. The command to simulate fluorescence is EMFFLUO,
that for Rayleigh scattering and Compton binding corrections and Doppler
broadening is EMFRAY, while for multiple scattering there are MULSOPT and
MCSTHRESh which we have already introduced above. High-energy effects such as
production of bremsstrahlung and electron pairs by heavy charged particles (in
particular muons) are regulated by option PAIRBREM.
A few physical effects need to be requested explicitly, whatever the defaults.
These are photon polarisation (command POLARIZA), polarisation of pion, kaon
and muon decays (command PHYSICS), photonuclear reactions (PHOTONUC), and muon
hadronic interactions via virtual photons (MUPHOTON).
In some cases, it is also possible to switch off some important effects to
study the relative importance of different processes. Command THRESHOLd allows
to set a lower energy limit for hadron elastic scattering and inelastic
reactions, and EMFCUT does the same with various kinds of electron and photon
interactions. The user must bear in mind, however, that results obtained
suppressing effects which are critical for the development of the
electromagnetic or hadronic cascade are unlikely to be physically correct.
7.14} Scoring options
---------------------
Any result in a Monte Carlo calculation is obtained by adding up the
contributions to the "score", or "tally" of a detector defined by the user.
A detector is the Monte Carlo equivalent of a measurement instrument. Each
"estimator" (detector type) is designed to estimate one or more radiometric
quantities, and the final score is a statistical estimation of the average
value of the corresponding population. As in experimental measurements, it is
possible to calculate a standard deviation by running several independent
calculations.
No default detector is available: each scoring option must be explicitly
requested. There are different input options corresponding to different types
of detector. The simplest is SCORE which provides energy deposition
(proportional to dose) or star density in every region of the geometry. "Stars"
is an old name for inelastic hadron reactions which derives from early
experiments with nuclear emulsions.
The same quantities can be scored in a uniform spatial mesh independent of
geometry, called a "binning", by means of option USRBIN. There are several
types of binnings: Cartesian, 2D-cylindrical, 3D-cylindrical and even more
complex phase space structures. In addition to dose and star density, it is
possible to use USRBIN to score particle fluence distributions in space. USRBIN
results are often displayed as colour plots where each colour corresponds to a
pre-defined range of values. A post-processing program for this purposes
(PAWLEVBIN) is available in the directory $FLUPRO/flutil, and a GUI interface
can be downloaded from the FLUKA website www.fluka.org.
Fluence, averaged over the volume of a given geometry region, can be calculated
with options USRTRACK and - less often - USRCOLL. The first is a "track-length
estimator" (it estimates fluence as volume density of particle trajectory
lengths), and the second is a "collision estimator" (fluence is estimated as
volume density of collisions weighted with the particle mean free path). Of
course, USRCOLL can be used only in a region of matter, while USRTRACK works
also in vacuum. Both options provide fluence differential energy spectra.
Another common scoring option is USRBDX, which also calculates fluence, but
averaged over the boundary between two geometry regions. It is a "boundary
crossing estimator", which estimates fluence as the surface density of crossing
particles weighted with the secant of the angle between trajectory and normal
to the boundary at the crossing point. Option USRBDX can also calculate
current, i.e. a simple counter of crossings, not weighted by inverse cosine:
but despite a widespread credence, current is only seldom a quantity worth
calculating. The results of USRBDX can account on request for particles
crossing the boundary from either side or from one side only, and are in the
form of double-differential energy and angular spectra. The angle considered
is again that with the normal at the crossing point.
USRYIELD is a multi-purpose estimator option, which can estimate several
different double-differential quantities. The main one is an energy-angle
double-differential yield of particles escaping from a target, the angle in
this case being with respect to a fixed direction. Energy and angle can be
replaced by many other variables which are mostly of the same kind, such as
momentum and rapidity. But it is possible also to score yields as a function of
charge and LET (linear energy transfer).
Production of residual nuclei can be obtained with command RESNUCLEi.
The results, which are closely related to induced activity and dose rate from
activated components, may include nuclei produced in low-energy neutron
interactions, provided the corresponding information is available in
the neutron cross section library for the materials of interest.
7.15} Event by event scoring options
------------------------------------
Typical particle physics applications, in particular calorimetry, require
separate scoring event by event (that is, results are printed after each
primary particle history). Two commands, EVENTBIN and EVENTDAT, are
respectively the event-equivalent of USRBIN and SCORE which have been
introduced before. A third command, DETECT, allows to score event by event
energy deposition simulating a detector trigger, defining coincidences and
anticoincidences. All these options are incompatible with any biasing. It is
suggested to use command GLOBAL to make sure that the run will be completely
analogue.
7.16} Scoring modifying options
-------------------------------
There are a few commands which are used to modify some of the scoring options
already described. TCQUENCH, which has already been shown to define a time
cutoff, can be used also to apply a quenching factor (Birks factor) to energy
deposition scored with USRBIN or EVENTBIN. ROT-DEFI and ROTPRBIN allow to
define roto-translation transformations for binnings not aligned with the
coordinate axes. ROTPRBIN can be used also to set the binning storage
precision: a space saving feature, which is useful mainly when scoring event by
event with EVENTBIN.
7.17} Options to handle radioactive decay
-----------------------------------------
It is possible to transport and score in the same run also the beta and gamma
radiation emitted in the decay of radioactive nuclei produced in the hadronic
or electromagnetic cascade. Several options are available for this purpose:
RADDECAY is used to request the simulation of radioactive decays, IRRPROFIle
defines a time profile for the intensity of the primary particles, DCYTIMES
requests one or more decay times at which the desired scoring shall occur, and
DCYSCORE associates selected scoring detectors to the decay times so requested.
7.18} Biasing options
---------------------
When run in fully analogue mode, FLUKA allows the user to study fluctuations
and correlations, and to set up a direct simulation of physical reality where
all moments of phase space distributions are faithfully reproduced. On the
other hand, in the many applications where only quantities averaged over many
events are of interest, it is convenient to use calculation techniques
converging to the correct expectation values but reducing the variance (or the
CPU time, or both) by sampling from biased distributions. This is especially
useful in deep penetration calculations, or when the results of interest are
driven by rare physical interactions or cover a small domain of phase space.
FLUKA makes available several biasing options. Some are easy to use, but others
require experience and judgment, and often a few preliminary preparation runs
are needed to optimise the biasing parameters.
7.18.1} Simple biasing options
The easiest biasing command is fittingly called BIASING. It provides two
different kinds of variance reduction: Multiplicity Reduction and Importance
Biasing, which is based on the two complementary techniques Geometry Splitting
and Russian Roulette (RR).
Splitting and Russian Roulette are two classical variance reduction techniques,
which are described in most textbooks on Monte Carlo [Car75, Lux91].
A detailed description of how they are implemented in FLUKA is available in a
Note to option BIASING. Importance biasing consists in assigning an importance
value to each geometry region. The number of particles moving from a region to
another will increase (by splitting) or decrease (via RR) according to the
ratio of importances, and the particle statistical weight will be modified
inversely so that the total weight will remain unchanged. In this way, the user
can strive to keep the particle population constant, making up for attenuation,
or to make it decrease in regions far from the detectors where there is a lower
probability to contribute to the score. In FLUKA, importance biasing can be
done separately for hadrons/muons, electrons/positrons/photons and low-energy
neutrons.
Multiplicity Reduction is a simple technique which was introduced for the first
time in FLUKA (now it has been adopted also by other programs), in order to
decrease the computer time needed to simulate a very high energy hadron
cascade. At energies of several hundred GeV and more, the number of
secondaries produced in a hadron-nucleus interaction is very large and the
total number can increase geometrically in the following interactions,
requiring an unacceptably long computer time. Since many secondaries are
particles of the same kind and with a similar angular and energy distribution,
the user can decide to follow only a region-dependent fraction of them.
A biasing option performing a similar multiplicity reduction on electromagnetic
showers is EMF-BIAS. In this case the technique is known as Leading Particle
Biasing and consists in sampling only one of the two secondary particles which
are present in the final state of most electromagnetic interactions. The
secondary of higher energy is sampled with higher probability. The EMF-BIAS
option can be tuned per region below user-defined energy thresholds and is used
very often in shielding calculations for high-energy electron accelerators. The
same command can be used also to bias the electron and photon mean free path
for various types of interaction, for instance to enhance the probability of
interaction in a thin or low-density target.
In a similar way, option LAM-BIAS can be used to increase the probability of
hadronic interactions, and in particular photohadron reactions. These are the
dominant reactions for high-energy electron accelerator induced activity and
shielding design, but because their cross section is small compared to that of
electromagnetic effects, analogue sampling would be very inefficient. The same
command can help to get a higher probability of hadron interaction in a thin
target. It can also be used to bias a particle decay length (for instance, to
enhance muon or neutrino production) and the emission angle of the decay
secondaries in a direction indicated by the user.
7.18.2} Weight window options
The weight window is a very powerful biasing technique, not based on relative
importances, but on the absolute value of particle weight. The user sets an
upper and a lower limit for the particle weight in each geometry region,
possibly tuned per type of particle and energy. Splitting and RR will be
applied so that the weight of all relevant particles will have a value between
the two limits. In addition to controlling the particle population, this
technique helps also to "damp" excessive weight fluctuations due to other
biasing options.
Its use is not as easy as that of importance biasing, because it is necessary
to have at least a rough idea of what are the average weights in different
regions. Special splitting and RR counters can be printed on request to help
setting the window parameters setting SDUM = PRINT in command BIASING. An
explanation about the meaning of the counters can be found in Chap. 9}. Weight
window setting is done in FLUKA by three input commands: WW-FACTOr, WW-THRESh
and WW-PROFIle. The first two commands must be used together: WW-FACTOr sets
the upper and lower weight limits per region, while WW-THRESh defines energy
limits within which the weight window must be applied, and the particles to
which it is to be applied. The third option is reserved to low-energy neutrons,
whose transport characteristics often require a more detailed biasing pattern:
WW-PROFIle allows indeed to tune the weight window by neutron energy group.
7.18.3} Biasing options for low-energy neutrons
The special multigroup transport structure used by FLUKA for low-energy
neutrons calls for some biasing options specific to these particles. We have
just introduced the weight window command WW-PROFIle. Two more options are
LOW-BIAS, which has already been mentioned before in the context of energy
cutoffs, but which is used also to set a user-defined non-analogue absorption
probability, and LOW-DOWN, by which it is possible to bias neutron
thermalisation (downscattering). The latter, however, is an option recommended
only to users with a good knowledge and experience of neutronics.
7.19} Calls to user routines
----------------------------
The purpose of several FLUKA input options is to trigger calls to user routines
(user routines are described in Chap. 13}). One of the most important ones is
SOURCE, which makes FLUKA get the characteristics of its primary particles from
subroutine SOURCE instead of from options BEAM and BEAMPOS. This option allows
to pass to the subroutine several parameters, thus allowing to drive it from
input without the need to re-compile it. Note that even when using a
user-written source, it is still necessary to have in input a BEAM card
indicating the maximum expected energy of a primary particle, so that the
program can prepare appropriate cross section tables. If command SOURCE is
present, but no SOURCE routine has been linked, the default one in the FLUKA
library will be called, which leaves unchanged the particle type, energy,
position etc. as defined by BEAM and BEAMPOS.
Command USERWEIG can call 5 different user routines used to modify a scored
quantity (at the time of scoring). The routines are:
* FLUSCW is a function returning a multiplication factor for fluences.
A typical application is to convert a fluence to dose equivalent.
* COMSCW is a function returning a multiplication factor for star densities
and doses. Common application: converting energy deposition to dose.
* USRRNC is a subroutine providing a convenient user hook for scoring
residual nuclei.
* ENDSCP is a subroutine performing a displacement of the energy deposited
in a particle step, for instance to account for an instrument drift.
* FLDSCP is a subroutine performing a displacement (drift) of the track
corresponding to a particle step.
Complex magnetic fields can be defined or read from a map by a user routine
MAGFLD. Calls to the routine are activated by command MGNFIELD.
A collision file (also called a collision tape, or a phase space file) is a
file on which FLUKA writes on request details of user-selected events:
particle trajectories, energy deposition events, source particles, boundary
crossings, physical interactions, etc. This task is performed by subroutine
MGDRAW, which is called if option USERDUMP is requested in input. The default
routine present in the FLUKA library can be driven as it is, without
re-compilation, by setting some of the USERDUMP parameters, but can also be
modified and re-compiled to adjust to specific needs of the user. A typical
simple task is to draw particles trajectories. Another frequent application of
USERDUMP is to perform a calculation in two steps, where the second step uses
the collision file as a source. In principle it is also possible to use
subroutine MGDRAW for scoring, for instance by interfacing it to some
histogramming package, as it is customary in some other Monte Carlo programs.
However, in general this is discouraged in FLUKA, unless the desired quantity
cannot be scored via the standard FLUKA input commands, which is very rare. The
FLUKA scoring options are indeed highly optimised and well checked against
possible errors and artefacts. It is very unlikely that a user might be able to
achieve in a short time the same level of reliability. In any case,
user-written scoring via MGDRAW MUST be avoided in all runs where biasing is
present, because to handle correctly the particle weights requires other FLUKA
tools which are not available to the normal user.
Three more input options activating calls to user routines are USRICALL,
USROCALL and USRGCALL. The first two allow the user to issue a call respectively
to an initialisation routine USRINI and to an output routine USROUT. The third
one activates a call to a routine USRGLO, which performs a global initialisation
before any other made by FLUKA.
7.20} Miscellaneous
-------------------
Command RANDOMIZe starts a new independent random number sequence. It can be
omitted only in a first run, but it is compulsory if a sequence of independent
runs is desired in order to calculate statistical errors.
Command STOP, inserted at any point in the input file, interrupts the reading.
Any further input card is ignored. It may be made to follow a PLOTGEOM command
and the corresponding input, so that the Plotgeom program is executed, but no
FLUKA simulation is started.
Finally, command START is always needed to give the program the signal to begin
the calculation. The command includes the number of primary histories to be
simulated. A STOP command may follow, but it is not necessary since it is
assumed to be present by default.
1********************************************************************************
Description of available input options
********************************************************************************
1********************************************************************************
{ASSIGNMA}t
defines the correspondence between region indices (or names) and material
indices (or names). It defines also regions with magnetic and/or electric
fields. There is the possibility of selectively changing region material to
vacuum/blackhole (and/or switching on/off possible fields) when transporting
radioactive decay products. Radioactive decay products originating from
regions switched to vacuum/blackhole are ignored. This is helpful for
situations where the emissions of an activated object in a complex
environment have to be evaluated standalone.
See also MATERIAL, MGNFIELD
WHAT(1) > 0 : material index, or material name.
<=0 : resets the default
Default = 1.0 (blackhole)
WHAT(2) = lower bound (or name corresponding to it) of the region indices
with material index equal or name corresponding to WHAT(1).
("From region WHAT(2)...")
Default = 2.0
WHAT(3) = upper bound (or name corresponding to it) of the region indices
with material index equal or name corresponding to WHAT(1).
("...to region WHAT(3)...")
Default = WHAT(2)
WHAT(4) = step length in assigning indices
("...in steps of WHAT(4)")
Default = 1.0
WHAT(5) = 1.0 : a magnetic field is present (no electric field) in the
region(s) defined by WHAT(2), (3), and (4), for both prompt
and radioactive decay products
= 2.0 : an electric field is present (no magnetic field) in the
region(s) defined by WHAT(2), (3), and (4), for both prompt
and radioactive decay products
= 3.0 : both magnetic and electric fields are present in the
region(s) defined by WHAT(2), (3), and (4), for both prompt
and radioactive decay products
= 4.0 : a magnetic field is present (no electric field) in the
region(s) defined by WHAT(2), (3), and (4), for prompt
products only
= 5.0 : an electric field is present (no magnetic field) in the
region(s) defined by WHAT(2), (3), and (4), for prompt
products only
= 6.0 : both magnetic and electric fields are present in the
region(s) defined by WHAT(2), (3), and (4), for prompt
products only
= 7.0 : a magnetic field is present (no electric field) in the
region(s) defined by WHAT(2), (3), and (4), for radioactive
decay products only
= 8.0 : an electric field is present (no magnetic field) in the
region(s) defined by WHAT(2), (3), and (4), for radioactive
decay products only
= 9.0 : both magnetic and electric fields are present in the
region(s) defined by WHAT(2), (3), and (4), for radioactive
decay products only
= 0.0 : ignored
< 0.0 : resets the default (no field) in the region(s) defined by
WHAT(2), (3), and (4)
Default = 0.0 (ignored)
WHAT(6) = material index, or material name, for a possible alternate
material for radioactive decay product transport.
(See Note 5 below).
Default = 0.0 : same material as for prompt products
SDUM : not used
Default (option ASSIGNMAt not requested): not allowed! Each region must be
explicitely assigned a material, or vacuum or blackhole (see
Note 3).
No magnetic and no electric field is the default for all regions.
Notes:
1) Several ASSIGNMAt definitions are generally necessary to assign a
material to all regions. Standard material names and their numbers
are listed in 5}. They may be redefined and others may be added
(see Note 5 to command MATERIAL)
2) Overlapping region indices can be given in several ASSIGNMAt
definitions, each definition overriding the earlier ones. This makes
the assigning of materials very convenient (see Example below).
The same can be done even if region names are used instead of indices:
the region numbers correspond to the order in which they appear in the
geometry input. Anyway, the name-index correspondence can be found on
standard output after a short test run.
3) Option ASSIGNMAt must always be present. If a region has not been
assigned a material, the program stops at initialisation time.
Notice that this was different in previous versions of FLUKA, where
blackhole was assigned by default.
4) Magnetic field tracking is performed only in regions defined as
magnetic field regions by WHAT(5) = 1.0, 3.0, 4.0, 6.0, 7.0, 9.0.
It is strongly recommended to define as such only regions where a
magnetic field actually exists, due to the less efficient and less
accurate tracking algorithm used in magnetic fields. To define a
region as one with magnetic field and to return systematically
B = 0.0 in that region via the user subroutine MAGFLD must be
absolutely avoided (see MGNFIELD)
5) There is the possibility of selectively changing regions to
a different material (and/or switching on/off possible fields) when
transporting radioactive decay products. Radioactive decay products
originating from regions switched to a new material are ignored.
This is helpful for situations where the emissions of an activated
object in a complex environment have to be evaluated standalone.
Example (for an input number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
MATERIAL 13.0 0.0 2.7 10.0 0.0 0.0 ALUMINUM
ASSIGNMA 10.0 1.0 15.0 0.0 1.0 0.0
ASSIGNMA 2.0 5.0 17.0 6.0 -1.0 0.0
ASSIGNMA 2.0 16.0 18.0 2.0 0.0 0.0
* The above definitions mean that all regions from 1 to 15 are
* aluminium with a magnetic field, except regions 5 and 11 which are
* vacuum without any magnetic field. Regions 16, 17 and 18 are also
* vacuum without field.
* Note that in the above example material 10 has been defined
* overriding the pre-defined FLUKA aluminium material, but keeping
* the same material number.
The corresponding name-based input cards could be (using arbitrary names):
ASSIGNMA ALUMINUM FirstReg Reg15 0.0 1.0 0.0
ASSIGNMA VACUUM FifthReg Reg17 6.0 -1.0 0.0
ASSIGNMA VACUUM Reg16 Reg18 2.0 0.0 0.0
1********************************************************************************
{AUXSCORE}
allows to associate scoring detectors of given estimator types with dose
equivalent conversion factors and to filter scoring detectors according to
auxiliary (generalised) particle distributions or ion isotopic ranges.
See also EVENTBIN, USRBDX, USRBIN, USRTRACK, USRCOLL, USRYIELD
WHAT(1) : binning / estimator type to associate the card with
1.0 : USRBDX
2.0 : USRBIN / EVENTBIN (only for binning of quantities scored
along a step, or for activity binnings, see Note 6)
3.0 : USRTRACK
4.0 : USRCOLL
5.0 : USRYIELD
Default = 2.0 USRBIN/EVENTBIN
WHAT(2) : particle (or particle family) to be considered as a filter for
the associated scoring card
> -100.0 : particle or particle family code
<= -100.0 Isotope coding (to filter ions). To select atomic
number Z, mass number A and isomeric state M:
WHAT(2) = -(Mod(Z,100)*100 + A*100000 + M*100000000).
Z = 0 means all atomic numbers for the given A,
A = 0 includes all mass numbers for a given Z,
M = 0 includes all ground and isomeric states.
To select only the ground state set M = 9
Default = 201.0: all particles (ALL-PART)
WHAT(3) = i0 + 100 x i1: flag for considering the possible parent for
delta rather than the delta itself (Moller and Bhabha excluded)
when filtering for particle type (see WHAT(2)), or to exclude
charged products of pointwise neutron interactions from the
scoring in order to avoid possible double counting
i0 = 0: ignored
= 1: the delta parent is used for filtering
= -1: reset to default (=0)
i1 = 0: ignored
= 1: charged products of low energy neutron pointwise
interactions are excluded from the application of
conversion coefficients (default)
= 2: charged products of low energy neutron pointwise
interactions are included in the application of
conversion coefficients
= -1: reset to default (=1)
WHAT(4) : lower bound index (or corresponding name) of the indices of the
detectors in which the associated scoring is activated (see
Note 1)
("From detector WHAT(4)....")
Default = 1.0
WHAT(5) : upper bound index (or corresponding name) of the indices of the
detectors in which the associated scoring is activated (see
Note 1)
("to detector WHAT(5)....")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("in steps of WHAT(6)")
Default: 1.0
SDUM : For dose equivalent (DOSE-EQ) scoring, the user can provide the
energy-dependent coefficients for the conversion of fluence to
effective dose and ambient dose equivalent for neutrons, protons,
charged pions, muons, photons and electrons [Roe06,Pel00].
The following dose conversion coefficients sets are available:
1) Effective dose sets from ICRP74 and Pelliccioni data
[Pel00] calculated with ICRP radiation weighting factors Wr
(a) EAP74 : Anterior-Posterior irradiation
(b) ERT74 : Rotational irradiation geometry
(c) EWT74 : WORST possible geometry for the irradiation
2) Effective dose sets from ICRP74 and Pelliccioni data
calculated with the Pelliccioni radiation weighting
factors Wr
(a) EAPMP : Anterior-Posterior irradiation
(b) ERTMP : Rotational irradiation geometry
(c) EWTMP : WORST possible geometry for the irradiation
3) Ambient dose equivalent from ICRP74 and Pelliccioni data
(a) AMB74
4) Ambient dose equivalent with old "GRS"-conversion factors
(a) AMBGS
Default: AMB74
Default (DOSE-EQ scoring and option AUXSCORE not given): AMB74
Notes:
1) USRBIN/EVENTBIN detectors are counted together, and so are USRTRACK
and USRCOLL.
2) Conversion coefficients for Effective Dose "WORST" irradiation
geometry are obtained choosing at each energy the largest value of
the coefficients for the other geometries.
3) For photons and electrons, only the sets EAP74, ERT74, EWT74 and
AMB74 are implemented. If sets from the second group (EAPMP, ERTMP,
EWTMP) are requested, the respective set from the first group will
be used instead. For set AMBGS, zero values are returned.
4) Dose conversion coefficients exist only for some particle types:
hadrons, muons, photons, electrons/positrons. For all other
particle types, zero factor will be returned. This is particularly
important for heavy ions where zero factor will be scored (see
Note 5)
5) For particles such as heavy ions, for which fluence conversion
factors are not available, it is possible to score with USRBIN the
generalised particle DOSEQLET, i.e. dose equivalent as defined by
ICRU: H = D x Q(L), where L is the unrestricted Linear Energy
Transfer in water.
6) A USRBIN/EVENTBIN detector can be associated to AUXSCORE only if the
binned quantity is scored along a step (10.0 <= WHAT(1) <= 18.0), or
if the binned quantity is activity.
Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
USRBIN 10.0 208.0 -50.0 10.0 10.0 10.0Ene.p
USRBIN -10.0 -10.0 -10.0 100.0 100.0 100.0&
AUXSCORE 2.0 1.0 1.0
* The above AUXSCORE card will filter the energy scoring of the
* USRBIN card to only the energy that is deposited by protons
USRBIN 10.0 ENERGY -50.0 10.0 10.0 10.0Ene.pi
USRBIN -10.0 -10.0 -10.0 100.0 100.0 100.0&
AUXSCORE USRBIN MUONS Ene.pi
* Similar to the previous example but in a name based input
USRBIN 10.0 DOSE-EQ -50.0 10.0 10.0 10.0DoseEq
USRBIN -10.0 -10.0 -10.0 100.0 100.0 100.0&
AUXSCORE USRBIN DoseEq AMB74
* Score ambient dose equivalent in a Cartesian mesh from all particles
USRYIELD 124.0 HEAVYION -87. TARGS3 INAIR 1.0 Fe56
USRYIELD 180.0 0.0 18. 10.0 0.0 3.0 &
AUXSCORE 5.0 -5602600. Fe56 Fe56
* Score yield of 56 Fe ions
1********************************************************************************
{BEAM}
defines several beam characteristics: type of particle, energy, divergence
and profile
See also BEAMAXES, BEAMPOSit, SOURCE, SPECSOUR
WHAT(1) > 0.0 : average beam momentum in GeV/c
< 0.0 : average beam kinetic energy in GeV
If the particle indicated by SDUM is HEAVYION, the kinetic
energy or momentum must be expressed PER NUCLEAR MASS UNIT.
This value is available in COMMON BEAMCM as variable PBEAM.
It can be used or modified in subroutine SOURCE if command
SOURCE is present in input.
Default = 200.0 GeV/c momentum
WHAT(2) > 0.0 : beam momentum spread in GeV/c. The momentum distribution is
assumed to be rectangular
< 0.0 : |WHAT(2)| is the full width at half maximum (FWHM) of a
Gaussian momentum distribution (FWHM = 2.355 sigma)
This value is available in COMMON BEAMCM as variable DPBEAM.
It can be used or modified in subroutine SOURCE if command
SOURCE is present in input. However, in that case the
momentum/energy sampling must be programmed by the user.
Default = 0.0
WHAT(3) specifies the beam divergence (in mrad):
> 0.0 : WHAT(3) is the width of a rectangular angular distribution
for a beam directed along the positive z-axis (unless a
different direction is specified by command BEAMAXES: see
Note 4).
> 2000 x PI mrad (i.e. 2 pi rad) : an isotropic distribution is
assumed (see Note 7 below).
< 0.0 : |WHAT(3)| is the FWHM of a Gaussian angular distribution
for a beam directed along the positive z-axis (unless a
different direction is specified by command BEAMAXES: see
Note 4).
This value is available in COMMON BEAMCM as variable DIVBM
(units [rad]). It can be used or modified in subroutine SOURCE
if command SOURCE is present in input. However, in that case
the divergence sampling must be programmed by the user.
Default = 0.0
WHAT(4) >= 0.0: If WHAT(6) > 0.0, beam width in x-direction in cm for a
beam directed along the positive z-axis (unless a different
direction is specified by command BEAMAXES: see Note 4).
The beam profile is assumed to be rectangular.
If WHAT(6) < 0.0, WHAT(4) is the maximum radius of an
annular beam spot.
< 0.0 : |WHAT(4)| is the FWHM of a Gaussian profile in x-direction
(whatever the value of WHAT(6)) for a beam directed along
the positive z-axis (unless a different direction is
specified by command BEAMAXES: see Note 4).
This value is available in COMMON BEAMCM as variable XSPOT.
It can be used or modified in subroutine SOURCE if command
SOURCE is present in input. However, in that case the
x-profile sampling must be programmed by the user.
Default = 0.0
WHAT(5) >= 0.0: If WHAT(6) > 0.0, beam width in y-direction in cm for a
beam directed along the positive z-axis (unless a different
direction is specified by command BEAMAXES: see Note 4).
The beam profile is assumed to be rectangular.
If WHAT(6) < 0.0, WHAT(5) is the minimum radius of an
annular beam spot.
< 0.0 : |WHAT(5)| is the FWHM of a Gaussian profile in y-direction
(whatever the value of WHAT(6)) for a beam directed along
the positive z-axis (unless a different direction is
specified by command BEAMAXES: see Note 4).
This value is available in COMMON BEAMCM as variable YSPOT.
It can be used or modified in subroutine SOURCE if command
SOURCE is present in input. However, in that case the
y-profile sampling must be programmed by the user.
Default = WHAT(4)
WHAT(6) < 0.0: WHAT(4) and WHAT(5), if positive, are interpreted as the
maximum and minimum radii of an annular beam spot. If
negative, they are interpreted as FWHMs of Gaussian
profiles as explained above, independent of the value of
WHAT(6).
>= 0.0: ignored
Default = 0.0
SDUM = beam particle name. Particle names and numerical codes are listed
in the table of FLUKA particle types (see 5}).
This value can be overridden in user routine SOURCE (if command
SOURCE is present in input) by assigning a value to variable
IJBEAM equal to the numerical code of the beam particle.
For heavy ions, use the name HEAVYION and specify further the ion
properties by means of option HI-PROPErt. In this case WHAT(1)
will mean the energy (or momentum) PER NUCLEAR MASS UNIT, and not
the total energy or momentum.
The light nuclei 4He, 3He, triton and deuteron are defined with
their own names (4-HELIUM, 3-HELIUM, TRITON and DEUTERON) and
WHAT(1) will be the total kinetic energy or momentum.
For (radioactive) isotopes, use the name ISOTOPE and specify
further the isotope properties by means of option HI-PROPErt.
In this case WHAT(1) and WHAT(2) are meaningless. See Note 8) for
instructions on how to run cases where the source is a
radioactive isotope.
Neutrino interactions are activated by SDUM = (A)NEUTRIxx.
Neutrino interactions are forced to occur at the point (or area)
defined in the BEAMPOS card.
[Not yet implemented: For optical photons, use the name OPTIPHOT
and specify further the transport properties by material by means
of option OPT-PROP.]
Default = PROTON
Default (command BEAM not requested): not allowed! The WHAT(1) value of the
BEAM command is imperatively required, in order to set up the
maximum energy of cross-section tabulations.
Notes:
1) Simple cases of sources uniformly distributed in a volume can be
treated as SDUM options of command BEAMPOSit. Other cases of
distributed, non monoenergetic or other more complex sources should
be treated by means of a user-written subroutine SOURCE as explained
in the description of the SOURCE option (see 13}), or, in some
special cases, by means of a pre-defined source invoked by command
SPECSOUR (see 15, 16, 17}). In particular, the BEAM definition
cannot handle beams of elliptical cross section and rectangular
profile. However, even when using a SOURCE subroutine, the momentum
or kinetic energy defined by WHAT(1) of BEAM is meaningful, since it
is taken as maximum energy for several scoring facilities and cross
section tabulations.
Advice: when a user-written SOURCE is used, set WHAT(1) in BEAM
equal to the maximum expected momentum (or energy) of any particle
to be transported.
2) A two-dimensional distribution, Gaussian with equal variances in x
and y, results in a RADIAL Gaussian distribution with variance
sigma_r = sigma_x = sigma_y
The distribution has a form
P(r) = 1/(2pi sigma_x sigma_y) exp{-1/2[(x/sigma_x)^2 + (y/sigma_y)^2]} =
= 1/(2pi sigma_r^2) exp[-1/2(r/sigma_r)^2]
3) All FLUKA results are normalised per unit incident particle weight.
All particles defined by the BEAM command have by default a
weight = 1. A distribution of initial weights may be needed,
however, when sampling from a non-monoenergetic spectrum: in this
case, a SOURCE subroutine must be written (see 13})).
4) All options governed by WHAT(3,4,5) are meaningful only if the beam
direction is along the positive z axis, unless a command BEAMAXES is
issued to establish a beam reference frame different from the
geometry frame (see command BEAMAXES). If the beam is not in the
positive z direction and no BEAMAXES command has been given,
WHAT(3)-WHAT(5) must be set = 0.0 (unpredictable effects would arise
otherwise).
5) The beam momentum value as defined with the BEAM card is available
to user routines as a variable PBEAM and so is the beam particle
type IJBEAM. These variables, as well as those defining other beam
properties, are in COMMON BEAMCM which can be accessed with the
INCLUDE file (BEAMCM).
6) It is possible to track pseudoparticles by setting SDUM = RAY. See
14} for details.
7) When an isotropic source is defined (by setting WHAT(3) > 2000 pi),
any cosines defined by option BEAMPOS become meaningless, although
their values are still reported on standard output.
8) When the radiation source is a radioactive isotope, requested by
SDUM = ISOTOPE and defined by command HI-PROPErt, special rules must
be observed. Note that if a stable isotope is input, nothing will
occur, and no particle will be transported. On the other hand, if
the isotope is radioactive, it will be necessary to request decay in
semi-analogue mode (command RADDECAY with WHAT(1) > 1). If RADDECAY
is not requested, nothing will occur, and no particle will be
transported. Commands IRRPROFI and DCYTIMES are not allowed: decay
secondaries are sampled over the whole decay time from zero to
infinity, and all scoring will refer to the time integral of isotope
activity (dose, fluence, current, yield or residual nuclei PER
DECAY, not the corresponding rates at particular decay times as it
happens in the "activation study" mode).
Important: to score any quantity, command DCYSCORE must be issued
with WHAT(1) = -1, and must be applying to all relevant estimators
and detectors. Without DCYSCORE, no scoring will occur.
For time-dependent calculations (see TCQUENCH, TIME-CUT) it is to be
noted that transport of isotope decay secondaries starts with an age
equal to the time of decay.
Examples:
* The following BEAM card refers to a 100 keV pencil-like
* electron beam:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM -1.E-4 0.0 0.0 0.0 0.0 1.0 ELECTRON
* The next option card describes a parallel proton beam with a
* momentum of 10.0 +/- 0.2 GeV/c, with a Gaussian profile in
* the x-direction and in the y-direction described by standard
* deviations sigma_x = 1. cm (FWHM = 2.36 cm) and sigma_y = 0.5
* cm (FWHM = 1.18 cm).
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM 10.0 0.2 0.0 -2.36 -1.18 1.0 PROTON
* The next example concerns a negative muon beam of 2 GeV
* kinetic energy, with a divergence of 3 mrad.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM -2.0 0.0 3.0 0.0 0.0 1.0 MUON-
* The next BEAM card describes a 137-Cs isotropic source
BEAM -661.7E-6 0.0 1.E4 0.0 0.0 1.0 PHOTON
* The last example illustrates how to define a hollow 14 MeV
* neutron beam, with an inner radius of 7 mm and an outer radius
* of 1.2 cm.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM -14.E-3 0.0 0.0 1.2 0.7 -1.0 NEUTRON
1********************************************************************************
{BEAMAXES}
defines the axes used for a beam reference frame different from the geometry
frame
See also BEAM, BEAMPOSit, POLARIZAti, SOURCE, SPECSOUR
WHAT(1) = cosine of the angle between the x-axis of the beam reference
frame and the x-axis of the geometry frame
Default: no default
WHAT(2) = cosine of the angle between the x-axis of the beam reference
frame and the y-axis of the geometry frame
Default: no default
WHAT(3) = cosine of the angle between the x-axis of the beam reference
frame and the z-axis of the geometry frame
Default: no default
WHAT(4) = cosine of the angle between the z-axis of the beam reference
frame and the x-axis of the geometry frame
Default: no default
WHAT(5) = cosine of the angle between the z-axis of the beam reference
frame and the y-axis of the geometry frame
Default: no default
WHAT(6) = cosine of the angle between the z-axis of the beam reference
frame and the z-axis of the geometry frame
Default: no default
SDUM : not used
Default (option BEAMAXES not requested): the beam frame coincides with the
geometry frame
Notes:
1) Option BEAM describes a simple pencil beam, or also a beam simply
distributed in space (angular divergence and transversal profile),
provided the beam axis coincides with the z-axis of the input
geometry. Also a possible beam polarisation described by option
POLARIZAti refers to a beam with its axis coinciding with the
geometry z-axis.
The purpose of option BEAMAXES is to allow the user to define
direction, angular divergence, transversal profile and polarisation
for a beam of arbitrary orientation, as defined by options
BEAMPOSit and BEAMAXES together. For this purpose, the user can
define direction, divergence, profile and polarisation in a beam
reference frame. Option BEAMAXES establishes the correspondence
between beam and geometry reference frame.
2) The origin of the beam reference frame coincides always with that of
the geometry frame.
3) The user needs to input only the direction cosines of the x- and of
the z-axis of the beam frame. The direction of the y-axis is
determined by the program as the vector product z X x.
4) If the x- and z-axes defined with BEAMAXES are not exactly
perpendicular (in double precision!) the program forces
perpendicularity by adjusting the cosines of the x-axis.
5) The direction cosines of the x- and z-axes do not need to be exactly
normalised to 1. The code takes care of properly normalising all
cosines.
Example:
* The next option cards describe a 10 GeV proton beam with a divergence of
* 50 mrad and a gaussian profile in the "beam x"-direction and in the
* "beam y"-direction described by standard deviations sigma_x = 1. cm
* (FWHM = 2.36 cm) and sigma_y = 0.5 cm (FWHM = 1.18 cm). The beam starts
* from point (0,0,0) and is directed along the "beam y" axis. The "beam x"
* and "geometry x" axis coincides, while the "beam z" axis is at 45 degrees
* with both the "geometry y" and "geometry z" axes. The resulting beam
* direction in the geometry frame is at 45 degrees with respect to the
* "geometry y" axis and at -45 degrees with respect to the "geometry z"
* one. The "beam x" axis has cosines 1,0,0 and the "beam z" axis has
* cosines 0, cos(pi/4), cos(pi/4)
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM -10.0 0.0 50.0 -2.36 -1.18 1.0 PROTON
BEAMPOS 0.0 0.0 0.0 0.0 1.0 0.0
BEAMAXES 1.0 0.0 0.0 0.0 0.7071068 0.7071068
1********************************************************************************
{BEAMPOS}it
defines the coordinates of the centre of the beam spot (i.e. the point from
which transport starts) and the beam direction. Also allows to define some
spatially extended sources.
See also BEAM, BEAMAXES, SOURCE, SPECSOUR
for SDUM = blank or NEGATIVE:
WHAT(1) = x-coordinate of the spot centre.
This value is available in COMMON BEAMCM as variable XBEAM.
It can be used or modified in subroutine SOURCE if command SOURCE
is present in input.
Default: 0.0
WHAT(2) = y-coordinate of the spot centre.
This value is available in COMMON BEAMCM as variable YBEAM.
It can be used or modified in subroutine SOURCE if command SOURCE
is present in input.
Default: 0.0
WHAT(3) = z-coordinate of the spot centre.
This value is available in COMMON BEAMCM as variable ZBEAM.
It can be used or modified in subroutine SOURCE if command SOURCE
is present in input.
Default: 0.0
WHAT(4) = direction cosine of the beam with respect to the x-axis of the
beam reference frame (namely the geometry reference frame unless
defined differently with BEAMAXES).
This value is available in COMMON BEAMCM as variable UBEAM.
It can be used or modified in subroutine SOURCE if command SOURCE
is present in input.
Default: 0.0
WHAT(5) = direction cosine of the beam with respect to the y-axis of the
beam reference frame (namely the geometry reference frame unless
defined differently with BEAMAXES).
This value is available in COMMON BEAMCM as variable VBEAM.
It can be used or modified in subroutine SOURCE if command SOURCE
is present in input.
Default: 0.0
WHAT(6) : not used
SDUM = NEGATIVE means that the direction cosine with respect to z-axis
is negative.
The value of the direction cosine with respect to the z-axis can
be overridden in user routine SOURCE by assigning a value to
variable WBEAM in COMMON BEAMCM (make sure that the three cosines
are properly normalised so that the sum of their squares is 1.0
in double precision!)
Default: beam directed in the positive z-direction
for SDUM = SPHE-VOL:
the command defines a spatially extended source shaped as a spherical shell.
The centre x,y,z of the outer and of the inner sphere, as well as the
particle direction, must be defined by another BEAMPOSit command. The
particle angular distribution, or lack of it, is defined by the BEAM card.
WHAT(1) >= 0.0: radius in cm of the inner sphere defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(2) > 0.0: radius in cm of the outer sphere defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
WHAT(3)-WHAT(6): not used
for SDUM = CYLI-VOL:
the command defines a spatially extended source shaped as a cylindrical
shell with the height of the outer and of the inner cylinder parallel to
the z axis of the beam reference frame (namely the geometry reference frame
unless defined differently with BEAMAXES). The outer and the inner cylinder
are centred at a x,y,z point defined by another BEAMPOSit command, which
also sets the particle direction by means of a SDUM blank or = NEGATIVE.
The particle angular distribution, or lack of it, is defined by the BEAM
card.
WHAT(1) >= 0.0: radius in cm of the inner cylinder defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(2) > 0.0: radius in cm of the outer cylinder defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
WHAT(3) >= 0.0: height in cm of the inner cylinder defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(4) > 0.0: height in cm of the outer cylinder defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
WHAT(5), WHAT(6): not used
for SDUM = CART-VOL:
the command defines a spatially extended source shaped as a Cartesian
shell with the edges parallel to the axes of the reference frame (namely the
geometry reference frame unless defined differently with BEAMAXES). The
outer and the inner parallelepiped are centred at a x,y,z point defined by
another BEAMPOSit command, which also sets the particle direction by means
of a SDUM blank or = NEGATIVE. The particle angular distribution, or lack of
it, is defined by the BEAM card.
WHAT(1) >= 0.0: length in cm of the x side of the inner parallelepiped
defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(2) > 0.0: length in cm of the x side of the outer parallelepiped
defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
WHAT(3) >= 0.0: length in cm of the y side of the inner parallelepiped
defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(4) > 0.0: length in cm of the y side of the outer parallelepiped
defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
WHAT(5) >= 0.0: length in cm of the z side of the inner parallelepiped
defining the shell
< 0.0: resets to default
Default: 0.0
WHAT(6) > 0.0: length in cm of the z side of the outer parallelepiped
defining the shell
= 0.0: ignored
< 0.0: resets to default
Default: 1.0 cm
for SDUM = FLOOD:
the command defines a source distribution on a spherical surface, centred
at the x,y,z point defined by another BEAMPOSit command with SDUM blank or
= NEGATIVE, such as to produce a uniform and isotropic fluence within the
sphere. The value of the produced fluence will be 1/(pi R^2) cm-2
WHAT(1) > 0.0: radius R of the sphere in cm
= 0.0: ignored
< 0.0: resets to default
Default: 1/sqrt(pi) cm (i.e., fluence = 1 cm-2)
WHAT(2)-WHAT(6): not used
Default (option BEAMPOSit not requested): beam starting at
point 0., 0., 0. in the z direction)
Notes:
1) To take full advantage of some tracking optimisation features, it is
often a good idea to create a buffer vacuum region containing the
whole geometry, which must itself be contained within the external
(mandatory) blackhole region. It is then suggested that the beam
impact point be chosen in vacuum, slightly upstream of the actual
one on a material boundary. As a general rule, anyway, it is
recommended to never select the impact point EXACTLY on a boundary.
2) The beam spot coordinates and the beam director cosines as defined
with the BEAMPOSit card are available to user routines with names
XBEAM, YBEAM, ZBEAM and UBEAM, VBEAM, WBEAM respectively. These
variables, as well as those defining other beam properties, are in
COMMON BEAMCM which can be accessed with the INCLUDE file (BEAMCM).
3) Beam divergence and transversal profile defined by option BEAM, as
well as polarisation defined by option POLARIZAti, are meaningful
only if the beam direction is along the positive z-axis, unless a
command BEAMAXES is issued to establish a beam reference frame
different from the geometry frame
4) When an isotropic source is defined (by setting command BEAM with
WHAT(3) > 2000 pi), any cosines defined by option BEAMPOSit become
meaningless, although their values are still reported on standard
output.
Examples:
* A beam parallel to the x-axis starting at a point of
* coordinates -0.1, 5.0, 5.0 :
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
BEAMPOS -0.1 5.0 5.0 1.0 0.0 0.0
* A beam perpendicular to the x-axis, with director cosines
* 0., 1/sqrt(2), -1/sqrt(2) with respect to x, y and z,
* starting at point 0.0, 0.0, 0.0 :
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAMPOS 0.0 0.0 0.0 0.0 0.7071068 0.0 NEGATIVE
1********************************************************************************
{BIASING}
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) 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
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 UBSSET by
assigning a value to variable RRHADR, see 13})
Default = 1.0
WHAT(3) = region importance (allowed values range from 0.0001 to 100000.)
This value can be overridden in the user routine UBSSET by
assigning a value to one or more of the variables IMPHAD, IMPLOW
and IMPEMF (depending on the value of WHAT(1)).
If SDUM = USER, setting WHAT(3) = 1. for a region will suppress
all calls to routine USIMBS during 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 to WHAT(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 to WHAT(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 weight windows)
= NOPRINT: counters are not printed (cancels any previous PRINT
request)
= USER: importance biasing according to the user-defined
routine USIMBS
= NOUSER: resets to default (cancels any previous USER request)
= RRPRONLY: multiplicity biasing for primary particles only.
Please note that this setting is global and it is not
region dependent
= 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) if WHAT(3) > 0, all particles otherwise
WHAT(5) = step length in assigning particle numbers
("...in steps of WHAT(5)").
Default: 1.0
WHAT(6) = not used
SDUM = PRIMARY : importance biasing is applied also to primary particles
(cancels any previous NOPRIMARy request)
NOPRIMARy : importance biasing is applied only to secondaries
Default = PRIMARY
WARNING:
Even if a BIASING card is issued only to set PRIMARY/NOPRIMARy, remember
that a value of 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 BIASING not given): no multiplicity or RR/splitting biasing
Notes:
1) WHAT(2), with WHAT(1) >= 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].
2) WHAT(3), with WHAT(1) >= 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.
3) 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.
The modifying parameter M (WHAT(2), with WHAT(1) > 0) works as
follows:
At a boundary crossing, let us call I1 the importance of the
upstream region, and I2 that of the downstream region.
- If I2 < I1, Russian Roulette will be played.
Without any modifying factor, the chance of particle survival
is I2/I1.
For 0. <= M <= 1., the survival chance is modified to:
1. - M * (1. - I2/I1)
It can be seen that a value M = 0. resets the chance of survival
to 1., namely inhibits Russian Roulette biasing.
A value M = 1. leaves the survival chance unmodified, while any
value between 0. and 1. INCREASES the probability of survival
with respect to the basic setting.
For M >= 1., the survival chance is modified to:
I2/(M * I1)
So, a value larger than 1. DECREASES the probability of survival
with respect to the basic setting.
- If I2 > I1, there will be splitting. Without any modifying
factor, the number of particles is increased on average by a
factor I2/I1.
With the modifying factor, the number of particles is increased
instead by:
1. + M * (I2/I1 - 1.)
It can be seen that a value M = 0. resets the splitting factor
to 1., namely inhibits splitting.
A value M = 1. leaves the number of particles unmodified; a
value between 0.0 and 1.0 DECREASES the amount of splitting with
respect to the basic setting; a value > 1 INCREASES 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. the modifying factor M (WHAT(2), with
WHAT(1) < 0).
4) 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.
5) 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!
6) 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
(cards WW-FACTOR and 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, set SDUM = PRINT to 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.0001 to 100000., the user can
multiply all the importances by a factor, ONLY FOR THE PURPOSE OF
CALCULATING THE REFERENCE WEIGHT LEVEL, by means of option
WW-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.
7) Importance biasing cannot be made by user routine USIMBS and 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
1********************************************************************************
{COMPOUND}
defines a compound, alloy or mixture, made of several materials, or even a
mixture of different isotopes
See also ASSIGNMAt, CORRFACT, LOW-MAT, MATERIAL, MAT-PROP
If WHAT(1) > 0.0 and WHAT(2) > 0.0 :
WHAT(1) = atom relative content of first material in the compound
WHAT(2) = index (or name) of first material
If WHAT(1) < 0.0 and WHAT(2) > 0.0 :
|WHAT(1)| = mass fraction of first material in the compound
WHAT(2) = index (or name) of first material
If WHAT(1) < 0.0 and WHAT(2) < 0.0 :
|WHAT(1)| = volume fraction of first material in the compound
|WHAT(2)| = index (or name) of first material
No default
In a similar way, WHAT(3) and WHAT(4) refer to the second material in the
compound, WHAT(5) and WHAT(6) to the third one.
SDUM = name of the compound
Default (option COMPOUND not requested): no compound is defined
For more than three materials in the same compound, add as many COMPOUND
cards with the same SDUM name as needed (but the maximum number of
components per compound is 80, and the maximum total number of components
is 2400).
Notes:
1) Option COMPOUND must always be used in conjunction with a MATERIAL
card having the same SDUM name (see MATERIAL). MATERIAL cards used
for this purpose provide the density of the compound, its material
number and name (WHAT(1) and WHAT(2) of the MATERIAL option, namely
atomic number and weight, are ignored).
2) The order of MATERIAL and COMPOUND cards is irrelevant.
3) The atom (or molecule) content, mass fraction or volume fraction
need only to be given on a relative basis (normalisation is done
automatically by the program).
4) Partial pressures of an (ideal) gas are equivalent to molecule
fractions and also to volume fractions.
5) If a compound is defined by volume fractions of the components
(either elements or compounds themselves - see Note 8 below for
recursive definitions), FLUKA internally calculates the atomic
densities of each component using the densities indicated in the
respective MATERIAL cards: in this case, therefore, (and only in
this case), it is important that these correspond to the actual
densities.
6) Isotopic compositions other than natural can be defined by the
COMPOUND option too.
7) When using the LOW-NEUT option (explicitly or by default set by the
DEFAULTS option), a special data set containing low-energy neutron
cross sections for each material used must be available. The data
sets are combined in a single file, delivered with the FLUKA program
(logical input unit LUNXSC, = 9). Each low-energy neutron data set is
identified either by name (if equal to a FLUKA name and unique or
first with that name), or/and by one or more identifiers given with
a card LOW-MAT when necessary to remove ambiguity.
In the case of a composite material defined by a COMPOUND option,
two possibilities are allowed (see LOW-MAT):
a - to associate the FLUKA material with a pre-mixed neutron data
set. In this case interactions take place with individual nuclei
at high energy, while average cross sections are used for
low-energy neutrons. Note that no pre-mixed neutron data set is
yet available (at the moment the standard sets contain pure
elements only).
b - to associate the FLUKA material with several elemental neutron
data sets (one per component element). In this case both
high-energy and low-energy neutron interactions take place with
individual nuclei. This is the only possibility at present but
it may change in the future.
8) Recursion is allowed, i.e. the components of a composite material
can be composite materials. The depth of recursion is only limited
by the size of the internal arrays (in case of overflow a message
is issued and the job is terminated). Different levels of recursion
can use different units in the definition of the component fractions
(atoms, mass or volume fractions). Note, however, that if a compound
is put together from different composite molecules, the atomic and
molecular fractions have to be given without normalisation (use the
chemical formulae directly).
What follows is an example (for a number-based input) of a simple
compound BOOZE containing 50 weight percent of water and 50 of
ethanol.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1.0 0.0 .0000899 3.0 0.0 0.0 HYDROGEN
MATERIAL 6.0 0.0 2.0 4.0 0.0 0.0 CARBON
MATERIAL 8.0 0.0 0.00143 5.0 0.0 0.0 OXYGEN
MATERIAL 0.0 0.0 1.0 20.0 0.0 0.0 WATER
MATERIAL 0.0 0.0 0.7907 7.0 0.0 0.0 ETHANOL
MATERIAL 0.0 0.0 0.9155 8.0 0.0 0.0 BOOZE
COMPOUND 2.0 3.0 1.0 5.0 0.0 0.0 WATER
COMPOUND 2.0 4.0 6.0 3.0 1.0 5.0 ETHANOL
COMPOUND -50.0 20.0 -50.0 7.0 0.0 0.0 BOOZE
* Note that in the above example materials 4, 5, 7 and 8 have been defined
* overriding the default FLUKA material numbers.This is only allowed in
* an explicitly number-based input, declared as such with WHAT(4) = 4.0 in
* command GLOBAL.
The same example, in a name-based input, could be:
MATERIAL 1.0 0.0 .0000899 0.0 0.0 0.0 HYDROGEN
MATERIAL 6.0 0.0 2.0 0.0 0.0 0.0 CARBON
MATERIAL 8.0 0.0 0.00143 0.0 0.0 0.0 OXYGEN
MATERIAL 0.0 0.0 1.0 0.0 0.0 0.0 WATER
MATERIAL 0.0 0.0 0.7907 0.0 0.0 0.0 ETHANOL
MATERIAL 0.0 0.0 0.9155 0.0 0.0 0.0 BOOZE
COMPOUND 2.0 HYDROGEN 1.0 OXYGEN 0.0 0.0 WATER
COMPOUND 2.0 CARBON 6.0 HYDROGEN 1.0 OXYGEN ETHANOL
COMPOUND -50.0 WATER -50.0 ETHANOL 0.0 0.0 BOOZE
Example of how COMPOUND is commonly used to define a mixture (concrete).
In a number-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
* definition of material 27 (concrete) as compound: H (1%), C(0.1%),
* O(52.9107%), Na(1.6%), Mg(0.2%), Al(3.3872%), Si(33.7021%), K(1.3%),
* Ca(4.4%), Fe(1.4%)
MATERIAL 19.0 0.0 0.862 26.0 0.0 0.0 POTASSIU
MATERIAL 0.0 0.0 2.35 27.0 0.0 0. CONCRETE
COMPOUND -0.01 3.0 -0.001 6.0 -0.529107 8. CONCRETE
COMPOUND -0.016 19.0 -0.002 9.0 -0.033872 10. CONCRETE
COMPOUND -0.337021 14.0 -0.013 26.0 -0.044 21. CONCRETE
COMPOUND -0.014 11.0
* In the above example, elements 3 (hydrogen), 6 (carbon), 8 (oxygen),
* 9 (magnesium), 10 (aluminium), 11 (iron), 14 (silicon), 19 (sodium) and
* 21 (calcium) are not defined because the corresponding pre-defined FLUKA
* materials are used (see 5}). Potassium is not pre-defined, therefore it is
* assigned a new numbers 26 (that keeps the numbering sequence continuous,
* since the last FLUKA pre-defined material has number 25). The name is
* chosen to correspond with the potassium neutron cross section data set.
* (Chap. 10})
The same example, in a name-based input:
MATERIAL 19.0 0.0 0.862 0.0 0.0 0.0 POTASSIU
MATERIAL 0.0 0.0 2.35 0.0 0.0 0. CONCRETE
COMPOUND -0.01 HYDROGEN -0.001 CARBON -0.529107 OXYGEN CONCRETE
COMPOUND -0.016 SODIUM -0.002 MAGNESIU -0.033872 ALUMINUM CONCRETE
COMPOUND -0.337021 SILICON -0.013 POTASSIU -0.044 CALCIUM CONCRETE
COMPOUND -0.014 IRON
1********************************************************************************
{CORRFACT}
allows to alter material density for dE/dx and nuclear processes on a
region-by-region basis
See also ASSIGNMAt, COMPOUND, LOW-MAT, MATERIAL, MAT-PROP
WHAT(1): > 0.0 : density scaling factor for charged particle ionisation
processes (dE/dx, delta ray production, M\oller and Bhabha
scattering)
= 0.0 : ignored
-2 < WHAT(1) < 0:
|WHAT(1)| assumed relative to WHAT(2), the final
density correction factor will be |WHAT(1)| X WHAT(2)
=<-2: reset to default (1)
Default: 1.0
WHAT(2): > 0.0 : density scaling factor for all other processes
= 0.0 : ignored
< 0.0 : reset to default
Default: 1.0
WHAT(3): not used
WHAT(4): lower index bound (or corresponding name) of regions where the
scaling factors shall apply
"From region WHAT(4)..."
Default: 2.0
WHAT(5): upper index bound (or corresponding name) of regions where the
scaling factors shall apply
"...to region WHAT(5)..."
Default: WHAT(4)
WHAT(6): step length in assigning region numbers
"...in steps of WHAT(6)"
Default: 1.0
SDUM : not used
Default (option CORRFACT not requested): no density scaling factors are
applied
Note:
1) Option CORRFACT is mainly used in connection with voxel geometries
derived from a CT scan, where particle transport is done often in an
equivalent material (e.g., water), but accounting for the density
variations provided by scan at the voxel level. While this approach
is reliable for what concerns ionisation, other reactions, which do
not scale with density, must be simulated for the actual material
composition.
2) Only density scaling factors in the range [2/3 , 3/2] are allowed.
Example, in a number-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
* Multiply density by a 0.85 factor for what concerns atomic processes
* in regions 7, 8, 9, 10, 11, 12
CORRFACT 0.85 0.0 0.0 7.0 12.
The same example, in a name-based input, supposing that the geometry is
made of 12 regions:
CORRFACT 0.85 0.0 0.0 The7thRg @LASTREG
* Note the use of the name @LASTREG to indicate the maximum number of regions
* in the problem
1********************************************************************************
{DCYSCORE}
associates selected scoring detectors of given estimator type with
user-defined decay times or with combined prompt-decay particle scoring. In
the first case, see WARNING in Note 1 below. Also needed for scoring when
the source is a radioactive isotope.
See also DCYTIMES, IRRPROFI, RADDECAY, RESNUCLEi
WHAT(1) > 0.0 : cooling time index to be associated with the detector(s) of
estimator type defined by SDUM and with number (or name)
corresponding to WHAT(4)-WHAT(6) (see Note 2 below). Only
allowed when decay is calculated in "activation study"
non-analogue mode (see Note 1 of RADDECAY and Note 5
below).
= -1.0 : if option RADDECAY has been requested with WHAT(1) > 1.0,
i.e. for radioactive decays activated in semi-analogue mode,
the detectors defined by WHAT(4)-WHAT(6) will score both
prompt and radioactive decay particles. See Note 6, and
Note 7 for the case where the source has been defined as a
radioactive isotope.
= 0.0 : no scoring
Default = 0.0
WHAT(2)-WHAT(3) = not used
WHAT(4) = lower index bound (or corresponding name) of detectors of type
SDUM associated with the specified cooling time (if WHAT(1) > 0.)
or with combined prompt-decay particle scoring (if WHAT(1) = -1.)
("From detector WHAT(4) of estimator type SDUM....")
Default = 1.0
WHAT(5) = upper index bound (or corresponding name) of detectors associated
with the specified cooling time or with combined prompt-decay
particle scoring
("...to detector WHAT(5) of estimator type SDUM....")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in step of WHAT(6)")
Default = 1.0
SDUM : identifies the kind of estimator under consideration: EVENTBIN,
RESNUCLEi, USRBDX, USRBIN, USRCOLL, USRTRACK, USRYIELD
Default: no default!
Default (option DCYSCORE not requested): no particles originated from
radioactive decay are scored, in whatever mode decay is being
calculated (see Notes 4, 5 and 6 below).
Notes:
1) WARNING: when the DCYSCORE option is applied to a detector with
WHAT(1) > 0.0, all quantities are expressed PER UNIT TIME (in
seconds). For instance, the RESNUCLEi estimator will output Bq, dose
estimators will provide dose rate, etc.
If WHAT(1) = -1., all quantities are normalized per unit primary
weight, or per decay if the source has been defined as a radioactive
isotope.
2) The cooling time index indicated by WHAT(1) > 0. must be one of those
defined by means of option DCYTIMES.
3) USRBIN and EVENTBIN detectors are similar, therefore they are part of
the same index sequence; this has to be taken into account for the
numbering of the detectors.
The same holds for USRTRACK and USRCOLL detectors.
4) The scoring of decay radiation in "activation study" non-analogue
mode (WHAT(1) > 0.0, see Note 1 of RADDECAY) is different from all
the rest: decay particles are transported once, and a factor is
applied at scoring time depending on the decay time associated to
each detector.
This factor accounts for the buildup and decay of the parent nucleus
at the specified decay time. This factor IS NOT AVAILABLE in user
routines such as fluscw and comscw (Sec. 13.2.6}, 13.2.2}).
5) If radioactive decay has been requested in "activation study" mode
(command RADDECAY with WHAT(1) = 1) particles originated from
radioactive decay are scored at cooling times requested with
DCYTIMES. DCYSCORE, called with WHAT(1) > 0.0, is used to associate
a detector of type SDUM to a particular cooling time. If DCYSCORE is
not present, no particles originated from radioactive decay can
be scored.
6) If radioactive decay has been requested in "semi-analogue" mode
(Monte Carlo sampling: command RADDECAY with WHAT(1) > 1), particles
originated from radioactive decay are scored by the selected
detectors of type SDUM together with prompt particles, provided
DCYSCORE is issued with WHAT(1) = -1.0. If DCYSCORE is not present,
no particles originated from radioactive decay can be scored, and
any detector will score only prompt particles.
7) If the source has been defined as a radioactive isotope (see command
BEAM with SDUM = ISOTOPE), the radioactive decay must be activated
in semi-analogue mode (see Note 1 of RADDECAY), and therefore
WHAT(1) of DCYSCORE must be = -1.0. This can be considered as a
special case of the situation described in Note 6, where only decay
particles are present, and no prompt particles. Also in this case,
if DCYSCORE is not present no particles originated from radioactive
decay can be scored. And since no prompt particles are present, no
scoring at all can take place.
Example, for a number-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
DCYTIMES 86400. 172800.
DCYSCORE 1. 0. 0. 4. 8. 2.USRBIN
DCYSCORE 2. 0. 0. 1. 5. USRTRACK
* Two cooling times have been defined. Binnings no. 4, 6 and 8 will be
* associated to the first cooling time (one day), and track-length detectors
* no. 1, 2, 3, 4 and 5 will be associated to the second cooling time (2 days)
The same example, in a name-based input:
DCYTIMES 86400. 172800.
DCYSCORE 1. 0. 0. binning4 binning8 2.USRBIN
DCYSCORE 2. 0. 0. trakDet1 trakDet5 USRTRACK
1********************************************************************************
{DCYTIMES}
defines decay times for radioactive product scoring
See also DCYSCORE, IRRPROFI, RADDECAY, RESNUCLEi
Option DCYTIMES defines the times with respect to the end of the irradiation
at which selected quantities (e.g. residual dose) are scored.
WHAT(1) = cooling time (in s) after the irradiation end, to be associated
to a scoring detector (see Note 1 below)
>=< 0.0 : a new decay time is added with delay WHAT(1)
Default = 0.0
WHAT(2) = the same as WHAT(1) (one more cooling time)
WHAT(3) = the same as WHAT(1) (one more cooling time)
WHAT(4) = the same as WHAT(1) (one more cooling time)
WHAT(5) = the same as WHAT(1) (one more cooling time)
WHAT(6) = the same as WHAT(1) (one more cooling time)
SDUM = not used
Default (option DCYTIMES not requested): no decay times are defined
Notes:
1) Each cooling time is assigned an index, following the order in which
it has been input. This index can be used in option DCYSCORE to
assign that particular cooling time to one or more scoring
detectors.
2) Multiple cards can be given, up to the maximum number of decay
times allowed MXTRDC (MXTRDC = 1500 as of version 2011.2c.5).
3) All decay times are counted from the end of the last irradiation
period defined using the IRRPROFI command.
A null decay time corresponds to the end of irradiation.
A negative decay time indicates a time during the irradiation.
4) If a time is indicated more than once, only the first occurrence
will be considered and the repetitions will be ignored.
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Six different times for scoring have been defined, each with an index
* corresponding to its input order:
* scoring time #1 is 0s, i.e. the end of the irradiation EoI
* scoring time #2 is 10s after EoI
* scoring time #3 is 30s after EoI
* scoring time #4 is 3600s (1 hour) after EoI
* scoring time #5 is 43200s (12 hours) after EoI
* scoring time #6 is 86400s (24 hours) after EoI
Example 2:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Six different times for scoring have been defined, each with an index
* corresponding to its input order:
* scoring time #1 is -86400s (24 hours) before EoI
* scoring time #2 is -3600s, (1 hour) before EoI
* scoring time #3 is 0s, i.e. at EoI
* scoring time #4 is 3600s (1 hour) after EoI
* scoring time #5 is 43200s (12 hours) after EoI
* scoring time #6 is 86400s (24 hours) after EoI
Example 3:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Five different times for scoring have been defined. WHAT(5) hasn't been
* provided and the default 0.0 is taken. Therefore six scoring times are
* available:
* scoring time #1 is 10s after EoI
* scoring time #2 is 30s after EoI
* scoring time #3 is 3600s (1 hour) after EoI
* scoring time #4 is 43200s (12 hours) after EoI
* scoring time #5 is 86400s (24 hours) after EoI
* scoring time #6 is 0s, i.e. at EoI
Example 4:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Four different times for scoring have been defined. WHAT(5) and WHAT(6)
* haven't been provided and the default 0.0 is taken. The duplicated times are
* ignored. Therefore three scoring times are available:
* scoring time #1 is 10s
* scoring time #2 is 3600s, i.e. 1 hour
* scoring time #3 is 0s, i.e. the end of the irradiation
Example 5:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
* Eight different cards with one time each have been used. The default 0.0 is
* taken for all the WHATs that haven't been provided. The duplicated times are
* ignored. Therefore five scoring times are available:
* scoring time #1 is 10s after EoI
* scoring time #2 is 0s, i.e. at EoI
* scoring time #3 is 30s after EoI
* scoring time #4 is 3600s (1 hour) after EoI
* scoring time #5 is 86400s (24 hours) after EoI
1********************************************************************************
{DEFAULTS}
sets FLUKA defaults suitable for a specified kind of problems. Starting
from FLUKA99.5 (June 2000) the standard defaults are those described under
NEW-DEFAults below. That is, if no DEFAULTS card is issued the code
behaves as if a card with NEW-DEFAUlts was given.
See also GLOBAL
Important: DEFAULTS declarations, if present, must precede any executable
option
WHAT(1),....,WHAT(6): not used
SDUM = CALORIME : defaults for calorimeter simulations
DAMAGE : set of defaults for damage/DPA calculations
EET/TRAN : defaults for Energy Transformer or transmutation
calculations
EM-CASCA : defaults for pure EM cascades
ICARUS : defaults for studies related to the ICARUS experiment
HADROTHE : defaults for hadrotherapy calculations
NEUTRONS : defaults for pure low-energy neutron runs
[NEW-DEFA : reasonable minimal set of new defaults - not needed]
PRECISIO : defaults for precision simulations
SHIELDIN : defaults for hadron shielding calculations without gammas
Default: it is not allowed to leave SDUM blank. If the DEFAULTS card is
missing, the standard defaults are unchanged (equivalent to setting
SDUM = NEW-DEFAults)
Defaults changed by the various options:
CALORIMEtry
- EMF on (no need for an EMF card)
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated (no EMFFLUO needed)
- Low-energy neutron transport on (no LOW-NEUT needed) down to thermal
energies included. High energy neutron threshold at 20 MeV.
- Fully analogue absorption for low energy neutrons
- Built-in low energy neutron pointwise cross sections activated
for 1-H, 2-H, 3-He, 4-He, 6-Li, 12-C, down to 1.E-5 eV, except for
bound 1-H, 2-H, 12-C in graphite (down to 3 eV)
- Heavy evaporation activated up to mass 9, charge 4, included
(see option PHYSICS, SDUM=EVAPORAT)
- Particle transport threshold set at 1 x m_part / m_prot MeV, except
for neutrons (thermal), and (anti)neutrinos (0, but they are
discarded by default anyway)
- Multiple scattering threshold at minimum allowed energy, for both
primary and secondary charged particles
- Delta ray production on with threshold 100 keV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Fraction of the kinetic energy to be lost in a step set at 0.08,
number of dp/dx tabulation points set at 80 (see options DELTARAY,
EMFFIX, FLUKAFIX)
- Heavy particle e+/e- pair production activated with full explicit
production (with the minimum threshold = 2 m_e)
- Heavy particle bremsstrahlung activated with explicit photon
production above 300 keV
- Muon photonuclear interactions activated with explicit generation of
secondaries
- Detailed heavy fragment transport activated
DAMAGE
- EMF on (no need for an EMF card)
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated (no EMFFLUO needed)
- Low-energy neutron transport on (no LOW-NEUT needed) down to thermal
energies included. High energy neutron threshold at 20 MeV.
Pointwise treatment where available.
- Non-analogue absorption for low energy neutrons with probability 0.98
for the last (thermal) groups
- Heavy evaporation activated up to mass 9, charge 4, included
(see option PHYSICS, SDUM=EVAPORAT)
- Particle transport threshold set at 1 keV/n for hadrons, muons
and light ions, except for neutrons (thermal), e+/e- (m_e/2),
photons (m_e/4) and (anti)neutrinos
(0, but they are discarded by default anyway)
- Multiple scattering threshold at minimum allowed energy, for both
primary and secondary charged particles
- Delta ray production on with threshold 100 keV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Tabulation ratio for hadron/muon dp/dx set at 1.04, fraction of the
kinetic energy to be lost in a step set at 0.04 (see options
DELTARAY, EMFFIX, FLUKAFIX)
- Heavy particle e+/e- pair production activated with full explicit
production (with the minimum threshold = 2 m_e)
- Heavy particle bremsstrahlung activated with explicit photon
production above 300 keV
- Muon photonuclear interactions activated with explicit generation of
secondaries
- Detailed heavy fragment transport activated
EET/TRANsmutation
- Low energy neutron transport on down to thermal energies included
(high energy neutron threshold at 20 MeV)
- Non-analogue absorption for low energy neutrons with probability 0.95
for the last (thermal) groups
- Particle transport threshold set at 1 MeV, except neutrons
(1E-05 eV), and (anti)neutrinos (0, but they are discarded by default
anyway)
- Multiple scattering threshold for primary and secondary charged
particles lowered to 10 and 20 MeV respectively
- Unrestricted ionisation fluctuations on, for both hadrons/muons and EM
particles (if requested) (see option IONFLUCT)
- Both explicit and continuous heavy particle bremsstrahlung and pair
production inhibited
EM-CASCAde
- Electromagnetic interactions on (no need for explicit option EMF)
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated (no EMFFLUO needed)
- Restricted ionisation fluctuations for EM particles (see option
IONFLUCT)
- Both explicit and continuous heavy particle bremsstrahlung and pair
production inhibited
HADROTHErapy
- EMF on
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated (no EMFFLUO needed)
- Low-energy neutron transport on down to thermal energies included,
no need for option LOW-NEUT (high energy neutron threshold at
20 MeV)
- Fully analogue absorption for low-energy neutrons
- Built-in low energy neutron pointwise cross sections activated
for 1-H, 2-H, 3-He, 4-He, 6-Li, 12-C, down to 1.E-5 eV, except for
bound 1-H, 2-H, 12-C in graphite (down to 3 eV)
- Particle transport threshold set at 300 keV, except for photons
(100 keV), neutrons (1E-5 eV), and (anti)neutrinos (0, but they
are discarded by default anyway)
- Multiple scattering threshold at minimum allowed energy, for both
primary and secondary charged particles
- Delta ray production on with threshold 300 keV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Tabulation ratio for hadron/muon dp/dx set at 1.03, fraction of the
kinetic energy to be lost in a step set at 0.02 (see options
DELTARAY, EMFFIX, FLUKAFIX)
- Detailed heavy fragment transport activated
- Transport and decay in flight of ions in excited states
- Both explicit and continuous heavy particle bremsstrahlung and pair
production inhibited
- No photo-nuclear, electro-nuclear, and muon-nuclear interactions
(see options PHOTONUC and MUPHOTON)
ICARUS
- EMF on
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated (no EMFFLUO needed)
- Low energy neutron transport on down to thermal energies included,
(high energy neutron threshold at 20 MeV)
- Fully analogue absorption for low energy neutrons
- Built-in low energy neutron pointwise cross sections activated
for 1-H, 2-H, 3-He, 4-He, 6-Li, 12-C, down to 1.E-5 eV, except for
bound 1-H, 2-H, 12-C in graphite (down to 3 eV)
- Particle transport threshold set at 100 keV, except neutrons
(1E-5 eV), and (anti)neutrinos (0, but they are discarded by default
anyway)
- Multiple scattering threshold at minimum allowed energy, for both
primary and secondary charged particles
- Delta ray production on with threshold 100 keV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Tabulation ratio for hadron/muon dp/dx set at 1.04, fraction of the
kinetic energy to be lost in a step set at 0.05, number of dp/dx
tabulation points set at 80 (see options DELTARAY, EMFFIX, FLUKAFIX)
- Heavy particle e+/e- pair production activated with full explicit
production (with the minimum threshold = 2m_e)
- Heavy particle bremsstrahlung activated with explicit photon
production above 300 keV
- Muon photonuclear interactions activated with explicit generation of
secondaries
- Detailed heavy fragment transport activated
NEUTRONS
- Low energy neutron transport on down to thermal energies included,
no need for LOW-NEUT (high energy neutron threshold at 20 MeV)
- Non-analogue absorption for low-energy neutrons with probability 0.95
for the last (thermal) groups
- Built-in low energy neutron pointwise cross sections activated
for 1-H, 2-H, 3-He, 4-He, 6-Li, 12-C, down to 1.E-5 eV, except for
bound 1-H, 2-H, 12-C in graphite (down to 3 eV)
- Both explicit and continuous heavy particle bremsstrahlung and pair
production inhibited
NEW-DEFAults (standard defaults active even if the DEFAULTS card is not
present)
- EMF on, with electron and photon transport thresholds to be set using
the EMFCUT command
- Inelastic form factor corrections to Compton scattering activated (no
need for EMFRAY)
- Low energy neutron transport on down to thermal energies included,
(no need for LOW-NEUT). The neutron high energy threshold is set
at 20 MeV.
- Non analogue absorption for low energy neutrons with probability 0.95
for the last (thermal) groups
- Particle transport threshold set at 10 MeV, except for neutrons
(1E-5 eV), and (anti)neutrinos (0, but they are discarded by default
anyway)
- Multiple scattering threshold for secondary charged particles lowered
to 20 MeV (equal to that of the primary ones)
- Delta ray production on with threshold 1 MeV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Heavy particle e+/e- pair production activated with full explicit
production (with the minimum threshold = 2m_e)
- Heavy particle bremsstrahlung activated with explicit photon
production above 1 MeV
- Muon photonuclear interactions activated with explicit generation of
secondaries
PRECISIOn
- EMF on
- Rayleigh scattering and inelastic form factor corrections to Compton
scattering and Compton profiles, annihilation photon acolinearity
all activated (no EMFRAY needed)
- Detailed photoelectric edge treatment and fluorescence photons
activated
- Low energy neutron transport on down to thermal energies included,
(high energy neutron threshold at 20 MeV)
- Built-in low energy neutron pointwise cross sections activated
for 1-H, 2-H, 3-He, 4-He, 6-Li, 12-C, down to 1.E-5 eV, except for
bound 1-H, 2-H, 12-C in graphite (down to 3 eV)
- Fully analogue absorption for low-energy neutrons
- Heavy evaporation activated up to mass 9, charge 4, included
(see option PHYSICS, SDUM=EVAPORAT)
- Particle transport threshold set at 100 keV, except neutrons
(1E-5 eV), and (anti)neutrinos (0, but they are discarded by default
anyway)
- Multiple scattering threshold at minimum allowed energy, for both
primary and secondary charged particles
- Delta ray production on with threshold 100 keV (see option DELTARAY)
- Restricted ionisation fluctuations on, for both hadrons/muons and EM
particles (see option IONFLUCT)
- Tabulation ratio for hadron/muon dp/dx set at 1.04, fraction of the
kinetic energy to be lost in a step set at 0.05, number of dp/dx
tabulation points set at 80 (see options DELTARAY, EMFFIX, FLUKAFIX)
- Heavy particle e+/e- pair production activated with full explicit
production (with the minimum threshold = 2m_e)
- Heavy particle bremsstrahlung activated with explicit photon
production above 300 keV
- Muon photonuclear interactions activated with explicit generation of
secondaries
- Transport and decay in flight of ions in excited states
- Detailed heavy fragment transport activated
SHIELDINg
- Low energy neutron transport on down to thermal energies included,
(the neutron high energy threshold is set at 20 MeV)
- Non-analogue absorption for low energy neutrons with probability 0.95
for the last (thermal) groups
- Particle transport threshold set at 10 MeV, except neutrons
(1E-5 eV), and (anti)neutrinos (0, but they are discarded by default
anyway)
- Multiple scattering threshold for secondary charged particles lowered
to 20 MeV (= primary ones)
- Both explicit and continuous heavy particle bremsstrahlung and pair
production inhibited
- EMF off!!! This default is meant for simple hadron shielding only!
Notes:
1) If an option does not appear in input, FLUKA provides default
parameter values in most cases. Standard defaults are also applied
when the option is present but not all its WHAT and SDUM parameters
have been defined explicitly by the user. However, some types of
problems are better handled using different defaults. Option
DEFAULTS allows to override the standard ones with others, tuned to
a specific class of transport problems.
The present set of defaults (valid if no DEFAULTS card is issued) is
equivalent to that set by SDUM = NEW-DEFAults.
2) IMPORTANT! Option DEFAULTS must be issued at the very beginning of
input. It can be preceded only by a GLOBAL card and by command
TITLE. This is one of the rare cases, like GLOBAL, MAT-PROP and
PLOTGEOM, where sequential order of input cards is of importance in
FLUKA (see 7}).
3) The name of the SHIELDINg default refers to simple calculations for
proton accelerators, where the electromagnetic component can be
neglected. It is not applicable to electron accelerator shielding or
any other shielding problem where the gamma component is important.
4) The responsibility of choosing reasonable defaults, compatible with
the rest of input, is left to the user. In particular, choosing the
defaults corresponding to pure EM cascade or to pure low-energy
neutron problems has the effect of turning off all initialisations
related to the hadronic generators. This will save a considerable
time at the beginning of the run, but will lead to a crash if a
hadron generator is called because of some other input option. In
particular, SDUM = EM-CASCA is incompatible with option PHOTONUC and
with beam particles different from PHOTON, ELECTRON and POSITRON;
and SDUM = NEUTRONS is incompatible with option EMF, with any beam
particle different from NEUTRON and with energies higher than 20 MeV.
On the other hand, it is possible to override some of the defaults,
in particular the various thresholds, by issuing the corresponding
command after DEFAULTS (PART-THR, EMFCUT. DELTARAY, etc.)
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
DEFAULTS 0.0 0.0 0.0 0.0 0.0 0.0 EM-CASCA
* The above declaration refers to a problem where only electrons, positrons
* and photons are transported.
1********************************************************************************
{DELTARAY}
Activates delta ray production by muons and charged hadrons and controls the
accuracy of the dp/dx tabulations
See also IONFLUCT
WHAT(1) > 0.0 : kinetic energy threshold (GeV) for delta ray production
(discrete energy transfer). Energy transfers lower than
this energy are assumed to take place as continuous energy
losses
= 0.0 : ignored
< 0.0 : resets the default to infinite threshold, i.e. no delta ray
production
Default = 0.001 (1 MeV) if option DEFAULTS is not used, or if it
is used with SDUM = NEW-DEFAults.
If DEFAULTS is used with SDUM = CALORIMEtry,
HADROTHErapy, ICARUS or PRECISIOn, the default
is 0.0001 (100 keV).
If it is used with any other SDUM value, the default is
-1.0 (continuous slowing down approximation without
production of delta rays)
WHAT(2) > 0.0 : number of logarithmic intervals for dp/dx momentum loss
tabulation
= 0.0 : ignored
< 0.0 : resets the default to 50.0
Default = 50.0 (this is the default if option DEFAULTS is not
used, or is used with anything but SDUM = CALORIMEtry,
ICARUS or PRECISIOn).
With the latter, the default is 80.
See Note 2 below for more details
WHAT(3) > 1.0 : logarithmic width of dp/dx momentum loss tabulation
intervals (ratio between upper and lower interval limits).
0.0 =< WHAT(3) =< 1.0: ignored
< 0.0 : resets the default to 1.15
Default = 1.15 (this is the default if option DEFAULTS is not
used, or is used with any SDUM value but HADROTHErapy,
ICARUS or PRECISIOn).
If DEFAULTS is used with SDUM = ICARUS or PRECISIOn, the
default is 1.04.
With SDUM = HADROTHErapy the default is 1.03.
See Note 2 below for more details
WHAT(4) = lower index bound (or corresponding name) of materials where
delta ray production or specified tabulation accuracy are
requested
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper index bound (or corresponding name) of materials where
delta ray production or specified tabulation accuracy are
requested
("...to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.0
SDUM: = PRINT: prints dE/dx tabulations for the given materials on
standard output (see Note 1)
= NOPRINT: resets to no printing a possible previous request for
these materials
= blank: ignored
Default: NOPRINT
Default (option DELTARAY not requested): the defaults depend on option
DEFAULTS as explained above. See also Note 9.
Notes:
1) To calculate energy loss by charged particles, FLUKA sets up and
uses internally tables of momentum loss per unit distance (dp/dx)
rather than the more commonly used dE/dx. However, if requested to
print those tables, it outputs them as converted to dE/dx.
2) The upper and lower limit of the dp/dx tabulations are determined by
the options BEAM and PART-THR, or by the corresponding defaults.
Therefore, either the number OR the width of the intervals are
sufficient to define the tabulations completely. If both WHAT(2) and
WHAT(3) are specified, or if the value of both is defined implicitly
by the chosen default, the most accurate of the two resulting
tabulations is chosen.
3) The lower tabulation limit is the momentum of the charged particle
which has the lowest transport threshold. The upper limit
corresponds to the maximum primary energy (as set by BEAM) plus an
additional amount which is supposed to account for possible
exoenergetic reactions, Fermi momentum and so on.
4) This option concerns only charged hadrons and muons. Delta rays
produced by electrons and positrons are always generated, provided
their energy is larger than the production threshold defined by
option EMFCUT.
5) Request of delta ray production is not alternative to that
of ionisation fluctuations (see IONFLUCT). The two options, if not
used at the same time, give similar results as far as transport and
energy loss are concerned, but their effect is very different
concerning energy deposition: with the IONFLUCT option the energy
lost is sampled from a distribution but is deposited along the
particle track, while DELTARAY, although leading to similar
fluctuations in energy loss, will deposit the energy along the delta
electron tracks, sometimes rather far from the primary trajectory.
IONFLUCT can be used even without requesting the EMF option, while
when requesting DELTARAY the EMF card must also be present (or
implicitly activated by default) - see option DEFAULTS - if
transport of the generated electrons is desired.
6) Normally, the energy threshold for delta ray production should be
higher than the electron energy transport cutoff specified by
EMFCUT. If it is not, the energy of the delta electron produced is
deposited on the spot. As explained above, this will result in
correct energy loss fluctuations but with the energy deposited along
the particle track, a situation similar to that obtained with
IONFLUCT alone.
7) Note that FLUKA makes sure that the threshold for delta ray
production is not set much smaller than the average ionisation
potential.
8) Presently, DELTARAY can be used together with the IONFLUCT option
with a threshold for delta rays chosen by the user. As a result,
energy losses larger than the threshold result in the production and
transport of delta electrons, while those smaller than the threshold
will be sampled according to the correct fluctuation distribution.
9) Here are the settings for delta ray production and dp/dx tabulations
corresponding to available DEFAULTS options:
- ICARUS, PRECISIOn: threshold for delta ray production 100 keV;
momentum loss tabulation with 80 logarithmic intervals or 1.04
logarithmic width (whichever is more accurate)
- CALORIMEtry: threshold for delta ray production 100 keV;
momentum loss tabulation with 80 logarithmic intervals or 1.15
logarithmic width
- HADROTHErapy: threshold for delta ray production 100 keV;
momentum loss tabulation with 50 logarithmic intervals or 1.03
logarithmic width
- NEW-DEFAults, or DEFAULTS missing: threshold for delta ray
production 1 MeV; momentum loss tabulation with 50 logarithmic
intervals or 1.15 logarithmic width
- Any other SDUM value: no delta ray production; momentum loss
tabulation with 50 logarithmic intervals or 1.15 logarithmic
width
Example, for a number-based input:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
DELTARAY 0.01 30. 0.0 3.0 18.0 PRINT
DELTARAY 0.02 0.0 1.05 4.0 12.0 8.0 NOPRINT
* In this example, delta rays with energies higher than 20 MeV (0.02 GeV)
* will be produced in materials 4 and 12; for the same materials,
* logarithmic intervals with a ratio of 1.05 between the upper and the
* lower limit of each interval are requested for the dp/dx tabulation. For
* all other materials with number between 3 and 18, delta rays are
* produced above 10 MeV and 30 intervals are used in the dp/dx tabulation.
* Tabulations of dE/dx are printed for all materials except 4 and 12.
An equivalent example, for a name-based input, is:
DELTARAY 0.01 30. 0.0 HYDROGEN TANTALUM PRINT
DELTARAY 0.02 0.0 1.05 HELIUM COPPER 8.0 NOPRINT
The following is an example where a threshold of 500 keV is set for delta
ray production in ALL materials:
DELTARAY 5.E-4 0.0 0.0 HYDROGEN @LASTMAT PRINT
1********************************************************************************
{DETECT}
Scores energy deposition on an event by event basis (detector), providing
coincidence and anti-coincidence capabilities such as those of a trigger.
In the following, an "event" means energy deposited in one or more DETECTOR
REGIONS by one primary particle and its descendants, i.e. between two
successive calls to the FEEDER subroutine (case of an incident beam) or to a
user-written SOURCE subroutine (case of an extended source, or of a source
read from a collision file or sampled from a distribution).
A "signal" means energy deposited in one or more TRIGGER REGIONS by the same
primary particle and descendants (i.e., between the same calls).
The output of DETECT is a distribution of energy deposited per event in the
region(s) making up the detector in (anti)coincidence with a signal larger
than a given cutoff or threshold in the trigger region(s).
It is also possible to define DETECTOR COMBINATIONS. [NOT YET IMPLEMENTED!!]
This option can extend over several sequential cards. The meaning of the
parameters on the first card are:
WHAT(1) <= 0.0 for a detector, > 0.0 for a combination of detectors
If WHAT(1) <= 0.0:
|WHAT(1)|= number of channels if >1024. Otherwise, number of
channels is 1024.
WHAT(2) = minimum total energy to be scored in the detector regions in one
event, i.e. lower limit of the event distribution.
Default: 0.0
WHAT(3) = maximum total energy to be scored in the detector regions in one
event, i.e. upper limit of the event distribution
No default
WHAT(4) = cutoff energy for the signal (coincidence/anticoincidence
threshold). The energy deposition event is scored only if a total
of more than WHAT(4) GeV are/aren't correspondingly deposited in
the trigger regions.
Default: 1.E-9 (= 1 eV)
WHAT(5) = > 0.0 : the detector regions, taken together, must be considered
in COINCIDENCE with the trigger regions (also taken together)
<= 0.0 : the detector regions must be considered in
ANTI-COINCIDENCE with the trigger regions
Default: anti-coincidence
WHAT(6) = region number or name not preceded by a minus sign: first region
of the DETECTOR
region number or name preceded by a minus sign: first region of
the TRIGGER
(the other regions will be given with continuation cards, see
below).
No default
SDUM = detector name (max. 10 characters) unless the character "&"
is present
Continuation card (if present):
WHAT(1) = same as WHAT(1) for the first card
WHAT(2-6) = following regions (with sign). If not preceded by a minus sign,
they are considered detector regions, otherwise trigger regions
SDUM = "&" in any position in column 71 to 78 (or in the last field
if free format is used)
Note: if no trigger region is given (i.e. no region with negative sign)
a simple event-by-event scoring takes place.
Default (option DETECT not requested): no (anti)coincidence scoring
Notes:
1) Output from DETECT is written unformatted on logical unit 17.
A program, DETSUW, is available with the normal FLUKA
code distribution in the directory $FLUPRO/flutil. DETSUW allows to
combine the results of several runs, and returns the results
in both an unformatted and a formatted files.
2) Important: option DETECT will give meaningful results ONLY when
FLUKA is used in a completely analogue mode, since correlations are
destroyed by biasing. Thus, DETECT cannot be used together with any
biasing option or weight-changing facility. It is recommended for
this purpose to issue a GLOBAL command with WHAT(2) < 0.0 at the
beginning of input (see GLOBAL).
A list of incompatible options is: BIASING, EMF-BIAS, LOW-BIAS,
LAM-BIAS, WW-FACTOr, EMFCUT with WHAT(3) > 0, EMF with WHAT(6) <> 1,
EXPTRANS, LOW-DOWN.
Example (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
DETECT 0.0 1.E-4 1.E-2 5.E-5 1.0 7.0 Coincid_1
DETECT 0.0 -9.0 -12.0 10.0 11.0 &
* The meaning of the above lines is the following:
* a "signal" equal to energy deposition in regions 7 + 10 + 11 will be
* scored if:
* 1) that signal is larger than 1.E-4 GeV and smaller than 0.01 GeV
* 2) at the same time (in coincidence) an energy deposition of at least
* 5.0E-5 GeV occurs in regions 9 + 12
* The output will give a signal (event) spectrum between the energy
* limits 1.0E-4 and 0.010 GeV, distributed over a fixed number of channels
* (1024 in the standard version).
The same example, name-based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
DETECT 0.0 1.E-4 1.E-2 5.E-5 1.0 The7thRg Coincid_1
DETECT 0.0 -The9thRg -Region12 Region10 Region11 &
1********************************************************************************
{DISCARD}
defines the particle types to be discarded (i.e. not to be transported)
WHAT(1...6) = id-number or name of particles to be discarded (see particle
numbers and names in 5}).
If one of the WHATs is preceded by a minus sign a previous corresponding
DISCARD command (explicit or by default) will be canceled.
When full heavy particle transport is activated (see IONTRANS), discarding
of heavies can be performed setting the WHATs = (1000 + Kheavy),
with Kheavy = 3....6 (heavy ion particle code):
3 = 2-H, 4 = 3-H, 5 = 3-He, 6 = 4-He, 7-12 = fission fragments.
Except for fission fragments, the corresponding names can also be used.
Undiscarding heavies is obtained by setting WHATs equal to (1000 - Kheavy),
or by making the corresponding names to be preceded by a minus sign.
The whole scheme is shown in the following table:
Discard Undiscard
2-H 1003 or DEUTERON 997 or -DEUTERON
3-H 1004 or TRITON 996 or -TRITON
3-He 1005 or 3-HELIUM 995 or -3-HELIUM
4-He 1006 or 4-HELIUM 994 or -4-HELIUM
fission fragments 1007-1012 993-988
No default
SDUM: not used
Default (option DISCARD not given): only neutrinos and antineutrinos are
discarded by default. Set the WHATs = -5., -6., -27., -28., -43.,
-44. or NEUTRIE, ANEUTRIE, NEUTRIM, ANEUTRIM, NEUTRIT, ANEUTRIT
in order to have them transported.
Notes:
1) There is no limit to the number of DISCARD definitions given.
2) Discarding a particle means that that type of particle will
possibly be produced but not transported.
3) The user may want to process some particle types with other
programs providing only the production by the FLUKA code. These
particles can be discarded. The results will then not contain the
contribution of the discarded particle types and of their
descendants.
4) Neutrinos are always discarded by default, to avoid useless
tracking. To force neutrinos (or other particles) to be NOT
discarded, make their particle number or name to be preceded by a
minus sign. In that case, however, remember that:
- no neutrino cross sections are available for transport in FLUKA:
these particles are just tracked through the geometry until they
escape. Boundary crossing and tracklength density can however be
scored if requested
- if neutrinos are not discarded, their transport threshold
is set = 0. by default. This value can be changed (by option
PART-THR), but it must be kept in mind that the energy of any
neutrino produced below the threshold WILL BE DEPOSITED LOCALLY,
generating a likely bias in dose calculations.
5) WARNING: discarding the particles which propagate the hadronic
cascade (neutrons, protons, pions) will lead in general to
unpredictable results.
Example (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
DISCARD 3.0 4.0 7.0 10.0 11.0 23.0
* This example illustrates a typical situation where the use of DISCARD
* can considerably reduce the computing time: for instance in pure
* hadronic or neutron problems (fluence calculations without interest in
* energy deposition). In this case electrons, positrons, photons, muons
* and pi0 do not contribute to the result and can be discarded
The same example, name-based:
DISCARD ELECTRON POSITRON PHOTON MUON+ MUON- PIZERO
1********************************************************************************
{ELCFIELD}
defines an homogenous electric field
See also MGNFIELD
WHAT(1) = largest angle (in degrees) that a particle is allowed to travel
in a single step
Default: 20 degrees
WHAT(2) = error of the boundary iteration (minimum accuracy accepted in
determining a boundary intersection)
Default: 0.01 cm
WHAT(3) = minimum step if the step is forced to be smaller due to a too
large angle
Default: 0.1 cm
WHAT(4) = Ex (x-component of the electric field, in MV/m)
WHAT(5) = Ey (y-component of the electric field, in MV/m)
WHAT(6) = Ez (z-component of the electric field, in MV/m)
Default (Ex = Ey = Ez = 0.0): user-supplied subroutine
ELEFLD is assumed to provide the actual values
(see Notes 2 and 3 below)
SDUM : not used
Notes:
1) If Ex = Ey = Ez = 0, the user-written subroutine ELEFLD is
called at each step to get the direction cosines and the
module (in MV/m) of the electric field as a function of
region or of coordinates or time. A sample subroutine is
provided with the FLUKA code; instructions on how to write
user-supplied routines can be found in 13}.
2) Note that the argument list of subroutine ELEFLD is
( X, Y, Z, T, ETX, ETY, ETZ, E, NREG, IDISC )
where ETX, ETY, ETZ are the DIRECTION COSINES of the electric
field at point X, Y, Z, at time T (NOT the components of the
field! The field magnitude is given by E). For this reason, it
is imperative that ELEFLD returns normalised values of ETX,
ETY and ETZ such that the sum of their squares is = 1.0
IN DOUBLE PRECISION.
Three zero values are not accepted: if the field is zero
at the point in question, you must return for instance 0, 0, 1
and E = 0. On the contrary, note that Ex, Ey, Ez in the
ELCFIELD option, given by WHAT(4)...WHAT(6) as described
above, are the field components and not the cosines.
3) Electric field tracking is performed only in regions defined
as electric field regions by command ASSIGNMAt. It is
strongly recommended to define as such only regions where an
electric field effectively exists, due to the complexity
of the tracking algorithm used in electric/magnetic fields.
To define a region as having an electric field and to return
systematically E = 0 in that region via subroutine ELEFLD, is
not allowed.
4) Tracking in electric fields is possible at present only in
vacuum regions. Arbitrary combinations of electric and magnetic
fields are supported. Whenever an electric field is present
the tracking is performed with a Runge-Kutta-Gill 4th order
algorithm for the combined electric and magnetic (if any) fields.
The same approach can be requested also for dis-homogeneous
magnetic fields (in vacuum) even if no electric field is
present, using SDUM=RUNGKUTT in the MGNFIELD card
1********************************************************************************
{EMF}
activates ElectroMagnetic FLUKA: transport of electrons, positrons and
photons
See also DEFAULTS, DELTARAY, EMF-BIAS, EMFCUT, EMFFIX, EMFFLUO, EMFRAY,
MULSOPT, PHOTONUC
WHAT(1-6): not used
SDUM : EMF-OFF to switch off electron and photon transport.
Useful with the new defaults where EMF is on by default.
Default: EMF on
Default (option EMF not requested): if option DEFAULTS is not used, or if
it is used with SDUM = NEW-DEFAults, CALORIMEtry, EM-CASCAde,
HADROTHErapy, ICARUS or PRECISIOn, electrons, positrons and
photons are transported.
If DEFAULTS is used with SDUM = EET/TRANsmut, NEUTRONS, SHIELDINg
or anything else, electrons, positrons and photons are not
transported (see Note 2). To avoid their energy to be deposited
at the point of production, it is generally recommended to
discard those particles (see Note 5).
Notes:
1) Option EMF is used to request a detailed transport of electrons,
positrons and photons. Even if the primary particles are not photons
or electrons, photons are created in high-energy hadron cascades,
mainly as a product of pi0 decay, but also during evaporation and
fission of excited nuclei; and capture gamma-rays are generated
during low-energy neutrons transport. Electrons can arise from muon
decay or can be set in motion in knock-on collisions by charged
particles (delta-rays).
2) If EMF has been turned off by overriding the default (by setting
SDUM = EMF-OFF or by a DEFAULTS option which switches off
electron-photon transport, such as EET/TRANsmut, NEUTRONS,
SHIELDINg, not accompanied by an explicit EMF request), such
electrons, positrons and photons are not transported and their
energy is deposited on the spot at the point of creation unless
those particles are DISCARDed (see Note 5 below).
3) Of course, it is also mandatory to request option EMF (either
explicitly or implicitly via option DEFAULTS) in any pure electron,
positron or photon problem (i.e. with electrons, positrons or
photons as primary particles).
4) Using EMF without any biasing can lead to very large computing
times, especially in problems of high primary energy or with low
energy cutoffs. See in particular leading-particle biasing with
EMF-BIAS.
5) In case of a pure hadron or neutron problem (e.g. neutron activation
calculation) it is recommended to DISCARD electrons, positrons and
photons (id-number 3, 4 and 7). In this case it is irrelevant
whether the EMF card is present or not. Discarding only electrons
and positrons, but not photons, may also be useful in some cases
(for instance when calculating photon streaming in a duct).
6) An alternative is to set very large energy cutoffs for electrons
and positrons (see EMFCUT). That will result in the electron energy
being deposited at the point of photon interaction (kerma
approximation, often sufficient for transport of photons having an
energy lower than a few MeV).
7) Hadron photoproduction is dealt with by option PHOTONUC.
Example:
*....+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
EMF EMF-OFF
* This command must be issued without any WHAT parameter.
1********************************************************************************
{EMF-BIAS}
Sets electron and photon special biasing parameters, including leading
particle biasing region by region, and mean free path biasing material by
material
See also EMF, EMFCUT, LAM-BIAS
For SDUM = LPBEMF (default):
WHAT(1) > 0.0: leading particle biasing (LPB) is activated. Which
combination of leading particle biasing is actually set up
depends on the bit pattern of WHAT(1)
Let WHAT(1) be represented as:
2^0xb0 + 2^1xb1 + 2^2xb2 + 2^3xb3 + 2^4xb4 +
2^5xb5 + 2^6xb6 + 2^7xb7 + 2^8xb8 + 2^9xb9
then the meaning of the ten bits is the following:
b0 = 1 --> LPB activated for bremsstrahlung and pair production
(old default)
b1 = 1 --> LPB activated for bremsstrahlung
b2 = 1 --> LPB activated for pair production
b3 = 1 --> LPB activated for positron annihilation at rest
b4 = 1 --> LPB activated for Compton scattering
b5 = 1 --> LPB activated for Bhabha & Moller scattering
b6 = 1 --> LPB activated for photoelectric effect
b7 = 1 --> LPB activated for positron annihilation in flight
b8 = 1 --> not used
b9 = 1 --> not used
Note that WHAT(1) = 1022 activates LPB for all physical effects
(values larger than 1022 are converted to 1022)
< 0.0: leading particle biasing is switched off
= 0.0: ignored
WHAT(2) > 0.0: energy threshold below which leading particle biasing is
played for electrons and positrons (for electrons, such
threshold refers to kinetic energy; for positrons, to total
energy plus rest mass energy)
< 0.0: resets any previously defined threshold to infinity (i.e.,
leading particle biasing is played at all energies)
= 0.0: ignored
This value can be overridden in the user routine UBSSET (see 13})
by assigning a value to variable ELPEMF
Default: leading particle biasing is played at all energies for
electrons and positrons
WHAT(3) > 0.0: energy threshold below which leading particle biasing is
played for photons
< 0.0: resets any previously defined threshold to infinity (i.e.,
leading particle biasing is played at all energies)
= 0.0: ignored
This value can be overridden in the user routine UBSSET by
assigning a value to variable PLPEMF.
Default: leading particle biasing is played at all energies for
photons
WHAT(4) = lower bound (or corresponding name) of the region indices where
the selected leading particle biasing has to be played
("From region WHAT(4)...")
Default = 2.0
WHAT(5) = upper bound (or corresponding name) of the region indices where
the selected leading particle biasing has to be played
("...to region WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.0
SDUM = LPBEMF (Leading Particle Biasing for EMF). This is the
default, for other values of SDUM see below.
This value can be overridden in the user routine UBSSET by
assigning a value to variable LPEMF
For SDUM = LAMBEMF, LAMBCOMP, LAMBBREM, LBRREMF, LBRRCOMP, LBRRBREM:
(not yet implemented for photons)!
WHAT(1) > 0.0 and < 1.0: the interaction mean free paths for all electron
and positron electromagnetic interactions (SDUM = LAMBEMF), or
for electron/positron bremsstrahlung only (SDUM = LAMBBREM) are
reduced by a multiplying factor = WHAT(1)
= 0.0: ignored
< 0.0 or >= 1: resets to default (no mean free path biasing for
electrons and positrons)
WHAT(2) > 0.0 and < 1.0: the interaction mean free paths for all photon
electromagnetic interactions (SDUM = LAMBEMF), or for Compton
scattering only (SDUM = LAMBCOMP) are reduced by a multiplying
factor = WHAT(2)
= 0.0: ignored
< 0.0 or >= 1: resets to default (no mean free path biasing for
photons)
WHAT(3) = generation up to which the biasing has to be applied
Default: biasing is applied only the first generation (i.e., the
primary BEAM or SOURCE particles)
WHAT(4) = lower bound (or corresponding name) of the indices of materials
in which the indicated mean free path biasing has to be applied
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound (or corresponding name) of the indices of materials
in which the indicated mean free path biasing has to be applied
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.0
SDUM = LAMBEMF (LAMbda Biasing for ElectroMagnetic FLUKA): mean
free path biasing is applied to all electron, positron
and photon interactions, and both the incident and the
secondary particle are assigned a reduced weight
LAMBCOMP (LAMbda Biasing for Compton interactions): mean free
path biasing is applied only to photon Compton effect,
and both the incident photon and the secondary electron
are assigned a reduced weight
LAMBBREM (LAMbda Biasing for BREMsstrahlung interactions): mean
free path biasing is applied only to electron and
positron bremsstrahlung, and both the incident
electron/positron and the secondary photon are assigned
a reduced weight
LBRREMF (Lambda Biasing with Russian Roulette for
ElectroMagnetic FLUKA): mean free path biasing is applied
to all electron, positron and photon interactions, and the
incident particle either is suppressed or survives with
the same weight it had before collision, depending on a
random choice
LBRRCOMP (Lambda Biasing with Russian Roulette for Compton
interactions): mean free path biasing is applied only to
photon Compton effect, and the incident photon either is
suppressed or survives with the same weight it had before
collision, depending on a random choice
LBRRBREM (Lambda Biasing with Russian Roulette for
BREMsstrahlung interactions): mean free path biasing is
applied only to electron and positron bremsstrahlung, and
the incident electron/positron either is suppressed or
survives with the same weight it had before collision,
depending on a random choice
Default: LPBEMF (see above)
Default (option not requested): none of the above biasings apply.
Notes:
1) Depending on the SDUM value, different kinds of biasing are applied
to the secondary particles issued from the reaction.
2) If SDUM = LPBEMF, the interaction point of electrons, positrons and
photons is sampled analogically and Leading Particle Biasing is
applied to the secondary particles.
3) With all other values of SDUM, the interaction point is sampled from
an imposed (biased) exponential distribution, in a manner similar to
that provided by option LAM-BIAS for hadrons and muons. Further
differences in SDUM values allow to restrict biasing to one specific
type of interaction and/or to select different treatments of the
incident particle.
4) If SDUM = LAMBEMF, LAMBCOM, LAMBBREM, the weights of both the
incident and the secondary particle are adjusted according to the
ratio between the biased and the physical interaction probability
at the sampled distance.
5) If SDUM = LBRREMF, LBRRCOM, LBRRBREM, the suppression or survival
of the incident particle (with unchanged weight) is decided by
Russian Roulette with a probability equal to the ratio between the
biased and the physical interaction probability at the sampled
distance. The weight of the secondary particle is adjusted by the
same ratio.
6) When using option EMF-BIAS, and in particular when choosing the
Russian Roulette alternative, it is suggested to set also a weight
window (cards WW-FACTOR and WW-THRESh) in order to avoid too large
weight fluctuations.
7) LAMBCOMP (LBRRCOMP) and LAMBBREM (LBRRBREM) are synonyms: i.e.,
input concerning photon interaction biasing given with SDUM =
LAMBBREM (LBRRBREM) is accepted and treated in the same
way as with SDUM = LAMBCOMP (LBRRCOMP); and input concerning
electron/positron interaction biasing with SDUM = LAMBCOMP
(LBRRCOMP) is the same as with LAMBBREM (LBRRBREM).
This allows to issue just a single EMF-BIAS card requesting both
electron and photon interaction biasing at the same time.
8) Option EMF-BIAS concerns only electromagnetic interactions;
photonuclear interaction biasing is provided by option LAM-BIAS.
9) Leading particle biasing (LPB):
Leading particle biasing (available only for electrons, positrons
and photons) is generally used to avoid the geometrical increase
with energy of the number of particles in an electromagnetic shower.
It is characteristic of all electromagnetic interactions that two
particles are present in the final state: when this option is
selected, only one of them (with a probability proportional to its
energy) is randomly retained and its weight is adjusted accordingly.
Derived from the EGS4 implementation [Nel85], it has been modified
to account for the indirectly enhanced penetration potential of
positrons due to the emission of annihilation photons. The
probability of each of the two particles to be selected is therefore
not proportional to their kinetic energy but rather to their
"useful" energy (kinetic plus - in the case of positrons only -
twice the mass energy).
The weight of the particle selected is adjusted multiplying it by
the inverse of the selection probability. This kind of biasing is
aimed at reducing the mean computing time per history rather than
the variance of the scored quantities (computer cost is defined as
the product of variance times the computing time per primary
particle). It is mainly used to estimate shower punchthrough (but
comparable and even better efficiency can be obtained with
importance splitting, see BIASING), or to reduce the time spent in
simulating secondary electromagnetic showers produced by pi0 in
hadronic cascades. As any other kind of biasing, leading particle
biasing must be used with judgement, since it may lead to a slower
convergence of dose estimation in some regions of phase
space (see Note 5 to option BIASING). In particular, the fact that
the particle of highest energy is selected preferentially can have
the following effects:
a - the radial profile of the electromagnetic shower might be
reproduced less efficiently. This is in general not very
important for showers generated inside hadronic cascades, since
the overall lateral spread is governed essentially by hadrons.
b - a few low-energy particles might result with a very large weight
giving rise to strong energy deposition fluctuations (this
inconvenience can be limited to some extent by the use of a
weight window). Therefore, biasing should be avoided in scoring
regions and in adjacent ones, especially when using energy
deposition bins of very small volume.
When applied in energy deposition calculations, the use of weight
windows is recommended in order to avoid large local dose
fluctuations (see WW-FACTOR and WW-THRESh).
Example 1 (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
EMF-BIAS 152. 0. 5.E-4 16. 20. 2.LPBEMF
* LPB is applied in regions 16, 18 and 20 as regards Compton scattering
* below 0.5 MeV and positron annihilation in flight and at rest.
* Code 152 = 2^3 (annihilation at rest) + 2^4 (Compton) + 2^7
* (annihilation in flight).
The same example, name-based:
EMF-BIAS 152. 0. 5.E-4 Rsixteen Rtwenty 2.LPBEMF
Example 2 (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
EMF-BIAS 1022. 0.0 0.0 3.0 8.0
* LPB is applied in regions 3, 4, 5, 6, 7 and 8 for all electron and photon
* interactions at all energies
The same example, name-based:
EMF-BIAS 1022. 0.0 0.0 thirdReg eighthRg
Example 3 (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
EMF-BIAS 1022. 0.0 0.0 1.0 15.0
EMF-BIAS -1. 0.0 0.0 7.0 11.0 2.0
WW-FACTOR 0.5 5.0 1.0 1.0 15.0
WW-FACTOR 0.5 5.0 0.2 7.0 11.0 2.0
WW-THRESH 1.0 0.001 20.0 3.0 4.0
WW-THRESH 1.0 1.E-4 20.0 7.0
* The above example illustrates the combined use of leading particle biasing
* and a region-dependent weight-window. Leading particle biasing is requested
* in all regions from 1 to 15, except 7, 9 and 11. To avoid too large weight
* fluctuations, a weight window is defined such that at the lowest energies
* (=< 20 keV for photons and =< 200 keV for electrons in regions 7, 9, 11;
* =< 100 keV for photons and <= 1 MeV for electrons in the other regions),
* Russian Roulette will be played for particles with a weight =< 0.5 and
* those with weight larger than 5.0 will be splitted. The size of this window
* (a factor 10) is progressively increased up to 20 at the higher threshold
* (200 MeV for both electrons and photons in regions 7, 9 and 11, 1 GeV in
* the other regions).
The same example, name-based, assuming that the 15 regions are all the
regions of the problem:
EMF-BIAS 1022. 0.0 0.0 first @LASTREG
EMF-BIAS -1. 0.0 0.0 seventh eleventh 2.0
WW-FACTOR 0.5 5.0 1.0 1.0 15.0
WW-FACTOR 0.5 5.0 0.2 seventh eleventh 2.0
WW-THRESH 1.0 0.001 20.0 ELECTRON POSITRON
WW-THRESH 1.0 1.E-4 20.0 PHOTON
1********************************************************************************
{EMFCUT}
Sets the energy thresholds for electron and photon production in different
materials, and electron and photon transport cutoffs in selected regions.
It also allows to set an arbitrary energy threshold for all electron and
photon interactions managed by EMF on a material basis. This is of course
non-physical and it is provided primarily for particular studies where the
user wants to switch off selectively a physical process.
Only meaningful when the EMF option is chosen (explicitly or implicitly
via option DEFAULTS)
See also EMF, PART-THR, MATERIAL
For SDUM = PROD-CUT:
|WHAT(1)| = energy threshold for electron and positron production in GeV:
> 0.0 : energy threshold for electron and positron production is
expressed as total energy (kinetic plus rest mass)
< 0.0 : energy threshold for electron and positron production is
expressed as kinetic energy
= 0.0 : not allowed
Default: equal to the lowest electron transport cutoff in all
regions made of this material (see Note 1)
WHAT(2) > 0.0 : energy threshold for photon production in GeV
= 0.0 : not allowed
Default: equal to the lowest photon transport cutoff in all
regions made of this material (see Note 1)
WHAT(3) = FUDGEM parameter. This parameter takes into account the
contribution of atomic electrons to multiple scattering. For
production and transport cutoffs larger than 100 keV it must be
set = 1.0, while in the keV region it must be set = 0.0
Default: no default, it must be set, 0 is an allowed
value but rarely the correct one (see above)
WHAT(4) = lower bound (or corresponding name) of the FLUKA material number
where electron/positron and photon production thresholds
respectively equal to |WHAT(1)| and WHAT(2) apply. The material
numbers or names are those pre-defined or assigned using a
MATERIAL card.
("From material WHAT(4)...")
Default: 3.0
WHAT(5) = upper bound (or corresponding name) of the FLUKA material number
where electron/positron and photon production thresholds
respectively equal to |WHAT(1)| and WHAT(2) apply. The material
numbers or names are those pre-defined or assigned using a
MATERIAL card.
("...to material WHAT(5)...")
Default: = WHAT(4)
WHAT(6) = step length in assigning the material number.
("...in steps of WHAT(6)")
Default: 1.0.
Default (option EMFCUT with SDUM = PROD-CUT not requested): production
cutoffs in a material are set equal to the lowest transport
cutoffs in the regions with that material.
For SDUM = blank, or PROMPT, or DELAYED:
|WHAT(1)| = electron and positron transport energy cutoff in GeV. If
SDUM = blank, the cutoff refers to all e+/-; if SDUM = PROMPT,
it concerns only prompt ones; if SDUM = DELAYED, only electrons
and positrons emitted as decay radiation.
WHAT(1) > 0.0 : electron and positron cutoff is expressed as total
energy (kinetic plus rest mass)
< 0.0 : electron and positron transport cutoff is expressed as
kinetic energy
= 0.0 : not allowed
This value can be overridden in user routine UBSSET by assigning
a value to variable ELECUT.
Default: the e+e- transport cutoff is set equal to the production
threshold for discrete electron interactions
WHAT(2) > 0.0 : photon transport energy cutoff (GeV). If SDUM = blank, the
cutoff refers to all photons; if SDUM = PROMPT, it concerns only
prompt ones; if SDUM = DELAYED, only photons emitted as decay
radiation.
= 0.0 : not allowed
This value can be overridden in the user routine UBSSET by
assigning a value to variable GAMCUT.
Default: the photon transport cutoff is set equal to threshold for
photon production by electron bremsstrahlung
WHAT(3) : not used
WHAT(4) = lower bound (or corresponding name) of the region indices with
electron cutoff equal to |WHAT(1)| and/or photon cutoff equal
to WHAT(2)
("From region WHAT(4)...")
Default: = 2.0.
WHAT(5) = upper bound (or corresponding name) of the region indices with
electron cutoff equal to |WHAT(1)| and/or photon cutoff equal
to WHAT(2)
("...to region WHAT(5)...")
Default: = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default: 1.0.
Default (option EMFCUT with SDUM = blank or = PROMPT, or = DELAYED not
requested): transport cutoffs in a region are set equal to the
production cutoffs in the material of that region.
For SDUM = ELPO-THR:
WHAT(1) > 0.0 : kinetic energy threshold (GeV) for e+/e- bremsstrahlung
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(2) > 0.0 : kinetic energy threshold (GeV) for Bhabha/Moller scattering
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(3) > 0.0 : kinetic energy threshold (GeV) for e+/e- photonuclear
interactions
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(4) - WHAT(6): see below
For SDUM = ANNH-THR:
WHAT(1) > 0.0 : kinetic energy threshold (GeV) for e+ annihilation
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(2) - WHAT(3) : not used
WHAT(4) - WHAT(6): see below
For SDUM = PHOT-THR:
WHAT(1) > 0.0 : energy threshold (GeV) for Compton scattering
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(2) > 0.0 : energy threshold (GeV) for photoelectric
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(3) > 0.0 : energy threshold (GeV) for gamma pair production
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(4) - WHAT(6): see below
For SDUM = PHO2-THR:
WHAT(1) > 0.0 : energy threshold (GeV) for Rayleigh scattering
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(2) > 0.0 : energy threshold (GeV) for photonuclear interactions
= 0.0 : ignored
< 0.0 : resets to default
Default: 0.
WHAT(3) : not used
WHAT(4) - WHAT(6): see below
For SDUM equal to ELPO-THR, ANNH-THR, PHOT-THR, PHO2-THR:
WHAT(4) = lower bound (or corresponding name) of the material indices in
which the respective thresholds apply
("From material WHAT(4)...")
Default = 3.
WHAT(5) = upper bound (or corresponding name) of the material indices in
which the respective thresholds apply
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.
Default (option EMFCUT not requested): Transport cutoffs are set equal to
production thresholds for discrete electron interactions and for
discrete photon production.
Notes:
1) Default values are available for the electron and photon production
thresholds in electromagnetic interactions, but they are generated
by a complex logic based on possible other settings (transport
cutoffs, delta-ray production thresholds, DEFAULTS card, other
defaults). It is not always guaranteed that the resulting values be
appropriate to the problem of interest. Therefore, in order to have
good control of the physics, the user is recommended to provide
explicit threshold values, or at least to check them on the main
output.
2) Electron and positron transport cutoffs (indicated in the main
output with Ecut) and photon transport cutoffs (Pcut) are assigned
by region, while electron/positron production cutoffs (Ae) and
photon production cutoffs (Ap) are assigned by material.
When the transport cutoffs in a given region are larger than those
of production for discrete interactions in the corresponding
material, particles with energy higher than production thresholds
and lower than transport cutoffs are not transported but are still
generated (their energy is deposited at the point of production). It
is suggested to avoid such a situation unless it is really
necessary, as particle generation demands a considerable computer
time and partially offsets the gain due to a higher transport
cutoff.
When instead the transport cutoffs are lower than the production
ones, they are increased to be equal to them.
3) The minimum threshold energy for transport and production of photons
is 100 eV. For electrons and positrons, it is 1 keV.
4) Different transport cutoffs for prompt and decay e+/e-/gamma can
be set also by WHAT(5) of command RADDECAY, but only identically
for all regions, while EMFCUT with SDUM = PROMPT or DELAYED can be
tuned per region.
Example 1 (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
EMFCUT -1.0E-5 1.0E-5 0.0 4.0 8.0 PROD-CUT
* A production threshold of 10 keV is set for electrons, positrons and
* photons in all materials from 4 to 8.
The same example, name-based:
EMFCUT -1.0E-5 1.0E-5 0.0 HELIUM OXYGEN PROD-CUT
Example 2 (number-based):
EMFCUT -0.002 2.E-4 1.0 1.0 15.0
EMFCUT -1.0E-4 1.E-5 -1.0 7.0 11.0 2.0
* A kinetic energy transport cutoff for electrons and positrons is set
* at 100 keV in regions 7, 9 and 11 and at 2 MeV in all other regions from 1
* to 15. Photon transport cutoff is set equal to 10 keV in regions 7, 9, 11
* and to 200 keV in the other regions.
The same example, name-based, assuming that the 15 regions are all the
regions of the problem:
EMFCUT -0.002 2.E-4 1.0 FirstReg @LASTREG
EMFCUT -1.0E-4 1.E-5 -1.0 Seventh Eleventh 2.0
1********************************************************************************
{EMFFIX}
Sets the size of electron steps corresponding to a fixed fraction of the
total energy. The setting is done by material, giving as many EMFFIX
definitions as needed. Only meaningful when the EMF option has been
requested (explicitly or implicitly via option DEFAULTS).
See also EMF, FLUKAFIX, MULSOPT, STEPSIZE
WHAT(1) = index or name of the material concerned
WHAT(2) = maximum fraction of the total energy to be lost in a step
Default: 20% (it is strongly recommended not to set higher
than this value!)
WHAT(3) = same as WHAT(1); WHAT(4) = same as WHAT(2)
WHAT(5) = same as WHAT(1); WHAT(6) = same as WHAT(2)
SDUM = PRINT : electron and positron dE/dx and maximum allowed step
tabulations for this material are printed
= NOPRINT: tabulations are not printed (cancels any previous PRINT
request for the given materials)
= blank: ignored
Default: NOPRINT
Default (option EMFFIX not requested): the energy lost per step is 20% for
all materials.
Notes:
1) The default provided (step length such that 20% of the energy is
lost) is acceptable for most routine problems.
In dosimetry problems and in thin-slab geometries it is recommended
not to exceed 5-10%.
For a detailed discussion of the step length problem, see [Fer91a].
2) Related options are STEPSIZE, MCSTHRESh, FLUKAFIX and MULSOPT.
MCSTHRESh and FLUKAFIX concern only heavy charged particles
(hadrons and muons), while STEPSIZE applies to ALL charged particles
(hadrons, muons, electrons and positrons). However, STEPSIZE defines
the steplength in cm and by region, while EMFFIX relates the step
length to the maximum allowed energy loss and is based on materials.
STEPSIZE works also in vacuum and is adapted to problems with
magnetic fields; if both options are used, the smallest of the two
steps is always chosen. Note however that if a step required by
STEPSIZE is too small for the Moli\`ere algorithm, multiple
scattering IS turned off (contrary to what happens with EMFFIX).
MULSOPT is very CPU-time consuming; however, it gives the highest
accuracy compatible with the Moli\`ere theory. It is used rarely,
mostly in low-energy and in backscattering problems.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
MATERIAL 13. 0.0 2.6989 3. 0. 0. ALUMINUM
MATERIAL 82. 0.0 11.35 4. 0. 0. LEAD
MATERIAL 29. 0.0 8.96 12. 0. 0. COPPER
MATERIAL 6. 0.0 2.00 26. 0. 0. CARBON
MATERIAL 7. 0.0 0.0012 27. 0. 0. NITROGEN
MATERIAL 8. 0.0 0.0014 28. 0. 0. OXYGEN
MATERIAL 1. 0.0 0.0001 29. 0. 1. HYDROGEN
MATERIAL 0. 0.0 1.0000 30. 0. 0. TISSUE
COMPOUND 5.57E-3 26.0 1.118E-3 27. 2.868E-2 28. TISSUE
COMPOUND 6.082E-2 29.0 0. 0. 0. 0. TISSUE
EMFFIX 3. 0.15 4. 0.15 12. 0.15
EMFFIX 30. 0.05 0. 0. 0. 0. PRINT
* In this example, a maximum energy loss per step of 15% is requested
* for aluminium, copper and lead, while a more accurate 5% is requested
* for tissue
The same example, name based:
MATERIAL 13. 0.0 2.6989 0.0 0. 0. ALUMINUM
MATERIAL 82. 0.0 11.35 0.0 0. 0. LEAD
MATERIAL 29. 0.0 8.96 0.0 0. 0. COPPER
MATERIAL 6. 0.0 2.00 0.0 0. 0. CARBON
MATERIAL 7. 0.0 0.0012 0.0 0. 0. NITROGEN
MATERIAL 8. 0.0 0.0014 0.0 0. 0. OXYGEN
MATERIAL 1. 0.0 0.0001 0.0 0. 1. HYDROGEN
MATERIAL 0. 0.0 1.0000 0.0 0. 0. TISSUE
COMPOUND 5.57E-3 CARBON 1.118E-3 NITROGEN 2.868E-2 OXYGEN TISSUE
COMPOUND 6.082E-2 HYDROGEN 0. 0. 0. 0. TISSUE
EMFFIX ALUMINUM 0.15 LEAD 0.15 COPPER 0.15
EMFFIX TISSUE 0.05 0. 0. 0. 0. PRINT
1********************************************************************************
{EMFFLUO}
Activates a detailed treatment of photoelectric interactions and of
the following atomic deexcitation, with production of fluorescence
X-rays (and a rough treatment of Auger electrons)
See also EMF
This option, meaningful only if the EMF option has been requested
(explicitly or implicitly via option DEFAULTS), requires a special
unformatted file, pre-connected as logical input unit 13 (see Chap. 3}).
This file is delivered with the FLUKA code.
WHAT(1) > 0 : set fluorescence on
< 0 : set fluorescence off
= 0 : ignored
Default = -1.0 (no fluorescence) if option DEFAULTS is not used,
or if it is used with anything but CALORIMEtry, DAMAGE,
EM-CASCAde, HADROTHErapy, ICARUS or PRECISIOn.
If DEFAULTS is used with a SDUM value equal to one of the
latter, the default is 1.0 (fluorescence on).
WHAT(2) = lower bound (or corresponding name) of the material indices in
which fluorescence is activated
("From material WHAT(2)...")
Default = 3.
WHAT(3) = upper bound (or corresponding name) of the material indices in
which fluorescence is activated
("... to material WHAT(3)...")
Default = WHAT(2)
WHAT(4) = step length in assigning indices
("...in steps of WHAT(4)")
Default = 1.
WHAT(5), WHAT(6), SDUM : not used
Default (option EMFFLUO not requested): fluorescence is not simulated
unless option DEFAULTS is chosen with SDUM = CALORIMEtry,
DAMAGE, EM-CASCAde, HADROTHErapy, ICARUS or PRECISIOn.
Notes:
1) Selection of EMFFLUO option is only meaningful for a material
defined with electron and photon cutoffs lower than the highest
K-edge in the elements constituents of that material.
2) When EMFFLUO is activated for a compound material, if the incident
photon energy is lower than the highest K-edge for any constituent
element, FLUKA uses separate parameterised representations of the
photoelectric cross section between different edges of each
constituent element (all levels are tabulated).
If the photon energy is higher than the highest K-edge, average
cross sections for the compound are used, but FLUKA still samples a
single element on which to interact, in order to generate the
correct fluorescence photon or Auger electron.
Example (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
EMF
EMFCUT 1.E-5 1.E-5 0.0 17. 18.
EMFFLUO 1.0 17. 18.
* In the above example, the user activates fluorescence production in
* Lead and Tantalum (standard FLUKA material numbers 17 and 18). The
* photon and electron cutoff has been set at 10 keV (the K-edge for
* Pb and Ta is of the order of 100 keV).
The same example, name-based:
EMF
EMFCUT 1.E-5 1.E-5 0.0 LEAD TANTALUM
EMFFLUO 1.0 LEAD TANTALUM
1********************************************************************************
{EMFRAY}
Activates Rayleigh (coherent) scattering, Compton binding and profile
function corrections, and acolinearity in annihilation at rest in selected
regions. Only meaningful when the EMF option has been requested, explicitly
or implicitly via option DEFAULTS.
See also EMF
WHAT(1) < 0.0 : no Rayleigh scattering and neither binding corrections nor
Compton profile function, no acolinearity in annihilation
at rest
= 0.0 : ignored
1.0 : both Rayleigh scattering and Compton binding corrections
are activated, no Compton profile function, no acolinearity
in annihilation at rest, no ortho-positronium 3 photon
annihilation at rest
2.0 : only Rayleigh scattering is activated, naive Compton,
no ortho-positronium 3 photon annihilation at rest
3.0 : only Compton binding corrections are activated
4.0 : all Rayleigh, binding corrections, and profile function in
Compton activated, no acolinearity in annihilation at rest,
no ortho-positronium 3 photon annihilation at rest
5.0 : only Rayleigh scattering is activated, naive Compton,
no acolinearity in annihilation at rest, no
ortho-positronium 3 photon annihilation at rest
6.0 : only binding corrections and profile function in Compton
are activated, no Rayleigh, no acolinearity in annihilation
at rest, no ortho-positronium 3 photon annihilation at rest
100.0 : ignored for Rayleigh and Compton, acolinearity in
annihilation at rest activated, no ortho-positronium 3
photon annihilation at rest
101.0 : both Rayleigh scattering and Compton binding corrections
are activated, no Compton profile function, acolinearity in
annihilation at rest activated, no ortho-positronium 3
photon annihilation at rest
102.0 : only Rayleigh scattering and acolinearity in annihilation
at rest activated, naive Compton, no ortho-positronium 3
photon annihilation at rest
103.0 : binding corrections in Compton only and acolinearity
in annihilation at rest activated, no Rayleigh, no
ortho-positronium 3 photon annihilation at rest
104.0 : all Rayleigh, binding corrections and profile function in
Compton, acolinearity in annihilation at rest activated,
no ortho-positronium 3 photon annihilation at rest
105.0 : Rayleigh and acolinearity in annihilation at rest
activated, naive Compton, no ortho-positronium 3 photon
annihilation at rest
106.0 : binding corrections and profile function in Compton are
activated, no Rayleigh, acolinearity in annihilation at
rest activated, no ortho-positronium 3 photon annihilation
at rest
1100.0 : ignored for Rayleigh and Compton, acolinearity in
annihilation at rest and ortho-positronium 3 photon
annihilation at rest activated
1101.0 : both Rayleigh and binding corrections in Compton
activated, acolinearity in annihilation at rest activated,
ortho-positronium 3 photon annihilation at rest activated *
1102.0 : Rayleigh and acolinearity in annihilation at rest
activated, naive Compton, ortho-positronium 3 photon
annihilation at rest activated
1103.0 : binding corrections in Compton only and acolinearity in
annihilation at rest activated, no Rayleigh, ortho-
-positronium 3 photon annihilation at rest activated *
1104.0 : all Rayleigh, binding corrections and profile function
function in Compton, acolinearity in annihilation at
rest activated, ortho-positronium 3 photon annihilation
at rest activated
1105.0 : Rayleigh and acolinearity in annihilation at rest
activated, naive Compton, ortho-positronium 3 photon
annihilation at rest activated
1106.0 : binding corrections and profile function in Compton
activated, no Rayleigh, acolinearity in annihilation at
rest activated, ortho-positronium 3 photon annihilation
at rest activated
Default: if option DEFAULTS is used with SDUM = CALORIMEtry,
EM-CASCAde, ICARUS, HADROTHErapy, PRECISIOn or DAMAGE
the default is 104.0.
With any other value of SDUM, the default is 3.0.
WHAT(2) = lower bound (or corresponding name) of the region indices where
Rayleigh scattering and/or Compton binding corrections and/or
Compton profile function and/or acolinearity in annihilation at
rest are requested.
("From region WHAT(2)...")
Default = 2.0
WHAT(3) = upper bound (or corresponding name) of the region indices where
Rayleigh scattering and/or Compton binding corrections and/or
Compton profile function and/or acolinearity in annihilation at
rest are requested.
("...to region WHAT(3)...")
Default = WHAT(2)
WHAT(4) = step length in assigning indices.
("...in steps of WHAT(4)").
Default = 1.0
WHAT(5), WHAT(6), SDUM : not used
Default (option EMFRAY not requested): if option DEFAULTS is used with
SDUM = CALORIMEtry, EM-CASCAde, ICARUS, HADROTHErapy, PRECISIOn
or DAMAGE, Rayleigh scattering, binding corrections and profile
function in Compton, and acolinearity in annihilation at rest
are activated. With any other value of SDUM or if option DEFAULTS
is not used, only binding corrections in Compton scattering are
activated.
Notes:
1) The treatment of Rayleigh scattering is rather poor for non
monoatomic materials (it assumes additivity and does not take into
account important molecular effects). However, Rayleigh scattering,
in general, has little effect on energy deposition and on particle
transport.
2) The full treatment of electron binding and motion in Compton
scattering (referred above as "binding corrections and profile
function") is now available. It is particular important for low
energies and/or heavy materials, and in general for all problems
where the best accuracy for photon transport is requested.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
EMF
EMFRAY 1.0 8.0 12.0 4.0
EMFRAY 3.0 9.0 15.0 2.0
* In the above example, Compton binding corrections are requested in
* regions 8 to 15, excluding regions 10 and 14.
* Rayleigh scattering is requested only in regions 8 and 12
The same example, name-based:
EMF
EMFRAY 1.0 EightReg TwelvReg 4.0
EMFRAY 3.0 NineReg FifteenR 2.0
1********************************************************************************
{EVENTBIN}
For calorimetry only.
Superimposes a binning structure to the geometry and prints the
result after each "event"
See also USRBIN, EVENTDAT
For a description of input for this option, refer to USRBIN. Meaning of
WHATs and SDUM is practically identical for the two options. The only
difference here is that if WHAT(1) is given with a negative sign, only
non-zero data ("hit cells") are printed.
For Cartesian binning, WHAT(1) = 0.0 prints all cells, and a negative
number > -0.5 must be used to print only the "hit cells".
See Note 2 below and Note 3 to option ROTPRBIN.
This card is similar to USRBIN, but the binning data are printed at the end
of each event (primary history).
Information about the binning structure is printed at the beginning, then
binning data are printed at the end of each event WITHOUT ANY NORMALISATION
(i.e. energy per bin and not energy density per unit incident particle
weight).
If the sign of WHAT(1) in the first card defining the binning is negative,
only those elements of the binning which are non zero are printed at the
end of each event, together with their index.
Default (option EVENTBIN not requested): no event-by-event binning.
To read EVENTBIN unformatted output, see instruction for USRBIN, with the
following differences:
* first all binning definitions are written
* then, for each event all binnings are dumped, two records for each
binning:
- First record: NB, NCASE, WEIGHT (resp. binning number, number and weight
of the event)
- Second record: binning energy deposition data (see USRBIN)
* if the LNTZER flag (only non-zero cells) is activated, the energy
deposition can be read as:
READ (...) NHITS, (IHELP(J), GMHELP(J), J = 1, NHITS)
where:
IHELP = cell index = IX + (IY-1)*NX + (IZ-1)*NX*NY
GMHELP = cell content
Notes:
1) Normally, this option is meaningful only in fully analogue runs. Any
biasing option should be avoided, and a GLOBAL declaration with
WHAT(2) < 0. is recommended. Also, it is recommended to request an
option DEFAULTS with SDUM = CALORIMEtry, ICARUS or PRECISIOn.
2) In many cases, binnings defined by EVENTBIN result in a number of
sparse "hit" cells, while all other bins are empty (scoring zero).
In such cases, it is convenient to print to file only the content of
non-empty bins. In these circumstances, it may also be convenient to
allocate a reduced amount of storage (see option ROTPRBIN, and in
particular the Note 3 to that option).
Example 1 (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
EVENTBIN 10.0 208.0 25.0 150.0 200.0 180. Firstscore
EVENTBIN -150.0 100.0 -20.0 75.0 50.0 20.0 &
* In the above example, the user requests an event-by-event scoring of
* energy deposition (generalised particle 208), in a Cartesian
* three-dimensional array. The bins are 4 cm wide in x (75 bins between
* x = -150 and x = 150), 2 cm wide in y (50 bins between y = 100 and
* y = 200), and 10 cm wide in z (20 bins between z = -20 and z = 180).
* The results are written, formatted, on logical unit 25. The name given
* to the binning is "Firstscore".
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
The same example, name-based:
EVENTBIN 10.0 ENERGY 25.0 150.0 200.0 180. Firstscore
EVENTBIN -150.0 100.0 -20.0 75.0 50.0 20.0 &
Example 2 (number-based):
* Event-by-event scoring of photon fluence in a cylindrical mesh of
* 1200x3800 bins 1 mm wide in R and Z. Results are written unformatted on
* logical unit 27. The user requests not to print bins with zero content.
* The binning name is "Bigcylindr".
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
EVENTBIN -11.0 7.0 -27.0 600.0 0.0 1900. Bigcylindr
EVENTBIN 0.0 0.0 0.0 1200.0 0.0 3800.0 &
The same example, name-based:
EVENTBIN -11.0 PHOTON -27.0 600.0 0.0 1900. Bigcylindr
EVENTBIN 0.0 0.0 0.0 1200.0 0.0 3800.0 &
1********************************************************************************
{EVENTDAT}
For calorimetry only.
Prints event by event the scored star production and/or energy
deposition in each region, and the total energy balance.
See also EVENTBIN, SCORE
EVENTDAT requests separate scoring by region of energy and/or
star density for each event (primary history).
The quantities to be scored are defined via a SCORE command (see
SCORE for details).
As for SCORE, a maximum per run of 4 different star densities is allowed.
The EVENTDAT output includes also a detailed energy balance event by event.
WHAT(1) = output unit
If < 0, the output is unformatted. Values of |WHAT(1)| < 21
should be avoided (with the exception of +11).
Default = 11 (standard output)
WHAT(2) to WHAT(6) : not used
SDUM = output file name (no default!) Max. 10 characters.
Default (option EVENTDAT not given): no event by event scoring
Notes:
1) Unformatted data are written as follows.
Once, at the beginning of the run:
- RUNTIT, RUNTIM, NREGS, NSCO, (ISCORE(IS), IS = 1, NSCO)
Then, for each primary particle:
- NCASE, WEIPRU, ENETOT
- (ENDIST(IE), IE = 1, 12)
Then, NSCO times:
- ISC, ISCORE(ISC)
- (REGSCO(IR,ISC), IR = 1, NREGS)
Then one dummy record (for historical reasons):
- NDUM, DUM1, DUM2
Then:
- ISEED1, ISEED2, SEED1, SEED2, SOPP1, SOPP2
where:
RUNTIT = title of the run (CHARACTER*80 variable), which appears
also at the beginning of the standard output
RUNTIM = time of the run (CHARACTER*32 variable), which appears
also at the beginning of the standard output
NREGS = number of regions
NSCO = number of scoring distributions requested by SCORE
ISCORE(I) = Ith requested (generalised) particle distribution
(see 5})
NCASE = number of primaries handled so far (current one included)
WEIPRU = primary weight
ENETOT = primary particle total energy (GeV)
ENDIST(I) are 12 energy contributions to the total energy balance,
some of which appear at the end of the standard output.
Here they are given separately for each primary history
(in GeV) and NOT normalised to the weight of the
primary. Note that some of the contributions are
meaningful only in specific contexts (e.g. if low-energy
neutron transport has been requested).
ENDIST(1) = energy deposited by ionisation
ENDIST(2) = en. depos. by pi0, electrons, positrons and photons
ENDIST(3) = en. depos. by nuclear recoils and heavy fragments
ENDIST(4) = energy deposited by particles below threshold
ENDIST(5) = energy leaving the system
ENDIST(6) = energy carried by discarded particles
ENDIST(7) = residual excitation energy after evaporation
ENDIST(8) = energy deposited by low-energy neutrons (kerma,
proton recoil energy not included)
ENDIST(9) = energy of particles out of the time limit
ENDIST(10) = energy lost in endothermic nuclear reactions
(gained in exothermic reactions if < 0) above 20 MeV
(not implemented yet)
ENDIST(11) = energy lost in endothermic low-energy neutron
reactions (gained in exothermic reactions if < 0)
(not implemented yet)
ENDIST(12) = missing energy
NDUM, DUM1, DUM2 = three dummy variables, with no meaning
REGSCO(IR,ISC) = energy or stars (corresponding to the ISCth
generalised particle distribution) deposited or
produced in the IRth region during the current
primary history. NOT normalised, neither to the
the primary weight nor to the region volume
ISEED1, ISEED2, SEED1, SEED2, SOPP1, SOPP2 = random number
generator information to be read in order to
reproduce the current sequence (skipping calls, see
RANDOMIZE).
2) All the above quantities are REAL*4, except RUNTIT and RUNTIM
(which are of type CHARACTER) and those with a name
beginning with I,J,K,L,M,N (which are integer).
3) The different items appearing in the EVENTDAT energy balance
may sometimes give overlapping information and are not all
meaningful in every circumstance (for instance residual
excitation energy is meaningful only if gamma de-excitation
has not been requested). Unlike the balance which is printed at
the end of standard output, these terms are not additive.
4) An example on how to read EVENTDAT unformatted output is given below.
PROGRAM RDEVDT
CHARACTER*80 RUNTIT, FILNAM
CHARACTER*32 RUNTIM
DIMENSION ISCORE(4), ENDIST(12), REGSCO(5000,4)
WRITE(*,*) 'Name of the EVENTDAT binary file?'
READ(*,'(A)') FILNAM
IB = INDEX(FILNAM,' ')
OPEN(UNIT = 7, FORM = 'UNFORMATTED', FILE = FILNAM(1:IB-1),
& STATUS = 'OLD')
OPEN(UNIT = 8, FORM = 'FORMATTED', FILE = FILNAM(1:IB-1)//'.txt',
& STATUS = 'NEW')
* Once, at the beginning of the run:
READ(7) RUNTIT, RUNTIM, NREGS, NSCO, (ISCORE(IS), IS = 1, NSCO)
WRITE(8,'(A80)') RUNTIT
WRITE(8,'(A32)') RUNTIM
WRITE(8,'(A,I6,5X,A,I4)') 'Number of regions: ', NREGS,
& ' Number of scored quantities: ', NSCO
WRITE(8,'(A,4I6)') 'The scored quantities are: ',
& (ISCORE(IS), IS = 1, NSCO)
* Loop on each primary particle:
100 CONTINUE
WRITE(8,*)
READ(7,END=300) NCASE, WEIPRU, ENETOT
WRITE(8,'(A,I10,1P,2G12.4)') 'NCASE, WEIPRU, ENETOT: ',
& NCASE, WEIPRU, ENETOT
READ(7) (ENDIST(IE), IE = 1, 12)
WRITE(8,'(A)') 'ENDIST: '
DO 400 IE = 1, 12, 2
WRITE(8,'(2(I5,5X,1P,G12.4))') IE,ENDIST(IE),IE+1,ENDIST(IE+1)
400 CONTINUE
DO 200 ISC = 1, NSCO
READ(7) IISC, ISCORE(ISC)
* IISC is redundant, must be equal to ISC
IF(IISC .NE. ISC) STOP 'Wrong sequence'
WRITE(8,'(A,I2,A,I3,A)')
& 'Quantity n. ',ISC, ' (',ISCORE(ISC),'):'
READ(7) (REGSCO(IR,ISC), IR = 1, NREGS)
WRITE(8,*) 'Scoring per region:'
DO 500 IR = 1, NREGS
WRITE(8,'(I7,3X,1P,G12.4)') IR, REGSCO(IR,ISC)
500 CONTINUE
200 CONTINUE
READ(7) NDUM, DUM1, DUM2
IF (DUM1 .LT. 0.) THEN
* DUM1 < 0 is used to signal that seeds follow
READ(7) ISEED1, ISEED2, SEED1, SEED2, SOPP1, SOPP2
WRITE(8,*) ISEED1, ISEED2, SEED1, SEED2, SOPP1, SOPP2
ELSE
BACKSPACE 7
END IF
* This event is finished, start again with the next one
GO TO 100
300 CONTINUE
WRITE(8,*) "End of a run of ", NCASE, " particles"
CLOSE (UNIT = 7)
CLOSE (UNIT = 8)
END
Example (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
SCORE 208. 211. 201. 8. 0. 0.
EVENTDAT -23. 0. 0. 0. 0. 0. EVT.SCOR
* In this example, the user requests (with option SCORE) scoring of
* total and electromagnetic energy deposition, total stars and
* neutron-produced stars. The average scores for each region will be
* printed on standard output (as an effect of SCORE command), and
* corresponding scores, as well as the energy balance, will be written
* separately for each primary particle on an unformatted file EVT.SCOR
The same example, name-based:
SCORE ENERGY EM-ENRGY ALL-PART NEUTRON 0. 0.
EVENTDAT -23. 0. 0. 0. 0. 0. EVT.SCOR
1********************************************************************************
{FIXED}
Re-establishes fixed-format input after a FREE command
See also FREE, GLOBAL
WHAT(1-6) and SDUM are not used.
Default (option FIXED not given): the following input is in free format if a
FREE command has been previously issued, or is all in free format if it has
been chosen via a GLOBAL command. In any other case, input is in fixed
format.
1********************************************************************************
{FLUKAFIX}
Sets the size of the step of muons and charged hadrons to a fixed
fraction of the kinetic energy in different materials
See also EMFFIX, MULSOPT, STEPSIZE
WHAT(1) = fraction of the kinetic energy to be lost in a step
(cannot be > 0.2)
Default: if option DEFAULTS is used with SDUM = ICARUS, the
default is 0.02.
With SDUM = HADROTHErapy or PRECISIOn, the default
is 0.05.
If SDUM = CALORIMEtry, the default is 0.08.
With any other SDUM value, or if DEFAULTS is missing,
the default is 0.1.
WHAT(2) = "epsilon" parameter used to check the finite size of the
nucleus when the nuclear form factor is not invoked by
the multiple scattering algorithm (see Note 3 below)
For code development only, do not change!
Default = 0.15
WHAT(3) = high-energy limit for the fraction of energy to be lost
in a step (the fraction is given by WHAT(3) times WHAT(1))
For code development only, do not change!
Default = 0.012
WHAT(4) = lower index bound (or corresponding name) of materials where
the specified energy loss per step is to be applied
(From material WHAT(4)...)
Default = 3
WHAT(5) = upper index bound (or corresponding name) of materials where
the specified energy loss per step is to be applied
(... to material WHAT(5)...)
Default = WHAT(4)
WHAT(6) = step length in assigning indices
(...in steps of WHAT(6))
Default = 1
SDUM : not used
Default (option FLUKAFIX not given): the defaults listed above apply
Notes:
1) Usually there is no need for changing the general default value of
10% (0.1) for WHAT(1)
2) The input value is actually applied as such only at intermediate
energies (between about a few tens of MeV and 1 GeV): at low energies
it is slowly increased to twice the requested value, while at high
energies it decreases to a limit usually about one hundredth of the
input value.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
FLUKAFIX 0.03 0. 0. 21. 0. 0.
* The maximum fractional energy loss for hadrons and muons is set to
* 3 percent in material 21.
The same example, name-based:
FLUKAFIX 0.03 0. 0. CALCIUM 0. 0.
1********************************************************************************
{FREE}
activates free-format input
See also FIXED, GLOBAL
WHAT(1-6) and SDUM are not used.
Default (option FREE not given): input must follow the standard
FLUKA format (A8,2X,6E10.0,A8) (see 6}), unless free format has
been chosen via a GLOBAL command.
Notes:
1) FREE can be given at any point in input, excluding the geometry.
All successive input (excepted the geometry) will be read in free
format, VOXELS and LATTICE cards included, until a FIXED command will
possibly re-establish fixed-format input.
2) In free-format input, keywords, WHATs and SDUM do not need to be
aligned in columns but can be written anywhere on the input line,
alternating with "separators" in a manner similar to that of
list-oriented format in Fortran (but character strings - keywords
and SDUMs - must NOT be put between quotes!). A separator is any one
of the following:
* One of the five characters ',' (comma), ';' (semicolon),
'%' (percent), '\' (backslash), ':' (colon), preceded or not
by one or more blanks, and followed or not by one or more blanks
* One or more successive blanks without any non-blank separator
3) Different separators may be used on the same line.
4) If a non-blank separator is immediately followed by another one
(with or without blanks in between), a value of 0.0 is assumed to
be given between them.
5) Zero values must be given explicitly or as empty places between
two non-blank separators as explained above.
6) Geometry input (i.e. input between GEOBEGIN and GEOEND cards not
included) must still respect the column format described in 8},
except if free-format geometry input has been requested by GLOBAL.
7) PLOTGEOM input, whether in a separate file PLG.GFXINDAT or directly
after a PLOTGEOM card in standard input, must still be formatted as
shown in the description of that option.
8) If FREE has been issued, from then on constants must be written
without any blank embedded (e.g. 5.3 E-5 is not allowed, but must
be written 5.3E-5 or 5.30E-5)
9) Free format, if requested, applies to option cards (of the form
KEYWORD WHAT(1) WHAT(2) ... WHAT(6) SDUM)
but not to any data card specific to certain options (for instance the
card following TITLE)
10) Free format can be requested also by option GLOBAL, but extended to the
whole input and not only from the point where the command is issued.
GLOBAL can also be used to request free format geometry input.
Example 1:
The following fixed-format input line
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM 20. 0.0 -1.0 E-2 -0.02 1.0 PION+
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
is equivalent to
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
FREE
BEAM 20. 0.0 0.0 -1.0E-2 -0.02 1.0 PION+
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
or to
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
FREE
BEAM, 20.,0.0 , 0.0, -1.0E-2; -0.02 1.0 %PION+ ! 20 GeV/c momentum?
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
etc... Note the possibility to insert comments at the end of the line!
Example 2:
At any moment the FIXED card re-establishes the fixed-format input mode.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
FREE
BEAM, 20.,0.0 , 0.0, -1.0E-2; -0.02 1.0 %PION+ ! 20 GeV/c momentum?
FIXED
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAMPOS 0. 0. 200. -0.012 0.0652336 NEGATIVE
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
1********************************************************************************
{GCR-SPE}
Initialises Galactic Cosmic Ray or Solar Particle Event calculations
See also SPECSOUR
WHAT(1) = i0 + 1000 * i1
i0 = 0: centered dipole field, geomagnetic coordinates
(used also for computing rigidity cut-off's
in the spectrum generating routine)
= 1: exact multipole fields, geographic coordinates
= 2: undefined, standard MAGFLD user routine called for
regions with magnetic field
= 3: dipolar field for infinite plane at given latitude
> 3: undefined, standard MAGFLD user routine called for
regions with magnetic field
i1 = number of atmospheric shells (see Note 2)
= 10000: no atmospheric shells
= 51 : 50 atmospheric shells (not supported)
= 101: 100 atmospheric shells
= 201: 200 atmospheric shells (not supported)
Default: centered dipole field, 100 shells
WHAT(2) = not used
WHAT(3) = not used
WHAT(4) = Earth radius (Default provided)
WHAT(5) = Earth equatorial magnetic field (Default provided)
WHAT(6) = not used
SDUM = name identifying both the spectra files (estension .spc)
and the data file (estension .sur) produced by the
auxiliary program atmloc_2011.f (see Note 2).
Default (command GCR-SPE not given): no GCR/SPE calculation.
Notes:
1) Cosmic ray calculations, initialised by GCR-SPE, are defined by means
of command SPECSOUR and a number of auxiliary programs. Details are
presented in Chap. 16}
2) The cards for the geometry description of the atmospheric
shells must be prepared using the auxiliary programs and
datacards in the directory $FLUPRO/gcrtools.
Program Atmloc_2011.f writes a file atmloc.geo,
containing the geometry input to be inserted into the FLUKA input
file (or to be read by setting WHAT(3) GEOBEGIN card),
a file atmlocmat.cards containing the extra material assignments,
and a file atmloc.sur containing auxiliary data and the
scoring areas. The user shall rename the file atmloc.sur to
.sur, where is an identifier of exactly 7
characters which must appear also in the input spectra file names:
the spectra must have the names .spc, where
is the atomic number of the primary.
The example spectra distributed with FLUKA come with two
identifiers: phi0465 for solar minimum and phi1440 for
solar maximum, and with zz=01-28.
1********************************************************************************
{GEOBEGIN}
Starts the geometry description
See also GEOEND, PLOTGEOM
WHAT(1) : >0 switches on online parenthesis expansion.
If during expansion at initialization the length of an
expression (measured in number of terms) exceeds the
original length by a multiplicative factor NINT(WHAT(1)),
expansion is aborted and online parenthesis expansion is
used.
WHAT(2) > 0.0 : absolute accuracy parameter (Aa) in units of 1.E-6 cm.
It is used for tracking and boundary identification. Aa
should be larger than Ar*L , where L is the largest
coordinate value in the geometry description (excluding
the outer blackhole shell containing it) and Ar is the
relative accuracy achievable in double precision (of the
order of 1.E-14 - 1.E-15).
Default = 0.0001
WHAT(3) > 0.0 : logical unit for geometry input. The name of the
corresponding file must be input on the next card if
WHAT(3) is different from 5. Note that values of WHAT(3)
/= 5.0 and < 21.0 must be avoided because of possible
conflicts with FLUKA pre-defined units.
<= 0.0: set to default value of 5.0 (input follows).
Default = 5.0 (i.e. geometry input follows)
WHAT(4) > 0.0 : logical unit for geometry output. If different from 11,
the name of the corresponding file must be input on the
next card if WHAT(3) = 0 or 5, otherwise on the card
following the next one (which contains the filename from
which the geometry is read). Values of WHAT(4) /= 11.0 and
< 21.0 must be avoided because of possible conflicts with
FLUKA pre-defined units.
<= 0.0: set to default value of 11.0 (output to standard
output).
Default = 11.0 (i.e. geometry output is printed on
the standard output)
WHAT(5) : parentheses optimisation level = i0 + i1 x 1000
i0 = 1: logical optimisation only activated
2: logical + "plane" optimisation activated
3: logical + "plane" + "bounding box"
optimisation activated
(Default: 3)
i1 > 0 forces optimisation even if no parentheses
are found in the region under scrutiny
(Default: 0)
WHAT(6) : if > 0 it indicates the number of geometry output
lines to be skipped before starting writing
debugging lines. Please note that the output
can rapidly become huge
SDUM = COMBINAT : Combinatorial geometry is used. See section
on Combinatorial Geometry for input description
Other geometries, available in older versions of
FLUKA, are no longer supported.
Default: COMBINAT
SDUM = COMBNAME : Combinatorial geometry is used in free format, and
names can be used instead of body and region numbers
SDUM = FLUGG : The FluGG interface to the Geant4 geometry is used.
In this case, the GEOEND card must immediately follow
the GEOBEGIN card. The FluGG interface is available
and described on the fluka web site
Default : COMBINAT
Default (option GEOBEGIN not given): not allowed! GEOBEGIN and
GEOEND must always be present.
Notes:
1) Geometry input and output:
i) If WHAT(3) and WHAT(4) are both =< 0, the geometry input and
output are part of the standard I/O streams: the GEOBEGIN
card must be immediately followed by the Combinatorial
Geometry input, and then by GEOEND. (See Example 1 below).
ii) If WHAT(3) is > 0 (and not = 5) and WHAT(4) is =< 0, GEOBEGIN
must be followed by one card with the name of the CG input
file, and then by GEOEND. (See Example 2 below).
iii) If WHAT(4) is > 0 (and not = 11) and WHAT(3) is =< 0, GEOBEGIN
must be followed by one card with the name of the CG output
file, then by the CG input, and then by GEOEND. (See Example 3 below).
iv) Otherwise, if WHAT(3) is > 0 (and not = 5), and WHAT(4) is > 0
(and not = 11), GEOBEGIN must be followed, in the order, by
a line with the name of the CG input file, another line with
the name of the CG output file and the GEOEND card.
(See Example 4 below).
The first part of the CG output (9}) is essentially an echo of the
input, and gives in addition some information on storage allocation
of body and region data. Then follow an "Interpreted body echo" and
an "Interpreted region echo", useful in the case where free
geometry input format has been requested. It is recommended to
check on this output that the geometry description has been
correctly reproduced, especially if fixed input format has been
chosen, since column alignment errors are critical due to the CG
strict input format. In case of severe error ("next region not
found", or similar) the CG output will also contain all error and
debugging messages. Minor tracking problems, however, are reported
on the error message file (logical unit 15, see Chap. 3} and Sec.
9.4}, unless reporting has been de-activated by setting
WHAT(6) <= 0.0.
2) Special algorithms have been implemented in the Combinatorial
Geometry package of FLUKA in order to minimise tracking errors
due to rounding, to improve tracking speed and to handle
charged particle transport near boundaries and in magnetic
fields.
3) A voxel geometry is also available in FLUKA 8.3}.
It is fully integrated into the FLUKA CG and it is even possible
to describe a geometry partly as made of voxels and partly
of conventional CG regions.
4) Information on how to set up Combinatorial Geometry input is
given in Chap. 8}
5) End of geometry information must end with a GEOEND card.
The same card can also be used to activate a geometry debugger.
6) Option PLOTGEOM allows to draw sections of the geometry on
planes specified by the user.
7) Only one GEOBEGIN card is allowed.
8) The WHAT(2) parameter might need to be increased in case of very
large geometries (i.e. L> 100 m).
Example 1:
* CG Input follows, output is printed as part of Main Output
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOBEGIN 0. 0. 0. 0. 0. 0.COMBINAT
Example 2:
* CG Input read from file BigHall.geo, output printed as part of Main Output
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOBEGIN 0. 0. 25. 0. 0. 0.COMBINAT
BigHall.geo
Example 3:
* CG Input follows, output is printed on file geo2.out
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOBEGIN 0. 0. 0. 26. 0. 0.COMBINAT
geo2.out
Example 4:
* CG Input read from file BigHall.geo, output printed on file geo2.out
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOBEGIN 0. 0. 25. 26. 0. 0.COMBINAT
BigHall.geo
geo2.out
1********************************************************************************
{GEOEND}
Ends the geometry definitions.
This option can also be used to debug the geometry: in this case
it may extend over two cards
See also GEOBEGIN, PLOTGEOM
Normally, only one GEOEND card is issued, at the end of the geometry
description, with all the WHATs and the SDUM equal to zero or blank.
However, GEOEND can also be used to activate the FLUKA geometry debugger:
in this case one or two GEOEND cards are needed, providing the
information described below.
1st GEOEND card:
WHAT(1) = X_max of the geometry region to be debugged (no default)
WHAT(2) = Y_max of the geometry region to be debugged (no default)
WHAT(3) = Z_max of the geometry region to be debugged (no default)
WHAT(4) = X_min of the geometry region to be debugged (no default)
WHAT(5) = Y_min of the geometry region to be debugged (no default)
WHAT(6) = Z_min of the geometry region to be debugged (no default)
SDUM = DEBUG to activate the debugger, otherwise must be left blank
2nd (optional) GEOEND card:
WHAT(1) = Number of mesh intervals in the x-direction between
X_min and X_max. Reset to default number if <=0.
Default = 20.0
WHAT(2) = Number of mesh intervals in the y-direction between
Y_min and Y_max. Reset to default number if <=0.
Default = 20.0
WHAT(3) = Number of mesh intervals in the z-direction between
Z_min and Z_max. Reset to default number if <=0.
Default = 20.0
WHAT(4) = Maximum number of errors after which debugging stops.
Reset to default number if <=0.
Default = 500.0
WHAT(5,6) : not used
SDUM = "&" in any position in column 71 to 78 (or in the last
field if free format is used)
Default (option GEOEND not given): not allowed! GEOBEGIN and
GEOEND must always be present.
Notes:
1) The geometry debugger can detect both undefined points (points
which are not included in any defined region) or multiple defined
points (points which are included in more than one region (i.e.
there are overlapping regions) in the selected X,Y,Z mesh. The
first kind of error is likely to cause a run-time error every time
a particle is passing through the undefined zone, the second one
is more subtle and it is not usually detected at run-time. It is
impossible to predict to which actual region such multiple
defined points will be assigned.
2) The geometry debugger cannot assure that a bug-free geometry
input is what the user would like to describe, however it seldom
occurs that users are able to define a bug-free input different
from what they wanted to describe.
3) It must be stressed that only the points of the defined X,Y,Z mesh
are checked, therefore mesh dimensions and pitches should be
chosen according to the present geometry, taking into account
region thicknesses etc.
4) Another useful tool is available for this purpose: the PLOTGEOM
program, which is activated by means of the PLOTGEOM command.
5) It must be stressed too that the geometry debugger can be very
time consuming, so don't ask for 100 micrometres pitches in X,Y,Z
over 10 metres or the code will run forever! Make use as much
as possible of geometry symmetries (for example for a cylindrical
geometry there is no need for a 3-D scan) and possibly "zoom"
with fine meshes only around points where you suspect possible
errors. Note that as many areas as wished can be scanned with
different meshes of the SAME geometry, simply changing the
mesh parameters each time.
6) WARNING: the program does not stop if an error is detected but
a message is issued on the output units, and checking goes on.
If the code is "stepping" into an area erroneously defined, it is
likely that plenty of such error messages will be printed. If your
operating system allows inspection of output files before they
are closed, check the size of your output from time to time. If it
is growing too much, stop the code and correct the geometry for the
printed errors before restarting the debugger.
Example of a normal GEOEND card without debugging:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOEND 0. 0. 0. 0. 0. 0.
* The next is an example of geometry debugging:
GEOEND 150. 75. 220. 30. 0. -220.DEBUG
GEOEND 120. 1. 110. 0. 0. 0. &
* The above cards request a scan of the geometry portion delimited
* by planes x = 30, x = 150, y = 0, y = 75, z = -220, z = 220,
* with 120 steps 1-cm wide along x, one single step along y and
* 110 4-cm wide steps along z. A single step in one direction (here y)
* is typical of searches through cylindrically symmetric geometries.
1********************************************************************************
{GLOBAL}
Makes a global declaration about the present run, setting some
important parameters that must be defined before array memory
allocation
See also DEFAULTS, FIXED, FREE
Important: GLOBAL declarations, if present, must precede any executable
option
WHAT(1) = maximum number of regions (must be =< 100000, see note 2)
Default: 1000
WHAT(2) = declaration of "how analogue" this run must be: fully
analogue, as biased as possible, or automatically chosen by
the program?
< 0.0: as analogue as possible (provided the input is
consistent with this choice)
> 1.0: as biased as possible (allowed also for a run in
which no explicit biasing option is requested: in
this case it simply means "do not try to be
analogue")
0.0 <= WHAT(2) <= 1.0: as analogue as decided by the program
according to the selected biasing options
Default: 0.0 (input decides the amount of biasing)
WHAT(3): declaration about the use of the DNEAR variable (see Note 4)
when computing physical steps:
= 0 --> use Dnear when computing the tentative length
of particle steps only when random seed
reproducibility is assured (full reproducibility
of random seeds within the same geometry package,
possible non reproducibilities among different
geometry packages describing the same geometry)
=-1 --> do not use Dnear when computing the tentative
length of particle steps (full reproducibility
of random seeds starting from different histories,
some penalty in CPU)
=-2 --> do not use Dnear at all
Default: 0.0 (random number sequence reproducible within the
same geometry package)
WHAT(4): flag to request various types of input
< 0.0: resets the default
= 0.0: ignored
= 1.0: requests the use of names (alphanumerical 8-character
strings beginning by alphabetical) instead of numbers
as identifiers of particles, materials and regions in
the relevant "WHAT" fields of input commands. If fixed
format is used, each name must be contained inside
the corresponding 10-character field. If free-format,
name-based geometry input has not been requested (see
WHAT(5) and Note 6), the region names, generated
automatically by FLUKA, can be found on standard output.
= 2.0: requests free-format input for all input commands (for
geometry body and region input, see WHAT(5)). The six
"WHAT" fields must all be input, or replaced by two
successive separators (together with zero or more blanks)
= 3.0: the two previous options are both requested, i.e.
alphanumerical 8-character names are used to identify
particles, materials and regions in the relevant "WHAT"
fields of input commands, and free format is also used
(for geometry body and region input, see WHAT(5)).
The six "WHAT" fields must all be input, or replaced by two
successive separators (together with zero or more blanks)
= 4.0: requests numerical format input for all input commands
Default: 1.0 (name-based, fixed format input)
WHAT(5): flag to request free format in the geometry input for bodies
and regions. This format is described in 8}, and requires the
use of names (alphanumerical 8-character strings beginning by
alphabetical) as identifiers. Parentheses are allowed.
< 0.0: resets the default
= 0.0: ignored
> 0.0: geometry input for bodies and regions will be in free
format and name-based
Default = -1. (numerical, fixed format geometry input)
WHAT(6): Requested blank common memory allocation (real*8 units),
meaningful only for compilers supporting F2003 features
and beyond (eg Gfortran)
SDUM: in most cases there is no need for any SDUM, however for
old inputs still containing deprecated bodies, the user can set:
= DEPRBODY: allows to use temporarily the deprecated body types,
ARB, BOX, WED
Notes:
1) In most cases the user should not worry about the number
of geometry regions. Despite the fact that FLUKA input
does not follow any specific order, the program is able to
manage initialisation of all geometry-dependent arrays
by allocating temporary areas of memory even before the
actual dimensions of the problem are known. The unused parts
of such areas are recovered at a later time when the whole
input has been read. However, if the number of regions is
very large (> 1000), the program needs to be informed in order
to increase the size of such temporary areas. This information
must be given at the very beginning: therefore GLOBAL
(together with DEFAULTS, MAT-PROP and PLOTGEOM) is a rare
exception to the rule that the order of FLUKA input cards is free.
2) For Fortran90 versions (eg Gfortran) supporting the standard
F2003 and beyond, all arrays depending on the number of regions
are allocated run time and this parameter is no longer relevant.
The "hard" limit of 100000 regions represents the maximum that
can be obtained without recompiling the program for the G77
version. It can be overridden, but only by increasing the
value of variable MXXRGN in the INCLUDE file DIMPAR and
recompiling the whole code. In this case, however, it is
likely that the size of variable NBLNMX in INCLUDE file
BLNKCM will have to be increased too.
3) In a "fully analogue" run, each interaction is simulated by
sampling each exclusive reaction channel with its actual
physical probability. In general, this is not always the case,
especially concerning low-energy neutron interactions.
Only issuing a GLOBAL declaration with WHAT(2) < 0 can it
be ensured that analogue sampling is systematically carried
out whenever it is possible. The lack of biasing options in
input is not sufficient for this purpose. This facility should
be used in problems where fluctuations or correlations cannot
be ignored, but is likely to lead to longer computing times.
4) DNEAR designates the distance between the current particle
position and the nearest boundary (or a lower bound to that
distance), and it is used by FLUKA to optimise the step
length of charged particles. The concept and the name have
been borrowed from the EGS4 code, but the FLUKA implementation
is very different because it is fully automatic rather than left
to the user, and it is tailored for Combinatorial Geometry, where
a region can be described by partially overlapping sub-regions
(described in input by means of the OR operator).
The sequential order in which overlapping sub-regions are
considered when evaluating DNEAR is irrelevant from the point
of view of particle tracking, but can affect the random number
sequence. This does not have any effect on the average results
of the calculation, but the individual histories can differ due
the different random number sequence used. Option GLOBAL can be
used in those cases where the user wants to reproduce exactly
each particle history, or on the contrary to forgo it in order to
get a better step optimisation.
5) Free format can be requested also by option FREE, but only for
the part of input that follows the command. FREE cannot be used
to request free format geometry input. See the Notes to FREE
(Note 2 and following) for the rules governing separators.
6) Free-format, name-based geometry input can be requested also by
setting SDUM = COMBNAME in command GEOBEGIN.
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
TITLE
A fully analogue run (no other commands precede this TITLE card)
GLOBAL 2000. -1. 1. 0. 0. 0.
* This run needs more than the default maximum number of regions. It is
* requested to be as analogue as possible and to avoid using DNEAR if
* it risks to affect the random number sequence.
Example 2:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
TITLE
Full free-format input (no other commands precede this TITLE card)
GLOBAL 0.0 0.0 0.0 2.0 1.0 0.
* The following input will be all in free format (both the FLUKA commands
* and the geometry description)
1********************************************************************************
{HI-PROPE}rt
Specifies the properties of a heavy ion primary, or a radioactive
isotope primary
See also BEAM
WHAT(1) = Atomic number Z of the heavy ion
Default: 6.0 (Carbon)
WHAT(2) = Mass number A of the heavy ion
Default: 12.0
WHAT(3) = Excitation energy of the heavy ion above ground state
if > 0 (NOT YET IMPLEMENTED), isomeric state of the
heavy ion if < 0.
Default: 0.0
WHAT(4)-WHAT(6): not used
SDUM: not used
Default: If no HI-PROPE definition is given, a HEAVYION projectile
is assumed to be 12C in the ground state.
Note:
Option HI-PROPErt is used to specify the properties of a generic heavy
ion primary declared by a BEAM command with SDUM = HEAVYION, or by a
user-written subroutine SOURCE with id number IJ = -2.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
* Primary particles are 10 GeV/u Au-197 ions in the ground state:
BEAM -10.0 0.0 0.0 0.0 0.0 0. HEAVYION
HI-PROPE 79.0 197.0 0.0 0.0 0.0 0.
1********************************************************************************
{IONFLUCT}
Calculates ionisation energy losses of charged hadrons, muons, and
electrons/positrons with ionisation fluctuations
See also DELTARAY
For any SDUM's but PRIM-ION:
WHAT(1) >= 1.0 : restricted energy loss fluctuations (for hadrons
and muons) switched on
=< -1.0 : restricted energy loss fluctuations (for hadrons
and muons) switched off
= 0.0 : ignored
Default: restricted energy loss fluctuations for hadrons
and muons are activated if option DEFAULTS is missing or
if it is used with SDUM = CALORIMEtry, EET/TRANSmut,
HADROTHErapy, ICARUS, NEW-DEFAults or PRECISIOn.
With any other SDUM value, they are not activated.
WHAT(2) >= 1.0 : restricted energy loss fluctuations (for electrons
and positrons) switched on
=< -1.0 : restricted energy loss fluctuations (for electrons
and positrons) switched off
= 0.0 : ignored
Default: restricted energy loss fluctuations for electrons
and positrons are activated if option DEFAULTS is missing
or if it is used with SDUM = CALORIMEtry, EM-CASCAde,
HADROTHErapy, ICARUS, NEW-DEFAults or PRECISIOn.
With any other SDUM value, they are not activated.
WHAT(3) : If WHAT(1) (resp. WHAT(2)) >=1, WHAT(3) represents the accuracy
parameter for the ionisation fluctuation algorithm (see [Fas97a])
for hadrons and muons (resp. electrons and positrons).
The accuracy parameter can take integer values from 1 to 4
(corresponding to increasing levels of accuracy)
< 0.0 : resets to default
Default = 1.0 (minimal accuracy)
WHAT(4) = lower bound (or corresponding name) of the indices of the
materials in which the restricted energy loss fluctuations are
activated
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound (or corresponding name) of the indices of the
materials in which the restricted energy loss fluctuations are
activated
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default: 1.0
For SDUM = PRIM-ION:
generation of primary ionisation electrons is switched on (or switched
off, if WHAT(3) < 0)
Delta rays below threshold for explicit generation are generated anyway:
for close collisions down to the threshold, and for distant collisions down
to an internally computed value, such as to match the input 1st ionisation
potential and the average number of primary ionisations per unit length.
WHAT(1) = effective 1st ionisation potential (eV)
(meaningless for model 1)
No default
WHAT(2) = number of primary ionisations per cm for a mimimum ionising
particle (assumed to be a muon+ at beta*gamma = 3). For gases it
must be the value at NTP.
If set = 0 (valid value), only primary electrons related to
close collisions will be produced and WHAT(1) and WHAT(3)
will be meanigless.
No default
WHAT(3) = primary ionisation model type (1, 2, 3 or 4)
0 is ignored if a previous call set a value > 0, otherwise it
forces the default
A value < 0 switches off primary ionisation production
Default: 1
WHAT(4) = lower bound (or corresponding name) of the indices of the
materials in which the choices represented by WHAT(1),(2) and (3)
apply
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound (or corresponding name) of the indices of the
materials in which the choices represented by WHAT(1),(2) and (3)
apply
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default: 1.0
SDUM = PRIM-ION
For SDUM = SECO-ION: (NOT YET IMPLEMENTED)
generation of secondary ionisation electrons is switched on (or switched
off, if WHAT(3) < 0). Attention : this feature is not yet available in the
code.
WHAT(1) = average energy spent per ion couple (primary or secondary (eV))
No default
WHAT(2) = number of secondary ionisations per cm for a mimimum ionising
particle (assumed to be a muon+ at beta*gamma = 3). For gases it
must be the value at NTP.
If set = 0 (valid value), only primary electrons related to
close collisions will be produced and WHAT(1) and WHAT(3)
will be meanigless.
No default
WHAT(3) = secondary ionization flag.
0 is ignored if a previous call set a value > 0, otherwise it
forces the default
A value < 0 switches off primary ionisation production
Default: 1
WHAT(4) = lower bound (or corresponding name) of the indices of the
materials in which the choices represented by WHAT(1),(2) and (3)
apply
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound (or corresponding name) of the indices of the
materials in which the choices represented by WHAT(1),(2) and (3)
apply
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default: 1.0
SDUM = SECO-ION
Default (option IONFLUCT not given): ionisation fluctuations are simulated
or not depending on option DEFAULTS as explained above. Explicit
primary ionisation events are never simulated by default.
Notes:
1) The energy loss fluctuation algorithm is fully compatible
with the DELTARAY option.
2) Primary ionisation electron energies are stored in COMMON ALLDLT at
each step in the selected materials.
Use with care and possibly for gases only. The number of primary
ionisations electrons can quickly escalate, particularly when
multiply charged ions are involved. No COMMON saturation crash
should occur since the code is piling up all the remaining primary
electrons into the last COMMON location if no further one is
available, however CPU penalties can be severe if used without wisdom.
Example (number-based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
IONFLUCT 0.0 1.0 3.0 7.0 16.0 3.0
IONFLUCT 1.0 0.0 2.0 8.0 10.0 2.0
DELTARAY 1.E-3 0.0 0.0 10.0 11.0
* The special FLUKA algorithm for ionisation fluctuations is activated
* with accuracy level 3 for photons and electrons in materials 7, 10, 13 and
* 16 (Nitrogen, Aluminum, Silver and Mercury). The same algorithm is activated,
* at an accuracy level = 2, for materials 8 and 10 (Oxygen and Aluminum), but
* in the latter material only for ionisation losses with energy transfer
* < 1 MeV. Losses with larger energy transfer will result in explicit delta
* electron production. In material 11 (Iron), delta rays will be produced if
* the energy transfer is larger than 1 MeV, but fluctuations for lower energy
* transfers will be ignored.
The same example, name based:
IONFLUCT 0.0 1.0 3.0 NITROGEN MERCURY 3.0
IONFLUCT 1.0 0.0 2.0 OXYGEN ALUMINUM 2.0
DELTARAY 1.E-3 0.0 0.0 ALUMINUM IRON
1********************************************************************************
{IONTRANS}
Determines the transport of ions (A > 1), allowing to limit it to subsets of
light ions (A < 5) and to choose between approximate and full transport
(including nuclear interactions)
WHAT(1) >= 1 : no transport, full or approximate, of any light/heavy ion
= 0 : ignored
= -1 : approximate transport (without interactions) of all
light and heavy ions
= -2 : full transport of all light and heavy ions
>= -6 and <= -3 : full transport of light ions with FLUKA id >= WHAT(1)
(-3=d,-4=t,-5=3-He,-6=4-He), and approximate
transport of all other ions
Default: 0.0 (no ion transport, unless a ion beam is requested by
the BEAM card, see note 2)
WHAT(2-6) and SDUM not used.
Notes:
1) When requested, interactions at energies larger than 125MeV/n are
performed provided that the external event generators DPMJET and
RQMD are linked (through the script $FLUPRO/flutil/ldpmqmd). For
energies lower than 125 MeV/n, the BME event generator is already
included in the main $FLUPRO/libflukahp.a library and linked in the
standard $FLUPRO/flukahp executable.
2) In the presence of a heavy ion beam, full transport of all ions is
enabled by default (no need for IONTRANS).
1********************************************************************************
{IRRPROFI}le
Defines an irradiation profile for radioactive decay calculations
See also DCYTIMES, DCYSCORE, RADDECAY, RESNUCLEi
WHAT(1) = length of a newly defined irradiation interval (in s)
> 0.0 : a new interval is added with length WHAT(1)
= 0.0 : ignored
< 0.0 : the last defined interval (if any) is deleted
Default = no new irradiation interval is defined
WHAT(2) = beam intensity of the newly defined (see WHAT(1)) irradiation
interval
>= 0.0 : beam intensity in particles/s (0 is accepted)
< 0.0 : considered as 0.0
Default: 0.0 particles/s
WHAT(3) = the same as WHAT(1)
WHAT(4) = the same as WHAT(2)
WHAT(5) = the same as WHAT(1)
WHAT(6) = the same as WHAT(2)
SDUM = not used
Default (option IRRPROFIle not given): no irradiation interval is defined
Notes:
1) Decay times as requested by DCYTIMES commands will be calculated
from the end of the last one. Scoring during irradiation can be
obtained giving negative decay times in DCYTIMES.
2) Several cards can be combined up to the desired number of
irradiation intervals.
3) A negative value inserted in an odd WHATs (i.e. {\zz WHAT(1)},
{\zz WHAT(3)}, {\zz WHAT(5)}) will delete the previous irradiation
interval. A series of negative odd WHATs will delete as many previously
defined intervals.
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
IRRPROFI 3600. 1.5E12 7200. 0.0 600. 4.2E12
IRRPROFI 1200. 0.0 3600. 1.0E10
* The defined irradiation profile consists of:
* 3600s (1 hour) of irradiation at an intensity of 1.5E12 particles/s
* 7200s (2 hours) of cooling (no beam)
* 600s (1o minutes) of irradiation at an intensity of 4.2E12 particles/s
* 1200s (20 minutes) of cooling (no beam)
* 3600s (1 hour) of irradiation at an intensity of 1.0E10 particles/s
Example 2:
The same profile could have been achieved using separate IRRPROFI cards
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
IRRPROFI 3600. 1.5E12
IRRPROFI 7200. 0.0
IRRPROFI 600. 4.2E12
IRRPROFI 1200. 0.0
IRRPROFI 3600. 1.0E10
* The defined irradiation profile consists of:
* 3600s (1 hour) of irradiation at an intensity of 1.5E12 particles/s
* 7200s (2 hours) of cooling (no beam)
* 600s (1o minutes) of irradiation at an intensity of 4.2E12 particles/s
* 1200s (20 minutes) of cooling (no beam)
* 3600s (1 hour) of irradiation at an intensity of 1.0E10 particles/s
Example 3:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
IRRPROFI 3600. 1.5E12 7200. 0.0 600. 4.2E12
IRRPROFI -1200. 0.0 -3600. 1.0E10
* The 4th and 5th irradiation intervals defined have negative duration, therefore
* the two previous intervales will be deleted. The irradiation profile will
* consist of a single interval 3600s long with an intensity of 1.5E12 particle/s
1********************************************************************************
{LAM-BIAS}
Used to bias the decay length of unstable particles, the inelastic nuclear
interaction length of hadrons, photons, electrons and muons and the
direction of decay secondaries
The meaning of WHAT(1)...WHAT(6) depends on the value of SDUM.
SDUM = DCDRBIAS and SDUM = DCY-DIRE are used to activate and define decay
direction biasing; SDUM = GDECAY selects decay length biasing and inelastic
nuclear interaction biasing; and if SDUM = blank, decay life biasing and
inelastic nuclear interaction biasing are selected.
Other LAM-BIAS cards with SDUM = DECPRI, DECALL, INEPRI, INEALL allow to
restrict biasing to primary particles or to extend it also to further
generations.
for SDUM = DCY-DIRE:
The decay secondary product direction is biased in a direction indicated by
the user by means of a unit vector of components U, V, W (see Notes 4
and 5):
WHAT(1) = U (x-direction cosine) of the preferred direction to be used in
decay direction biasing
Default: 0.0
WHAT(2) = V (y-direction cosine) of the preferred direction to be used in
decay direction biasing
Default: 0.0)
WHAT(3) = W (z-direction cosine) of the preferred direction to be used in
decay direction biasing
Default: 1.0
WHAT(4) > 0.0: lambda for decay direction biasing. The degree of biasing
decreases with increasing lambda (see Note 5).
= 0.0: a user provided routine (UDCDRL, see 13}) will be called at
each decay event, to provide both direction and lambda for decay
direction biasing
< 0.0 : resets to default (lambda = 0.25)
Default = 0.25
WHAT(5), WHAT(6) : not used
for SDUM = DCDRBIAS:
WHAT(1) > 0.0: decay direction biasing is activated (see Notes 4 and 5)
= 0.0: ignored
< 0.0: decay direction biasing is switched off
WHAT(2), WHAT(3) : not used
WHAT(4) = lower bound of the particle id-numbers (or corresponding name)
for which decay direction biasing is to be applied
("From particle WHAT(4)...").
Default = 1.0.
WHAT(5) = upper bound of the particle id-numbers (or corresponding name)
for which decay direction biasing is to be applied
("...to particle WHAT(5)...").
Default = WHAT(4) if WHAT(4) > 0, 64 otherwise.
WHAT(6) = step length in assigning numbers. ("...in steps of WHAT(6)").
Default = 1.0.
for all other SDUM's:
WHAT(1): biasing parameter for decay length or life, applying only to
unstable particles (with particle numbers >= 8). Its meaning
differs depending on the value of SDUM, as explained in the
following.
for SDUM = GDECAY:
WHAT(1) < 0.0 : the mean DECAY LENGTH (in cm) of the particle in the
LABORATORY frame is set = |WHAT(1)| if smaller than
the physical decay length (otherwise it is left
unchanged). At the decay point sampled according to
the biased probability, Russian Roulette (i.e.
random choice) decides whether the particle actually
will survive or not after creation of the decay
products. The latter are created in any case and
their weight adjusted taking into account the ratio
between biased and physical survival probability.
> 0.0 : the mean DECAY LENGTH (in cm) of the particle in the
LABORATORY frame is set = WHAT(1) if smaller than
the physical decay length (otherwise it is left
unchanged). Let P_u = unbiased probability and
P_b = biased probability: at the decay point sampled
according to P_b, the particle always survives
with a reduced weight W(1 - P_u/P_b), where W is the
current weight of the particle before the decay. Its
daughters are given a weight W P_u/P_b (as in
case WHAT(1) < 0.0).
= 0.0 : ignored
for SDUM = blank:
-1 < WHAT(1) < 0. : the mean LIFE of the particle in its REST frame
is REDUCED by a factor = |WHAT(1)|. At the decay
point sampled according to the biased
probability, Russian Roulette (i.e. random
choice) decides whether the particle actually
will survive or not after creation of the decay
products. The latter are created in any case and
their weight adjusted taking into account the
ratio between biased and physical survival
probability.
0 < WHAT(1) < +1. : the mean LIFE of the particle in the REST frame
is REDUCED by a factor = WHAT(1). At the decay
point sampled according to the biased
probability, the particle always survives with
a reduced weight. Its daughters are given the
same weight.
|WHAT(1)| > 1 : a possible previously given biasing parameter
is reset to the default value (no biasing)
WHAT(1) = 0 : ignored
WHAT(2) : biasing factor for hadronic inelastic interactions
-1 < WHAT(2) < 0. : the hadronic inelastic interaction length of the
particle is reduced by a multiplying factor |WHAT(2)|.
At the interaction point sampled according to
the biased probability, Russian Roulette (i.e.
random choice) decides whether the particle actually
will survive or not after creation of the
secondaries products. The latter are created in
any case and their weight adjusted taking into
account the ratio between biased and physical
survival probability.
0. < WHAT(2) < 1. : the hadronic inelastic interaction length of the
particle is reduced by a multiplying factor WHAT(2),
At the interaction point sampled according to
the biased probability, the particle always
survives with a reduced weight. The secondaries
are created in any case and their weight
adjusted taking into account the ratio between
biased and physical survival probability.
= 0.0 : ignored
WHAT(2) >= 1.0 : a possible previously set biasing factor is
reset to the default value of 1 (no biasing).
WHAT(3) : If > 2.0 : number or name of the material to which the inelastic
biasing factor has to be applied.
< 0.0 : resets to the default a previously assigned value
= 0.0 : ignored if a value has been previously assigned to
a specific material, otherwise all materials (default)
0.0 < WHAT(3) =< 2.0 : all materials.
WHAT(4) = lower bound of the particle id-numbers (or corresponding name)
for which decay or inelastic interaction biasing is to be applied
("From particle WHAT(4)...").
Default = 1.0.
WHAT(5) = upper bound of the particle id-numbers (or corresponding name)
for which decay or inelastic interaction biasing is to be applied
("...to particle WHAT(5)...").
Default = WHAT(4) if WHAT(4) > 0, 64 otherwise.
WHAT(6) = step length in assigning numbers. ("...in steps of WHAT(6)").
Default = 1.0.
for SDUM = DECPRI, DECALL, INEPRI, INEALL:
SDUM = DECPRI: decay biasing, as requested by another LAM-BIAS card with
SDUM = GDECAY or blank, must be applied only to primary
particles.
= DECALL: decay biasing, as requested by another LAM-BIAS card with
SDUM = GDECAY or blank, must be applied to all
generations (default).
= INEPRI: inelastic hadronic interaction biasing, as requested by
another LAM-BIAS card with SDUM = blank, must be applied
only to primary particles.
= INEALL: inelastic hadronic interaction biasing, as requested by
another LAM-BIAS card with SDUM = blank, must be applied
to all generations (default)
Default (option LAM-BIAS not given): no decay length, decay direction, or
inelastic interaction biasing
Notes:
1) Option LAM-BIAS can be used for three different kinds of biasing:
a) biasing of the particle decay length (or life),
b) biasing of the direction of the decay secondaries, and
c) biasing of the inelastic hadronic interaction length.
2) Depending on the SDUM value, two different kinds of biasing are
applied to the particle decay length (or life).
In both cases, the particle is transported to a distance
sampled from an imposed (biased) exponential distribution:
If WHAT(1) is positive, decay products are created, but the
particle survives with its weight and the weight of its
daughters is adjusted according to the ratio between the biased
and the physical survival probability at the sampled
distance. If WHAT(1) is negative, decay is performed and the
weight of the daughters is set according to the biasing, but the
survival of the primary particle is decided by Russian
Roulette according to the biasing. Again, the weights are adjusted
taking the bias into account.
3) The laboratory decay length corresponding to the selected
mean decay life is obtained by multiplication by BETA*GAMMA*c.
4) Decay direction biasing is activated by a LAM-BIAS card
with SDUM = DCDRBIAS. The direction of decay secondaries is
sampled preferentially close to the direction specified by
the user by means of a second LAM-BIAS card with SDUM = DCY-DIRE.
5) The biasing function for the decay direction is of the form
exp{-[1-cos(theta)]/lambda}
where theta is the polar angle between the sampled direction and the
preferential direction (transformed to the centre of mass reference
system). The degree of biasing is largest for small positive values
of lambda (producing direction biasing strongly peaked along the
direction of interest) and decreases with increasing lambda. Values
of lambda >= 1.0 result essentially in no biasing.
6) Biasing of hadronic inelastic interaction length can be done either
in one single material (indicated by WHAT(3)) or in all materials
(default). No other possibility is foreseen for the moment.
7) When choosing the Russian Roulette alternative, it is
suggested to set also a weight window (cards WW-FACTOr and
WW-THRESh) in order to avoid too large weight fluctuations.
8) Reduction factors excessively large can result in an abnormal
increase of the number of secondaries to be loaded on the stack,
especially at high primary energies. In such cases, FLUKA issues
a message that the secondary could not be loaded because of a
lack of space. The weight adjustment is modified accordingly
(therefore the results are not affected) but if the number of
messages exceeds a certain limit, the run is terminated.
9) Biasing of the hadronic inelastic interaction length can be
applied also to photons, electrons and positrons (provided option
PHOTONUC is also requested with the relevant parameters) and muons
(provided option MUPHOTON is also requested); actually, it is often
a good idea to do this in order to increase the probability of
photonuclear interaction.
10) For photons, a typical reduction factor of the hadronic inelastic
interaction length is the order of 0.01-0.05 for a shower initiated
by 1 GeV photons or electrons, and of 0.1-0.5 for one at 10 TeV.
For electrons and positrons, a typical reduction factor is about
5.E-4
Examples (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LAM-BIAS -3.E+3 1. 1. 13. 16. 0.GDECAY
* The mean decay length of pions and kaons (particles 13, 14, 15 and 16)
* is set equal to 30 m. Survival of the decaying particle is decided by
* Russian Roulette.
LAM-BIAS 0.0 0.02 11. 7. 0. 0.INEPRI
* The interaction length for nuclear inelastic interactions of primary
* photons (particle 7) is reduced by a factor 50 in material 11.
* (Note that such a large reduction factor is often necessary for photons,
* but generally is not recommended for hadrons). The photon survives after
* the nuclear interaction with a reduced weight.
The same examples, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LAM-BIAS -3.E+3 1. 1. PION+ KAON- 0.GDECAY
*
LAM-BIAS 0.0 0.02 11. PHOTON 0. 0.INEPRI
1********************************************************************************
{LOW-BIAS}
requests non-analogue absorption and/or an energy cutoff during
low-energy neutron transport on a region by region basis
See also PART-THR, LOW-NEUT
WHAT(1) > 0.0 : group cutoff (neutrons in energy groups with number
>= WHAT(1) are not transported).
This value can be overridden in the user routine UBSSET
(argument IGCUTO in the calling list, see 13})
Default = 0.0 (no cutoff)
WHAT(2) > 0.0 : group limit for non-analogue absorption (neutrons in
energy groups >= WHAT(2) undergo non-analogue absorption)
This value can be overridden in the user routine UBSSET
(argument IGNONA in the calling list, see 13})
Non-analogue absorption is applied to the NMGP-WHAT(2)+1
groups with energies equal or lower than those of
group WHAT(2) if WHAT(2) is not > NMGP, otherwise it
isn't applied to any group (NMGP is the number of
neutron groups in the cross section library used:
it is = 260 in the standard FLUKA neutron library)
Default: if option DEFAULTS is used with SDUM = CALORIMEtry,
ICARUS, NEUTRONS or PRECISIOn, the default is = NMGP+1
(usually 261), meaning that non-analogue absorption is
not applied at all.
If DEFAULTS is missing, or is present with any other
SDUM value, the default is the number of the first thermal
group (usually 230).
WHAT(3) > 0.0 : non-analogue SURVIVAL probability. Must be =< 1.
This value can be overridden in the user routine UBSSET
(argument PNONAN in the calling list, see 13})
Default: if option DEFAULTS is used with SDUM = EET/TRANsmut,
HADROTHErapy, NEW-DEFAults or SHIELDINg, the default
is = 0.95.
If DEFAULTS is missing, or is present with any other
SDUM value, the default is 0.85.
WHAT(4) = lower bound of the region indices (or corresponding name) in
which the indicated neutron cutoff and/or survival parameters
apply
("From region WHAT(4)...")
Default = 2.0.
WHAT(5) = upper bound of the region indices (or corresponding name) in
which the indicated neutron cutoff and/or survival parameters
apply
("...to region WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices. ("...in steps of
WHAT(6)").
Default = 1.
SDUM : not used
Default (option LOW-BIAS not given): the physical survival probability
is used for all groups excepting thermal ones, which are assigned
a probability of 0.85. However, if option DEFAULTS has been
issued with SDUM = EET/TRANsmut, HADROTHErapy, NEW-DEFAults or
SHIELDINg, this default value is changed to 0.95.
If SDUM = CALORIMEtry, ICARUS, NEUTRONS or PRECISIOn, the default
is physical survival probability for all groups, including thermal.
Notes:
1) The groups are numbered in DECREASING energy order (see 10}
for a detailed description). Setting a group cutoff larger
than the last group number (e.g. 261 when using a 260-group
cross section set) results in all neutrons been transported,
i.e. no cutoff is applied.
2) Similarly, if WHAT(2) is set larger than the last group number,
non-analogue neutron absorption isn't applied to any group (this is
recommended for calorimetry studies and all cases where fluctuations
and correlations are important).
3) The survival probability is defined as 1 - (Sigma_abs/Sigma_T)
where Sigma_abs is the inverse of the absorption mean free
path and Sigma_T the inverse of the mean free path for
absorption plus scattering (total macroscopic cross section).
The LOW-BIAS option allows the user to control neutron
transport by imposing an artificial survival probability
and corrects the particle weight taking into account the
ratio between physical and biased survival probability.
4) In some programs (e.g., MORSE) the survival probability is always
forced to be = 1. In FLUKA, if the LOW-BIAS option is not
chosen, the physical survival probability is used for all
non-thermal groups, and the default 0.85 is used for the
thermal groups. (This exception is to avoid endless thermal
neutron scattering in materials with low thermal neutron
absorption cross section). To get the physical survival
probability applied to ALL groups, as needed for fully analogue
calculations, the user must use LOW-BIAS with WHAT(2) larger
than the last group number.
5) In selecting a forced survival probability for the thermal
neutron groups, the user should have an idea of the order of
magnitude of the actual physical probability. The latter can
take very different values: for instance it can range between
a few per cent for thermal neutrons in Boron-10 to about
80-90% in Lead and 99% in Carbon. The choice will be often for
small values of survival probability in the thermal groups in
order to limit the length of histories, but not if thermal
neutron effects are of particular interest.
6) Concerning the other energy groups, if there is interest in
low-energy neutron effects, the survival probability for
energy groups above thermals in non-hydrogenated materials
should be set at least = 0.9, otherwise practically no
neutron would survive enough collisions to be slowed down. In
hydrogenated materials, a slightly lower value could be
acceptable. Setting less than 80% is likely to lead to
erroneous results in most cases.
7) Use of a survival probability equal or smaller than the
physical one is likely to introduce important weight
fluctuations among different individual particles depending
on the number of collisions undergone. To limit the size of
such fluctuations, which could slow down statistical
convergence, it is recommended to define a weight window by
means of options WW-THRESh, WW-FACTOr and WW-PROFIle.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-BIAS 60.0 47.0 0.95 5.0 19.0 0.0
LOW-BIAS 261.0 230.0 0.82 7.0 15.0 4.0
* Note that the second LOW-BIAS card overrides the settings of the first one
* concerning regions 7, 11 and 15. Therefore, we will have an energy cutoff
* equal to the upper edge of the 60th group (4.493290 MeV in the standard
* FLUKA neutron library) in regions 5,6,8,9,10,12,13,14,16,17,18 and 19. In
* these same regions, analogue neutron absorption is requested down to an
* energy equal to the upper edge of group 47 (6.592384 MeV in the standard
* library), and biased absorption, with a fixed probability of 95%, at lower
* energies.
* In regions 7, 11 and 15, no cutoff is applied (supposing we are using the
* standard 260-group library), and non-analogue absorption is requested for
* groups 230 to 260 (the thermal groups in our case), with a probability of
* 82%.
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-BIAS 60.0 47.0 0.95 FifthReg Nineteen 0.0
LOW-BIAS 261.0 230.0 0.82 RegSeven Fifteen 4.0
1********************************************************************************
{LOW-DOWN}
Biases the downscattering probability during low energy neutron
transport on a region by region basis
See also LOW-BIAS, LOW-NEUT
WHAT(1) > 0.0 : group limit for biased downscattering probability.
Neutrons in energy groups IG >= WHAT(1) are given
downscattering importances = WHAT(2)**(IG-WHAT(1)).
This value can be overridden in the user routine UBSSET
(argument IGDWSC in the calling list, see 13})
Default = 0.0 (no biased downscattering)
WHAT(2) = biasing factor for down-scattering from group IG-1 into group IG
This value can be overridden in the user routine UBSSET
(argument FDOWSC in the calling list, see 13})
Default = 1.5
WHAT(3) : not used
WHAT(4) = lower bound of the region indices (or corresponding name) to
which downscattering biasing is to be applied
("From region WHAT(4)...").
Default: = 2.0
WHAT(5) = upper bound of the region indices (or corresponding name) to
which downscattering biasing is to be applied
("...to region WHAT(5)...")
Default: = WHAT(4)
WHAT(6) = step length in assigning indices. ("...in steps of
WHAT(6)").
Default: 1.0
SDUM : not used
Default (option LOW-DOWN not given): no downscatter biasing
Notes:
1) This option can be useful only in very particular problems,
for instance to calculate the response of instruments
based on moderation (Bonner spheres, rem-counters).
Very powerful but also very dangerous, can lead to ERRORS
OF ORDERS OF MAGNITUDE if not used by experts.
U S E W I T H T H E M A X I M U M C A R E !!!!
E S P E C I A L L Y W I T H H Y D R O G E N A T E D
M A T E R I A L S !!!!
2) The groups are numbered in DECREASING energy order (see 10}
for a detailed description).
3) When this option is used, the natural probabilities of scatter
from group I to group J, P(I-->J), are altered by an importance
factor V(J). Selection of the outgoing group L is made from
a biased distribution function P(I-->J)*V(J) with an associated
weight correction.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-DOWN 38.0 1.1 0.0 4.0 25.0 0.0
* In all regions from 4 to 25, neutron downscattering is biased from
* group 38 to last. Assuming we are using the standard FLUKA library with
* 260 groups, that means all energies below 7.985162 MeV. In group 38, the
* downscattering relative importance is set equal to 1.1, in group 39 to
* 1.1**2 = 1.21, in group 40 to 1.1**3 = 1.331 etc.
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-DOWN 38.0 1.1 0.0 RegFour The25Reg 0.0
1********************************************************************************
{LOW-MAT}
Sets the correspondence between FLUKA materials and low-energy
neutron cross sections
See also LOW-NEUT
WHAT(1) = number or name of the FLUKA material, either taken from the list
of standard FLUKA materials (see 5}), or defined via
a MATERIAL option.
No default!
WHAT(2) = first numerical identifier of the corresponding
low-energy neutron material. Not used if = 0.0
WHAT(3) = second numerical identifier of the corresponding low-energy neutron
material. Not used if = 0.0
WHAT(4) = third numerical identifier of the corresponding low-energy neutron
material. Not used if = 0.0
WHAT(5) = Not used.
WHAT(6) = Not used.
SDUM = name of the low-energy neutron material.
Default: same name as the FLUKA material.
Default (option LOW-MAT not given): correspondence between FLUKA
and low-energy neutron materials is by name; in case of
ambiguity the first material in the relevant list (see 10})
is chosen.
Notes:
1) Each material in the FLUKA low-energy neutron library (see 10})
is identified by an alphanumeric name (a string of <= 8 characters,
all in upper case), and by three integer numbers. Correspondence with
FLUKA materials (pre-defined or user-defined) is based on any
combination of name and zero or more identifiers. In case of
ambiguity, the first material in the list fulfilling the
combination is selected.
2) Option LOW-MAT should be avoided if it is not really necessary
(experience has shown that it is often misinterpreted by beginner
users). The option is NOT REQUIRED if the following 3 conditions
are all true:
i) the low-energy neutron material desired is unique or is
listed before any other material with the same name in
list 10}
and
ii) that name is the same as one in the FLUKA list (see 5}) or as
given by a MATERIAL option
and
iii) there is only one FLUKA material associated with that
low-energy neutron material
3) On the other hand, the option IS REQUIRED in any one of the
following cases:
i) there is more than one low-energy neutron material with
that name (this can happen because of data sets coming
from different sources, or corresponding to different
neutron temperatures, or concerning different isotopes, or
weighted on different spectra, etc), and the one desired
is not coming first in the list. In this case it is
sufficient to provide just as many identifiers as required
to remove ambiguity
or
ii) The FLUKA name is different from the name of the
low-energy neutron material
or
iii) There is more than one FLUKA material associated with the
given low-energy neutron material. This can happen for
instance when the same material is present with different
densities in different regions. In reality this is a
special case of 2) above, since to distinguish between the
different densities, different names must be used and one
at least will not be equal to the name of the
low-energy neutron material.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 6. 0.0 2.000 6. 0.0 0. CARBON
MATERIAL 6. 0.0 1.700 15. 0.0 0. GRAPHITE
MATERIAL 6. 0.0 3.520 16. 0.0 0. DIAMOND
LOW-MAT 15.0 6. -3. 296. 0.0 0. CARBON
LOW-MAT 16.0 6. -2. 296. 0.0 0. CARBON
* We have three materials with the same atomic composition, but different
* density (amorphous carbon, graphite and diamond). Graphite is declared as
* having the cross section of Graphite bound natural Carbon, while diamond
* is declared as having the same low-energy neutron cross section as Free Gas
* Carbon.
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 6. 0.0 2.000 0.0 0.0 0. CARBON
MATERIAL 6. 0.0 1.700 0.0 0.0 0. GRAPHITE
MATERIAL 6. 0.0 3.520 0.0 0.0 0. DIAMOND
LOW-MAT GRAPHITE 6. -3. 296. 0.0 0. CARBON
LOW-MAT DIAMOND 6. -2. 296. 0.0 0. CARBON
1********************************************************************************
{LOW-NEUT}
Activates low-energy neutron transport (which in fact is already activated
by several DEFAULTS choices), dumps on request information concerning
groupwise treatment ingredients, and allows to activate generation of
secondary charged particles and correlated photon cascades, as well as
pointwise cross section treatment, both available only for special cases
See also LOW-BIAS, LOW-MAT
WHAT(1) = number of neutron groups in the cross section set used.
The FLUKA standard neutron library has 260 groups (see 10}).
Default = 260
WHAT(2) = number of gamma groups
No default if WHAT(1) is given, 42 otherwise. (The standard
FLUKA neutron library has 42 gamma groups).
WHAT(3) = maximum energy of the low-energy cross section neutron library.
For the standard FLUKA neutron library, the maximum energy is
0.020 GeV.
Default = 0.020 GeV.
WHAT(4) = printing flag: from 0.0 to 4.0 increases the amount of
output about cross sections, kerma factors, etc.
1.0 : Standard output includes integral cross sections,
kerma factors and probabilities
2.0 : In addition, downscattering matrices and group
neutron-to-gamma transfer probabilities are printed
3.0 : In addition, scattering probabilities and angles are
printed
4.0 : In addition, information on residual nuclei is printed
Default: 0.0 (minimum output)
WHAT(5) = number of neutron groups to be considered thermal ones. (The
standard FLUKA neutron library has 31 thermal groups).
= 0, ignored
< 0: resets to the default = 31.0
Default = 31.0
WHAT(6) = i0 + 10 * i1:
i0 > 0: available pointwise cross sections (1-H, 2-H, 3-He,
4-He, 6-Li, 12-C/Cnat) are used (see important
details in Note 5 below), explicit and correlated
secondary generation for 10-B(n,alpha)7-Li is activated,
as well as correlated photon cascade for
x-Xe(n,gamma)x+1-Xe and 113-Cd(n,gamma)114-Cd
= 1: lower thresholds for pointwise treatment set
at default values:
10^-5 eV for free gas materials
3.059023 eV (260 groups) for materials for
which S(a,b) treatment is available
(default for some DEFAULTS, PRECISIOn ...)
= 2: lower thresholds for pointwise treatment set at:
10^-5 eV for free gas materials
3.059023 eV (260 groups) for materials for
which S(a,b) treatment is available
= 3: lower thresholds for pointwise treatment set at:
3.059023 eV (260 groups) for all materials
= 4: lower thresholds for pointwise treatment set at:
10^-5 eV for all materials
= 0: ignored
=<-1: resets to the default (pointwise cross sections
are not used)
i1 = 1, fission neutron multiplicity forced to 1, with
proper weight
= 0, ignored
=<-1: resets to the default (normal fission multiplicity)
Default = -11., unless option DEFAULTS has been chosen with
SDUM = CALORIMEtry, DAMAGE, HADROTHErapy, ICARUS,
NEUTRONS or PRECISIOn, in which case the default is
1.0 (pointwise treatment - see Note 5 - and generation
of secondary charged particles and correlated photon
cascades are performed when available, and fission
multiplicity is not forced)
SDUM: Not used
Default (option LOW-NEUT not given): if option DEFAULTS is used with
SDUM = CALORIMEtry, DAMAGE, EET/TRANsmut, HADROTHErapy, ICARUS,
NEUTRONS, NEW-DEFAults, PRECISIOn or SHIELDINg, low-energy
neutrons are transported and a suitable cross section library must
be available.
In all other cases, low-energy neutrons are not transported, and
their energy is deposited as explained in Note 2).
Notes:
1) In FLUKA, transport of neutrons with energies lower than a certain
threshold is performed by a multigroup algorithm. For the neutron
cross section library currently used by FLUKA, this threshold is
0.020 GeV. The multigroup transport algorithm is described in Chap.
10}.
2) If low-energy neutrons are not transported (because of the chosen
DEFAULTS, or because so requested by the user, see Note 3), the
energy of neutrons below threshold (default or set by PART-THR) is
deposited on the spot.
This is true also for evaporation neutrons.
3) If there is no interest in low-energy neutron transport, but that
feature is implicit in the DEFAULTS option chosen, it is suggested
to request LOW-NEUT, and to use PART-THRes with an energy cutoff
WHAT(1) = 0.020. However, even in this case the availability of the
low-energy neutron cross sections for the materials defined in input
is checked. To avoid the run being stopped with an error message,
the user should issue a LOW-MAT command for each material for which
cross sections are missing, pointing them to any available material.
4) Gamma data are used only for gamma generation and not for transport
(transport is done via the FLUKA ElectroMagnetic module EMF using
continuous cross sections). The actual precise energy of a photon
generated by (n,gamma) or by inelastic reactions such as (n,n') is
sampled randomly within the gamma energy group concerned, except for
a few important reactions where a single monoenergetic photon is
emitted, as the 1-H(n,gamma)2-H reaction where the actual photon
energy of 2.226 MeV is used. It is possible to get (single or
correlated) physical gammas also for the capture in 6-Li, 10-B,
12-C, 40-Ar, x-Xe and 113-Cd, by setting WHAT(6) = 1.0-4.0 or
11.0-14.0 (see Note 5 for the additional requirements applying to
6-Li, 12-C, and 40-Ar).
5) Pointwise neutron transport, fully alternative to the groupwise
one, is available only for 1-H, 2-H, 3-He, 4-He, 6-Li, and
12-C/Cnat, by setting WHAT(6) = 1.0-4.0 or 11.0-14.0. In the case
of 2-H, and 6-Li, in order to get the pointwise treatment
it is mandatory to define the respective monoisotopic
material through a MATERIAL card and name them DEUT...,LITHIU-6
respectively (or with a character string containing LI-6 or 6-LI
for 6-Li).
In the case of 3-He, and 4-He, in order to get the pointwise
treatment it suffices to define the respective monoisotopic
material through a MATERIAL card and associate it to the low
energy material HELIUM-3, HELIUM-4, respectively.
For pointwise treatment for 1-H, if activated, it is sufficient to
name the material through a MATERIAL} card ...HYDR.... If
the material has natural composition, the (small) amount of 2-H
will be neglected. Of course one can define two monoisotopic
materials for 1-H and 2-H and mix them in the proper proportions
with a COMPOUND card.
Pointwise cross sections for 12-C are activated, if requested,
when the low energy neutron data set associated with the material
has name CARBO-12}, or CARBON..., for both 12-C and natural
Carbon. In the latter case the 13-C small abundance is neglected.
Pointwise treatment has been developed also for 40-Ar but with some
limitations making it not suitable for all applications. It requires
an additional cross section file to be requested to the authors. In
addition, as for 6-Li, one has to define the respective
monoisotopic material and call it ARGON-40 (or with a character
string containing AR-40 or 40-AR). The physical gammas from the
40-Ar(n,gamma)41-Ar capture reaction can be obtained only in the
context of the pointwise treatment.
6) Recoil protons are always transported explicitly, and so is the
proton from the 14-N(n,p) reaction.
7) The groups are numbered in DECREASING energy order (see 10}
for a detailed description).
The energy limits of the thermal neutron groups in the standard
FLUKA neutron library neutron library are reported in 10.4.1.1}
8) Here are the settings for transport of low-energy neutrons
corresponding to available DEFAULTS SDUM options:
CALORIMEtry, DAMAGE, HADROTHErapy, ICARUS, NEUTRONS, PRECISIOn:
low-energy neutrons are transported, with generation of
charged secondaries, correlated photon cascades and use of
pointwise cross sections when available
EET/TRANsmut, NEW-DEFAults (or DEFAULTS missing), SHIELDINg:
low-energy neutrons are transported using always
multigroup cross sections
Any other SDUM value of DEFAULTS: no low-energy neutron transport
9) If treatment of low energy neutrons is requested, one must make sure
that the transport threshold for neutrons (set with PART-THR) be
equal to the minimum energy needed for neutron transport (typically
1E-5 eV). Please note that the behaviour of the PART-THR option for
neutrons has changed with respect to past releases.
10) For a given neutron group and material (see example below), the residual
nuclei production probabilities printed in the output are normalized to
the non-elastic cross section (e.g. a 0.5 probability means that that
nucleus is produced on average every other non-elastic interaction).
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-NEUT 260.0 42.0 0.020 2.0 31.0 11.0
* The low-energy neutron library used is the (260n, 42gamma) standard
* multigroup library. The user requests a printout of cross sections, kerma
* factors, probabilities, downscattering matrices and n-->gamma transfer
* probabilities. Pointwise treatment and generation of secondary charged
* particles and correlated photon cascades will be performed where available
* (see WHAT(6) and Note 5 above), and only one neutron per low-energy fission
* will be emitted, with an adjusted weight.
1********************************************************************************
{LOW-PWXS}
Sets the correspondence between the Fluka and the pointwise low energy neutron
xsec materials
WHAT(1) = isomer code of the target (Z x 10000 + A x 10 + m) Z, A, m, are the
atomic, mass and isomer number of the isotope
no default, a value < 0 resets the association to null
If what(1) = 1.0, it is interpreted as to let FLUKA choose the
corresponding pointwise cross ection data sets for all
isotopes of the elements defined by what(4)-what(6)
WHAT(2) = if > 0 a uniform grid data set is looked for, 0 (default) means non
uniform grid data set, < 0 resets to default, actually 0 or < 0
behave the same. Warning: uniform grid data sets are not yet
supported in the production version
WHAT(3) = pointwise xsec temperature (def.=296, 0 is ignored, < 0 resets to
default), actually 0 or < 0 behave the same
WHAT(4) = from material "WHAT(4)" .... (def. 3)
WHAT(5) = .... to material "WHAT(5)" .... (def. WHAT(4))
WHAT(6) = .... in step of "WHAT(6)" (def. 1)
SDUM10 = extra character for the pointwise cross section file
(default=blank)
=1-H PWXS -> means the built-in 1-H pointwise cross
sections (no external file needed)
=2-H PWXS -> means the built-in 2-H pointwise cross
sections (no external file needed)
=3-HE PWXS -> means the built-in 3-He pointwise cross
sections (no external file needed)
=4-HE PWXS -> means the built-in 4-He pointwise cross
sections (no external file needed)
=12-C PWXS -> means the built-in 12-C pointwise cross
sections (no external file needed)
The file name looked for by Fluka in the directory
$FLUPRO/pwxs is composed as:
(-)(-uni)-.pwx
where -uni is present if WHAT(2) > 0
Default
Notes:
1) If pointwise cross sections are requested for a compound the
request is ignored. This card works only for elements, nevertheless
it will silently ignore possible compounds included in the list
defined by what(4)-what(6)
2) The list of available isotopes and temperatures, as well as of the
originating evluated data file can be easily obtained looking in
the $FLUPRO/pwxs directory
Examples:
31P at 296 K from Endf/b-8r0:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-PWXS 150310.0 296.0 P-31 P-31 endfb8r0
All isotopes for all materials at 296 K, leaving Fluka to decide which
evaluations to pick up for each of them:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-PWXS 1.0 3.0 @LASTMAT
1********************************************************************************
{MATERIAL}
Defines a single-element material or (coupled to a COMPOUND card) a compound
See also COMPOUND, LOW-MAT, MAT-PROP
WHAT(1) = atomic number (meaningful only when NOT coupled to a COMPOUND
card; otherwise set = 0.)
No default.
WHAT(2) = NOT to be filled.
It allows to overwrite the default value of atomic weight
(in g/mole).
Default: computed according to the natural composition of an
element with atomic number WHAT(1) or to the identity of its
isotope specified by WHAT(6).
Meaningless if coupled to a COMPOUND card.
WHAT(3) = density in g/cm**3. Note that if the density is lower than 0.01,
the material is considered to be a gas at atmospheric pressure
unless set otherwise by MAT-PROP
No default.
WHAT(4) = number (index) of the material
NOT to be filled in case of name-based input.
Default = NMAT + 1, where NMAT is the current higher number
of defined materials. The number sequence of the defined
materials must be uninterrupted. Its value is = 25 before
any MATERIAL card is given, and doesn't change if WHAT(4)
overrides a number which has already been assigned.
WHAT(5) > 2.0: alternate material number (or name, in name-based input)
for ionisation processes (this material will be used
instead of WHAT(1) for dE/dx etc.)
0 =< WHAT(5) =< 2: ignored
< 0.0: reset to default
Default: no alternate material
WHAT(6) = mass number of the material
Only integer values (still in real format) make sense.
Default = 0 i.e. natural isotopic composition of the WHAT(1)
element (but see Note 8).
For isotopic composition other than natural or single isotope,
see COMPOUND
SDUM = name of the material
No default.
Default (option MATERIAL not given): standard pre-defined
material numbers are used (see list in 5}).
Notes:
1) MATERIAL cards can be used in couple with COMPOUND cards in order
to define compounds, mixtures or isotopic compositions. See COMPOUND
for input instructions.
2) Material number 1 is always Black Hole (called also External Vacuum)
and it can not be redefined. (All particles vanish when they reach
the Black Hole, which has an infinite absorption cross section)
3) Material number 2 is always Vacuum (of zero absorption cross
section) and it can not be redefined.
4) In name-based inputs it is recommended to omit the number of the
material (and use its name in COMPOUND and ASSIGNMAt commands).
On the contrary, if the input is number-based, it is not recommended
to omit it.
5) In an explicitely number-based input (declared as such by
WHAT(4) = 4.0 in command GLOBAL) it is allowed to redefine a
material overriding a number already assigned (either by
default, see list 5}, or by a previous MATERIAL card), or by using a
new number.
If the number has not been assigned before, it must be the next
number available (26, 27... for successive MATERIAL cards).
In a number-based input, it is dangerous to leave empty gaps in the
number sequence, although the program takes care of redefining the
number: in fact, the incorrect number is likely to be still used in
other commands such as ASSIGNMAt and COMPOUND, leading to crashes or
to undetected errors.
If the input is name-based and the number is not given explicitely,
the program automatically assigns it and the number sequence is
automatically respected. The assigned number can be read from
standard output, but the user only needs to refer to that material
by its name in other input cards.
6) Materials having a different density at the macroscopic and at the
microscopic level (e.g. spongy matter or approximations for not
entirely empty vacuum) need a special treatment regarding stopping
power (density effect). In such cases, see MAT-PROP.
7) If low-energy neutron transport is desired, the material name
must coincide with that of one of the low-energy neutron
cross section materials in the Fluka library (see 10}), or a
correspondence must be set using option LOW-MAT.
8) If the card concerns an element that does not exist in nature,
setting WHAT(6) = 0.0 cannot provide the natural isotopic
composition. Therefore a single isotope will be selected (usually
the one with the longest half-life). To avoid confusion, it is
suggested to declare explicitly instead the isotope desired.
9) The largest atomic number that can be handled by FLUKA is 100.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1. 8.988E-5 0.0 1. HYDROGEN
LOW-MAT HYDROGEN 1. 11. 296. 0.0 0. HYDROGEN
MATERIAL 6. 2.265 0.0 0. CARBON
MATERIAL 6. 2.0 0.0 0. GRAPHITE
LOW-MAT CARBON 6. -3. 296. 0.0 0. GRAPHITE
MATERIAL 41. 8.57 0.0 0. NIOBIUM
MATERIAL 48. 8.650 0.0 0. CADMIUM
MATERIAL 24. 7.19 0.0 0. CHROMIUM
MATERIAL 27. 8.90 0.0 0. COBALT
* Several (name-based) cases are illustrated:
* Hydrogen, pre-defined as material 3, is re-defined as monoisotopic 1-H.
* Command LOW-MAT has been added to force this material to be mapped to
* CH2-bound 1-H for what concerns low energy neutron transport.
* Carbon, pre-defined as material 6.0, is re-defined with a different density,
* and is also redefined with a different name (GRAPHITE), mapped to
* graphite-bound carbon.
* Niobium, Cadmium, Chromium and Cobalt are added to the list.
1********************************************************************************
{MAT-PROP}
Provides extra information about materials
See also MATERIAL, STERNHEIme
This command can be used for several different tasks:
1) to supply extra information about gaseous materials and
materials with fictitious or effective density.
2) to override the default average ionisation potential.
3) to set a flag to call the user routine USRMED every time a particle is
going to be transported in the selected material(s)
4) to set the energy threshold for DPAs (Displacements Per Atom)
For SDUM whatever except DPA-ENER, USERDIREctive:
WHAT(1) = Gas pressure in atmospheres.
0.0 : ignored
< 0.0 : resets to 1 atm a possible previously input
pressure value
WHAT(2) = RHOR factor : this factor multiplies the density of the
material(s) when calculating the density effect parameters
(e.g. if a reduced density is used to simulate voids, but
of course the density effect parameters must be computed
with the actual local physical density at the microscopic
level). See Note 3) below.
= 0.0 : ignored
< 0.0 : a possible previously input value is restored to
default = 1.0
Default = 1.0
WHAT(3) > 0: average ionisation potential to be used for dE/dx
calculations (eV)
< 0: a default value of the average ionisation potential
is obtained from the systematics of Ziegler [Zie77]
or Sternheimer, Berger and Seltzer [Ste84]
= 0: ignored
Default: ionisation potential calculated from systematics
WHAT(4) = lower bound of the indices of materials, or corresponding
name, in which gas pressure, RHOR factor or ionisation
potential are set
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound of the indices of materials, or corresponding
name, in which gas pressure, RHOR factor or ionisation
potential are set
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.
Default (option MAT-PROP not given): if the density of the default
material or that assigned by a MATERIAL card is > 0.01, the
material is not assumed to be a gas. Otherwise it is a gas
at a default pressure of 1 atmosphere. If the material is a
compound, the average ionisation potential is that resulting
from applying Bragg's rule of additivity to stopping power.
For SDUM = DPA-ENER:
WHAT(1) > 0.0: Damage energy threshold (eV) for the given materials
(see Note 5)
= 0.0: ignored
< 0.0: resets to default
Default = 30 eV
WHAT(2) = Not used
WHAT(3) = Not used
WHAT(4) = lower bound of the indices of materials, or corresponding
name, in which the damage energy threshold has to be applied
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound of the indices of materials, or corresponding
name, in which the damage energy threshold has to be applied
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.
Default (option MAT-PROP not given): Damage energy threshold = 30 eV
for all materials
For SDUM = USERDIREctive
WHAT(1) = 0.0 : ignored
> 0.0 : a call to the user routine USRMED (see 13.2.28}) will be
performed at run time every time a particle is going to be
transported in the selected materials (spot depositions ARE
anyway performed: i.e., they cannot be killed by USRMED)
< 0.0 : a possible previously given value is restored to
default = no call
Default = no call (-1.0)
WHAT(2) = Not used
WHAT(3) = Not used
WHAT(4) = lower bound of the indices of materials for which the
call to USRMED has to be performed
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound of the indices of materials for which the
call to USRMED has to be performed
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.
Default (option MAT-PROP not given): no extra information about the
assigned materials is supplied.
Notes:
SDUM = blank (i.e. /= DPA-ENER, USERDIREctive):
1) When issuing a MATERIAL definition the gas pressure is set to
1 atm if the density RHO is < 0.01. If this value is not
acceptable to the user, a MAT-PROP card must be issued AFTER
the MATERIAL card to force a different value of the gas
pressure. Note that this is one of the rare cases (with GLOBAL,
DEFAULTS and PLOTGEOM) where sequential order of input cards is of
importance in FLUKA.
A non-zero value of WHAT(1) must be given only for gases: it
is important when calculating the density effect parameters
of the stopping power (see Note 1 to option STERNHEIme and Note 2
here below).
2) If WHAT(1) is set to a value > 0.0, the transport of charged
particles will be calculated according to a density RHO defined at
the actual pressure by the corresponding MATERIAL card, while the
density effect correction to stopping power will be calculated using
a density RHO(NTP) = RHO/WHAT(1) and then re-scaled to the actual
density RHO.
3) When giving a WHAT(2) non-zero value, remember that if RHO (defined
by a MATERIAL card) indicates the "transport (effective) density",
the "physical density" used to calculate the density effect on
stopping power will be RHOR*RHO = WHAT(2)*RHO
SDUM = DPA-ENER:
4) Displacement damage can be induced by all particles produced in a
cascade, including high energy photons. The latter, however, have to
initiate a reaction producing charged particles, neutrons or ions.
5) The damage threshold is the minimum energy needed to produce a
defect. Typical values used in the NJOY99 code [NJOY] are:
Li: 10 eV, C in SiC: 20 eV, Graphite: 30...35 eV, Al: 27 eV,
Si: 25 eV, Mn, Fe, Co, Ni, Cu, Nb: 40 eV, Mo: 60 eV, W: 90 eV,
Pb: 25 eV
6) In most problems, the expected DPA values are generally expressed by
very small numbers.
SDUM = USERDIREctive:
7) User routine USRMED is typically used to implement albedo and
refraction, especially in connection with optical photon
transport as defined by OPT-PROP. See 13} for instructions.
Example 1 (number based):
* Call USRMED every time a particle is going to be transported in Pb Glass or
* in plexiglas (PMMA)
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1. 0.0 8.3748E-5 3. 0.0 1. HYDROGEN
MATERIAL 6. 0.0 2.265 6. 0.0 0. CARBON
MATERIAL 8. 0.0 0.001429 8. 0.0 0. OXYGEN
MATERIAL 14. 0.0 2.33 14. 0.0 0. SILICON
MATERIAL 22. 0.0 4.54 11. 0.0 0. TITANIUM
MATERIAL 33. 0.0 5.73 12. 0.0 0. ARSENIC
MATERIAL 82. 0.0 11.35 17. 0.0 0. LEAD
MATERIAL 0. 0. 6.22 18. 0.0 0. LEADGLAS
COMPOUND -0.156453 8. -0.080866 14. -0.008092 11. LEADGLAS
COMPOUND -0.002651 12. -0.751938 17. 0.0 0. LEADGLAS
MATERIAL 0. 0. 1.19 15. 0.0 0. PMMA
COMPOUND -0.080538 3. -0.599848 6. -0.319614 8. PMMA
MAT-PROP 1.0 0.0 0.0 15. 18. 3. USERDIRE
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1. 0.0 8.3748E-5 0.0 0.0 1. HYDROGEN
MATERIAL 6. 0.0 2.265 0.0 0.0 0. CARBON
MATERIAL 8. 0.0 0.001429 0.0 0.0 0. OXYGEN
MATERIAL 14. 0.0 2.33 0.0 0.0 0. SILICON
MATERIAL 22. 0.0 4.54 0.0 0.0 0. TITANIUM
MATERIAL 33. 0.0 5.73 0.0 0.0 0. ARSENIC
MATERIAL 82. 0.0 11.35 0.0 0.0 0. LEAD
MATERIAL 0. 0. 6.22 0.0 0.0 0. LEADGLAS
COMPOUND -0.156453 OXYGEN -0.080866 SILICON -0.008092 TITANIUM LEADGLAS
COMPOUND -0.002651 ARSENIC -0.751938 LEAD 0.0 0. LEADGLAS
MATERIAL 0. 0. 1.19 0.0 0.0 0. PMMA
COMPOUND -0.080538 HYDROGEN -0.599848 CARBON -0.319614 OXYGEN PMMA
MAT-PROP 1.0 0.0 0.0 PMMA LEADGLAS 3. USERDIRE
Example 2 (number based):
* Lung tissue with ICRP composition and Sternheimer parameters
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1. 0.0 8.3748E-5 3. 0.0 1. HYDROGEN
MATERIAL 6. 0.0 2.265 6. 0.0 0. CARBON
MATERIAL 7. 0.0 0.0011653 7. 0.0 0. NITROGEN
MATERIAL 8. 0.0 0.001429 8. 0.0 0. OXYGEN
MATERIAL 12. 0.0 1.74 9. 0.0 0. MAGNESIU
MATERIAL 11. 0.0 0.971 10. 0.0 0. SODIUM
MATERIAL 26. 0.0 7.874 11. 0.0 0. IRON
MATERIAL 16. 0.0 2.0 12. 0.0 0. SULFUR
MATERIAL 17. 0.0 2.9947E-3 13 0.0 0. CHLORINE
MATERIAL 19. 0.0 0.862 14. 0.0 0. POTASSIU
MATERIAL 15. 0.0 2.2 16. 0.0 0. PHOSPHO
MATERIAL 30. 0.0 7.133 17. 0.0 0. ZINC
MATERIAL 20. 0.0 1.55 21. 0.0 0. CALCIUM
* Average density of lung is 0.3 g/cm3
MATERIAL 0.0 0.0 0.3 18. 0.0 0. LUNG
COMPOUND -0.101278 3. -0.10231 6. -0.02865 7. LUNG
COMPOUND -0.757072 8. -0.00184 10. -0.00073 9. LUNG
COMPOUND -0.0008 16. -0.00225 12. -0.00266 13. LUNG
COMPOUND -0.00194 14. -0.00009 21. -0.00037 11. LUNG
COMPOUND -0.00001 17. 0. 0. 0. 0. LUNG
* Local density of lung is 1.05 = 0.3*3.50 g/cm3. Average ionisation
* potential is 75.3 eV (At. Data Nucl. Data Tab. 30, 261 (1984))
MAT-PROP 0.0 3.50 75.3 18. 0. 0.
STERNHEI 3.4708 0.2261 2.8001 0.08588 3.5353 0. 18
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 1. 0.0 8.3748E-5 0.0 0.0 1. HYDROGEN
MATERIAL 6. 0.0 2.265 0.0 0.0 0. CARBON
MATERIAL 7. 0.0 0.0011653 0.0 0.0 0. NITROGEN
MATERIAL 8. 0.0 0.001429 0.0 0.0 0. OXYGEN
MATERIAL 12. 0.0 1.74 0.0 0.0 0. MAGNESIU
MATERIAL 11. 0.0 0.971 0.0 0.0 0. SODIUM
MATERIAL 26. 0.0 7.874 0.0 0.0 0. IRON
MATERIAL 16. 0.0 2.0 0.0 0.0 0. SULFUR
MATERIAL 17. 0.0 2.9947E-3 0.0 0.0 0. CHLORINE
MATERIAL 19. 0.0 0.862 0.0 0.0 0. POTASSIU
MATERIAL 15. 0.0 2.2 0.0 0.0 0. PHOSPHO
MATERIAL 30. 0.0 7.133 0.0 0.0 0. ZINC
MATERIAL 20. 0.0 1.55 0.0 0.0 0. CALCIUM
MATERIAL 0.0 0.0 0.3 0.0 0.0 0. LUNG
COMPOUND -0.101278 HYDROGEN -0.10231 CARBON -0.02865 NITROGEN LUNG
COMPOUND -0.757072 OXYGEN -0.00184 SODIUM -0.00073 MAGNESIU LUNG
COMPOUND -0.0008 PHOSPHO -0.00225 SULFUR -0.00266 CHLORINE LUNG
COMPOUND -0.00194 POTASSIU -0.00009 CALCIUM -0.00037 IRON LUNG
COMPOUND -0.00001 ZINC 0. 0. 0. 0. LUNG
MAT-PROP 0.0 3.50 75.3 LUNG 0. 0.
STERNHEI 3.4708 0.2261 2.8001 0.08588 3.5353 0. LUNG
Example 3 (number based):
* Definition of air at non-standard pressure.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 6. 0.0 2.265 6. 0.0 0. CARBON
MATERIAL 7. 0.0 0.0011653 7. 0.0 0. NITROGEN
MATERIAL 8. 0.0 0.001429 8. 0.0 0. OXYGEN
MATERIAL 18. 0.0 1.662E-3 20. 0.0 0. ARGON
* AIR defined as air with normal NTP density (0.001205)
MATERIAL 0.0 0.0 0.001205 10. 0.0 0. AIR
COMPOUND -0.000124 6. -0.755267 7. -0.231781 8. AIR
COMPOUND -0.012827 20. AIR
* AIR2 defined as air with a density 0.002410, double of that at NTP
MATERIAL 0.0 0.0 0.002410 11. 0.0 0. AIR2
COMPOUND -0.000124 6. -0.755267 7. -0.231781 8. AIR2
COMPOUND -0.012827 20. AIR2
* The pressure of AIR2 is 2 atm. Set also the ionisation potential = 85.7 eV
MAT-PROP 2.0 0.0 85.7 11.
STERNHEI 10.5961 1.7418 4.2759 0.10914 3.3994 0. 11
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MATERIAL 6. 0.0 2.265 0.0 0.0 0. CARBON
MATERIAL 7. 0.0 0.0011653 0.0 0.0 0. NITROGEN
MATERIAL 8. 0.0 0.001429 0.0 0.0 0. OXYGEN
MATERIAL 18. 0.0 1.662E-3 0.0 0.0 0. ARGON
MATERIAL 0.0 0.0 0.001205 0.0 0.0 0. AIR
COMPOUND -0.000124 CARBON -0.755267 NITROGEN -0.231781 OXYGEN AIR
COMPOUND -0.012827 ARGON AIR
MATERIAL 0.0 0.0 0.002410 0.0 0.0 0. AIR2
COMPOUND -0.000124 CARBON -0.755267 NITROGEN -0.231781 OXYGEN AIR2
COMPOUND -0.012827 ARGON AIR2
MAT-PROP 2.0 0.0 85.7 AIR2
STERNHEI 10.5961 1.7418 4.2759 0.10914 3.3994 0. AIR2
1********************************************************************************
{MCSTHRES}h
Defines some of the accuracy requirements for Multiple Coulomb Scattering
(MCS) of heavy charged particles (hadrons and muons).
See also MULSOPT
WHAT(1) >= 0.0 : detailed multiple Coulomb scattering for primary
charged hadrons and muons down to the minimum energy
allowed by Moli\`ere's theory
< 0.0 : detailed multiple Coulomb scattering for primary
charged hadrons and muons down to a kinetic energy
equal to |WHAT(1)| (GeV)
Default = 1.0 if DEFAULTS is present with SDUM = CALORIMEtry,
HADROTHErapy, ICARUS or PRECISIOn.
If SDUM = EET/TRANsmut, the default is = -0.01 (transport
of primaries with multiple Coulomb scattering down to
10 MeV).
With any other SDUM value, or if DEFAULTS is missing, the
default is = -0.02 (transport of primaries with multiple
Coulomb scattering down to 20 MeV).
WHAT(2) >= 0.0 : detailed multiple Coulomb scattering for secondary
charged hadrons and muons down to the minimum energy
allowed by Moli\`ere's theory
< 0.0 : detailed multiple Coulomb scattering for secondary
charged hadrons and muons down to a kinetic energy
equal to |WHAT(2)| (GeV)
Default = 1.0 if DEFAULTS is present with SDUM = CALORIMEtry,
HADROTHErapy, ICARUS or PRECISIOn.
If SDUM = EET/TRANsmut, NEW-DEFAults or SHIELDINg, the
default is = -0.02 (transport of secondaries with multiple
Coulomb scattering down to 20 MeV).
With any other SDUM value, or if DEFAULTS is missing, the
default is = -1.0 (transport of secondaries with multiple
Coulomb scattering down to 1 GeV).
WHAT(3), WHAT(4), WHAT(5), WHAT(6) : not used
SDUM : not used
Default (option MCSTHRES not given): the defaults depend on option DEFAULTS
as explained above and in Note 6.
Notes:
1) The MCSTHRES option is not used often, since option DEFAULTS
ensures the MCS parameter setting most appropriate for a wide range
of problems. In most cases, it is suggested to have multiple
Coulomb scattering fully activated for both primary and secondary
particles over the whole energy range. This corresponds to using
WHAT(1) >= 0.0 and WHAT(2) >= 0.0 (or at least WHAT(2) < 0.0 with
an absolute value much smaller than beam energy).
2) WHAT(1) < 0.0 with |WHAT(1)| not much smaller than primary energy
should generally be avoided. The reason is twofold:
a) tracking accuracy would be spoiled for no substantial
gain in speed
b) FLUKA tracking without MCS does not take into account
the variation of nuclear interaction cross section
with energy.
3) However, there are some cases where it can be useful to set
WHAT(1) and/or WHAT(2) to a negative number with absolute value
LARGER than beam energy. In this case no MCS is performed at all,
but tracking and maximum energy loss per step are controlled anyway
by the most sophisticated transport algorithm available (see
FLUKAFIX, STEPSIZE).
Complete suppression of multiple scattering can be useful in
some particular cases, for instance when replacing a gas of
extremely low density by a gas of the same composition but of
much larger density in order to increase the frequency of
inelastic interactions (of course, the results must then be
scaled by the density ratio). In such a case, one should also
select the biased density so that no re-interaction of
secondaries can take place. An alternative way to switch off
completely multiple Coulomb scattering of hadrons and muons
is to use MULSOPT with WHAT(2) >= 3.0 (MULSOPT, however, can
deal also with electrons and positrons, while MCSTHRES can't;
on the other hand, MULSOPT does not allow to distinguish between
primary and secondary particles).
4) In order to get the most accurate treatment of Multiple
Coulomb Scattering, a step optimisation and higher order
corrections can be requested by option MULSOPT (but with
an important increase in CPU time).
5) In pure electromagnetic or low-energy neutron problems,
MCSTHRES does not need to be given and has no effect.
6) Here are the MCS settings corresponding to available DEFAULTS
SDUM options:
CALORIMEtry, HADROTHErapy, ICARUS, PRECISIOn: Multiple scattering
threshold at minimum allowed energy both for primary and
secondary charged particles
EET/TRANsmutation: MCS threshold = 10 MeV for primaries and
20 MeV for secondaries
NEW-DEFAults, SHIELDINg: 20 MeV threshold for both primaries and
secondaries
Any other SDUM value, or DEFAULTS missing: 20 MeV for primaries
and 1 GeV for secondaries
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
BEAM 120.0 0.0 0.0 0.0 0.0 1.0 PION+
MCSTHRES 1.0 -0.01 0.0 0.0 0.0 0.0
* In this example, the primary beam consists of 120 GeV/c pi+
* mesons which are transported by simulating accurately multiple
* Coulomb scattering at all energies. For the secondary hadrons
* generated, MCS is performed instead only until they reach 10 MeV.
1********************************************************************************
{MGNFIELD}
sets the tracking conditions for transport in magnetic fields and
also may define an homogeneous magnetic field.
See also ASSIGNMAt, STEPSIZE
WHAT(1) = largest angle in degrees that a charged particle is
allowed to travel in a single step
Default = 57 deg (but a maximum of 30 deg is recommended!)
WHAT(2) = upper limit to the error of the boundary iteration in cm
(minimum accuracy accepted in determining a boundary
intersection). It also sets the minimum radius of curvature
for stepping according to WHAT(1)
Default = 0.05 cm
WHAT(3) = minimum step length if the step is forced to be smaller
because the angle is larger than WHAT(1).
Default = 0.1 cm
WHAT(4..6) = Bx, By, Bz components of magnetic field on the
coordinate axes (in tesla).
Default (Bx = By = Bz = 0.0): user-supplied subroutine
MAGFLD is assumed to provide the actual values (see Notes
2 and 3 below)
SDUM = RUNGKUTT the 4th order Runge-Kutta-Gill algorithm is
used for dis-homogeneous magnetic fields in vacuum
instead of the standard, arc-like, algorithm
Default = no SDUM
Default (option MGNFIELD not given): the defaults indicated for
WHAT(1-6) apply if a magnetic field exists in the current
region because of an ASSIGNMA command.
Notes:
1) If Bx = By = Bz = 0, the user-written subroutine MAGFLD is
called at each step to get the direction cosines and the
module (in tesla) of the magnetic field as a function of
region or of coordinates. A sample subroutine is provided
with the FLUKA code; instructions on how to write
user-supplied routines can be found in 13}.
2) Note that the argument list of subroutine MAGFLD is
( X, Y, Z, T, BTX, BTY, BTZ, B, NREG, IDISC )
where BTX, BTY, BTZ are the DIRECTION COSINES of the magnetic
field at point X, Y, Z, at time T (NOT the components of the
field! The field magnitude is given by B). For this reason, it
is imperative that MAGFLD returns normalised values of BTX,
BTY and BTZ such that the sum of their squares is = 1.0
IN DOUBLE PRECISION.
Three zero values are not accepted: if the field is zero
at the point in question, you must return for instance 0, 0, 1
and B = 0. On the contrary, note that Bx, By, Bz in the
MGNFIELD option, given by WHAT(4)...WHAT(6) as described
above, are the field components and not the cosines.
3) Magnetic field tracking is performed only in regions defined
as magnetic field regions by command ASSIGNMAt. It is
strongly recommended to define as such only regions where a
magnetic field effectively exists, due to the less efficient
and accurate tracking algorithm used in magnetic fields.
To define a region as having a magnetic field and to return
systematically B = 0 in that region via subroutine MAGFLD, is
not allowed.
4) The maximum error on the boundary iteration, WHAT(2), must be
compatible with the minimum linear dimension of any region.
5) It is recommended to activate also option STEPSIZE inside and
close to regions where a magnetic field is present. That option
can be used to set a minimum and a maximum step size (in cm)
for every region.
6) In case of conflict, WHAT(3) overrides the step size requested
by option STEPSIZE. Therefore, it is suggested to set it not
larger than the latter. The purpose of this constraint is to
avoid tracking in detail low-energy particles along a helix of
very small radius, by forcing several tours into a single step
(all the energy will be deposited at the same point).
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ASSIGNMAT 2.0 15.0 30.0 5.0 1.0 0.0
* A magnetic field is present in vacuum regions 15, 20, 25 and 30.
MGNFIELD 20.0 0.2 0.10 0.0 0.0 0.0
STEPSIZE -0.05 0.0 20.0 25.0 0.0 0.0
STEPSIZE 0.3 0.0 15.0 0.0 0.0 0.0
* The maximum deviation angle due to magnetic field in any step is set
* = 20 degrees, and boundary crossings must be identified with an error
* not larger than 2 mm. If the max. angle constraint forces the step to
* be shorter than 10 cm, the step will be set = 10 cm in region 20, 25, 30,
* but will be set = 3 mm in region 15 (WHAT(1) of STEPSIZE overrides the
* general setting due to WHAT(3) of MGNFIELD). Whatever the size of the
* step, however, the accuracy of the boundary crossing position must be
* equal or better than 0.5 mm in regions 20 and 25 (probably contiguous,
* since the same accuracy must be set for regions on either side of a
* boundary). The value of the magnetic field will be provided at each
* step by the user routine MAGFLD.
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ASSIGNMAT VACUUM Reg15th Reg30th 5.0 1.0 0.0
MGNFIELD 20.0 0.2 0.10 0.0 0.0 0.0
STEPSIZE -0.05 0.0 Reg20th Reg25th 0.0 0.0
STEPSIZE 0.3 0.0 Reg15th 0.0 0.0 0.0
1********************************************************************************
{MULSOPT}
Sets the tracking conditions for multiple Coulomb scattering (MCS), for both
hadrons/muons and e+/e- particles. Can also be used to activate single scattering.
See also EMFFIX, FLUKAFIX, MCSTHRES, STEPSIZE
For SDUM = anything except GLOBAL/GLOBEMF/GLOBHAD:
WHAT(1) : controls the step optimisation for multiple Coulomb scattering
(see Note 1) and the number of (possible) single scatterings on a
material by material basis
<= -1.0 : a possible previous request of optimisation is cancelled
and the number of single scatterings in the materials
indicated by WHAT(4)-WHAT(6) is reset to the default value
(i.e. 0, or the global default possibly set previously by
the MULSOPT option with SDUM = GLOBAL/GLOBHAD/GLOBEMF)
= 0.0 : ignored
= I0 + I1*10 + I2*100000
(with 0=< I0 =<1, 0=< I1 <10000, 0 =< I2 < 10000):
I0 >= 1 : the optimisation is activated
I1 - 1 = number of single scattering steps for hadrons and
muons in the materials indicated by WHAT(4) to
WHAT(6)
I1 = 0 : ignored
I2 - 1 = number of single scattering steps for electrons and
positrons in the materials indicated by
WHAT(4)-WHAT(6)
I2 = 0 : ignored
Default: -1.0 (no multiple scattering optimisation and no single
scattering)
WHAT(2) :
|WHAT(2)| = 1.0: spin-relativistic corrections are activated for hadrons
and muons at the 1st Born approximation level
|WHAT(2)| = 2.0: spin-relativistic corrections are activated for hadrons
and muons at the 2nd Born approximation level
WHAT(2) < 0.0: nuclear finite size effects (form factors) are activated (see Note 2)
= -3.0: nuclear finite size effects are
considered but not the spin-relativistic effects
WHAT(2) >= 3.0: multiple scattering for hadrons and muons is
completely suppressed (see Note 3)
Default: 0.0 (no corrections)
WHAT(3) :
|WHAT(3)| = 1.0: spin-relativistic corrections are activated for e+ and e-
at the 1st Born approximation level
|WHAT(3)| = 2.0: spin-relativistic corrections are activated for e+ and e-
at the 2nd Born approximation level
WHAT(3) < 0.0: nuclear finite size effects are activated
WHAT(3) >= 3.0: multiple scattering for e+ and e- is completely suppressed
(see Note 3)
Default: 0.0 (no corrections)
WHAT(4) = lower bound of the indices of the materials, or corresponding
name, in which the corrections are activated
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound of the indices of the materials, or corresponding
name, in which the corrections are activated
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default: 1.0
SDUM = FANO-ON : Fano correction for inelastic interactions of charged
hadrons and muons on atomic electrons switched on
FANO-OFF: Fano correction for inelastic interactions of charged
hadrons and muons on atomic electrons is switched off
MLSH-ON : Original Moli\`ere screening angle on for hadrons and
muons
MLSH-OFF: Moli\`ere screening angle for hadrons and muons as
modified by Berger & Seltzer for electrons and
positrons (not recommended)
Default: Fano correction on, original Moli\`ere screening angle
for hadrons on
Default (option MULSOPT not given): no MCS optimisation
For SDUM=GLOBAL/GLOBEMF/GLOBHAD: (GLOBEMF restricts the input value to
the EM part, GLOBHAD to charged hadrons and muons)
WHAT(1) : controls the minimum MCS step size used by the boundary approach
algorithm for electrons/positrons and charged heavy
particles
0.2 > WHAT(1) >= 0.0 : ignored
WHAT(1) >= 0.2 : the minimum step size is set equal to the size
corresponding to B=5 in Moli\`ere theory, multiplied by
WHAT(1)
< 0.0 : the minimum step is reset to default
Default: WHAT(1) = 1 (maximum accuracy)
WHAT(2) : index of step stretching factor tabulation to be used by the
electron/positron transport algorithm when approaching a
boundary.
ONLY FOR EXPERTS! NOT FOR THE NORMAL USER
The values of the index implemented for the moment are 1,2,3,4.
Values 11,12,13,14 cause the sensing algorithm to multiply
the range/mcs step rather than the current step.
Values 101,111,102,112,103,113,104,114 have the additional
effect of making the algorithm resample as unphysical any
step cut at a boundary and "reflected" from the boundary.
= 0.0 : ignored
< 0.0 : the tabulation index is reset to default
Default: WHAT(2) = 1 (maximum accuracy)
WHAT(3) : controls the optimal step to be used by the optimisation option
(and to some extent by the hadron/muon boundary approach
algorithm).
ONLY FOR EXPERTS! NOT FOR THE NORMAL USER
0.2 > WHAT(3) >= 0.0 : ignored
WHAT(3) >= 0.2 : the minimum step size is set equal to the size
corresponding to B = 5 in Moli\`ere theory [Mol47,Mol48,
Mol55,Bet53], multiplied by WHAT(3)
< 0.0 : the minimum step is reset to its default value
Default: minimum step equal to that corresponding to B=5,
multiplied by 20
WHAT(4) > 0: single scattering option activated at boundaries or for too
short steps
< 0: resets to default
= 0: ignored
Default: single scattering not activated
WHAT(5): (meaningful only if single scattering is activated at
boundaries and when step is too short: see WHAT(4) above)
> 0: single scattering option activated for energies too small for
Moli\`ere theory to apply
< 0: not activated
= 0: ignored
Default: not activated
WHAT(6): (meaningful only if single scattering is activated at boundaries
and when the step is too short: see WHAT(4) above)
> 0: number of single scatterings to be performed when crossing a
boundary. To replace multiple scattering with single
scattering everywhere, see Note 5.
= 0: ignored
< 0: resets the default
Default: 1
Notes:
1) When optimisation is requested, the program always makes the minimum
step for which the Moli\`ere theory of multiple scattering is
applicable. Optimisation via MULSOPT is available only for charged
hadrons and muons. For electrons and positrons, option EMFFIX is
recommended.
2) The correction for the nuclear finite size has been implemented
using simple Thomas-Fermi form factors according to Tsai [Tsa74].
The user can provide more sophisticated values by supplying a
function FORMFU which must return the square of the nuclear form
factor. (See details in 13}).
3) Complete suppression of multiple scattering can be useful in some
particular cases, for instance when replacing a gas of extremely low
density by a gas of the same composition but of much larger density
in order to increase the frequency of inelastic interactions or
bremsstrahlung reactions (of course, the results must then be scaled
by the density ratio). In such a case, one should also select the
biased density so that no re-interaction of secondaries can take
place.
4) Runs for which the nuclear form factor is taken into account
and/or the 2nd Born approximation is requested are very
CPU-time consuming at low energy (but not at high energy).
5) Setting WHAT(6) > 1000.0 with SDUM = GLOBAL, GLOBHAD or GLOBEMF,
replaces systematically multiple scattering with single scattering
everywhere. This choice is generally extremely demanding in CPU
time, except for particles of very low energy (a few keV), which
have a very short history anyway. In such cases, the single
scattering option is even recommended ([Fas01]).
Example 1 (number based):
* Activate spin-relativistic corrections and nuclear finite size effects
* for heavy charged particles in the first Born approximation.
* Activate spin-relativistic corrections but not nuclear size effects
* for electrons and positrons in materials 5, 10 and 15
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MULSOPT 1.0 -1.0 2.0 5.0 15.0 5.0
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MULSOPT 1.0 -1.0 2.0 BERYLLIU GOLD 5.0
Example 2:
* Maximum accuracy requested for the electron step size used in the boundary
* approach and in the optimisation algorithm. Single scattering activated for
* electrons at boundary crossing and when the step is too short for Moliere
* (but not when the energy is too low for Moliere). Boundaries will be
* crossed with 2 single scatterings.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MULSOPT 1.0 1.0 1.0 1.0 0.0 2. GLOBEMF
Example 3:
* Single scattering activated everywhere for all charged particles
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
MULSOPT 0.0 0.0 0.0 1.0 1.0 99999999.GLOBAL
1********************************************************************************
{MUPHOTON}
controls muon photonuclear interactions
See also PAIRBREM, PHOTONUC
WHAT(1) : flag to switch on photonuclear interactions:
= -1.0 : no muon photonuclear interaction
= 0.0 : ignored
= 1.0 : photonuclear interactions on and secondary hadrons produced
= 2.0 : photonuclear interactions on but no secondary hadrons produced
Default = 1.0 if no DEFAULTS card is present, or if it is
present with SDUM = CALORIMEtry, NEW-DEFAults,
ICARUS or PRECISIOn.
= -1.0 otherwise
WHAT(2)-WHAT(3) : reserved for code development
WHAT(4) = lower bound of the indices of the materials, or corresponding
name, in which muon nuclear interactions must be simulated
("From material WHAT(4)...").
Default = 3.0.
WHAT(5) = upper bound of the indices of the materials, or corresponding
name, in which muon nuclear interactions must be simulated
("...to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices. ("...in steps of
WHAT(6)").
Default = 1.0
Notes:
1) Other high-energy interactions of muons with nuclei (pair
production, bremsstrahlung) are controlled by option
PAIRBREM, which applies also to charged hadrons.
2) Use of WHAT(1) = 2.0 (interaction without transport of the
secondaries) gives the correct muon straggling but
simulates only in an approximate way the energy deposition
distribution. A similar approach is found in A. Van
Ginneken's codes CASIM and MUSIM [Van75,Van86].
Example (number based):
* Explicit pair production and bremsstrahlung requested for heavy charged
* particles in materials 12 and 13, provided the energy of the secondary
* electrons and positrons is > 500 keV. No threshold is requested for photon
* production. For muons, explicit nuclear interactions are also requested.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PAIRBREM 3.0 0.0 0.0005 12.0 13.0
MUPHOTON 1.0 0.0 0.0 12.0 13.0
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PAIRBREM 3.0 0.0 0.0005 COPPER SILVER
MUPHOTON 1.0 0.0 0.0 COPPER SILVER
1********************************************************************************
{OPEN}
defines input/output files to be connected at run-time
WHAT(1) > 0. : logical unit number of a FORMATTED file to be opened
< 0. : logical unit number of an UNFORMATTED file to be
opened
Default : no default (WHAT(1) must not be = 0.)
WHAT(2-6) : not used
SDUM = NEW : the file is opened with status 'NEW'
= OLD : the file is opened with status 'OLD'
= UNKNOWN : the file is opened with status 'UNKNOWN'
= SCRATCH : the file is opened with status 'SCRATCH'
Default: SDUM = OLD if |WHAT(1)| = 9, 12, 13, 14
= NEW otherwise
If SDUM is not = SCRATCH, the name of the file to be opened must be
given in the card which immediately follows.
Default (option OPEN not given): no file is opened at run time.
On UNIX and Linux, the rfluka script provided with the FLUKA code
creates the necessary symbolic links.
Notes:
1) The input/output files used by FLUKA are of several kinds:
* Standard input (logical unit 5) and standard output (logical
unit 11) must be redirected via < and > (on UNIX and Linux), or
pre-connected via FILEDEF, ASSIGN, etc. on other systems.
* cross section unformatted data files (logical unit numbers 9, 13
and 14) can be opened with the OPEN option (SDUM = OLD or
READONLY), or can be pre-connected (on most UNIX systems,
preconnection is obtained by means of symbolic links).
If OPEN is used, the full file name must be given in the card
which follows.
* Scratch files (unit 8 for EMF auxiliary output and unit 16
for Combinatorial Geometry working space) can also be OPENed
(with SDUM = SCRATCH) or pre-connected (not on UNIX).
No file name card must be given for scratch files.
* The "next seeds" file from the random number generator (logical
unit number 2) can be opened by any of the three ways described
above (i.e. by OPEN, by pre-connection or automatically) on any
of the supported systems.
* Error message file (logical unit number 15) and estimator output
files (created by scoring options such as USRBIN, USRBDX, DETECT
etc.):
- On UNIX systems, they can either be opened by the user
(with option OPEN, SDUM = NEW or UNKNOWN and file name given
on the next card) or automatically by the program with a
default name of the form fort.xxx or ftn.xxx, where xxx is the
logical unit number.
* Files created by user-written code: all the three possibilities
are available. Of course, a Fortran statement OPEN can also be
used in this case.
2) It is possible to pre-connect some of the files and to OPEN others.
Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
* opening the file with the random number seeds for the next run
OPEN 2. NEW
newseed.random
* the working space for Combinatorial Geometry
OPEN 16. SCRATCH
1********************************************************************************
{OPT-PROD}
requests and controls production of Cherenkov, Transition and Scintillation
Radiation in specified materials
See also OPT-PROP, Chap. 12}.
For SDUM = CERE-OFF: switches off Cherenkov production
WHAT(1-3): not used
WHAT(4-6): assignment to materials, see below
SDUM = CERE-OFF
For SDUM = TRD-OFF: switches off Transition Radiation production
WHAT(1-3): not used
WHAT(4-6): assignment to materials, see below
SDUM = TRD-OFF
For SDUM = SCIN-OFF: switches off Scintillation light production
WHAT(1-3): not used
WHAT(4-6): assignment to materials, see below
SDUM = SCIN-OFF
For SDUM = CERENKOV: switches on Cherenkov production and defines photon
energy range
WHAT(1) = minimum Cherenkov photon emission energy in GeV
Default: 2.07E-9 GeV (2.07 eV, corresponding to 600 nm)
WHAT(2) = maximum Cherenkov photon emission energy in GeV
Default: 4.96E-9 GeV (4.96 eV, corresponding to 250 nm)
WHAT(3) : not used
WHAT(4-6): assignment to materials, see below
SDUM = CERENKOV
For SDUM = CEREN-WV: switches on Cherenkov production and defines photon
wavelength range
WHAT(1) = minimum Cherenkov photon emission wavelength in cm
Default: 2.50E-5 cm (250 nm, or 1.2E6 GHz)
WHAT(2) = maximum Cherenkov photon emission wavelength in cm
Default: 6.00E-5 cm (600 nm, or 5.E5 GHz)
WHAT(3) : not used
WHAT(4-6): assignment to materials, see below
SDUM = CEREN-WV
For SDUM = CEREN-OM: switches on Cherenkov production and defines photon
angular frequency range
WHAT(1) = minimum Cherenkov photon angular frequency omega
= 2 x pi x frequency (in rad/s)
Default: 3.14E15 rad/s (corresponding to 600 nm)
WHAT(2) = maximum Cherenkov photon angular frequency omega
= 2 x pi x frequency (in rad/s)
Default: 7.53E15 rad/s (corresponding to 250 nm)
WHAT(3) : not used
WHAT(4-6): assignment to materials, see below
SDUM = CEREN-OM
For SDUM = SCINTILL: switches on Scintillation Light production and
defines photon energy
WHAT(1) = i-th scintillation photon emission energy in GeV (i_max =3,
see Note 4)
WHAT(2) > 0: fraction of energy loss going into i-th scintillation
photon emission.
=< -100: forces to use a user routine (see SPHSPC, USFSCI)
>= -99.0 and =< 0.0: ignored
WHAT(3) : time constant of scintillation light in seconds
WHAT(4-6): assignment to materials, see below
SDUM = SCINTILL
For SDUM = SCINT-WV: switches on Scintillation Light production and
defines photon wavelength
WHAT(1) = i-th scintillation photon emission wavelength in cm (i_max =3,
see Note 4)
Default: 2.50E-5 cm (250 nm, or 1.2E6 GHz)
WHAT(2) > 0: fraction of energy loss going into i-th scintillation
photon emission
=< -100: forces to use a user routine (see SPHSPC, USFSCI)
>= -99.0 and =< 0.0: ignored
WHAT(3) : time constant of scintillation light in seconds
WHAT(4-6): assignment to materials, see below
SDUM = SCINT-WV
For SDUM = SCINT-OM: switches on Scintillation Light production and
defines photon angular frequency range
WHAT(1) = i-th scintillation photon emission angular frequency omega =
2 x pi x frequency (in rad/s), (i_max =3, see Note 4)
Default: 3.14E15 rad/s (corresponding to 600 nm)
WHAT(2) > 0: fraction of energy loss going into i-th scintillation
photon emission
=< -100: forces to use a user routine (see SPHSPC, USFSCI)
>= -99.0 and =< 0.0: ignored
WHAT(3) : time constant of scintillation light in seconds
WHAT(4-6): assignment to materials, see below
SDUM = SCINT-OM
For all previous SDUM's:
WHAT(4) = lower bound of the indices of materials in which the indicated
Cherenkov, Scintillation or TRD photon emission range is defined
From material WHAT(4)...
Default = 3
WHAT(5) = upper bound of the indices of materials in which the indicated
Cherenkov or TRD photon emission range is defined
...To material WHAT(5)...
Default = WHAT(4)
WHAT(6) = step length in assigning indices
...in step of WHAT(6)
Default = 1
Default: (option OPT-PROD not given): no Cherenkov, scintillation or TRD
photon production
Notes:
1) Optical photons such as those produced by Cherenkov effect
are distinguished by their FLUKA name (OPTIPHOT) and by
their FLUKA id number (-1), as shown in 5}.
2) To transport optical photons, it is necessary to define
the optical properties of the relevant materials by
means of option OPT-PROP. Users can also write their own
routines USRMED (which is called at every step and at
boundary crossings when activated with MAT-PROP) and FRGHNS
(which defines surface roughness).
3) The energy/wavelength/frequency range as defined
by OPT-PROD for Cherenkov photon production is not
necessarily the same as that defined for transport by means
of OPT-PROP. The default values, however, are the same.
4) In case of scintillation light, only monochromatic photons are
considered for the moment, with a maximum of 3 different lines. The
lines can be defined repeating i times the OPT-PROD card with
SDUM = SCINTILL. The energy lost by ionizing particles is partially
spent to produce optical photons, according to the fraction entered
in what(2). The sum of what(2) for all OPT-PROD cards in a
given material must be <1 (usually much less).
Example:
* Request production of Cherenkov photons with energies between 2 and 3 eV in
* materials 16, 17, 19 and 20, with wavelengths between 300 and 600 nm in
* materials 18, 20 and 22, and with frequencies between 0.5 and 1 million GHz
* in material 21
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
OPT-PROD 2.E-9 3.E-9 0.0 16.0 17.0 0. CERENKOV
OPT-PROD 2.E-9 3.E-9 0.0 19.0 20.0 0. CERENKOV
OPT-PROD 3.E-5 6.E-5 0.0 18.0 22.0 2. CEREN-WV
OPT-PROD 3.14E15 6.28E15 0.0 21.0 0.0 0. CEREN-OM
* Optical photon transport requested between 300 and 500 nm for all materials
* with number between 16 and 21
OPT-PROP 3.E-5 5.E-5 6.E-5 16.0 22.0 0. WV-LIMIT
* User routine USRMED called when an optical photon is going to be transported
* in materials 17 and 21
MAT-PROP 1.0 0.0 0.0 17. 21. 4. USERDIRE
1********************************************************************************
{OPT-PROP}
defines optical properties of specified materials
See also OPT-PROD, Chap. 12}.
For SDUM = WV-LIMIT: defines wavelength range for optical photon transport
WHAT(1) > 0.0: minimum wavelength (in cm) for optical photon transport
= 0.0: ignored
< 0.0: resets to default
Default: 2.50E-5 (250 nm)
WHAT(2) > 0.0: central wavelength (in cm) for optical photon transport
= 0.0: ignored
< 0.0: resets to default
Default: 5.89E-5 ((589 nm, Na D line)
WHAT(3) > 0.0: maximum wavelength (in cm) for optical photon transport
= 0.0: ignored
< 0.0: resets to default
Default: 6.00E-5 (600 nm)
WHAT(4-6): assignment to materials, see below
SDUM = WV-LIMIT
For SDUM = OM-LIMIT: defines angular frequency range for optical photon transport
WHAT(1) > 0.0: minimum angular frequency for optical photon transport
omega = 2pi x frequency (in rad/s)
= 0.0: ignored
< 0.0: resets to default
Default: 3.14E15 rad/s (corresponding to 600 nm)
WHAT(2) > 0.0: central angular frequency for optical photon transport
omega = 2pi x frequency (in rad/s)
= 0.0: ignored
< 0.0: resets to default
Default: 3.20E15 rad/s (corresponding to 589 nm, Na D line)
WHAT(3) > 0.0: maximum angular frequency for optical photon transport
omega = 2pi x frequency (in rad/s)
= 0.0: ignored
< 0.0: resets to default
Default: 7.53E15 rad/s (corresponding to 250 nm)
WHAT(4-6): assignment to materials, see below
SDUM = OM-LIMIT
For SDUM = RESET: all optical properties are zeroed
WHAT(1-3) = no meaning
WHAT(4-6): assignment to materials, see below
SDUM = RESET
For SDUM = METAL: flag the material as a metal
WHAT(1) = 1st optical property (not used at the moment)
WHAT(2) = 2nd optical property (not used at the moment)
WHAT(3) = 3rd optical property: (1-r), where r is the reflectivity
index at the central wavelength (or at the central angular
frequency, depending on which one of the two quantities has been
defined). See also Note 2
Default = 0.0
WHAT(4-6): assignment to materials, see below
SDUM = METAL
For SDUM = blank:
WHAT(1) = 1st optical property: refraction index at the central
wavelength (or at the central angular frequency, depending
on which one of the two quantities has been defined)
< -99: forces to use user routine RFRNDX (see Note 1)
Default = 1.0
WHAT(2) = 2nd optical property: absorption coefficient (cm^-1) at
the central wavelength (or at the central angular
frequency, depending on which one of the two quantities has
been defined)
< -99: forces to use user routine ABSCFF (see Note 1)
Default = 0.0
WHAT(3) = 3rd optical property: diffusion coefficient (cm^-1) at
the central wavelength (or at the central angular
frequency, depending on which one of the two quantities has
been defined)
< -99: forces to use user routine DFFCFF (see Note 1)
Default = 0.0
WHAT(4-6): assignment to materials, see below
SDUM = blank
For SDUM containing &1 (resp. &2) (resp. &3):
WHAT(1) = 4th (resp. 7th) (resp. 10th) optical property of the material
(derivatives of the refraction index, see Note 2 below)
Default = 0.0
WHAT(2) = 5th (resp. 8th) (resp. 11th) optical property of the material
(derivatives of the absorption coefficient, see Note 2 below)
Default = 0.0
WHAT(3) = 6th (resp. 9th) (resp. 12th) optical property of the material
(derivatives of the diffusion coefficient, see Note 2 below)
Default = 0.0
WHAT(4-6): assignment to materials, see below
SDUM = &1, &2 or &3
For all previous SDUM's:
WHAT(4) = lower bound of the indices of materials to which the indicated
optical properties refer
From material WHAT(4)...
Default = 3
WHAT(5) = upper bound of the indices of materials to which the indicated
optical properties refer
...To material WHAT(5)...
Default = WHAT(4)
WHAT(6) = ... in step of WHAT(6)
Default = 1
For SDUM = SENSITIV: sets up the optical photon detection sensitivity parameters
(See also SDUM = WV-SENSI, SDUM = OM-SENSI, Note 3 below and the examples in
Chap. 12})
WHAT(1) = 0th photon sensitivity parameter
< -99: forces to use user routine QUEFFC (see Note 1)
WHAT(2) = 1st optical property (not used at the moment)
WHAT(3) = 2nd optical property (not used at the moment)
WHAT(4) = 3rd optical property: (1-r), where r is the reflectivity
index at the central wavelength (or at the central angular
frequency, depending on which one of the two quantities has been
defined). See also Note 2
Default = 0.0
WHAT(5) = maximum optical photon sensitivity over the allowed range (must be
consistent with the previous values). It can be overestimated.
Default = 1.0
WHAT(6) : not used
SDUM = SENSITIV
For SDUM = WV-SENSI: setup the wavelength of the optical photon sensitivity
(See also SDUM = SENSITIV, SDUM = OM-SENSI and Note 3 below)
WHAT(1) > 0.0: minimum wavelength (in cm) for optical photon sensitivity
= 0.0: ignored
< 0.0: resets to default
Default = 2.5 x 1.0E-5 (250 nm)
WHAT(2) > 0.0: central wavelength (in cm) for optical photon sensitivity
= 0.0: ignored
< 0.0: resets to default
Default = 5.89 x 1.0E-5 (589 nm, Na D line)
WHAT(3) > 0.0: maximum wavelength (in cm) for optical photon sensitivity
= 0.0: ignored
< 0.0: resets to default
Default = 6.0 x 1.0E-5 (600 nm)
WHAT(4)-WHAT(6): not used
SDUM = WV-SENSI
For SDUM = OM-SENSI: setup the angular frequency of the optical photon sensitivity
(See also SDUM = SENSITIV, SDUM = WV-SENSI and Note 3 below)
WHAT(1) > 0.0: minimum angular frequency for optical photon sensitivity
omega = 2 pi x frequency in rad/s
= 0.0: ignored
< 0.0: resets to default
Default = 3.14E15 rad/s (corresponding to 600 nm)
WHAT(2) > 0.0: central angular frequency for optical photon sensitivity
omega = 2 pi x frequency in rad/s
= 0.0: ignored
< 0.0: resets to default
Default = 3.20E15 rad/s (corresponding to 589 nm, Na D line)
WHAT(3) > 0.0: maximum angular frequency for optical photon sensitivity
omega = 2 pi x frequency in rad/s
Default = 7.53E15 rad/s (corresponding to 250 nm)
WHAT(4)-WHAT(6): not used
SDUM = OM-SENSI
For SDUM = SPEC-BDX: flags special boundary crossings for optical photons
At the selected boundary crossings special user-defined properties
are defined by means of the user routine OPHBDX (see Note 1 below).
A maximum of 40 boundaries can be flagged by issuing option OPT-PROP with
SDUM = SPEC-BDX as many times as needed.
WHAT(1) >= 1.0: special boundary treatment activated for the n-th+1 boundary
= 0.0: ignored
=< -1.0: special boundary treatment deactivated for the n-th+1 boundary
WHAT(2) = One of the two regions defining the n-th+1 boundary
WHAT(3) = The other region defining the n-th+1 boundary
WHAT(4) >= 1.0: special boundary treatment activated for the n-th+2 boundary
= 0.0: ignored
=< -1.0: special boundary treatment deactivated for the n-th+2 boundary
WHAT(5) = One of the two regions defining the n-th+2 boundary
WHAT(6) = The other region defining the n-th+2 boundary
SDUM = SPEC-BDX
Default (option OPT-PROP not given): no optical photon transport
Notes:
1) The optional user routines concerning optical photons are:
* RFRNDX: to specify a refraction index as a function of wavelength,
frequency or energy. Activated by setting WHAT(1) < -99 when
SDUM = blank.
* ABSCFF: to specify an absorption coefficient as a function of wavelength,
frequency or energy. This is activated by setting WHAT(2) < -99 when
SDUM = blank.
* DFFCFF: to specify a diffusion coefficient as a function of wavelength,
frequency or energy. Activated by setting WHAT(3) < -99 when
SDUM = blank.
* RFLCTV: to specify the reflectivity of a material.
This can be activated with SDUM = METAL and WHAT(3) < -99
* OPHBDX: to set optical properties of a boundary surface. The call is
activated with SDUM = SPEC-BDX
* FRGHNS: to set a possible degree of surface roughness, in order to have
both diffusive and specular reflectivity from a given material surface
* QUEFFC: to introduce Quantum efficiency. This is activated by setting
the 0-th photon sensitivity parameter to a value < -99 with
SDUM = SENSITIV .
2) The 9 material properties input by the user with SDUM = &1, &2 and &3
are derivatives of order 1 to 3 of the three basic quantities which are
input with SDUM = blank or SDUM = METAL. The three basic quantities and
their derivatives are used to perform three series expansions centred
on the selected central wavelength (if SDUM = WV-LIMIT has been used
for the material concerned) or on the selected central angular frequency
(if SDUM = OM-LIMIT has been used). The variable x used in the expansion
is adimensional:
x = ( lambda - lambda_central ) / lambda_central or
x = ( omega - omega_central ) / omega_central
3) The three basic quantities are:
If SDUM = blank: 1) refraction index n_refr
2) absorption coefficient mu_abs
3) diffusion coefficient mu_diff
If SDUM = METAL: 1) (not implemented yet)
2) (not implemented yet),
3) (1-r) (r = reflectivity index)
The 4th, 5th, 6th material properties are:
d n_refr/ dx, d mu_abs/dx, d mu_diff/dx
the 7th, 8th, 9th material properties are:
d2 n_refr/ dx^2, d2 mu_abs/dx^2, d2 mu_diff/dx^2
the 10th, 11th, 12th material properties are:
d3 n_refr/ dx^3, d3 mu_abs/dx^3, d3 mu_diff/dx^3
4) SDUM = SENSITIV can be used to set the quantum efficiency as a
function of photon energy OVERALL through the problem and it is not
material/region dependent.
The reason is that it is applied "a priori" at photon generation time.
If a quantum efficiency curve is to be introduced AT DETECTION,
then a weighting user routine should be used, such as FLUSCW or COMSCW.
It is advantageous to reduce computer time avoiding to generate and
transport a photon which would have a significant probability to remain
undetected.
5) The optical photon sensitivity parameters are:
epsilon(0), d epsilon/dx, d2 epsilon/dx2, d3 epsilon/dx3 where x is:
x = (lambda - lambda_central)/lambda_central
or
x = (omega - omega_central)/omega_central
Example 1:
* Optical photon transport requested between 3.E15 and 7.E15 rad/s
* (4.77E5 and 1.11E6 GHz, or 314 to 628 nm) for materials 6,9,12,15 and 18
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
OPT-PROP 3.E15 6.E15 7.E15 6.0 18.0 3. OM-LIMIT
* User routine USRMED called when an optical photon is going to be transported
* in materials 6, 12 and 18
MAT-PROP 1.0 0.0 0.0 6.0 18.0 6. USERDIRE
Example 2:
* Material 11 has a reflectivity index = 0.32
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
OPT-PROP 0.0 0.0 0.32 11.0 0.0 0. METAL
Example 3:
*
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
* Optical photon transport requested between 300 and 600 nm for water.
* (material 9). The optical properties are for the Na D line (589 nm)
MATERIAL 1.0 0.0 .0000899 3.0 0.0 1. HYDROGEN
MATERIAL 8.0 0.0 0.00143 5.0 0.0 0. OXYGEN
MATERIAL 0.0 0.0 1.0 21.0 0.0 0. WATER
COMPOUND 2.0 3.0 1.0 5.0 0.0 0. WATER
OPT-PROP 3.E-5 5.89E-5 6.E-5 21.0 0.0 0. WV-LIMIT
* diffusion coefficient of water from Appl.Opt. 17, 3587 (1978)
OPT-PROP 1.33299 0.0013 1.22E-5 21.0 0.0 0.
1********************************************************************************
{PAIRBREM}
controls simulation of pair production and bremsstrahlung by
high-energy muons, charged hadrons and light ions (up to alpha's)
See also MUPHOTON
WHAT(1) = 0.0 : ignored
= 1.0 : pair production by muons and charged hadrons is
activated
= 2.0 : bremsstrahlung by muons and charged hadrons is
activated
= 3.0 : pair production and bremsstrahlung are both
activated
= -1.0 : pair production is inhibited
= -2.0 : bremsstrahlung is inhibited
= -3.0 : pair production and bremsstrahlung are both
inhibited
Default = 3.0 (both pair production and bremsstrahlung are
activated).
However, if DEFAULTS is present with SDUM = EET/TRANsmut,
EM-CASCAde, NEUTRONS or SHIELDINg, the default is = -3.0
(pair production and bremsstrahlung inhibited)
WHAT(2) >= 0.0 : e+, e- kinetic energy threshold (in GeV) for
explicit pair production. A value of 0.0 is meaningful
(it does mean zero energy) and is even recommended.
< 0.0 : no explicit pair production (overrides a possible
non-negative value set in a previous PAIRBREM
card), but the energy loss due to pair production is
taken into account in a continuous approximation.
Default = -1.0 (no explicit pair production).
However, if DEFAULTS is not present, or is present
with SDUM = CALORIMEtry, ICARUS, NEW-DEFAults or
PRECISIOn, the default is 0.0 (explicit pair production
with zero threshold).
WHAT(3) > 0.0 : photon energy threshold (GeV) for explicit
bremsstrahlung production
=< 0.0 : no explicit bremsstrahlung production is simulated
(it overrides a possible positive value set in a
previous PAIRBREM card), but the energy loss due to
bremsstrahlung is taken into account in a
continuous approximation
Default = -1.0 (no explicit bremsstrahlung production)
However, if DEFAULTS is not present, or is present
with SDUM = NEW-DEFAults, the default is 0.001 (explicit
bremsstrahlung production with threshold 1 MeV).
If DEFAULTS has SDUM = CALORIMEtry, ICARUS or PRECISIOn,
the default is 0.0003 (explicit bremsstrahlung production
with threshold 300 keV).
WHAT(4) = lower bound of the indices of the materials in which the
indications given by WHAT(1)...WHAT(3) apply
("From material WHAT(4)...")
Default = 3.0
WHAT(5) = upper bound of the indices of the materials in which the
indications given by WHAT(1)...WHAT(3) apply
("... to material WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices
("...in steps of WHAT(6)")
Default = 1.0
SDUM = reserved for program development
Default (option PAIRBREM not given): if DEFAULTS is not present, or is
present with SDUM = NEW-DEFAults, both pair production and
bremsstrahlung are activated in all materials, with explicit
generation of secondaries of energy >= 0 and >= 1 MeV, respectively.
If DEFAULTS is present with SDUM = CALORIMEtry, ICARUS or
PRECISIOn, both pair production and bremsstrahlung are activated in
all materials, with explicit generation of secondaries of energy
>= 0 and >= 300 keV, respectively.
If DEFAULTS is present with SDUM = EET/TRANsmut, EM-CASCAde,
NEUTRONS or SHIELDINg, pair production and bremsstrahlung are
inhibited.
In any other case, both pair production and bremsstrahlung are
activated in all materials, without explicit generation of
secondaries (continuous loss approximation)
Notes:
1) Initialisation of bremsstrahlung and pair production by muons,
charged hadrons and light ions (up to alpha's) is very demanding
in computer time. On the other hand, these effects must be taken
into account for a correct simulation at high energy. It is
suggested to inhibit them in the phase of input preparation and
debugging, but to activate them again in production runs (in
long runs the time taken by initialisation is of course a
smaller fraction of total time). In pure electron-photon
problems and in low-energy hadron problems, the effects
should be inhibited (WHAT(3) = -3.0), unless this is already
ensured by the chosen DEFAULTS option.
2) When setting a threshold for pair and bremsstrahlung
production by muons, charged hadrons and light ions (up to alphas),
the following considerations should be taken into account:
- photon production threshold (WHAT(3)) must be of course not
lower than the photon transport cutoff as set by EMFCUT
or by the chosen default. (In general it will be reasonable to
set it equal to it)
- on the contrary, the electron and positron production threshold
(WHAT(2)) should in general be set = 0.0, whatever the
electron transport cutoff, unless PHOTON transport cutoff
is set higher than 511 keV. If the positron is produced
with an energy lower than electron transport cutoff, it
will be forced to annihilate at the point of production, but
the two 511 keV annihilation photons will be generated correctly.
3) If option PAIRBREM is not activated, by default FLUKA
treats both bremsstrahlung and pair production by muons
and charged hadrons as continuous energy losses (i.e., without
generating secondaries and depositing their energy at the
point of production). This will reproduce correctly the
average ranges but not the straggling and the dose
distributions. A similar approach is found in A. Van
Ginneken's code CASIM [Van75,Van86,Qia87].
4) Virtual photonuclear interactions by high-energy muons are
controlled by option MUPHOTON.
5) Here are the settings for pair and bremsstrahlung production by
high-energy muons and charged hadrons, corresponding to available
DEFAULTS options:
6) CALORIMEtry, ICARUS, PRECISIOn: pair production is activated in all
materials, with explicit generation of secondaries of any energy;
bremsstrahlung is also activated in all materials, with explicit
generation of photons having energy >= 300 keV
NEW-DEFAults, or DEFAULTS missing: pair production is activated in
all materials, with explicit generation of secondaries of any
energy; bremsstrahlung is also activated in all materials, with
explicit generation of photons having energy >= 1 MeV.
Any other SDUM value: both pair and bremsstrahlung production are
activated in all materials, without explicit generation of
secondaries (continuous loss approximation)
Example 1:
* Explicit pair production and bremsstrahlung requested for muons and charged
* hadrons in materials 4, 7 and 10, provided the energy of the secondary
* electrons and positrons is > 1.2 MeV. No threshold is requested for photon
* production.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PAIRBREM 3.0 0.0 0.0012 4.0 10.0 3.0
Example 2:
* Energy loss due pair production and bremsstrahlung by muons and charged
* hadrons accounted for in materials 6, and 7, without explicit generation
* of secondaries
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PAIRBREM 3.0 -1.0 -1.0 6.0 7.0
1********************************************************************************
{PART-THR}es
sets different energy transport cutoffs for hadrons, muons and
neutrinos
See also EMFCUT, LOW-BIAS, THRESHOLd
The meaning of WHAT(1) depends also on the value of WHAT(5).
For WHAT(5) = 0.0 :
WHAT(1) < 0.0 : kinetic energy cutoff (GeV)
> 0.0 : momentum cutoff (GeV/c)
For WHAT(5) >= 1.0 :
WHAT(1) < 0.0 : gamma cutoff (Lorentz factor, = E/mc**2)
> 0.0 : eta cutoff (= beta*gamma = v/c E/mc**2)
Default (WHAT(1) = 0.0): the cutoff is 0 for neutrinos,
and 1.E-14 GeV for neutrons.
For any other hadrons, and for muons:
if option DEFAULTS is missing, or is present with
SDUM = NEW-DEFAults or SHIELDINg, the default cutoff
kinetic energy is 0.01 GeV.
If SDUM = HADROTHErapy, ICARUS or PRECISIOn, the default
cutoff kinetic energy is 0.0001 GeV.
If SDUM = CALORIMEtry, the default cutoff kinetic energy
is = 0.001 * m/m_p GeV (m = particle mass, m_p = proton mass)
In any other case, the default cutoff is 0.050 GeV.
(For e+e- and photons the threshold is set by EMFCUT, see
Note 3 below).
WHAT(2) = lower bound of the particle id-numbers to which the cutoff
applies ("From particle WHAT(2)...").
Default = 1.0
WHAT(3) = upper bound of the particle id-numbers to which the cutoff
applies ("...to particle WHAT(3)...").
Default = WHAT(2)
WHAT(4) = step length in assigning numbers
("...in steps of WHAT(4)")
Default = 1.0.
WHAT(5) : depending on its value, cutoff values indicated by
WHAT(1) are assigned to kinetic energy, momentum, gamma or
eta (see WHAT(1))
WHAT(6) = 1.0 restricts the given cutoff to charged particles only
Default: the cutoff applies to all particles indicated by
WHAT(2-4)
SDUM : not used
Default (option PART-THR not given): thresholds as described above
for WHAT(1) = 0.0.
Notes:
1) If low-energy neutron transport is not requested (explicitly via
LOW-NEUT or implicitly via DEFAULTS), the energy of neutrons
below threshold is deposited on the spot.
2) The total momentum cutoffs of heavy ions are derived from that
of a 4He ion (4-HELIUM) by scaling the latter with the ratios
of the atomic weights of the heavy ions and the 4He ion.
The total momentum cutoffs for light ions (4-HELIUM, 3-HELIUM,
TRITON and DEUTERON) can be defined by PART-THRes. If this is not
done, they are derived from that of a proton by scaling the
latter with the ratios of the atomic weights of the light ions and
a proton.
3) Option PART-THR acts on all particles excepted e+ e- and
photons, while EMFCUT option is used to set to transport electrons,
positrons and photons.
4) When the energy of a heavy charged particle becomes lower than the
cutoff defined by PART-THR, and if such cutoff is lower
than 100 MeV, the particle is not stopped, but is ranged
out to rest in an approximate way. Its kinetic energy is
deposited uniformly over the residual range if the latter
is contained within a single region; otherwise a new residual
range is calculated at each boundary crossing and the residual
kinetic energy is distributed accordingly. If applicable, such
a particle eventually decays at rest or is captured. All other
forms of transport are ignored excepted curved paths in
magnetic fields (multiple scattering, delta ray production,
inelastic or elastic collisions, and INCLUDING DECAY IN
FLIGHT). Magnetic fields are taken into account but only
very roughly, since the continuous slowing down of the
particles is not simulated. Antiprotons and pi-minus are
always ranged out to rest (without allowance for decay) and
made to annihilate on a nucleus.
5) If the cutoff is higher than 100 MeV, however, the
particles are stopped in place without any further treatment.
If this happens at a boundary crossing where the material of
the region entered is vacuum, a printed message warns the
user that energy is being deposited in vacuum.
6) By default the neutron threshold is set at 1.E-14 GeV (1.E-5 eV, the
lowest boundary of the group structure). So, normally it is not
necessary to issue a PART-THR command at all for neutrons.
A note of caution: if a PART-THR has been issued spanning all
particles, it is generally necessary to override it with another one
resetting the threshold for neutrons to 1.E-14 GeV.
As a general rule however, if a neutron transport threshold is
set < 20 MeV, it is rounded to the closest lower group boundary.
Example:
* A threshold of 2 MeV (kinetic energy) is requested for heavy charged
* particles with id-numbers between 1 and 11 (protons, antiprotons and
* muons). A threshold of Gamma (E/m) = 2 will apply for pions and kaons
* (numbers from 13 to 16). For all other particles, the defaults will apply.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PART-THR -0.002 1.0 11.0 0.0 0.0 1.0
PART-THR -2.0 13.0 16.0 1.0 1.0 0.0
1********************************************************************************
{PHOTONUC}
activates gamma, electron and positron interactions with nuclei
See also LAM-BIAS, MUPHOTON
For all SDUM's except ELECTNUC/MUMUPAIR/MUMUPRIM:
WHAT(1) : flag to switch on nuclear interactions of photons:
=< -1.0 : resets to default (no photonuclear interactions)
= 0.0 : ignored
= 1.0 : photonuclear interactions are activated at all
energies
= 2.0 : photonuclear interactions are activated only in
the high energy range (above 0.7 GeV)
= 3.0 : photonuclear interactions are activated only in
the energy region of the Delta resonance
= 4.0 : only quasi-deuteron interactions are activated
= 5.0 : only Giant Dipole Resonance interactions are
activated
>= 10.0 : interpreted as ih + id * 10 + iq * 100 + ig * 1000
where ih = 1 to activate High-energy interactions
id = 1 to activate Delta Resonance
iq = 1 to activate Quasi-deuteron
ig = 1 to activate Giant Dipole Resonance
and each is = 0.0 otherwise
Default = 0.0 (no photonuclear interaction)
WHAT(2), WHAT(3) : not used
WHAT(4) = lower index bound (or corresponding name) of materials where the
indicated photonuclear interactions are activated
("From material WHAT(4)..."
Default = 3.0
WHAT(5) = upper index bound of materials (or corresponding name) where the
indicated photonuclear interactions are activated
("...To material WHAT(5)..."
Default = WHAT(4)
WHAT(6) = step length in assigning indices ("...in steps of
WHAT(6)").
Default = 1.0.
For SDUM = ELECTNUC:
WHAT(1) : flag to switch on electronuclear interactions:
<= -1.0 : resets to default (no electronuclear interactions)
= 0.0 : ignored
= 1.0 : electronuclear interactions are activated at all
energies
= 2.0 : electronuclear interactions are activated only in
the high energy range (above 0.7 GeV)
= 3.0 : electronuclear interactions are activated only in
the energy region of the Delta resonance
= 4.0 : electronuclear interactions are activated only in the
Quasi-deuteron energy region
= 5.0 : electronuclear interactions are activated only in the
Giant Dipole Resonance energy region
>= 10.0 : interpreted as = ih + id * 10 + iq * 100 + ig * 1000
where ih = 1 to activate High-energy interactions
id = 1 to activate Delta Resonance
iq = 1 to activate Quasi-deuteron
ig = 1 to activate Giant Dipole Resonance
and each is = 0.0 otherwise
WHAT(2), WHAT(3) : not used
WHAT(4) = lower index bound (or corresponding name) of materials where the
indicated electronuclear interactions are activated
("From material WHAT(4)..."
Default = 3.0
WHAT(5) = upper index bound (or corresponding name) of materials where the
indicated electronuclear interactions are activated
("...To material WHAT(5)..."
Default = WHAT(4)
WHAT(6) = step length in assigning indices ("...in steps of
WHAT(6)").
Default = 1.0
SDUM = ELECTNUC
For SDUM = MUMUPAIR/MUMUPRIM:
WHAT(1) : flag to switch on muon pair production by photons:
= -1: resets to default (no muon pair production)
= 0: ignored
> 0: interpreted as ich + iqe * 10 + iin * 100 + ids * 1000
where ich = 1 to activate muon pair coherent production
iqe = 1 to activate muon pair incoherent quasielastic production
iin = 1 to activate muon pair incoherent inelastic production
ids = 1 to activate muon pair deep inelastic production
and each is = 0.0 otherwise
Default: no muon pair production by photons
WHAT(2) = interaction length biasing factor
= 0: ignored
0 < |WHAT(2)| < 1: the interaction length of the photon is reduced
by a factor |WHAT(2)|
1 =< |WHAT (2)|: a possible previous biasing factor is reset to the
default value (no biasing)
0< WHAT(2) < 1: the primary particle always survives with reduced
weight
-1 < WHAT(2) < 0: Russian Roulette is played to decide if the
primary particle will be killed, or survive with its original
weight
Default: no biasing
WHAT(3) : not used
WHAT(4) = lower index bound of materials (or corresponding name) where the
indicated photomuon production mechanisms are activated
("From material WHAT(4)..."
Default = 3.0
WHAT(5) = upper index bound of materials (or corresponding name) where the
indicated photomuon production mechanisms are activated
("...To material WHAT(5)..."
Default = WHAT(4)
WHAT(6) = step length in assigning indices ("...in steps of
WHAT(6)").
Default = 1.0.
SDUM = MUMUPAIR: photomuon production biasing applied to all photons
MUMUPRIM: photomuon production biasing applied to primaries only
Default (option PHOTONUC not given): photon or electron interactions with nuclei as
well as photomuon production are not simulated
Notes:
1) Muon photonuclear interactions (via virtual photons) are not handled
by PHOTONUC but by MUPHOTON.
2) Because photonuclear and electronuclear cross sections are much
smaller than photon cross sections for electromagnetic interactions
with atoms and electrons, analogue simulations of photonuclear and
electronuclear interactions are very inefficient.
Generally, it is recommended to use PHOTONUC in combination
with LAM-BIAS to increase artificially the frequency of
photonuclear and electronuclear interactions. See the Notes 9) and
10) to option LAM-BIAS for more details.
3) Also photomuon production cross sections are much smaller than
photon cross sections for electromagnetic interactions with atoms
and electrons, as discussed in Note 2). But in this case, the
artificial increase of interactions can be performed directly with
the PHOTONUC command (see WHAT(2) with SDUM = MUMUPAIR or MUMUPRIM)
Example 1:
* Giant Resonance and Quasideuteron photonuclear interactions are requested
* in material 18. The photon hadronic interaction length is artificially
* shortened by a factor 0.02 in order to improve statistics
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PHOTONUC 1100.0 0.0 0.0 18.0 0.0 0.0
LAM-BIAS 0.0 0.02 18.0 7.0 0.0 0.0
Example 2:
* Photonuclear interactions are requested at all energies in materials
* 3, 7, 11 and 15. The photon hadronic interaction length is shortened
* by a factor 0.025
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PHOTONUC 1.0 0.0 0.0 3.0 15.0 4.0
LAM-BIAS 0.0 0.025 0.0 7.0 0.0 0.0
1********************************************************************************
{PHYSICS}
allows to override the standard FLUKA defaults for physics processes.
See also EMFCUT, IONTRANS, POLARIZAti, THRESHOLd
This command concerns the following physics processes:
2) SDUM = CHARMDECay: flag for charmed hadron and tau transport
3) SDUM = COALESCEnce: flag to activate the coalescence mechanism
5) SDUM = DECAYS: decays of pions+/-, muons+/-, Kaon+/- (e-nue, mu-numu,
K+/-mu3 and K+/-e3 channels) and Klong (K0mu3 and K0e3 channels)
8) SDUM = DPMTHREShold: lower energy threshold(s) for DPMJET
9) SDUM = EM-DISSOciation: ion electromagnetic-dissociation
10) SDUM = EVAPORAT: evaporation
14) SDUM = INFLDCAY: in-flight decay of excited states, isomers, and
radioactive isotopes
15) SDUM = IONBRPAIr: activates or deactivates heavy ion direct pair
production and nuclear form factors in delta ray production
16) SDUM = IONSPLITting: activates the superposition model, \ie\ ion
splitting into nucleons
17) SDUM = ISOMERS: activates or deactivates the explicit assessment
of isomeric state production inside the nuclear models
18) SDUM = LIMITS: sets the maximum (pp) CMS momentum (used for
initialization of high energy models, typically DPMJET), and/or
the maximum momentum for internal tabulations
19) SDUM = NEUTRINO: selects which neutrino interactions are activated
20) SDUM = PEATHREShold: sets the upper thresholds for the PEANUT model
22) SDUM = QMDTHREShold: lower energy thresholds for RQMD, MYRQMD, BME
and complete fusion
For SDUM = CHARMDECay:
WHAT(1) : flag for charmed hadron and tau decays
=< -1.0 : resets to default
= 0.0 : ignored
= 1.0 : charmed hadrons and tau leptons are transported
WHAT(2)-WHAT(6) : not used
Default = decay at production, no transport
For SDUM = COALESCEnce:
WHAT(1) : coalescence flag
< 0.0 : false (no coalescence)
= 0.0 : ignored
> 0.0 : true, coalescence is activated
Default = no coalescence
WHAT(2)-WHAT(6): reserved to developers' use
For SDUM = DECAYS:
WHAT(1) : flag for particle decay
=< -1.0: resets to default
= 0.0: ignored
= 1.0: maximum accuracy, polarisation accounted for in pi/K
--> mu(e)-numu(nue) decays and following mu decays
= 2.0: maximum accuracy, polarisation not accounted for
= 3.0: phase space like decays
200 > WHAT(1) >= 100 : leptonic decays only are allowed (implemented only
for tau's). WHAT(1) - 100 has the same meaning as above
300 > WHAT(1) >= 200 : hadronic decays only are allowed (implemented only
for tau's). WHAT(1) - 200 has the same meaning as above
Default = 1.0 (maximum accuracy and polarisation for both
hadronic and leptonic decays)
WHAT(2)-WHAT(3): not used
WHAT(4) = lower bound of the particle numbers (or corresponding names) to
which the decay flag chosen by WHAT(1) applies
("From particle WHAT(4)...").
Default = 1.0
WHAT(5) = upper bound of the particle numbers (or corresponding names) to
which the decay flag chosen by WHAT(1) applies
("...to particle WHAT(5)...").
Default = WHAT(4)
WHAT(6) = step length in assigning numbers
("...in steps of WHAT(6)")
Default = 1.0.
For SDUM = DPMTHREShold:
WHAT(1) : minimum DPMJET kinetic energy for hadrons (GeV)
=< 0.0 : ignored
Default = 20 TeV
WHAT(2) : minimum DPMJET kinetic energy for ions (GeV/n)
=< 0.0 : ignored
Default = 5 GeV/n
WHAT(3) : minimum RQMD kinetic energy for ions (GeV/n)
< 0.05 GeV/n : forced to be = 0.05 GeV/n
Default = 0.125 GeV/n
WHAT(4) : smearing (+/- Delta E, GeV/n) for the RQMD-DPMJET switch energy
< 0.0 : resets to 0
Default = 2 GeV/n
WHAT(5) : smearing (+/- Delta E, GeV/n) for the FLUKA-DPMJET switch energy
for hA interactions
< 0.0 : resets to 0
Default = 10 TeV
WHAT(6) : flag for restricting DPMJET h-A interactions to primary particles
only
=< -1.0 : resets to default (false)
=< 0.0 : ignored
> 0.0 : sets to true
Default = -1.0 (no restriction to primary particles only)
Default (no PHYSICS option with SDUM = DPMTHREShold): DPMJET is called for
h-A interactions above 20 TeV and for A-A interactions down to
5 GeV/n. RQMD is called between 5 and 0.125 GeV/n.
WARNING: to activate ion interactions refer to the IONTRANS card
WARNING: The FLUKA executable must be built with the DPMJET and RQMD
libraries to perform A-A interactions above 125 MeV/n (see
the ldpmqmd script in $FLUPRO/flutil). DPMJET must also be linked
for h-A interactions above 20 TeV.
For SDUM = EM-DISSOciation:
WHAT(1) : flag for activating ion electromagnetic-dissociation
=< -1.0 : resets to default (no em-dissociation)
= 0.0 : ignored
= 1.0 : no em-dissociation
= 2.0 : projectile and target em-dissociation activated
= 3.0 : projectile only em-dissociation activated
= 4.0 : target only em-dissociation activated
Default = 1.0 (no em-dissociation)
WHAT(2) : flag for muon+/- em-dissociation
=< -1.0 : resets to default (muon+/- em-dissociation on)
= 0.0 : ignored
= 1.0 : muon+/- induced target em-dissociation on
= 2.0 : muon+/- induced target em-dissociation off
Default = 1.0 (muon+/- em-dissociation on)
WHAT(3) : flag for deuteron em-dissociation
=< -1.0 : resets to default (deuteron projectile em-dissociation on)
= 0.0 : ignored
= 1.0 : deuteron projectile em-dissociation on
target em-dissociation on/off according to WHAT(1)
= 2.0 : deuteron projectile em-dissociation off
Default = 1.0 (deuteron projectile em-dissociation on)
WHAT(4)-WHAT(6): not used
For SDUM = EVAPORATion:
WHAT(1) : flag for FLUKA evaporation model = i0 + 100 Z_max + 10000 A_max
i0 =< -1.0 : resets to default (new model, no heavy fragment
evaporation)
= 0.0 : ignored
= 1.0 : old evaporation model (OBSOLETE: kept for developers' use
only)
= 2.0 : new evaporation model, no heavy fragment evaporation
= 3.0 : new evaporation model, with heavy fragment evaporation
(CPU expensive, see Note below)
= 4.0 : same as 2, overrides possible checks
Z_max and A_max are the maximum fragment Z and A up to which the
heavy fragmentation must be applied (obviously they make sense
for i0=3 only). If they are not specified, the maximum allowed
by the code is used. It is also possible to specify A_max or
Z_max only
Default = 2.0 (new evaporation model, no heavy fragment
evaporation) for all DEFAULTs, PRECISIOn excluded.
For PRECISIOn the default is 90403, that is heavy
fragment evaporation with Z_max=4, A_max=9.
WHAT(2)-WHAT(6): not used
For SDUM = INFLDCAY
WHAT(1) = flag for (de)activating the decay in flight of ion
excited states
< 0 = deactivated
0 ignored
> 0 = activated
default depends on the chosen DEFAULT
WHAT(2) = absolute minimum mean life (s) for excited states for
being transported and decayed in flight
< 0 = reset to default (10^-16)
0 ignored
> 0 = new value
WHAT(3) = flag for (de)activating the decay in flight of ion
isomeric states
< 0 = deactivated
0 ignored
> 0 = activated
default is deactivated
WHAT(4) = absolute minimum mean life (s) for isomeric states for
being transported and decayed in flight
< 0 = reset to default (tau=10^6/log(2))
0 ignored
> 0 = new value
WHAT(5) = flag for (de)activating the decay in flight of radio-
active isotopes
< 0 = deactivated
0 ignored
> 0 = activated
default is deactivated
WHAT(6) = absolute minimum mean life (s) for radioactive isotopes
for being transported and decayed in flight
< 0 = reset to default (tau=10^6/log(2))
0 ignored
> 0 = new value
For SDUM = IONBRPAIr:
WHAT(1) = flag for (de)activating heavy ion direct pair production
< 0: heavy ion direct pair production is deactivated
= 0: ignored
> 0: activated (it still requires heavy pair production activated via
PAIRBREM for the required materials)
Default = 1.0 (heavy ion direct pair production is activated in
the materials defined by PAIRBREM)
WHAT(2) = flag for (de)activating heavy ion bremsstrahlung (not yet
implemented)
WHAT(3) = flag for (de)activating nuclear form factor effects in heavy ion
delta ray production
< 0: nuclear form factor effects are deactivated
= 0: ignored
> 0: nuclear form factor effects are activated (it still needs delta
ray production activated via DELTARAY for the required
materials)
Default = 1.0 (nuclear form factor effects in heavy ion delta ray
production are activated in the materials defined by DELTARAY)
WHAT(4)-WHAT(6): not used
For SDUM = IONSPLITting:
WHAT(1) : flag for activating ion splitting into nucleons
< 0.0 : false, no ion splitting
= 0.0 : ignored
> 0.0 : true: ion splitting is activated
Default = -1.0 (no ion splitting)
WHAT(2) : minimum energy for ions (GeV/n) above which splitting into
nucleons will be performed
=< 0.0 : ignored
Default = 0.1 GeV/n
WHAT(3) : maximum energy for ions (GeV/n) below which splitting into
nucleons will be performed (default: 5 GeV/n)
=< 0.0 : ignored
WHAT(4) : minimum A for which ion splitting must be performed
=< 0.0 : ignored
Default = 2.0
WHAT(5) : maximum A for which ion splitting must be performed
=< 0.0 : ignored
Default = 500.0
WHAT(6) : flag for the ion splitting minimum threshold
= 0.0 : sharp threshold for kinetic energy per nucleon
larger than WHAT(2). Deprecated.
= 1.0 : probability according to 1 - exp(- Ek/n / Emnspi)
where Emnspi=WHAT(2) and Ek/n is the kinetic energy
per nucleon of the current ion
= 2.0 : splitting performed at the first nonelastic interaction
if no interaction model is available. It requires full
transport selected for all ions concerned.
WHAT(2) and WHAT(3) are still honored in the same way
as for for "0.0", however the minimum energy should be
set compatible with ion cross section threshold
rather than not
= 3.0 : deuteron splitting performed at interaction
point computed according to a parameterized
formula, like 1.0 for heavier ions
=< 0.0 : resets to default
Default = 2.0
For SDUM = ISOMERS:
WHAT(1) = flag for activating explicit calculation of isomers
< 0: isomer explicit calculation is deactivated
= 0: ignored
> 0: activated
Default = 1.0 (isomer explicit calculation is activated)
WHAT(2)-WHAT(6): not used
For SDUM = LIMITS:
WHAT(1) = set the maximum (pp) CMS momentum (used for initialization of
high energy models, typically DPMJET), and, if larger
than the one of the BEAM card, the maximum momentum for all
internal tabulations
< 0: reset to default
= 0: ignored
> 0: maximum (pp) CMS momentum (GeV/c)
Default: determined by the BEAM card
WHAT(2)-WHAT(6): not used
For SDUM = NEUTRINO:
WHAT(1) : flag for activating quasielastic (QE) neutrino interactions
= 1.0 : QE neutral current (NC) activated
= 2.0 : QE charged current (CC) activated
= 3.0 : QE NC and CC activated
< 0.0 : no QE interactions
= 0.0 : ignored
Default: 3.0 (QE NC and CC activated)
WHAT(2) : flag for activating resonant (RES) neutrino interactions
= 1.0 : RES neutral current (NC) activated
= 2.0 : RES charged current (CC) activated
= 3.0 : RES NC and CC activated
< 0.0 : no RES interactions
= 0.0 : ignored
Default: 3.0 (RES NC and CC activated)
WHAT(3) : flag for activating deep inelastic (DIS) neutrino interactions
= 1.0 : DIS neutral current (NC) activated
= 2.0 : DIS charged current (CC) activated
= 3.0 : DIS NC and CC activated
< 0.0 : no DIS interactions
= 0.0 : ignored
Default: 3.0 (DIS NC and CC activated)
WHAT(4) : flag for activating charm production (CHA) in DIS neutrino
interactions
= 1.0 : CHA neutral current (NC) activated (not yet implemented)
= 2.0 : CHA charged current (CC) activated
= 3.0 : CHA NC and CC activated
< 0.0 : no CHA interactions
= 0.0 : ignored
Default: 3.0 (CHA CC activated, but NC not yet implemented)
WHAT(5) : not used
WHAT(6) : flag for performing (forced) interactions when there is a(n)
(anti)neutrino beam particle
= 1.0 : forced interactions for (anti)neutrino beam particles
performed
= 0.0 : ignored
=< -1.0 : forced interactions for (anti)neutrino beam particles
not performed (-> no neutrino interactions,
propagation only)
Default: 1.0 (forced interactions performed for (anti)neutrino
beams)
For SDUM = PEATHREShold:
WHAT(1) : maximum PEANUT kinetic energy for nucleons (GeV)
=< 0.0 : ignored
WHAT(2) : maximum PEANUT kinetic energy for pions (GeV)
=< 0.0 : ignored
WHAT(3) : maximum PEANUT kinetic energy for kaons (GeV)
=< 0.0 : ignored
WHAT(4) : maximum PEANUT kinetic energy for kaonbars (GeV)
=< 0.0 : ignored
WHAT(5) : maximum PEANUT kinetic energy for antinucleons (GeV)
=< 0.0 : ignored
WHAT(6) : maximum PEANUT kinetic energy for (anti)hyperons (GeV)
=< 0.0 : ignored
Default (no PEATHREShold option): PEANUT is called up to 100 TeV
kinetic energy, or the DPMJET threshold energy if linked,
for all hadrons
For SDUM = QMDTHREShold:
WHAT(1) : not used
WHAT(2) = minimum BME kinetic energy for ions (GeV/n)
=< 0: ignored
WHAT(3) : not used
WHAT(4) : not used
WHAT(5) = maximum kinetic energy for ion complete fusion (GeV/n)
WHAT(6) = smearing (+/- DeltaE, GeV/n) for the BME-RQMD switch energy
< 0: set to 0.0
Default = 0.025 GeV/n
Default (option PHYSICS not given): standard FLUKA treatment of
physics processes
Note:
In order to achieve accurate results for residual nuclei production
or fragment production with ion beams the evaporation of heavy
fragments MUST be activated. This, however, is not the default since
it can bring a significant CPU burden, and is not needed for most
applications. The CPU burden is maximal for problems with heavy
targets, high energy beams, and no electro-magnetic particle
transport. It is often negligible for problems with
electro-magnetic transport activated down to low thresholds.
Examples:
* Only hadronic decays are allowed for tau+ and tau- (id-number 41 and 42)
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PHYSICS 201.0 0.0 0.0 41.0 42.0 0. DECAYS
* Maximum accuracy requested for decay of pi+ and pi-(id-number 13 and 14),
* but without accounting for polarisation
* Phase space
PHYSICS 2.0 0.0 0.0 13.0 14.0 0. DECAYS
* New evaporation model requested
PHYSICS 2.0 0.0 0.0 0.0 0.0 0. EVAPORAT
1********************************************************************************
{PLOTGEOM}
Calls the PLOTGEOM plotting geometry package [Jaa73], to scan slices
of the problem geometry and to produce auxiliary files for plotting
for information about PLOTGEOM)
See also GEOBEGIN, GEOEND
WHAT(1) = 0.0 : axes are plotted
= anything else: no axes
WHAT(2) = 0.0 : all region boundaries are plotted,
= anything else: only boundaries between different materials
are plotted
WHAT(3) = 0.0 : no numbering of regions or boundaries
= anything else: boundaries and regions are numbered (not yet
implemented)
WHAT(4) > 0.0 : maximum length of each worm
< 0.0 : worm compression is performed
Default: 2000.
WHAT(5) = 0.0 : no diagnostic printing
= anything else: write scan history to logical output unit
WHAT(5) (filename will be PLOTGEOM.OUT)
WHAT(6) = number of the logical unit for PLOTGEOM input. If different
from 0.0, PLOTGEOM input must be provided in a file
PLG.GFXINDAT. PLOTGEOM input, which is not in standard
FLUKA format, is described in Note 14).
Default: PLOTGEOM input immediately follows
SDUM = FORMAT: the PLOTGEOM store file will be a formatted one
= anything else: unformatted store file
Default (option PLOTGEOM not given): no plotting
Notes:
1) The PLOTGEOM codeword links to FLUKA the PLOTGEOM program, which
was written by R. Jaarsma and H. Rief of the Ispra Joint Nuclear
Research Centre, and was adapted as a stand-alone program for the
FLUKA Combinatorial Geometry by G.R. Stevenson of CERN.
The present version, integrated with the dynamically allocated
storage of the FLUKA code as an input option, has been improved
from several points of view, mainly higher flexibility and smaller
space requirements.
2) The following documentation is extracted with some modifications
from the original EURATOM report of Jaarsma and Rief [Jaa73].
3) PLOTGEOM is a program for checking the geometry input data of Monte
Carlo particle transport codes. From the points of intersection
between the geometrical structure and a mesh of lines of flight,
PLOTGEOM generates a picture, representing a cross section of the
geometry.
4) The user specifies a two-dimensional cross section of the geometry by
giving its orientation with respect to the geometry coordinate axes and
the desired coordinates of the corners of the picture (note that the x-y
coordinate system of the "picture" is usually different from the one to
which the geometry description refers).
5) The program generates a horizontal grid of lines (parallel to the x-axis
of the PICTURE), covering the area of the desired picture. The constant
distance between adjacent lines is 0.07 cm in the picture. The points of
intersection with the medium boundaries are recorded. After having
scanned one line, each intersection point P2_j found is compared with
each similar point P1_k found on the line immediately preceding. If the
distance between a couple of points P1_k, P2_j is =< 0.035 cm, then the
linepiece P1_k-P2_j is called a segment. If more than one of the points
P2 on the current line satisfies the quoted condition for a given P1,
then only the nearest one to that P1 is taken.
6) Now we define a "worm body" as being one segment or a string of
segments, so that the endpoint of one segment is the begin point of the
next segment.
7) If a worm body with a last point P1_j already exists, the segment
P1_j-P2_k is connected to this worm body and the last point of that
worm body becomes P2_k. Otherwise, the segment P1_j-P2_k is the first
one of a new worm body and the program looks for a "worm head" to be
connected to P1_j. This "head" has to be in the neighborhood of P1_j
between the two last scanned lines and is found by the subroutine
HEADTL, which applies the same principle for finding segments, but on
a refined and variable grid.
8) If there is a worm body with a last point P1_j and if on examining all
P2 points no segment P1_j-P2_k is found, then this body should be given
a "tail". This tail is determined by the subroutine HEADTL in the same
way as a head.
The "worms" (head, body, tail) thus created are stored on disk.
9) If the horizontal scanning has been finished the same procedure is
repeated in the vertical direction (parallel to the y-axis of the
picture).
10) Finally the worms are concatenated as far as possible: head to tail,
head to head, tail to tail. The strings of worms formed in this way are
plotted by means of any available graphics program (e.g. PAW).
11) A PLOTGEOM card can be issued only after the combinatorial
geometry input has been read (either from an external file or
from standard input). In other words, PLOTGEOM cannot be input
before the GEOEND card.
In addition, if WHAT(2) is different from 0., PLOTGEOM can be
invoked only after materials have already been assigned.
12) Since PLOTGEOM now makes use of the same dynamically allocated
storage of FLUKA, it is convenient to issue the
PLOTGEOM card just after geometry and material definitions, but
before biasing and any other option which makes use of permanent
and/or temporary storage. The purpose is twofold:
a) this maximises the storage available for PLOTGEOM for a given
storage dimension, and hence minimises the chances of
having a too small storage
b) since PLOTGEOM frees again all the used storage after
completion, the total memory required is minimised
13) On the other hand, if the LATTICE geometry option is used, the
PLOTGEOM command must be issued only after all the transformations
have been defined (i.e., after all ROT-DEFIni commands).
14) The input data required by PLOTGEOM to perform a slice scan have
to be given on the unit specified by WHAT(6) as follows:
First line (format A80) : scan title
Second line (format 6E10.5): X0 , Y0 , Z0 , X1 , Y1 , Z1
Third line (format 6E10.5): TYX, TYY, TYZ, TXX, TXY, TXZ
Fourth line (format 4E10.5): EXPANY, EXPANX, PFIMXX, PFIMXY
The meaning of the variables is:
X0,Y0,Z0 are the real coordinates of the bottom left-hand corner
of the picture
X1,Y1,Z1 are the real coordinates of the top right-hand corner of
the picture
TYX,TYY,TYZ are the direction cosines of the y-axis of the plot
TXX,TXY,TXZ are the direction cosines of the x-axis of the plot
EXPANY is an expansion factor for the Y-axis
EXPANX is an expansion factor for the X-axis
PFIMXX, PFIMXY: if > 0, number of intervals along the X- and Y-axis
for plotting strength and direction of a magnetic field
returned by the user routine MAGFLD
There is some redundancy in the position and direction input:
indeed once X0,Y0,Z0,X1,Y1,Z1 are given, only one of the axis is
actually required, therefore the user can leave = 0.0 the three
cosine of one of the two axes.
EXPANX, EXPANY must be >= 0.1 (only their relative value matters):
smaller values are reset to the default value = 1
15) The scan output file is written (formatted/unformatted according
to SDUM) on unit LUNPGS (= 4) with the default name of
PLOTGEOM.STORE
The formatted version is self explanatory, while the unformatted
one is organised as follows:
1st record: one CHARACTER*80 variable (scan title)
2nd record: 14 REAL*4 variables:
X0,Y0,Z0,X1,Y1,Z1,TYX,TYY,TYZ,TXX,TXY,TXZ,XAXLEN,YAXLEN
(XAXLEN and YAXLEN are the x and y axis length)
Then, repeated m (m>=2, typically it is 2) times:
m1 record: two I*4 variables, representing the number of worms
NWORMS, and a dummy variable
Then, repeated I = 1, NWORMS times:
mi1 record: three I*4 variables; the first one is the worm
index (= I), the second is dummy, the third
is the worm length LENGTH, namely the number of
points in the worm.
mi2 record: (X(J),Y(J),J=1,LENGTH), where X and Y are the
abscissae and ordinates of a vector of LENGTH
points to be joined with a line (= a worm), in
the plane where the origin (0,0) corresponds to
X0,Y0,Z0 and the x and y axis to TXX,TXY,TXZ
and TYX,TYY,TYZ
In a compressed file there is just an extra record at the very
beginning of the file: it contains a CHARACTER*80 string equal
to ' ***COMPRESSED***COMPRESSED*** '
Example:
* Plot a vertical section of a geometry where x-axis points up, y-axis points
* to the right, and z-axis into the page. The PLOTGEOM file will be formatted.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
PLOTGEOM 1.0 1.0 0.0 0.0 0.0 0. FORMAT
Vertical section of the tunnel geometry at z = 35 m
-120.0 -180.0 3500.0 120.0 180.0 3500.0
1.0 0.0 0.0 0.0 1.0 0.0
1.0 1.0 0.0
1********************************************************************************
{POLARIZA}ti
defines the polarisation of a photon beam or source and activates
transport of polarised photons
WHAT(1) <= 1.0: x-axis cosine of the beam polarisation vector (electric
vector in case of photons)
|WHAT(1)| > 1.0: resets the default (no polarisation)
This value can be overridden in user routine SOURCE
by assigning a value to variable UBMPOL
Default = -2.0 (no polarisation)
WHAT(2) = y-axis cosine of the beam polarisation vector
This value can be overridden in user routine SOURCE
by assigning a value to variable VBMPOL
Default = -2.0 (no polarisation)
Default = 0.0
WHAT(3) = z-axis cosine of the beam polarisation vector
This value can be overridden in user routine SOURCE
by assigning a value to variable WBMPOL
Default = -2.0 (no polarisation)
Default = 0.0
WHAT(4) : flag for relative direction of beam and polarisation
>= 1.0: the polarisation is orthogonal to the direction of
the primary photons
< 1.0: resets the default (polarisation not orthogonal to
the direction of primaries)
This value can be overridden in user routine SOURCE
by assigning a value to the logical variable LPPERP
Default = 0.0 (the polarisation is not orthogonal to the
direction of the primaries)
WHAT(5) = polarisation fraction (see explanation in WHAT(6) below)
< 0.0: resets the default = 1.0
> 1.0: resets the default = 1.0
This value can be overridden in user routine SOURCE
by assigning a value to variable POLFRA
Default = 1.0 (fully polarised in the direction described
by WHAT(1,2,3)
WHAT(6) : flag for interpreting WHAT(5):
=< 0.0 : a fraction |WHAT(5)| of beam particles are linearly
polarised in the direction described by WHAT(1,2,3) and
the remaining fraction (1 - WHAT(5)) are not polarised
>= 1.0 : a fraction WHAT(5) of beam particles are linearly
polarised in the direction described by WHAT(1,2,3) and
the remaining fraction (1 - WHAT(5)) are polarised in
the direction orthogonal to both the beam and
that described by WHAT(1,2,3)
This value can be overridden in user routine SOURCE
by assigning a value to the logical variable LPFRAC
Default = 0.0 (only a fraction WHAT(5) of the photons is
polarised as indicated by WHAT(1,2,3), and the remaining
fraction is not polarised)
SDUM : not used
Default (option POLARIZAti not given): photons are not assumed to be
polarised
Notes:
1) The program takes care of properly normalising the cosines
unless they are badly unnormalised (in the latter case the
code would reset to no polarisation). If WHAT(4) >= 1.0, the
code makes sure that the two vectors are orthogonal within
the minimum possible rounding errors.
2) What polarisation means is dependent on the physics implemented in
the code: for the moment the only polarisation dependent effects are
Compton, Rayleigh and photoelectric for photons, where of course the
polarisation vector represents the electric field direction and must
be normal to the beam direction.
Example:
* Synchrotron radiation beam with m_e/E mrad x,y divergence (produced by a 3 GeV
* electron beam). The actual spectrum is provided by a a user-written source
* (E_max = 500 keV). Photons are fully polarised in the horizontal (y) direction
* and the polarisation is orthogonal to the direction of the primary photons
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
DEFAULTS EM-CASCA
BEAM -500.E-6 0.0 1.7033E-4 0.0 0.0 1.0PHOTON
SOURCE 0.0 0.0 0.0 0.0 0.0 0.0
POLARIZA 0.0 1.0 0.0 1.0 1.0 0.0
1********************************************************************************
{RAD-BIOL}
Description reading BIOlogical parameter CaRDs
WHAT(1) = 0 always
WHAT(2-6) = not used
SDUM = biological data file name (10 character long) the file must be
named .dat
Default = no default
The (formatted) file must contain the Alpha and Beta parameters for a
linear-quadratic cell survival curve for the various particles involved in the
simulation. It must be organized as follows (all values are read with
free format):
First line: Alpha (Gy^-1) and Beta (Gy^-2) for X-rays
Second line: number of ions species N_ion (charges) which follows,
the data for the 1st ion are supposed to be for Z=1,
those of the i_th for Z=i etc.
N_ion times:
number N_e of kinetic energy per nucleon or LET values
(see later) of the tabulation
N_e times:
3 values: kinetic energy per nucleon (MeV/n) or
LET (keV/um) and the corresponding Alpha and
Beta values for this ion
A last line (optional) with ENERGY or LET indicating whether the
tabulated values are as a function of kinetic energy per nucleon
or LET (default kinetic energy per nucleon)
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
RAD-BIOL V79_MCTPS
1********************************************************************************
{RADDECAY}
requests simulation of radioactive decays and sets the corresponding
biasing and transport conditions
See also DCYTIMES, DCYSCORE, IRRPROFI
WHAT(1) = flag for activating radioactive decays
= 1: radioactive decays activated for requested cooling times
= 2: radioactive decays activated in semi-analogue mode
= 0: ignored
= -1: reset to default
Default = no radioactive decays
WHAT(2) = flag for "patching" isomer production, while waiting for a better
production model
= 1: isomer production "patching" activated
= -1: isomer production "patching" disabled
= 0: ignored
Default: activated if non-analogue radioactive decays is requested,
disabled otherwise
WHAT(3) = number of "replicas" of the decay of each individual residual
= 0: ignored
< 0: reset to default
Default: 1 for analogue decays, 3 otherwise
WHAT(4) = switch for applying various biasing features only to prompt
particles, or only to particles originated in radioactive decays,
or to both
> 0.0: a 9-digit number "abcdefghi", where each "a-i" digit is
interpreted as follows (but see Note 4):
0.0 = ignored
1.0 = the corresponding biasing is applied to prompt
radiation only
2.0 = applied to decay radiation only
3.0 = applied to both prompt and decay radiation
and the digit position is interpreted as follows:
a = hadron/muon interaction length or decay biasing, as
defined by command LAM-BIAS
b = hadron/muon leading particle biasing (not defined at
the moment)
c = hadron/muon importance and Weight Window biasing, as
defined by commands BIASING and WW-FACTOr
d = e+/e-/gamma interaction length biasing, as defined by
command EMF-BIAS
e = e+/e-/gamma leading particle biasing, as defined by
command EMF-BIAS
f = e+/e-/gamma importance and Weight Window biasing, as
defined by commands BIASING and WW-FACTOr
g = low-energy neutron biased downscattering, as defined
by command LOW-DOWN, and non-analogue absorption, as
defined by LOW-BIAS
h = no meaning for the time being
i = low-energy neutron importance and Weight Window
biasing, as defined by commands BIASING and WW-FACTOr
= 0.0: ignored
< 0.0: reset to default
Default: all biasing is applied to prompt showers only (equivalent
to 111111111.)
WHAT(5) = multiplication factors to be applied to e+/e-/gamma transport
energy cutoffs, respectively for prompt and decay radiation
> 0.0: a 10-digit number xxxxxyyyyy, where the first and the last 5
digits are interpreted as follows (see Note 5):
xxxxx * 0.1 = transport energy cutoff multiplication factor for
beta+, beta- and gamma decay radiation
yyyyy * 0.1 = transport energy cutoff multiplication factor for
prompt e+, e- and gamma radiation
= 0.0: ignored
< 0.0: reset to default
Default: e+, e- and gamma transport energy cutoffs are unchanged:
the multiplication factors are set = 1.0 for both prompt and
decay radiation (equivalent to 0001000010.)
WHAT(6) = flag for generating beta+/beta- spectra with Coulomb and
screening corrections.
> 0.0: Coulomb and screening corrections activated
= 0.0: ignored
< 0.0: Coulomb abd screening corrections ignored
Default: Coulomb and screening corrections are considered
SDUM = not used
Default (option RADDECAY not given): no radioactive decay is activated, and
no multiplication factors are applied to transport energy cutoffs
Notes:
1) FLUKA allows for two different ways of simulating radioactive decay. In
the semi-analogue mode, (WHAT(1) > 1) each single radioactive nucleus
is treated in a Monte Carlo way like all other unstable particles: a
random decay time, random daughters, random radiation are selected and
tracked. This allows for event-by-event analysis, with the time
structure recorded in the particles age variable. It is called
semi-analogue because the radiation spectra are inclusive (i.e. no
correlated gamma cascade is reproduced, etc.) In the "activation
study" mode (WHAT(1)=1) the time evolution is calculated analytically
and all daughter nuclei and all associated radiation are considered,
but at fixed times. (See Note 6). In both cases, the emitted
particles are transported like all other secondaries, within the same
run.
2) In the analytical evolution, each radioactive nucleus can be "decayed"
several times, in order to improve statistics on, for instance, energy
deposition, as set by WHAT(3).
3) Although FLUKA allows to simulate in a same run the transport of cascade
particles and that of particles generated by decay of the produced
residual nuclei, transport and biasing need in general to be set at very
different levels. For instance, in a study of induced activity due to
photonuclear reactions, it is recommended to set the photon transport
threshold not lower than the photonuclear reaction threshold. However,
gammas produced in the decay of those residual nuclei have in general
lower energies and need to be transported with much lower energy
cutoffs (see Note 5 below).
4) Biasing can be applied to radiation products. At present, for the
biasing switch represented by WHAT(4), only the d, e and f choices are
relevant since only beta+, beta- and gamma decays are considered for the
time being.
5) Both multiplication factors imbedded in WHAT(5) must be >= 1.0. If any
of the multiplication factors is set to a value larger than 9999.0, it
is effectively considered as infinite, i.e., WHAT(5) = 0000099999. will
kill the electromagnetic cascade in the prompt part, while leaving it
untouched in the decay part. WHAT(5) = 9999900000. will do the opposite.
6) It is possible to perform on-line time evolution of decay radiation, and
to score all standard quantities (energy deposition, residuals...)
according to a user-defined irradiation profile (IRRPROFI command) and
one or more user-defined decay times (DCYTIMES command). Radiation
transport will be performed only once, and the evolution will be applied
as a weight depending on the setting of the estimator, to be defined
with the DCYSCORE command.
7) If decays are simulated in semi-analogue mode, detector results are
expressed per unit primary weight (possibly scoring together prompt
and decay particles, if requested by DCYSCORE with WHAT(1) = -1.0).
If decays are instead calculated for requested cooling times, the
results are expressed per unit time (pSv/s, cm-2/s, Bq, etc.)
8) When the source is a radioactive isotope (defined by command BEAM with
SDUM = ISOTOPE and by command HI-PROPErt), RADDECAY must be used in
semi-analogue mode (WHAT(1) > 1). The detector results are then
expressed per isotope decay. Note that command DCYSCORE must be issued
with WHAT(1) = -1, and must be applying to all relevant estimators
and detectors. Without DCYSCORE, no scoring will occur (see Note 8 to
command BEAM).
9) Different transport cutoffs for prompt and decay e+/e-/gamma can be set
also differently for each region by command EMFCUT with SDUM = PROMPT or
DELAYED. With WHAT(5) of RADDECAY it is possible only to define a ratio,
identical for all regions.
Example:
* In this example, radioactive decays are activated for requested cooling
* times, with an approximated isomer production. Each radioactive nucleus
* produced will be duplicated.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
RADDECAY 1.0 1.0 2.0 111000. 200.
* Any biasing of electrons, positrons and photons is applied only to
* prompt particles in the electromagnetic shower, and not to beta and
* gamma particles from radioactive decay.
* The transport energy cutoffs set by EMFCUT (or by DEFAULTS) are
* applied as such to decay betas and gammas, but are multiplied by a
* factor 20 when applied to prompt particles.
1********************************************************************************
{RANDOMIZ}e
sets the seeds for the double-precision random number generator RM64
WHAT(1) : logical file unit from which to read the seeds.
Default = 1.0 (reads the random number seeds from unit 1)
WHAT(2) : any number < 9.E8 (see Note 5)
Default: 54217137
WHAT(3-6), SDUM : not used
Default (option RANDOMIZe not given): standard seeds are used as
suggested by Marsaglia [Mar04]
Notes:
1) The random number generator can be now initialised in one way only,
namely to read from an external file (generated in a previous run) a
vector of 97 seeds (the file contains also some auxiliary
information). If that file is missing or empty or anyway invalid, the
code will initialise the random number generator in its default state.
2) While the number of calls to the random number generator are printed
on the standard output at the end of each primary history
(or group of histories - see WHAT(5) of option START), the
97 seeds are printed at the same time on a separate file.
Skipping calls is therefore unnecessary in order to re-start a run
at a particular point (e.g. where it stopped because of a crash).
3) It is MANDATORY to use only seeds output information as
written by the program in earlier runs ON THE SAME COMPUTER
PLATFORM. Otherwise the randomness of the number sequence
would not be guaranteed.
4) RM64 is a portable random number generator in double
precision, written in Fortran by P.R. Sala.
It is based on an algorithm by Marsaglia and Tang
[Mar04]. It gives random floating point numbers in the
interval [0,1), with 53 significant bits of mantissa.
5) Different numbers input as WHAT(2) will initialise different and
independent random number sequences, allowing the user to run
several jobs in parallel for the same problem. The default
value 54217137 is the initialiser used in Marsaglia's paper.
Example 1:
* The seeds for the random number generator will be read from the file connected
* with logical unit 1
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
RANDOMIZE 1.0 0.0 0.0 0.0 0.0 0.0 0.0
Example 2:
* This run will be completely independent statistically from the previous one
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
RANDOMIZE 1.0 4042731. 0.0 0.0 0.0 0.0 0.0
1********************************************************************************
{RESNUCLE}i
Scores stopping nuclei on a region basis.
WHAT(1) : type of products to be scored
= 1.0 : spallation products (all inelastic interactions except
those induced by neutrons below the threshold for
multigroup treatment)
= 2.0 : low energy products, i.e. those produced by neutrons
below the threshold for multigroup treatment (provided
the information is available, see Note 1).
= 3.0 : all residual nuclei are scored (if available, see above)
<= 0.0 : resets the default (= 1.0)
Default = 1.0
WHAT(2) = logical output unit
> 0.0 : formatted data are written on the WHAT(2) unit
< 0.0 : unformatted data are written on the |WHAT(2)| unit
Values of |WHAT(2)| < 21 should be avoided (with the
exception of WHAT(1) = +11).
= 0.0 : resets the default = 11.0
Default = 11.0 (standard output unit)
WHAT(3) = Maximum atomic number Z of the residual nuclei distribution
Default: according to the Z of the element(s) of the
material assigned to the scoring region
WHAT(4) = Maximum M = N - Z - (NMZ)_min of the residual nuclei
distribution (see Notes 2 and 3 below)
Default: according to the A, Z of the element(s) of the
material assigned to the scoring region.
WHAT(5) = scoring region number or name
= -1: all regions (see Note 10)
Default = 1.0
WHAT(6) = volume of the region in cm**3 (or, more in general, a
normalization factor by which the scoring shall be divided)
Default = 1.0
SDUM = any character string identifying the detector
(max. 10 characters)
Notes:
1) Elements or isotopes for which the FLUKA low-energy neutron cross
sections contain information on the production of residual nuclei
are indicated by "Y" in the "RN" column of the Table in 10} where
the components of the neutron cross section library are listed.
The same information can be obtained by setting the printing flag
in the LOW-NEUT option (WHAT(4) > 0.0). If such data are available
for a given nuclide, the following message is printed on standard
output:
(RESIDUAL NUCLEI INFORMATIONS AVAILABLE)
2) To minimise storage, nuclei are indexed by Z (with Z_min = 1) and
NMZ = N - Z (with (NMZ)_min = -5). The parameter M is defined as
M = NMZ - (NMZ)_min: therefore M_min = 1. The following relations
can also be useful:
N - Z = M + (NMZ)_min N = M + Z + (NMZ)_min
3) In the case of heavy ion projectiles the default NMZ, based
on the region material, is not necessarily sufficient to score all
the residual nuclei, which could include possible ion fragments.
4) In order to achieve reasonable results for residual nuclei
production the new evaporation module must be activated
(it is the default) and heavy fragment evaporation should
also be activated (it is not the default because of the related
large CPU penalty). Coalescence should also be activated (see
option PHYSICS for all these settings). The old evaporation is
still available, mostly because of historical reasons, but it does
not produce meaningful results for residuals. The new evaporation,
available since 1997, is far more sophisticated in this respect,
while differences in emitted particle spectra and multiplicities
are weak.
5) Starting with Fluka2006.3 protons are scored, together with 2-H,
3-H, 3-He, 4-He, at the end of their path, if transported (see
option IONTRANS). This is a change with respect to previous
versions where protons were not scored.
6) All residual nuclei are scored when they have been fully de-excited
down to their ground or isomeric state.
7) Radioactive decay of residual nuclei can be performed by FLUKA in
the same run (see commands RADDECAY, DCYSCORE, DCYTIMES and
IRRPROFIle) or can be done off-line by a user-written code (see for
instance the program USRSUWEV available with the normal FLUKA
distribution). If command IRRPROFI has been issued, RESNUCLEi
results provided by detectors associated to a cooling time index
via DCYSCORE will be expressed in Bq.
8) An example on how to read RESNUCLEi unformatted output is given
below. An explanation of the meaning of the different variables is
given in the comments at the beginning of the program. The program
lists the Z and A of the produced nuclei, followed by the
corresponding amount per unit volume.
9) A more complex program USRSUW, which allows to compute also
standard deviations over several runs, is available with the normal
FLUKA code distribution in directory $FLUPRO/flutil.
A special version of the same program, USRSUWEV, provides in
addition a calculation of induced activity and of its evolution
in time.
10) Setting WHAT(5) = -1 will provide the sum of the residual nuclei in
all regions, divided by the value set by the user for WHAT(6).
PROGRAM RDRESN
*---------------------------------------------------------------------*
* Up to MXRSNC user defined track or coll are allowed *
* izrhgh = maximum Z of the scoring (minimum Z: 1) *
* imrhgh = maximum M=N-Z-NMZ_min of the scoring *
* (minimum M: 1). Note: *
* N-Z = M + NMZ_min, N = M + Z + NMZ_min *
* itursn = type of binning: 1 = spallation products, *
* 2 = low energy neutrons products, *
* 3 = all products *
* nrursn = region *
* vursnc = volume (cm**3) of the detector *
* tiursn = scoring name *
*---------------------------------------------------------------------*
PARAMETER ( MXRSNC = 400 )
CHARACTER*10 TIURSN
CHARACTER RUNTIT*80, RUNTIM*32, FILNAM*80
DIMENSION TIURSN(MXRSNC), ITURSN(MXRSNC), NRURSN(MXRSNC),
& VURSNC(MXRSNC), IMRHGH(MXRSNC), IZRHGH(MXRSNC)
DIMENSION RNDATA(MXRSNC,100,260)
WRITE(*,*)' Type the name of the input file:'
READ (*,'(A)') FILNAM
LQ = INDEX(FILNAM,' ') - 1
OPEN (UNIT=1, FILE=FILNAM, STATUS='OLD', FORM='UNFORMATTED')
OPEN (UNIT=2, FILE=FILNAM(1:LQ)//'.txt', STATUS='UNKNOWN')
*----------- read and write 1st record ---------------------------------
READ (1) RUNTIT, RUNTIM, WEIPRI, NCASE
WRITE(2,100) RUNTIT, RUNTIM, NCASE, WEIPRI
*------- loop on residual nuclei detector data in the present file -----
DO 1 IRN = 1, MXRSNC
READ (1, END=1000) NRN, TIURSN(NRN), ITURSN(NRN),
& NRURSN(NRN), VURSNC(NRN), IMRHGH(NRN), IZRHGH(NRN), K
IF (ABS(ITURSN(NRN)) .LE. 1) THEN
WRITE (2,200) NRN, TIURSN(NRN), NRURSN(NRN),
& VURSNC(NRN), IZRHGH(NRN), IMRHGH(NRN) + K, K + 1
ELSE IF (ABS(ITURSN(NRN)) .LE. 2) THEN
WRITE (2,300) NRN, TIURSN(NRN), NRURSN(NRN),
& VURSNC(NRN), IZRHGH(NRN), IMRHGH(NRN) + K, K + 1
ELSE
WRITE (2,400) NRN, TIURSN(NRN), NRURSN(NRN),
& VURSNC(NRN), IZRHGH(NRN), IMRHGH(NRN) + K, K + 1
END IF
WRITE(2,'(/,A)') ' Z A Residual nuclei'
WRITE(2,'(A,/)') ' per cm**3 per primary'
READ (1) ((RNDATA(NRN,I,J), I=1,IZRHGH(NRN)), J=1,IMRHGH(NRN))
DO 2 I = 1, IZRHGH(NRN)
DO 3 J = 1, IMRHGH(NRN)
IF(RNDATA(NRN,I,J) .GT. 0.)
& WRITE(2,'(2I4,1P, G15.6)') I, J+K+2*I, RNDATA(NRN,I,J)
3 CONTINUE
2 CONTINUE
1 CONTINUE
1000 CONTINUE
100 FORMAT(/,1X,'*****',2X,A80,2X,'*****',/,/,10X,A32,/,/,
& 10X,'Total number of particles followed ',I9,', for a ',
& 'total weight of ',1P,E15.8,/)
200 FORMAT (/,3X,'Res. nuclei n. ',I3,' "',A10,
& '" , "high" energy products, region n. ',I5,
& /,6X,'detector volume: ',1P,E11.4,' cm**3',/
& 6X,'Max. Z: ',I3,', Max. N-Z: ',I3,' Min. N-Z:',I3)
300 FORMAT (/,3X,'Res. nuclei n. ',I3,' "',A10,
& '" , "low" energy products, region n. ',I5,
& /,6X,'detector volume: ',1P,E11.4,' cm**3',/
& 6X,'Max. Z: ',I3,', Max. N-Z: ',I3,' Min. N-Z:',I3)
400 FORMAT (/,3X,'Res. nuclei n. ',I3,' "',A10,
& '" , all products, region n. ',I5,
& /,6X,'detector volume: ',1P,E11.4,' cm**3',/
& 6X,'Max. Z: ',I3,', Max. N-Z: ',I3,' Min. N-Z:',I3)
END
Example:
* Calculate residual nuclei produced in an iron slab (region 6) and in a zinc
* vessel (region 10). Heavy recoils are transported (option IONTRANS) and scored
* at the point where they stop. The new evaporation model is activated to ensure
* a better quality of the results. For iron, all residual nuclei are scored. For
* zinc, no data are available for low-energy neutrons, so only nuclei produced
* by spallation/evaporation are scored. Results are written (formatted) on
* logical unit 22 and 23, respectively.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MATERIAL 26.0 0.0 7.87 11. 0.0 0. IRON
MATERIAL 30.0 0.0 7.133 12. 0.0 0. ZINC
ASSIGNMAT 11.0 6.0 9.0 0.0 ! Four Fe slabs
ASSIGNMAT 12.0 10.0 0.0 0.0 ! Zn vessel
IONTRANS -2.0
PHYSICS 2.0 0.0 0.0 0.0 0.0 0. EVAPORAT
RESNUCLEI 3.0 22.0 0.0 0.0 6.0 0. FirstFe
RESNUCLEI 1.0 23.0 0.0 0.0 10.0 0. Znvessel
1********************************************************************************
{ROT-DEFI}ni
Defines rotations and translations to be applied to binnings and lattices
See also EVENTBIN, ROTPRBIN, USRBIN, and LATTICE (in Chap. 8})
WHAT(1) : assigns a transformation index and the corresponding
rotation axis
=< 0.0 : the card is ignored if SDUM is empty, otherwise SDUM is
kept as the rotation name, and the first free rotation
number is used
> 1000 : interpreted as j + i * 1000
> 100 and < 1000 : interpreted as i + j * 100
(note the inversion of i and j!)
> 0 and =< 100 : interpreted as i, and j assumed to be = 0
where i = index of the rotation
j = 1 rotation with respect to x axis
= 2 rotation with respect to y axis
= 0 or 3 rotation with respect to z axis
(see Note 4)
Default = 0.0 (no transformation defined)
WHAT(2) = Polar angle of the rotation (Theta, 0...180 degrees)
Default = no default
WHAT(3) = Azimuthal angle of the rotation (Phi, -180...180 degrees)
Default = no default
WHAT(4) = X_offset for the translation
Default = no default
WHAT(5) = Y_offset for the translation
Default = no default
WHAT(6) = Z_offset for the translation
Default = no default
SDUM : name of the transformation
Default: a name will provided by the program
Default (option ROT-DEFIni not given): no transformation is defined
Notes:
1) FLUKA binnings (spatial meshes independent of the problem geometry,
designed to score average or event-by-event quantities) are
generally defined as Cartesian structures parallel to the
coordinate axes, or as cylindrical structures parallel to the
z-axis. However, it is possible to define binnings with any
arbitrary position and direction in space, by means of
transformations described by commands ROT-DEFIni and ROTPRBIN.
Command ROT-DEFIni defines rotations/translations to be applied
to binnings (requested by the user by means of EVENTBIN or USRBIN).
Each transformation defined by ROT-DEFIni is assigned a number
WHAT(1) which can be applied to one or more binnings. The
correspondence between transformation index and binning number
is assigned via option ROTPRBIN.
2) Command ROT-DEFIni can be used also to define roto-translations
to be applied to lattice cells. Command LATTICE (see description
in Chap. 8, Combinatorial Geometry) sets the correspondence between
transformation index and lattice cell.
3) Command ROT-DEFIni can be used also to define roto-translations
to be applied to bodies in the geometry, as requested by the
$Start_transform....$End_transform directive (see Chap. 8,
Combinatorial Geometry).
4) The transformation matrices are:
(cth = cos(Theta), sth = sin(Theta), cph = cos(Phi), sph = sin(Phi))
j = 1 :
| X_new | | cth sth 0 | | 1 0 0 | | X_old+X_offset |
| Y_new | = | -sth cth 0 | | 0 cph sph | | Y_old+Y_offset |
| Z_new | | 0 0 1 | | 0 -sph cph | | Z_old+Z_offset |
j = 2 :
| X_new | | 1 0 0 | | cph 0 -sph | | X_old+X_offset |
| Y_new | = | 0 cth sth | | 0 1 0 | | Y_old+Y_offset |
| Z_new | | 0 -sth cth | | sph 0 cph | | Z_old+Z_offset |
j = 3 :
| X_new | | cth 0 -sth | | cph sph 0 | | X_old+X_offset |
| Y_new | = | 0 1 0 | | -sph cph 0 | | Y_old+Y_offset |
| Z_new | | sth 0 cth | | 0 0 1 | | Z_old+Z_offset |
Rij = Tik Pkj
| X_new | | cph cth sph cth -sth | | X_old+X_offset |
| Y_new | = | -sph cph 0 | | Y_old+Y_offset |
| Z_new | | cph sth sph sth cth | | Z_old+Z_offset |
and the inverse R(^-1)ij = P(^-1)ik T(^-1)kj
| X_old | | cph -sph 0 | | cth 0 sth | |X_new| |X_offset|
| Y_old | = | sph cph 0 | | 0 1 0 | |Y_new|-|Y_offset|
| Z_old | | 0 0 1 | | -sth 0 cth | |Z_new| |Z_offset|
| X_old | | cph cth -sph cph sth | | X_new | | X_offset |
| Y_old | = | sph cth cph sph sth | | Y_new |-| Y_offset |
| Z_old | | -sth 0 cth | | Z_new | | Z_offset |
For example:
(assume zero offset and [x,y,z] = old frame, [x',y',z'] = new frame)
Theta = pi/2, Phi = 0 :
j = 1: x' = y j = 2: x' = x j = 3: x' = -z
y' = -x y' = z y' = y
z' = z z' = -y z' = x
Theta = 0, Phi = pi/2:
j = 1: x' = x j = 2: x' = -z j = 3: x' = y
y' = z y' = y y' = -x
z' = -y z' = x z' = z
That is, the vector which has position angles Theta and Phi
with respect to the j_th axis in the original system, will
become the j_th axis in the rotated system. For the special
case Theta=0 this implies a rotation of Phi in the original
frame. In practice it is more convenient to think about the
inverse rotation, the one which takes the j_th versor into
the versor with Theta and Phi
5) Note that a transformation can be defined recursively,
for example with two cards pointing to the same transformation.
If Pij is the rotation corresponding to the first card and
Tij the one corresponding to the second card, the overall
rotation will be Rij = Tik Pkj
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROT-DEFI 201.0 0.0 90.0 -100.0 80.0 -500.0
USRBIN 11.0 201.0 70.0 30.0 0.0 1000.0tot-dose
USRBIN 0.0 0.0 0.0 10.0 1.0 6.0&
ROTPRBIN -1.0 1.0 0.0 1.0 1.0 1.0
* Here the transformation is applied to a cylindrical binning.
* Track-lengths are scored in the binning with its axis
* parallel to the x-axis of the coordinate frame:
* Xmin = 100.0, Xmax = 1100.0
* Rmin = 0.0, Rmax = 30.0
* ( Y , Z ) coordinate of the binning axis = ( -80.0 , 500.0 )
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROT-DEFI 201.0 0.0 90.0 -100.0 80.0 -500. FromZtoX
USRBIN 11.0 201.0 70.0 30.0 0.0 1000.0tot-dose
USRBIN 0.0 0.0 0.0 10.0 1.0 6.0&
ROTPRBIN -1.0 FromZtoX 0.0 tot-dose 0.0 0.0
1********************************************************************************
{ROTPRBIN}
Sets the amount of storage and storage precision for binnings
(single or double). Sets also the correspondence between
rotations/translations and binnings (USRBIN or EVENTBIN), as well as
density-correction factors for user binnings (see CORRFACT).
For SDUM = RHO-FACT:
WHAT(1) = 0 --> ignored
< -1 --> reset the density to be used to default (that is
density correction factors for all user binnings
apart 252 (DOSE-H2O), 253 (ALPHA-D), and
254 (SQBETA-D), where dE/dx correction factors
are the default)
= 2 --> use dE/dx correction factors
= 1 --> use density correction factors for all other
processes
WHAT(2) = not used
WHAT(3) = not used
For all other SDUM (see below for meaning):
WHAT(1) = 0 --> ignored
=<-1 --> reset the storage precision to default (double)
all bins printed, always
= xxz01 --> set the storage precision to single
= xxz0y --> set the storage to only a fraction of the requi-
red memory, that is only xx.z percent of the
required memory for this binning is actually
allocated
= uxxz0y --> u > 0 makes the binning info printed only if non
zero bins exist
WHAT(2) = 0 --> ignored
|WHAT(2)|>100000 --> reset the associated rotation/translation to
identity (# 0)
!= 0 --> set the associated rotation/translation to
# nint(WHAT(2))
WHAT(3) = 0 --> ignored
=<-1 --> reset the number of events after which EVENTBIN
results must be printed to the default (=1)
>= 1 --> number of events after which EVENTBIN results
must be printed for the binnings given by
WHAT(4-6)
SDUM = possible index or name of a 2nd transformation associa-
ted with these binnings. Exceptionally, here SDUM can
contain an integer number, in free format, following
any of the strings "ROT#", "Rot#", "rot#", "RO#",
"Ro#", "ro#. If any one of such strings is present, an
integer identifying the associated roto-translation is
read in the following characters. Otherwise if a name
is present, it is supposed to be the (character) name
(with sign) of the associated roto-translation. The
roto-translation order is such that the one associated
with WHAT(2) is the innermost (first applied) one
For all SDUM's:
WHAT(4) = from binning "WHAT(4)" .... (default 1).
WHAT(5) = .... to binning "WHAT(5)" .... (default WHAT(4)).
WHAT(6) = .... in step of "WHAT(6)" (default 1).
Notes:
1) Command ROTPRBIN can be used for two different tasks, both related
to binnings requested by the user by means of EVENTBIN or USRBIN:
a) to define the precision used at run-time to store the
accumulated scores of selected binnings
b) to set the correspondence between the index of a transformation
(rotation/translation as defined by command ROT-DEFIni) and the
index of selected binnings.
2) The USRBIN/EVENTBIN output values are always in single precision,
regardless of the run-time storage precision used.
Run-time storage precision, which is double by default, should
never be changed for binnings defined by USRBIN to prevent severe
loss of data (adding small amounts in the rounding can result in
values no longer increasing with the number of primary particles).
However, this is unlikely to happen with EVENTBIN binnings, which
are reset at the end of each history.
3) In many cases, binnings defined by EVENTBIN result in a number of
sparse "hit" cells, while all other bins are empty (scoring zero).
In such cases, it is convenient to allocate less storage than
required by the whole binning structure.
In these circumstances, it may also be convenient to print to file
only the content of non-empty cells (see Note 2 to option EVENTBIN).
4) Binning space transformations (rotations and translations) are those
defined by a ROT-DEFIni card. That is, the variables used for
scoring are the primed one (x',y',z') (see the Notes 3 and 4 to
option ROT-DEFIni).
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROTPRBIN 85500. 0.0 0.0 2.0 6.0 2.0
* Allocate only 85.5% of the required memory to binnings 2, 4 and 6
Example 2:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROTPRBIN 10001. 0.0 0.0 3.0 5.0 0.0
* Set single storage precision for binnings 3, 4 and 5
Example 3:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROTPRBIN myMatrix energyA HEhadrA
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ROT-DEFIni 44. 0. 0. 0. 0. -16000.myMatrix
ROT-DEFIni 244. 0. 10. 0. 0. 0.myMatrix
ROT-DEFIni 44. 0. 0. 0. 10000. 10000.myMatrix
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
USRBIN 11. ENERGY -21. 1. 5. 50. energyA
USRBIN -1. -1. -5. 10. 10. 50. &
USRBIN 11. DOSE -21. 1. 5. 50. doseA
USRBIN -1. -1. -5. 10. 10. 50. &
USRBIN 11. HADGT20M -21. 1. 5. 50. HEhadrA
USRBIN -1. -1. -5. 10. 10. 50. &
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
* Associate the "myMatrix" ROT-DEFIni to the "energyA", "doseA" and "HEhadrA"
* USRBINS
1********************************************************************************
{SCORE}
Defines the (generalised) particles producing the stars to be
scored in each region.
Requests scoring of energy deposition in each region.
See also EVENTDAT, THRESHOLd, USRBIN
WHAT(1..4) : id-numbers identifying the particles or generalised
particles (see 5} for a list of particle numbers).
Depending on the (generalised) particle type, different
quantities are scored in each region (see Notes 3, 4a):
* For hadrons, photons, muons: stars
* For generalised particles 208.0 and 211.0: energy
deposition (Notes 4b, 4c)
* For generalised particles 219.0, 220.0 and 221.0:
fissions (Note 4d)
* For generalised particle 222.0, neutron balance (Note 4e)
* For generalised particles 229.0 and 230.0: unbiased
energy deposition (Note 4f)
= 0.0: no scoring per region of any of the quantities
listed above
Default: 201.0, 0.0, 0.0, 0.0 (score stars produced by
all particles)
WHAT(5), WHAT(6), SDUM: not used
Default (option SCORE not given): no scoring by region
= 0.0 : no scoring per region of stars or energy deposited
Default: 201.0, 0.0, 0.0, 0.0 (score stars produced
by all particles)
WHAT(5), WHAT(6), SDUM : not used
Default (option SCORE not given): no star or dose scoring by region
Notes:
1) The possible particle numbers are those listed in 5}, i.e.
-6.0 to 62.0 and 201.0 to 244.0. However, not all particles
can produce stars and will give meaningful results. Selecting
generalised particles 208.0 (energy) or 211.0 ("electromagnetic"
energy, i.e. energy of electrons, positrons and gamma), one can
score deposited energy (proportional to dose).
2) SCORE is one of the oldest FLUKA commands, which has been kept
unchanged because of its simplicity and easiness of use.
On the other hand, because it lacks the flexible memory
allocation of all other scoring options, there is presently
room for only 4 types of particles. Therefore, only the 4 first
valid WHAT-parameters are retained.
3) A star is a hadronic inelastic interaction occurring at an
energy higher than a threshold defined via the option
THRESHOLd (or by default higher than the transport threshold
of the interacting particle). Star scoring, traditionally used
in most high-energy shielding codes, can therefore be considered
as a form of crude collision estimator: multiplication of
star density by the asymptotic value of the inelastic
nuclear interaction length gives the fluence of hadrons
having energy higher than the current threshold. However,
this is meaningful only if the interaction length doesn't
vary appreciably with energy; therefore it is recommended
to set a scoring threshold = 50 MeV (using option THRESHOLd),
since interaction lengths are practically constant above this
energy.
Besides, star densities calculated with a 50 MeV threshold are the
basis of some established radiation protection techniques such as
the omega-factors for estimating material activation (see [Tho88],
p. 106), and the prediction of single isotope yields from the ratio
of partial to inelastic cross section. Note that such techniques
can still be used, although they have been made obsolete by more
accurate modern FLUKA capabilities (commands DCYSCORE, DCYTIMES,
IRRPROFI, RADDECAY, RESNUCLEi).
4) The SCORE card defines the following scoring:
a - scoring by region the density of stars produced by the
selected particles (if applicable, i.e. if the particles
are hadrons - but not low-energy neutrons -, photons or muons, or
families of them). Stars produced by primary particles can be
scored with id-number 210.0 (BEAMPART), all stars with 201.0
(ALL-PART).
Results will be in stars cm-3 per primary particle if region
volumes have been input by setting IVLFLG=3 in the geometry title
card (see 8}), otherwise in stars per region per primary.
b - scoring by region the total energy density, if generalised
particle 208 (ENERGY) has been selected.
Results will be in GeV cm-3 per primary if volumes have
been input, otherwise in GeV per region per primary.
To obtain dose in Gy, multiply GeV/cm3 by 1.602176462E-7/rho
(rho = density in g/cm3).
c - scoring by region the energy density deposited by electrons,
positrons and photons, if generalised particle 211 (EM-ENRGY) has
been selected. Results as in the previous Note.
d - scoring by region of fissions (or fission density), if
generalised particles 219.0 (FISSIONS), 220.0 (HE-FISS) or 221.0
(LE-FISS) have been selected. These generalised particles
refer to all fissions, high-energy fissions and low-energy
neutron fissions respectively.
Results are in fissions/cm3 per primary if volumes are input,
otherwise in number of fissions per primary.
e - scoring by region of the neutron balance (outgoing minus
incoming neutrons), if generalised particle 222.0 (NEU-BALA) has
been selected.
Results are in net number of neutrons per cm3 per primary if
volumes are input, otherwise in net neutrons per primary.
f - generalised particles 229.0 (UNB-ENER) and 230.0 (UNB-EMEN)
are similar respectively to 208.0 (ENERGY) and 211.0 (EM-ENRGY),
with the difference that the energy deposited is scored with
weight 1, independent of the actual weight of the particle. Of
course, the results will have no physical meaning, but in some
circumstances they will provide useful information about the run
itself (for instance in order to optimise biasing).
g - scoring as in all cases above but separately for each primary
event, if the EVENTDAT option is used (see).
5) A more flexible way to score by region stars, deposited energy etc.
is "region binning" by means of option USRBIN, Note 8). However,
note that in that case the results are not normalised per unit
volume.
6) In FLUKA. stars do not include spallations due to annihilating
particles.
7) SCORE does NOT define scoring done via USRBDX, USRBIN, USRCOLL and
USRTRACK.
Example 1:
* Score stars produced in each region by protons, high-energy neutrons and pions.
* Score also total energy deposition in each region.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SCORE 1.0 8.0 209.0 208.0
Example 2:
* Score stars produced by primary particles (i.e., first interactions) in each
* region. Score also in each region stars produced by photons (photonuclear
* reactions) and energy deposited by electromagnetic showers.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SCORE 210.0 7.0 211.0
Example 3:
* Score fissions produced in each region by high- and low-energy particles.
* Score also the net neutron production in each region, and the kaon stars.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SCORE 220.0 221.0 222.0 215.0
1********************************************************************************
{SOURCE}
invokes the use of a user-defined source routine SOURCE
See also BEAM, BEAMPOSit, POLARIZAti, SPECSOUR, USRICALL, USRGCALL
This option allows to input up to 18 double precision parameters
chosen by the user, to be passed to the user routine SOURCE. To
pass more than 6 parameters, two successive SOURCE cards are required.
First card:
WHAT(1..6) : user parameters to be passed to the SOURCE routine as
a double precision subarray WHASOU(1)...WHASOU(6)
(via COMMON SOURCM, in the INCLUDE file of the same name)
SDUM = any user dependent character string (not containing "&")
to be passed to the SOURCE routine as a character
variable SDUSOU (via COMMON CHSOCM, in INCLUDE file SOURCM)
Continuation card:
WHAT(1..6) : user parameters to be passed to the SOURCE routine as
a double precision subarray WHASOU(7)...WHASOU(12)
SDUM = "&" in any position in column 71 to 78 (or in the last
field if free format is used)
Default (option SOURCE not given): subroutine SOURCE is not called
Notes:
1) In many simple cases, the primary particle properties can be defined
by just two input cards: BEAM and BEAMPOS. The two options define the
type of the particle, its energy/momentum (monoenergetic or simply
distributed) and its starting position and direction (also sampled
from a few simple distributions centred around the z-axis). A third
option, POLARIZAti, can be used to complete the description of the
primaries in case they are totally or partially polarised.
2) However, there are more complex situations where the type of primary
particles and their phase space coordinates must be sampled from
different types of distributions, read from files, or generated by a
rule decided by the user. To handle these cases, it is possible to
call a user routine SOURCE which can override totally or in part the
definitions given in input. The call is activated by option SOURCE.
A default version of the routine, which leaves any other input
definition unchanged, is present in the FLUKA library. Instructions on
how to write, compile and link SOURCE are given in 13}.
3) Even when overridden by SOURCE, the momentum or kinetic energy defined
by WHAT(1) of option BEAM is meaningful, since it is taken as maximum
energy for several scoring facilities. Therefore, it is recommended to
input in any case a BEAM card with the maximum energy expected in the
current run.
4) The user has the possibility to write a flexible SOURCE routine which
can handle different cases without being recompiled and linked. The 12
WHASOU optional double precision parameters and the SDUSOU character
string can be combined to provide a multitude of possible options.
5) Initialisations (for instance reading data from files, or spectrum
normalisation needed for sampling) can be done in SOURCE itself, as
explained in 13}, or in two other user routines USRINI and USRGLO.
USRINI is called every time a card USRICALL is found in input (see 13}),
while USRGLO is called before any other initialisation made by FLUKA.
Note that more than one primary particle can be sampled in a same call
to SOURCE and loaded into stack for later transport. A further user
routine, USREIN (see 13}), which is called just after SOURCE and
before the sampled primary (or primaries) are transported, allows the
user to do an initialisation at the beginning of each event. An event
is defined as all the histories of primaries sampled in a single call
to SOURCE and of their descendants. Routine USREOU is called instead at
the end of each event.
6) In old versions of FLUKA, the call to SOURCE was requested by means of
a flag in card START. This feature has been discontinued.
Example 1:
* A user-written SOURCE routine is called without passing any parameter.
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SOURCE
Example 2:
* Here the user passes to the SOURCE routine 7 numerical values and one
* character string. These can be used as free parameters inside the routine,
* or as flags/switches to select between different options
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SOURCE 12.58 1.0 -14. 0.987651 100. 365.FLAG18
SOURCE 999.2 &
1********************************************************************************
{SPECSOUR}
defines one of the following special sources:
- two colliding beams
- Galactic Cosmic Rays
- Solar Particle Event
- synchrotron radiation
- USRBIN as source
- multiple beams
See also BEAM, BEAMAXES, BEAMPOSit, GCR-SPE, HI-PROPErt, POLARIZAti, SOURCE,
USRICALL, USRGCALL, SPOTBEAM, SPOTPOS, SPOTDIR, SPOTTRAN
This command allows to input up to 18 double precision parameters, depending
on the option specified by SDUM. A first continuation card, if required, is
marked by a "&" in any position in column 71 to 78, or in the last field if
free format is used. A possible second continuation card is similarly marked
by "&&".
For SDUM = PPSOURCE or ppsource, or CROSSASY or CROSSSYM, the source is
produced by two colliding beams.
The description of these options is presented separately in Chapter 15}.
Cosmic ray sources are requested by one of the following SDUM values:
Galactic Cosmic Rays: GCR-IONF, GCR-SPEC, GCR-ALLF
Solar Particle Events: SPE-SPEC, SPE-2003, SPE-2005
The description of these options is presented separately in Chapter 16}.
For SDUM = SYNC-RAD, SYNC-RDN, SYNC-RAS, SYNC-RDS the source consists in
synchrotron radiation photons produced by a charged particle travelling
in a magnetic field. A description of this option is presented separately
in Chapter 17}.
For SDUM = BEAMSPOT, the source consists of multiple beam spots. The user
defines though the cards SPOTBEAM, SPOTPOS, SPOTDIR and SPOTTRAN the locations,
directions, transformation and beam characteristics of those sources.
In this case, the card needs as WHAT(1) the number of beam spots that are used.
The user can define up to 15000 beam spots.
WHAT(1) >= 0.0 : Number of beam spots in the simulation
< 0.0 : The code stops
WHAT(2) <= 0.0 : The beam spots are sampled randomly, according
to their weights
= 1.0 : The beam spots are sampled sequentially each with a number of
primaries proportional to its weight
= 2.0 : The beam spots are sampled sequentially, all with
the same number of primaries, ignoring their weights
If SDUM = BIN-SOUR, a USRBIN detector is used to define the spatial
distribution of the primaries. The primary type is still defined
through the BEAM card.
Nota Bene :
- The type of particles scored in the USRBIN is irrelevant to
the primaries being launched through BIN-SOUR.
- This option can only be used with a cartesian USRBIN.
WHAT(1) = Logical unit in which to read the USRBIN file
WHAT(2) = Detector index in the specified USRBIN file
WHAT(3) = Rotation translation matrix to be applied before sampling
WHAT(4) = Rotation translation matrix to be applied after sampling
1********************************************************************************
{SPOTBEAM}
The SPOTBEAM card is used in conjunction with SPOTDIR and SPOTPOS
to define multiple beam spots. A new primary is created randomly
in any of the listed beam spots according to their respective weight
or in sequential order (see SPECSOUR).
Warning : These three cards are activated by indicating SDUM = BEAMSPOT
in the SPECSOUR card. Barring this, the spot cards will be discarded.
See also SPOTDIR, SPOTPOS, SPOTTRAN
WHAT(1) !=0.0 : particle id (Paprop) or A + 1000 Z + 100000 m for heavy ion beams
= 0.0 : particle id as per BEAM card
=-99999: special code for printout (see what(6))
Default: 0.0
WHAT(2) > 0.0 : Beam laboratory momentum (GeV/c)
< 0.0 : WHAT(2) is the beam laboratory kinetic energy/n (GeV/n)
= 0.0 : Beam momentum as per BEAM card
Default: 0.0
WHAT(3) >=0.0 : Beam spot weight (number of particles)
< 0.0 : Stops the code
WHAT(4) > 0.0 : Rectangular momentum spread (GeV/c)
< 0.0 : Gaussian momentum spread. WHAT(4) is the FWHM (GeV/c)
= 0.0 : No momentum spread
Default: 0.0
WHAT(5) > 0.0 : Rectangular angular X divergence of the beam (mrad)
< 0.0 : Gaussian angular X divergence. WHAT(5) is the FWHM (mrad)
= 0.0 : No angular X divergence
Default: 0.0
WHAT(6) > 0.0 : Rectangular angular Y divergence of the beam (mrad)
< 0.0 : Gaussian angular Y divergence. WHAT(6) is the FWHM (mrad)
= 0.0 : No angular Y divergence
Default: WHAT(5)
SDUM : Beam spot number (free format)
Default: n+1 where n is the number of the last previously defined spot
For WHAT(1) = -99999
WHAT(2-5) : not used
WHAT(6) > 0.0 : (All) beam spot infos are printed on the output
< 0.0 : resets to default (no printout)
= 0.0 : ignored
Default: -1.0
1********************************************************************************
{SPOTDIR}
The SPOTDIR card is used in conjunction with SPOTBEAM and SPOTPOS
to define multiple beam spots. A new primary is created randomly
in any of the listed beam spots according to their respective weight
or in sequential order (see SPECSOUR).
Warning : These four cards are activated by indicating SDUM = BEAMSPOT
in the SPECSOUR card. Barring this, the spot cards will be discarded.
See also SPOTBEAM, SPOTPOS, SPOTTRAN
WHAT(1) = x-cosine of the beam spot
Default : see below
WHAT(2) = y-cosine of the beam spot
Default : see below
WHAT(3) = z-cosine of the beam spot
Default : see below
WHAT(4) = x-cosine of the beam "x-axis"
Default : see below
WHAT(5) = y-cosine of the beam "x-axis"
Default : see below
WHAT(6) = z-cosine of the beam "x-axis"
Default : see below
SDUM : Beam spot number (free format)
Default: n, the number of the last defined spot
Notes:
1) If WHAT(1) = WHAT(2) = WHAT(3) = 0, the beam direction as
defined by {BEAMPOS} is used.
2) If WHAT(4) = WHAT(5) = WHAT(6) = 0, the beam x-axis direct-
ion as defined by BEAMPOS/BEAMAXES is used, if the beam
x-axis is indeed defined, the beam z-axis is the beam
direction and the y-axis is computed accordingly
3) If no SPOTDIR card is issued for an otherwise (via SPOTBEAM)
defined beam spot, the spot direction and axes are taken from
the BEAMPOS and BEAMAXES cards, assuming the beam along the
z-axis of the beam reference frame
1********************************************************************************
{SPOTPOS}
The SPOTPOS card is used in conjunction with SPOTBEAM and SPOTDIR
to define multiple beam spots. A new primary is created randomly
in any of the listed beam spots according to their respective weight
or in sequential order (see SPECSOUR).
Warning : These four cards are activated by indicating SDUM = BEAMSPOT
in the SPECSOUR card. Barring this, the spot cards will be discarded.
See also SPOTBEAM, SPOTDIR, SPOTTRAN
WHAT(1) = x-position of the beam spot
WHAT(2) = y-position of the beam spot
WHAT(3) = z-position of the beam spot
WHAT(4) > 0.0 : rectangular beam width in x-direction or
maximum beam radius depending on WHAT(6) (cm)
< 0.0 : Gaussian beam profile in the x-direction. WHAT(4) is the FWHM in cm
= 0.0 : pencil beam along x
Default : 0.0
WHAT(5) > 0.0 : rectangular beam width in y-direction or
minimum beam radius depending on WHAT(6) (cm)
< 0.0 : Gaussian beam profile in the y-direction. WHAT(5) is the FWHM in cm
= 0.0 : resets to default is no annular beam spot requested
(see WHAT(6)), ignored otherwise
Default : same as x-width if no annular beam spot requested (see WHAT(6))
WHAT(6) > 0.0 : flag for a rectangular beam spot
< 0.0 : flag for an annular beam spot
= 0.0 : ignored
Default : 0.0
SDUM : Beam spot number (free format)
Default: n, the number of the last defined spot
Notes:
1) If no SPOTPOS card is issued for an otherwise (via SPOTBEAM)
defined beam spot, the spot position and position spread are
taken from the BEAM and BEAMPOS cards
1********************************************************************************
{SPOTTRAN}
The SPOTTRAN card is used in conjunction with SPOTBEAM, SPOTDIR and
SPOTPOS to define transformation of multiple beam spots.
Warning : These four cards are activated only by indicating SDUM = BEAMSPOT
in the SPECSOUR card. Barring this, the spot cards will be discarded.
See also SPOTBEAM, SPOTDIR, SPOTPOS
WHAT(1) = index or name of a transformation to be copied into the
one defined by WHAT(2)
A -99999 value means unit transformation, whichever
other negative value resets to default
Zero is ignored
Default : 0 - no transformation
WHAT(2) = index or name of a transformation to be overwritten by
that defined by WHAT(1)
A negative number resets to default
Zero is ignored
Default : 0 - no transformation
WHAT(3) = not used
WHAT(4) = from spot number WHAT(4) ...
Default : 0
WHAT(5) = ... to spot number WHAT(5) ...
Default : WHAT(4)
WHAT(6) = ... in step of WHAT(6)
Default : 1
SDUM : DIRECT : the WHAT(1/2) transformation is applied to the
beam spot position and axes as well
INVERSE: the WHAT(1/2) inverse transformation is applied
to the beam spot position and axes
no SDUM: no transformation is applied to the beam spot
position and axes
Default : no SDUM
When a beam spot in the range indicated by WHAT(4/5/6) is
selected the transformation indicated in WHAT(2) is overwritten
by the one indicated in WHAT(1). This allows to use a generic
transformation (WHAT(2)) for all parameters/cards which require
different ones for different beam spots. Please note that the
transformation WHAT(2) is not restored after being overwritten
1********************************************************************************
{START}
defines the termination conditions, gets a primary from a beam or
from a source and starts the transport
See also RANDOMIZe, STOP
WHAT(1) = maximum number of primary histories simulated in the run
Default = 5000.
WHAT(2) = not used
WHAT(3) = time left for termination and printout (in seconds)
Default: 80
WHAT(4) = 1.0 : a core dump is triggered when the built-in abort routine,
FLABRT, is called
WHAT(5) = 0.0 : a line reporting the number of calls to the random
number generator (in hexadecimal form) is printed at
the beginning of each history only for the first
ones, and then with decreasing frequency
> 0.0 : the number of calls is printed at the beginning of
each history.
WHAT(6) = time reserved for an interactive run (in seconds)
Default: 100.0
SDUM : not used
Default (option START not given): the other input cards are read
and an echo is printed on the standard output, but no
actual simulation is performed. However two input cards,
both related to geometry, have an effect even if no
START card is present: GEOEND (with SDUM = DEBUG) and
PLOTGEOM.
In all cases in which particles are transported, START
must ALWAYS be present.
Notes:
1) The interactive time limit indicated by WHAT(6) can be used
only on some systems which can provide a signal when the time
limit is approaching. On personal workstations, generally no
time limit is enforced.
2) It is also possible to terminate a FLUKA run before the pre-set
time has expired or the total number of histories has been
completed. To this effect, the user may create a "stopping file"
(its content is irrelevant, since only its existence is checked
by the program).
When the program detects the existence of such a file, the
time left is set to zero, the run is terminated at the end
of the current history, and the stopping file itself is
erased.
The name of the stopping file is fluka.stop or rfluka.stop on UNIX.
While the presence of fluka.stop terminates only the current job,
rfluka.stop also skips the successive jobs requested via the rfluka
script.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
START 70000.0
* Request a run of 70000 primary particles
1********************************************************************************
{STEPSIZE}
sets the minimum and maximum step size on a region-by-region basis for
transport of all charged particles (hadrons, muons and electrons)
See also EMFFIX, FLUKAFIX, MULSOPT, MGNFIELD
WHAT(1) >= 0.0 : minimum step size in cm (overrides, if larger, region
by region the overall minimum step implicitly set by
WHAT(2) of MGNFIELD)
< 0.0 : whatever happens, the location of boundary intersection
will be found with an uncertainty =< |WHAT(1)|. Of
course, for a given boundary, this value should be
applied to both regions defining the boundary.
Default: no default
WHAT(2) = maximum step size in cm
Default = 100000. cm for a region without magnetic field
= 10. cm for a region with magnetic field
WHAT(3) = lower bound of the region indices in which the indicated
step size is to be applied ("From region WHAT(3)...").
Default: = 2.0
WHAT(4) = upper bound of the region indices in which the indicated
step size is to be applied ("...to region WHAT(4)...")
Default: = WHAT(3)
WHAT(5) = step length in assigning indices. ("...in steps of
WHAT(5)").
Default: 1.0
WHAT(6), SDUM : not used
Default (option STEPSIZE not given): the above defaults apply in
all regions (10 cm with magnetic field, 1.E5 cm without)
Notes:
1) This option differs from EMFFIX and FLUKAFIX for the following
main reasons:
- it is given by region rather than by material
- therefore, it is effective also in vacuum regions
- the maximum step is determined in an absolute way (i.e., in cm)
rather than in terms of maximum energy loss
- it allows to set not only a maximum but also a minimum
step length. This may be necessary in order to avoid the forcing
of extremely small steps when a low-energy charged particle
spirals in a magnetic field. Option MGNFIELD offers a similar
possibility, but not tuned by region.
2) Option STEPSIZE may be essential in and around regions of very
small dimensions or in regions where a magnetic field is present
(and is rarely required otherwise).
3) The maximum step size for a given region can be decided from
the following considerations:
- in a region with magnetic field it should not be larger than
the minimum dimension of the region itself and of its
neighbor regions. Obviously, it should also be larger than
the minimum step possibly imposed by MGNFIELD or by STEPSIZE
itself.
- in a non-vacuum region, it should not be larger than about
one-third of its minimum dimension, in order to allow
the multiple-scattering algorithm to work in optimal
conditions.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
ASSIGNMAT 2.0 15.0 30.0 5.0 1.0 0.0
* A magnetic field is present in vacuum regions 15, 20, 25 and 30.
MGNFIELD 20.0 0.2 0.10 0.0 0.0 0.0
STEPSIZE -0.05 0.0 20.0 25.0 0.0 0.0
STEPSIZE 0.3 0.0 15.0 0.0 0.0 0.0
* The maximum deviation angle due to magnetic field in any step is set
* = 20 degrees, and boundary crossings must be identified with an error
* not larger than 2 mm. If the max. angle constraint forces the step to
* be shorter than 10 cm, the step will be set = 10 cm in region 20, 25, 30,
* but will be set = 3 mm in region 15 (WHAT(1) of STEPSIZE overrides the
* general setting due to WHAT(3) of MGNFIELD). Whatever the size of the
* step, however, the accuracy of the boundary crossing position must be
* equal or better than 0.5 mm in regions 20 and 25 (probably contiguous,
* since the same accuracy must be set for regions on either side of a
* boundary). The value of the magnetic field will be provided at each
* step by the user routine MAGFLD.
The same example, name based:
ASSIGNMAT VACUUM FIRSTREG FOURTREG 5.0 1.0 0.0
MGNFIELD 20.0 0.2 0.10 0.0 0.0 0.0
STEPSIZE -0.05 0.0 SECONREG THIRDREG 0.0 0.0
STEPSIZE 0.3 0.0 FIRSTREG 0.0 0.0 0.0
1********************************************************************************
{STERNHEI}me
allows to input Sternheimer density effect parameters
See also MAT-PROP
WHAT(1) = Sternheimer -C (Cbar) parameter
WHAT(2) = Sternheimer X0 parameter
WHAT(3) = Sternheimer X1 parameter
WHAT(4) = Sternheimer a parameter
WHAT(5) = Sternheimer m parameter
WHAT(6) = Sternheimer delta0 parameter (only for single elements)
SDUM = index of the material to which Sternheimer parameters
apply. Exceptionally, here SDUM must be an integer
number, in free format, rather than a character string.
Default (option STERNHEIme not given): density effect parameters are
computed according to the Sternheimer-Peierls general
formula
Notes:
1) For gases the parameters are supposed to be given at
1.0 atm (NTP); the code takes care to scale them at the
actual pressure as given by the MAT-PROP card.
MAT-PROP can be used also to override the value of the
average ionisation potential used by the program.
Sternheimer parameters and ionisation potentials
for elements, compounds and mixtures can be found in [Ste84].
2) STERNHEIme is one of the two FLUKA options where SDUM is used to
input numerical data. (Actually, the material number is
first read as a string and then an internal reading is
performed on the string to get the number).
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
MATERIAL 29. 0.0 8.96 12. 0.0 0. COPPER
STERNHEIme 4.4190 -0.0254 3.2792 0.14339 2.9044 0.08 12
* Use the copper Sternheimer parameters published in At. Data Nucl. Data
* Tab. 30, 261-271 (1984)
1********************************************************************************
{STOP}
stops the execution of the program
See also START
WHAT(1)..WHAT(6) and SDUM : not used
Default (option STOP not given): no effect (the program stops at the
end of the run when the conditions set in the START command are
satisfied).
Inserted at any point in a FLUKA input sequence before the START
command, a card STOP interrupts input reading and de-activates all
the following cards. It can thus help in debugging input. After
START, its presence is optional and has no effect.
When running the geometry debugger or plotting a slice of the
geometry, it is often convenient to place a STOP command just after
the GEOEND cards or after the PLOTGEOM input.
Otherwise, once the debugging or plotting has been completed,
FLUKA would continue reading input cards and eventually would start
particle transport as soon as a card START is found.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
GEOEND 150. 75. 220. 30. 0. -220.DEBUG
GEOEND 120. 1. 110. 0. 0. 0. &
STOP
* Debugs the geometry and stops without starting a simulation
1********************************************************************************
{TCQUENCH}
sets time cutoffs and/or quenching factors when scoring using the USRBIN or
the EVENTBIN options.
See also TIME-CUT
WHAT(1) > 0.0 : time cutoff for scoring (seconds)
< 0.0 : resets any previously requested time cutoff to default
(infinity)
= 0.0 : ignored
WHAT(2) > 0.0 : first Birks law coefficient in g/(MeV cm2)
= 0.0 : ignored
< 0.0 : resets both Birks law coefficients to default = 0.0
WHAT(3) > 0.0 : second Birks law coefficient in g2/(MeV2 cm4)
Default = 0.0
WHAT(4) = lower index bound (or corresponding name) of binnings in which
the requested scoring time cutoff and/or Birks law coefficients
must be applied ("From binning WHAT(4)...")
Default = 1.0
WHAT(5) = upper index bound (or corresponding name) of binnings in which
the requested scoring time cutoff and/or Birks law coefficients
must be applied ("...To binning WHAT(5)..."
Default = WHAT(4)
WHAT(6) = step length in assigning indices ("...in steps of WHAT(6)").
Default = 1.0
SDUM : not used
Default (option TCQUENCH not given): no time cutoff for scoring and no
quenching of dose binning
Notes:
1) Binnings are numbered sequentially in the order they are input via
the USRBIN or EVENTBIN options. Of course, for quenching to be
applied the quantity binned must be energy (generalised particle 208
or 211). The energy deposited in a charged particle step is
"quenched" according to Birks law, i.e. it is weighted with a factor
dependent on stopping power S = dE/dx:
dE' = dE/(1 + BS + CS**2)
with B = first Birks parameter and C = Chou or second Birks
parameter [Bir64].
2) The time cutoff is useful in order to score only within a time gate
between t = 0 and t = cutoff
3) The scoring time cutoff should not be confused with the time cutoff
for transport (see TIME-CUT). Particles outside the time gate
defined by TCQUENCH are still transported and can contribute to
scoring in regions and in binnings having a different time scoring
cutoff.
4) If the source has been defined as a radioactive isotope (command
BEAM with SDUM = ISOTOPE), transport of each isotope decay secondary
starts with an age equal to the time of decay.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
TCQUENCH 20.0 7.35E-3 1.45E-5 4.0 10.0 3.0
* Set a 20 sec time scoring cutoff for binnings 4, 7 and 10, and apply to
* them the NE213 scintillator Birks parameters published by Craun and
* Smith, Nucl. Instr. Meth. 80, 239 (1970)
1********************************************************************************
{THRESHOL}d
Defines the energy threshold for star density scoring
Sets thresholds for elastic and inelastic hadron reactions
See also PART-THR, PHYSICS
WHAT(1), WHAT(2) : not used
WHAT(3) = threshold kinetic energy for hadron elastic scattering
Default: same as for particle transport (set by option
PART-THR or by default (i.e. the minimum one for which
the present FLUKA physics can work, typically 0.02 GeV
depending on the hadron)
WHAT(4) = threshold kinetic energy for hadron inelastic reactions
Default: same as for particle transport, as defined by option
PART-THR or by default. The default thresholds are: 0.001 GeV
for all neutral hadrons except neutrons, 0.02 GeV for high
energy neutrons, the Coulomb barrier for charged hadrons,
0.0 for particles which annihilate at rest - but the latter
will not undergo any inelastic interaction between the
interaction threshold, typically around 0.001 GeV, and 0.0
WHAT(5) : not used
WHAT(6) = threshold kinetic energy for star scoring
Default: the same values as set for inelastic reactions
(see WHAT(4) above)
SDUM : not used
Default (option THRESHOLd not given): the threshold for star scoring
is set at 20 MeV for protons and neutrons, and at 50 MeV for
all other hadrons
Notes:
1) The possibility to change the threshold for elastic
scattering or inelastic collisions (WHAT(3) and WHAT(4))
is not to be used in normal transport problems, but is
made available to investigate the relative importance of
different processes on the studied problem.
2) For reasons explained in Note 3) to command SCORE, it is
recommended to set the threshold for star scoring (WHAT6))
equal to 0.050 GeV overriding the default of 0.020 GeV.
A 0.050 GeV cutoff was used in the past to establish
so-called omega factors which are still currently used to
estimate induced activity (see [Ran70b,Hof75a,Hof75b]).
Stars defined in this way do not include those produced by
annihilating particles.
3) The threshold for star scoring requested by option
THRESHOLd applies ONLY to the output related to options
SCORE and USRBIN. The number of stars reported in the
summary statistics at the end of the standard output
is always based on the actual energy thresholds for
nonelastic interactions (except for neutrons for which
stars are reported above 20 MeV).
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
THRESHOLd 0.0 0.0 2.0 0.0 0.0 0.0
* Switch off elastic scattering of hadrons below 2 GeV
Example 2:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
THRESHOLd 0.0 0.0 0.0 0.0 0.0 0.05
* Score stars only above 50 MeV
1********************************************************************************
{TIME-CUT}
Sets transport time cutoffs for different particles
See also TCQUENCH
WHAT(1) = transport time cutoff (nsec)
Default: no cut off
WHAT(2) : not used
WHAT(3) : not used
WHAT(4) = lower bound of the particle numbers (or corresponding name) for
which the transport time cutoff and/or the start signal is to be
applied
("From particle WHAT(4)...").
Default = 1.0
WHAT(5) = upper bound of the particle numbers (or corresponding name) for
which the transport time cutoff and/or the start signal is to be
applied
("...to particle WHAT(5)...").
Default = WHAT(4) if WHAT(4) > 0, all particles otherwise.
WHAT(6) = step length in assigning numbers. ("...in steps of WHAT(6)").
Default = 1.0
SDUM : not used
Default (option TIME-CUT not given): no time cutoff for particle transport
Notes:
1) The transport time cutoff should not be confused with the time
cutoff for scoring (see TCQUENCH).
2) Particles outside the time gate defined by TIME-CUT are discarded
(a summary is printed at the end of the standard output).
3) If the source has been defined as a radioactive isotope (command
BEAM with SDUM = ISOTOPE), transport of each isotope decay secondary
starts with an age equal to the time of decay.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
TIME-CUT 3000.0 0.0 0.0 8.0 0.0 0.0
* Stop transporting neutrons after 3000 nsec
1********************************************************************************
{TITLE}
defines the title of the run
WHAT(1...6), SDUM : not used
Default (option TITLE not given): the title is left blank
The title of the run must be given on the following card. Only one
title may exist: if more than one is given, only the last one is
retained. The title is printed at the top of the standard output
and of each estimator output.
Giving a title is not mandatory, but it is recommended in order
to identify the current run.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
TITLE
Neutron background: 5 GeV electrons on a Cu slab 10 cm thick, first test
1********************************************************************************
{TPSSCORE}
This card controls some scoring parameters relevant for TPS-like calculations
For SDUM=BIOTOBIN
WHAT(1) = > 0 alpha-beta cellular line index to be associated to the usrbin
defined by WHAT(4)-WHAT(6) (see RAD-BIOL)
< 0 resets to default (=0)
= 0 ignored
WHAT(2) = not used
WHAT(3) = not used
WHAT(4) = from binning "WHAT(4)" .... (def. 1)
WHAT(5) = .... to binning "WHAT(5)" .... (def. WHAT(4))
WHAT(6) = .... in step of "WHAT(6)" (def. 1)
Notes:
1)
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
RAD-BIOL A549_MCTPS
RAD-BIOL V79_MCTPS
USRBIN 11. ALPHA-D -42. 10. 0. 30.0ALPHADa
USRBIN 0. 0. 0.0 100. 600.0 &
USRBIN 11. SQBETA-D -42. 10. 0. 30.0BETADa
USRBIN 0. 0. 0.0 100. 600.0 &
USRBIN 11. ALPHA-D -43. 10. 0. 15.0ALPHADb
USRBIN 0. 0. 14.0 100. 100.0 &
USRBIN 11. SQBETA-D -43. 10. 0. 15.0BETADb
USRBIN 0. 0. 14.0 100. 100.0 &
TPSSCORE 1. ALPHADa BETADa BIOTOBIN
TPSSCORE 2. ALPHADb BETADb BIOTOBIN
1********************************************************************************
{USERDUMP}
defines a collision "tape" (or better a collision file, or a phase space
file) to be written.
This command activates calls to the user routine MGDRAW and to its entries
BXDRAW, EEDRAW, ENDRAW, SODRAW, USDRAW (see description in 13}).
The default version of the routine writes a complete dump (unformatted) of
one or more of the following:
- all source particles
- all particle trajectories
- all local (pointlike) energy deposition events
- all continuous energy deposition events
- user-defined events
Users can modify the routine by removing the existing lines of code and by
writing their own code under one or more of the entries.
If SDUM is different from UDQUENCH:
-----------------------------------
WHAT(1) >= 100 : calls to MGDRAW and/or its entries are activated as directed
by the values of WHAT(3) and WHAT(4)
= 0.0 : ignored
=< -100 : the default is reset, i.e. no dump is written
>-100 and < 100: not allowed! Originally used to request
another form of collision tape. Presently only
the "new" form of collision tape is possible
(the old one being incompatible with the present version of
FLUKA).
WHAT(2) : if the default version of MGDRAW is used, number of the
unformatted output unit.
Values of WHAT(2) < 21 must be avoided because of possible
conflicts with FLUKA pre-defined units.
If a user version is used, the output file can be defined as
formatted or unformatted, and the unit number can be defined
by an explicit OPEN statement in MGDRAW.
Default: 49
WHAT(3): if the default version of MGDRAW is used:
<= 0: source particles, trajectories, continuous and local
energy losses are all dumped
1: only source particles are dumped
2: only trajectories and continuous energy losses are
dumped
3: only local energy losses are dumped (e.g., heavy recoil
kerma, cutoff energy). Proton recoils are not included
(since recoil protons are transported by FLUKA)
4: source particles, trajectories and continuous
energy losses are dumped
5: source particles and local energy losses are
dumped
6: trajectories and all energy losses (continuous and
local) are dumped
>= 7: source particles, trajectories, continuous and local
energy losses are not dumped (but user-defined dumps
required by WHAT(4) are unaffected)
if a user version is used:
<= 0: call to MGDRAW at each particle step and at each occurrence of
a continuous energy loss, to ENDRAW at each local energy loss,
to SODRAW every time a source particle is started, to BXDRAW
at each boundary crossing, and to EEDRAW at each end of event.
1: calls to SODRAW and EEDRAW
2: calls to MGDRAW, EEDRAW and BXDRAW
3: calls to ENDRAW, EEDRAW and BXDRAW
4: calls to SODRAW, MGDRAW, EEDRAW and BXDRAW
5: calls to SODRAW, ENDRAW, EEDRAW and BXDRAW
6: calls to MGDRAW, ENDRAW, EEDRAW and BXDRAW
>= 7: no calls to MGDRAW, SODRAW, ENDRAW, EEDRAW, BXDRAW (but
calls to USDRAW and EEDRAW requested by WHAT(4) are
unaffected)
Default = 0.0 (calls are made to MGDRAW, ENDRAW, SODRAW,
BXDRAW and EEDRAW, provided WHAT(1) >= 100.0)
WHAT(4)>= 1: user-defined dumps after physical events are activated
(calls to USDRAW and EEDRAW)
= 0: ignored
< 0: resets to default (user dependent dumps after
physical events are de-activated)
Default: in the default version no calls to USDRAW are done
WHAT(5...6) = not used
SDUM = name of the output file (max. 10 characters). The user can
define a longer name by an explicit Fortran OPEN statement in
MGDRAW.
If SDUM = UDQUENCH:
-------------------
WHAT(1) : BRKMG1(1), First Birks parameter for quenching, to be used in
MGDRAW for a first material, in g/(MeV cm2)
WHAT(2) : BRKMG2(1), Second Birks parameter for quenching, to be used in
MGDRAW for the first material, in g2/(MeV2 cm4)
WHAT(3) : BRKMG1(2), First Birks parameter for quenching, to be used in
MGDRAW for a second material, in g/(MeV cm2)
WHAT(4) : BRKMG2(2), Second Birks parameter for quenching, to be used in
MGDRAW for the second material, in g2/(MeV2 cm4)
WHAT(5) : BRKMG1(3), First Birks parameter for quenching, to be used in
MGDRAW for a third material, in g/(MeV cm2)
WHAT(6) : BRKMG2(3), Second Birks parameter for quenching, to be used in
MGDRAW for the third material, in g2/(MeV2 cm4)
SDUM = UDQUENCH
Default (option USERDUMP not given): no dump will be written.
Notes:
1) The format of the default binary collision tape, the code number of
the events and the variables written for the different type of
events, are described in Chap. 11}.
Be careful, if the default version of MGDRAW is used, the amount of
output can be enormous.
2) The default options described above can be changed by modifying the
user routine MGDRAW (see description in Chap. 13}).
3) Quenching, as requested with SDUM = UDQUENCH, can be applied to
energy deposition (local at ENDRAW calls or continuous at MGDRAW
calls). Some information about Birks law can be found in Note 1) to
option TCQUENCH.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USERDUMP 200. 37.0 2.0 TRAKFILE
* It is requested to write a binary file TRAKFILE, containing all trajectories
* and continuous energy losses, and pre-connected to the logical output unit 37.
1********************************************************************************
{USERWEIG}
defines the extra weighting applied to yields scored via the
USRYIELD option, energy and star densities obtained via USRBIN, energy
deposition and star production obtained via EVENTBIN, production of
residual nuclei obtained via RESNUCLEi, currents calculated by means of
USRBDX, and fluences calculated by means of USRBDX, USRTRACK, USRCOLL and
USRBIN.
WHAT(1), WHAT(2): not used
WHAT(3) > 0.0: yields obtained via USRYIELD and fluences
or currents calculated with USRBDX, USRTRACK, USRCOLL,
USRBIN are multiplied by a user-supplied function FLUSCW
at scoring time.
1.0 =< WHAT(3) =< 2.0: FLUSCW is called before any check on the
current detector (see Note 5)
> 2.0: FLUSCW is called only after checking that the current
detector applies (see Note 5)
= 2.0 or 4.0: The routine FLDSCP is also called, applying a shift
to the current binned track
< 0.0: resets the default: no weighting
= 0.0: ignored
Default = -1.0 (no weighting)
WHAT(4) : not used
WHAT(5) > 0.0: the USRRNC user subroutine is called every time a
residual nucleus is generated
WHAT(6) > 0.0: energy and star densities obtained via
SCORE and USRBIN, as well as energy deposition and star
production obtained via EVENTBIN are multiplied by a
user-supplied function COMSCW at scoring time.
1.0 =< WHAT(6) =< 2.0: COMSCW is called before any check on the
current detector (see Note 5)
> 2.0: COMSCW is called only after checking that the current
detector applies (see Note 5)
= 2.0 or 4.0: The routine ENDSCP is also called, applying a shift
to the current binned energy loss
< 0.0: resets the default: no weighting
= 0.0: ignored
Default = -1.0 (no weighting)
SDUM : not used
Default (option USERWEIG not given): no extra weighting is applied
to any scored quantity
Notes:
1) These weights are really extra i.e. the results
are multiplied by these weights at scoring time, but
printed titles, headings and normalisations are
not necessarily valid. It is the user's responsibility
to interpret correctly the output. Actually, it is recommended
to insert into standard output a user-written notice informing
about the extra weighting.
2) Setting the incident particle weight to a value different
from 1.0 (in the BEAM card) will not affect the results,
since the latter are always normalised to unit primary weight.
3) Note that USRBIN can be used to calculate star or energy
density, and in this case function COMSCW has to be used.
But when using USRBIN to calculate tracklength fluences,
the function to be used is FLUSCW.
4) Note that functions FLUSCW, COMSCW can contain
user-written logic to tune the multiplication factor (which can
have even a value = 0 or 1!) according to position in space,
direction, energy, material, type of particle, time, binning
number etc. This allows to score only under certain conditions,
or in any case to extend considerably the capability of the code.
Similar possibilities exist for the offset provided by routines
FLDSCP and ENDSCP.
5) For some applications, a call to the user routines FLUSCW or COMSCW
is desired independently of whether the current detector applies.
But in general this is not the case and it is convenient to check
first that a score actually is taking place, saving a large number
of function calls. Different values of WHAT(3) and WHAT(6) allow
the user to choose one of the two possibilities.
6) User-written functions FLUSCW, COMSCW, FLDSCP, ENDSCP and USRRNC
are described in 13}.
Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
USERWEIG 0. 0. 0. 0. 0. 1.
* Dose and star densities will be multiplied by a value returned by
* function COMSCW according to the logic written by the user.
* No check on the detector is done before calling the function.
USERWEIG 0. 0. 4. 0. 0. 0.
* Fluences and currents will be multiplied by a value returned by
* function FLUSCW according to the logic written by the user.
* The function will be called only for detectors to which the present
* score applies.
USERWEIG 0. 0. 0. 0. 1. 0.
* Residual nuclei scoring will be possible by the subroutine USRRNC
* according to the logic written by the user.
1********************************************************************************
{USRBDX}
defines a detector for a boundary crossing fluence or current estimator
See also USRBIN, USRCOLL, USRTRACK, USRYIELD
The full definition of the detector may require two successive cards
(the second card, identified by the character '&' in any column from
71 to 78, must be given unless the corresponding defaults are
acceptable to the user)
For all SDUM's except EN-NUCL and ENERGY:
First card:
WHAT(1) = i1 + i2 * 10 + i3 * 100 + i4 * 10000, where i1, i2 i3, i4 have the
following meaning:
i1 = 1.0 : linear binning in energy and solid angle
= -1.0 : logarithmic binning in energy, linear in solid angle
= 2.0 : logarithmic binning in solid angle, linear in energy
= -2.0 : logarithmic binning in energy and solid angle
i2 = 0.0 : one way scoring
= +1.0 : two-way scoring
i3 = 0.0 : current scoring
= +1.0 : fluence scoring (inverse cosine-weighted)
i4 = 0.0 : group-wise scoring for low energy neutrons
=+/-1.0 : point-wise scoring for low energy neutrons
Default = 1.0 (one-way current, linear in energy and solid
angle, groupwise scoring)
WHAT(2) = (generalised) particle type to be scored
Default = 201.0 (all particles)
WHAT(3) = logical output unit
> 0.0 : formatted data are written on WHAT(3) unit
< 0.0 : unformatted data are written on |WHAT(3)| unit
Values of |WHAT(3)| < 21 should be avoided (with the
exception of +11).
Default = 11.0 (standard output unit)
WHAT(4) = first region defining the boundary
(in case of one-way scoring this is the upstream region)
Default = 1.0
WHAT(5) = second region defining the boundary
(in case of one-way scoring this is the downstream region)
Default = 2.0
WHAT(6) = area of the detector in cm**2
Default = 1.0 (fluence or current gets integrated over the
boundary area)
SDUM = any character string (not containing '&') identifying the
detector (max. 10 characters)
Continuation card:
WHAT(1) = maximum kinetic energy for scoring (GeV)
Default: Beam momentum value according to the BEAM option
(if no BEAM card is given, 200 GeV)
WHAT(2) = minimum kinetic energy for scoring (GeV)
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260 data set.
Default = 0.0 if linear energy binning, 0.001 GeV otherwise
WHAT(3) = number of energy intervals for scoring
Default = 10.0
WHAT(4) = maximum solid angle for scoring in sr
Default = 2 pi for one-way estimators, 4 pi for two-way
WHAT(5) = If linear angular binning: minimum solid angle for
scoring (sr)
Default = 0.0
If logarithmic angular binning: solid angle of the first
bin (sr)
Default = 0.001
WHAT(6) = number of angular bins
Default = 1.0 for linear angular binning, 3.0 otherwise
SDUM = & in any position in column 71 to 78
For SDUM = EN-NUCL:
The energy scale for all USRBDX estimators will be changed from energy
to energy per nucleon (for particles with baryon number = 0 or 1, i.e.
all elementary hadrons and leptons, nothing will be changed).
For SDUM = ENERGY:
the energy scale for all USRBDX estimators will be changed to the default,
that is total kinetic energy.
Default (option USRBDX not given): no boundary crossing estimator detector
IMPORTANT!
----------
Notes:
1) The results of a USRBDX boundary crossing estimator are given as
DOUBLE DIFFERENTIAL distributions of fluence or current in energy
and solid angle, in units of cm-2 GeV-1 sr-1 per incident primary,
EVEN WHEN ONLY 1 INTERVAL (BIN) HAS BEEN REQUESTED, which is often
the case for angular distributions. Thus, for example, when
requesting a fluence or current energy spectrum, with no angular
distribution, to obtain INTEGRAL BINNED results (fluence or current
in cm-2 PER ENERGY BIN per primary) one must multiply the value of
each energy bin by the width of the bin (even for logarithmic
binning), AND BY 2 pi or 4 pi (depending on whether one-way or
two-way scoring has been requested). This is done automatically
by the dedicated post-processing utility program USXSUW (see Note 8).
2) Angular distributions must be intended as distributions in solid angle
2 pi (1-cos(theta)), where theta is the angle between the particle
trajectory and the normal to the boundary at the point of crossing.
When logarithmic scoring is requested for angular distributions, all
intervals have the same logarithmic width (equal ratio between upper
and lower limit of the interval), EXCEPT THE FIRST ONE. The limits
of the first angular interval are zero (i.e. theta=0) and the solid
angle value indicated by the user with WHAT(5) in the continuation card.
3) If the generalised particle is 208.0 (ENERGY) or 211.0 (EM-ENRGY),
the quantity scored is differential energy fluence (if
cosine-weighted) or differential energy current (energy crossing the
surface). In both cases the quantity will be expressed in GeV per
cm2 per energy unit per steradian per primary. That can sometimes
lead to confusion since GeV cm-2 GeV-1 sr-1 = cm-2 sr-1, where
energy does not appear. Note that integrating over energy and solid
angle one gets GeV/cm2.
4) The maximum number of boundary crossing detectors that the
user can define is 1100.
5) The logical output unit for the estimator results (WHAT(3) of
the first USRBDX card) can be any one of the following:
- the standard output unit 11: estimator results will be
written on the same file as the standard FLUKA output
- a pre-connected unit (via a symbolic link on most UNIX systems,
ASSIGN under VMS, or equivalent commands on other systems)
- a file opened with the FLUKA command OPEN
- a file opened with a Fortran OPEN statement in a user-written
initialisation routine such as USRINI, USRGLO or SOURCE (see 13})
- a dynamically opened file, with a default name assigned by the
Fortran compiler (typically fort.xx or ftn.xx, with xx equal
to the chosen logical output unit number).
The results of several USRBDX detectors in a same FLUKA run can
be written on the same file, but of course only if they are all
in the same mode (all formatted, or all unformatted).
It is also possible in principle to write on the same file the
results of different kinds of estimators (USRTRACK, USRBIN, etc.)
but this is not recommended, especially in the case of an
unformatted file, because it would make very difficult any reading
and analysis.
6) When scoring neutron fluence or current, and the requested energy
interval overlaps with the structure of the low energy neutron groups,
one gets two separate tables if the default groupwise scoring is
is selected. In the lower one, interval boundaries are
forced to coincide with group boundaries. For the upper one, the
program uses the input energy limits and number of intervals to
estimate the desired interval width. The number of intervals above
the upper limit of the first low-energy neutron group is recalculated
according to such width, which is readjusted to match the number of
intervals with the least greater integer.
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260-group data set.
All group energy boundaries are listed in Table 10.4.1.1}.
7) If the scored fluence or current is that of a generalised particle
which includes neutrons (e.g. ALL-PART, ALL-NEUT, NUCLEONS, NUC&PI+-,
HAD-NEUT, and even ENERGY), the spectrum is presented in two
separate tables. One table refers to all non-neutron particles and
to neutrons with energies above the upper limit of the first low-energy
neutron group (20 MeV). In case an interval crosses 20 MeV, it will
include the contribution of neutrons with energy > 20 MeV and not that
of neutrons with energy < 20 MeV. The second table refers only to
low-energy neutrons and its interval structure is that of the neutron
energy groups.
8) A program USXSUW is available with the normal FLUKA code distribution
in directory $FLUPRO/flutil. USXSUW reads USRBDX results in binary
form from several runs and allows to compute standard deviations. It
returns double differential and cumulative fluence or current, with the
corresponding percent errors, in a file (_sum.lis), and in another file
(_tab.lis) formatted for easy plotting. It also returns a binary file
that can be read out in turn by USXSUW. The content of this file is
statistically equivalent to that of the sum of the files used to
obtain it, and it can replace them to be combined with further
output files if desired (the USXSUW program takes care of giving it
the appropriate weight).
For each detector, the _sum.lis file starts with a header summarizing
the detector characteristics. It then gives the differential and
cumulative fluxes as a function of energy, integrated over solid
angle (single differential). Below, the angular binning is detailed,
and the results of the double differential fluxes are given
(angular distributions per each energy bin).
The _tab.lis file presents the same data (except for the cumulative
values), stripped down to only keep easily plottable distributions.
When using Flair and choosing a detector in the drop-down list,
the user has the option to select the single differential data,
or the double differential one from any one of the angular bins.
In order to obtain an integrated value inside a specific solid angle
bin, the data of the bin must then be multiplied by its width.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRBDX 101.0 ANEUTRON 21.0 3.0 4.0 400.0 AntiNeu
USRBDX 5.0 0.0 200.0 0.0 0.0 0.0 &
* Calculate fluence spectrum from 0 to 5 GeV, in 200 linear energy intervals,
* of antineutrons passing from region 3 to region 4 (and not from 4 to 3).
* Write formatted results on unit 21. The area of the boundary is 400 cm2.
* A single angular interval is requested (from 0 to 2pi)
1********************************************************************************
{USRBIN}
scores distribution of one of several quantities in a regular spatial
structure (binning detector) independent from the geometry.
As an extension of the meaning, "region binnings" and "special
user-defined binnings" are also defined, where the term indicates a detector
structure not necessarily regular or independent from the geometry.
See also SCORE (scoring by region), EVENTBIN (event-by-event scoring) and
USRBDX, USRCOLL, USRTRACK, USRYIELD (fluence estimators)
The full definition of the detector may require two successive cards.
The second card, identified by the character '&' in any column from 71 to 78
(or in the last field in case of free format input), must be given unless
the corresponding defaults are acceptable to the user.
First card:
WHAT(1) : code indicating the type of binning selected. Each type is
characterised by a number of properties:
* structure of the mesh (spatial: R-Z, R-Phi-Z, Cartesian, or
special - by region, or user-defined)
* quantity scored:
- density of energy deposited (total or electromagnetic only)
- dose (total or electromagnetic only)
- star density
- fission density (total, high energy or low energy)
- neutron balance density
- activity
- specific activity
- displacements per atom
- density of non ionising energy losses (restricted or
unrestricted)
- dose equivalent: convoluting fluence with conversion
coefficients or multiplying dose by a LET-dependent quality
factor
- density of momentum transfer
- density of net charge
- fluence (track-length density)
- silicon 1 MeV-neutron equivalent fluence
- high energy hadron equivalent fluence
- thermal neutron equivalent fluence
- density of residual nuclei
- density of positron annihilation at rest
* method used for scoring (old crude algorithm where the energy
lost in a step by a charged particle is deposited in the
middle of the step, or accurate algorithm where the energy lost
is apportioned among different bins according to the
relevant step fraction - see more in Note 14)
* mesh symmetry (no symmetry, or specular symmetry around one
of the coordinate planes, or around the origin point)
0.0 <= WHAT(1) <= 8.0: Quantities scored at a point. In the case of
various types of energy deposition, quantities calculated using
the old algorithm where the energy lost in a step by a charged
particle is deposited at the step midpoint (see Note 14)
Quantity scored:
- if WHAT(2) = 208 (ENERGY), 211 (EM-ENRGY), 228 (DOSE), 229
(UNB-ENER), 230 (UNB-EMEN), 238 (NIEL-DEP), 239 (DPA-SCO),
241 (DOSE-EM), 243 (DOSEQLET) or 244 (RES-NIEL): energy or
non ionising energy density or displacements per atom or dose
equivalent calculated with a Quality Factor
- if WHAT(2) = 219 (FISSIONS), 220 (HE-FISS) or 221 (LE-FISS):
fission density
- if WHAT(2) = 222 (NEU-BALA), neutron balance density
- if WHAT(2) = 231 (X-MOMENT), 232 (Y-MOMENT) or 233
(Z-MOMENT): momentum transfer density
- if WHAT(2) = 234 (ACTIVITY) or 235 (ACTOMASS): activity or
specific activity
- if WHAT(2) = 242 (NET-CHRG): net charge density
- otherwise, density of stars produced by particles (or
families of particles) with particle code or name = WHAT(2)
Not Allowed in point-wise algorithm (but valid in track-length
apportioning algorithm below):
- WHAT(2) = 236 (SI1MEVNE), 237 (HADGT20M), 240 (DOSE-EQ),
249 (HEHAD-EQ), 250 (THNEU-EQ)
Default: 208 (ENERGY).
0.0 : Mesh: Cartesian, no symmetry
1.0 : Mesh: R-Z or R-Phi-Z, no symmetry. Phi is the azimuthal angle
around the Z axis, measured from -pi to +pi relative to the X
axis.
2.0 : Mesh: by region (1 bin corresponds to n regions, with
n = 1 to 3)
3.0 : Mesh: Cartesian, with symmetry +/- X (i.e. |x| is used for
scoring)
4.0 : Mesh: Cartesian, with symmetry +/- Y (i.e. |y| is used for
scoring).
5.0 : Mesh: Cartesian, with symmetry +/- Z (i.e. |z| is used for
scoring).
6.0 : Mesh: Cartesian, with symmetry around the origin (i.e. |x|, |y|
and |z| are used for scoring)
7.0 : Mesh: R-Z or R-Phi-Z, with symmetry +/- Z (i.e.|z| is used for
scoring)
8.0 : Special user-defined 3D binning. Two variables are
discontinuous (e.g. region number), the third one is
continuous, e.g. a user-defined function of the space
coordinates or of some energy or angular quantity. See 13.2.9}.
Variable # Type Default Override routine
1st integer region number MUSRBR
2nd integer lattice cell number LUSRBL
3rd continuous 0.0 FUSRBV
10.0 <= WHAT(1) <= 18.0: Quantities scored along a step, apportioned
among different bins according to the relevant step fraction.
In particular, in the case of various types of energy
deposition, quantities calculated using the accurate
apportioning algorithm (see Note 14)
Quantity scored:
- if WHAT(2) = 208 (ENERGY), 211 (EM-ENRGY), 228 (DOSE), 229
(UNB-ENER), 230 (UNB-EMEN), 238 (NIEL-DEP), 239 (DPA-SCO),
241 (DOSE-EM), 243 (DOSEQLET) or 244 (RES-NIEL): energy or
non ionising energy density (as such or weighted with a
Quality Factor) or displacements per atom
- if WHAT(2) = 236 (SI1MEVNE): fluence weighted by a damage
function
- if WHAT(2) = 240 (DOSE-EQ): Dose equivalent, calculated by
folding fluence with conversion coefficients
- if WHAT(2) = 249 (HEHAD-EQ) or 250 (THNEU-EQ): high energy
hadron equivalent or thermal neutron equivalent fluence
- otherwise, fluence (track-length density) of particles (or
families of particles) with particle code or name = WHAT(2)
Not Allowed in track-length apportioning algorithm (but valid
in point-wise algorithm above):
- WHAT(2) = 219 (FISSIONS), 220 (HE-FISS), 221 (LE-FISS),
222 (NEU-BALA), 231 (X-MOMENT), 232 (Y-MOMENT),
233 (Z-MOMENT), 234 (ACTIVITY), 235 (ACTOMASS),
242 (NET-CHRG)
10.0 : Mesh: Cartesian, no symmetry
11.0 : Mesh: R-Z or R-Phi-Z, no symmetry
12.0 : Mesh: by region (1 bin corresponds to n regions,
with n = 1 to 3)
13.0 : Mesh: Cartesian, with symmetry +/- X (|x| used for scoring)
14.0 : Mesh: Cartesian, with symmetry +/- Y (|y| used for scoring)
15.0 : Mesh: Cartesian, with symmetry +/- Z (|z| used for scoring)
16.0 : Mesh: Cartesian, with symmetry around the origin (|x|,|y|,
|z| used for scoring)
17.0 : Mesh: R-Z or R-Phi-Z, with symmetry +/- Z (|z| used for
scoring)
18.0 : Special user-defined 3D binning. Two variables are
discontinuous (e.g. region number), the third one is
continuous, e.g. a user-defined function of the space
coordinates or of some energy, time or angular quantity.
See 13}
Variable # Type Default Override routine
1st integer region number MUSRBR
2nd integer lattice cell number LUSRBL
3rd continuous default = 0.0 FUSRBV
Default = 0.0 (Cartesian scoring without symmetry, star density or
energy density deposited at midstep with the old algorithm)
WHAT(2) : particle (or particle family) type to be scored
If WHAT(2) = 208 (ENERGY), 211 (EM-ENRGY), 228 (DOSE), 229
(UNB-ENER), 230 (UNB-EMEN), 238 (NIEL-DEP), 239 (DPA-SCO),
241 (DOSE-EM), 243 (DOSEQLET) or 244 (RES-NIEL):
If WHAT(1) < 10, the binning will score with the old crude
algorithm energy or non ionising energy deposition (as such or
weighted with a damage function or a Quality Factor), or
displacements per atom.
If WHAT(1) >= 10, the apportioning algorithm will be used
(more accurate, see Note 14).
If WHAT(2) = 219 (FISSIONS), 220 (HE-FISS) or 221 (LE-FISS), and
WHAT(1) < 10, the binning will score fission density.
WHAT(1) >= 10 is not allowed.
If WHAT(2) = 222 and WHAT(1) < 10, neutron balance density will
be scored.
WHAT(1) >= 10 is not allowed.
If WHAT(2) = 231 (X-MOMENT), 232 (Y-MOMENT) or 233 (Z-MOMENT),
and WHAT(1) < 10, the binning will score density of momentum
transfer.
WHAT(1) >= 10 is not allowed.
If WHAT(2) = 234 (ACTIVITY) or 235 (ACTOMASS), and WHAT(1) < 10,
the binning will score activity or specific activity.
WHAT(1) >= 10 is not allowed.
If WHAT(2) = 240 (DOSE-EQ) and WHAT(1) >= 10, the binning will
score dose equivalent calculated as convolution of particle
fluences and conversion coefficients (see option AUXSCORE).
WHAT(1) < 10 is not allowed.
If WHAT(2) = 242 (NET-CHRG), the binning will score density of
net charge deposition.
WHAT(1) >= 10 is not allowed.
If WHAT(2) = 249 (HEHAD-EQ) and WHAT(1) >= 10, the binning will
score high energy hadron equivalent fluence.
WHAT(1) < 10 is not allowed.
If WHAT(2) = 250 (THNEU-EQ) and WHAT(1) >= 10, the binning will
score thermal neutron equivalent fluence.
WHAT(1) < 10 is not allowed.
Any other particle (or family of particles) requested will score:
a) if WHAT(1) < 10, density of stars produced by particles or
family of particles with particle code or name = WHAT(2).
Of course, this choice is meaningful only for particles that
can produce stars (hadrons, photons and muons).
b) if WHAT(1) >= 10, fluence of particles (or family of
particles) with particle code (or name) = WHAT(2).
Note that it is not possible to score energy fluence with this
option alone (it is possible, however, by writing a special
version of the user routine FLUSCW - see 13})
Default: 208.0 (total energy density)
WHAT(3) = logical output unit:
> 0.0 : formatted data are written on WHAT(3) unit
< 0.0 : unformatted data are written on |WHAT(3)| unit
Values of |WHAT(3)| < 21 should be avoided (with the exception
of +11).
Default: WHAT(3) = 11.0 (standard output unit)
WHAT(4) = For Cartesian binning: Xmax
For R-Z and R-Phi-Z binning: Rmax
For region binning: last region of the first region set
For special binnings, upper limit of the first user-defined
variable (last region if the default version of the MUSRBR
routine is not overridden)
No default (the user has to define a not null interval)
WHAT(5) = For Cartesian binning: Ymax
For R-Z and R-Phi-Z binning: Y coordinate of the binning axis
For region binning: last region of the second region set
For special binnings, upper limit of the second user-defined
variable (last lattice cell if the default version of the LUSRBL
routine is not overridden)
Default: 0.0 for R-Z, R-Phi-Z and region binning
No default otherwise (the user has to define a not null interval)
WHAT(6) = For R-Z, R-Phi-Z and Cartesian binnings: Zmax
For region binnings, last region of the 3rd region set
For special binnings, upper limit of the 3rd user-defined
variable (0.0 if the default version of the FUSRBV routine is
not overridden)
Default: 0.0 for region binning
No default otherwise (the user has to define a not null interval)
SDUM = any character string (not containing '&') identifying the
binning detector (max. 10 characters)
Continuation card: (not needed if the defaults are acceptable)
WHAT(1) = For Cartesian binning: Xmin (if X symmetry is requested, Xmin
cannot be negative)
For R-Z and R-Phi-Z binning: Rmin
For region binnings, first region of the first region set
Default: equal to last region (= WHAT(4) in the first USRBIN
card)
For special binnings, lower limit of the first user-defined
variable (first region if the default version of the MUSRBR
routine is not overridden)
Default: 0.0
WHAT(2) = For Cartesian binning: Ymin (if Y symmetry is requested, Ymin
cannot be negative)
For R-Z and R-Phi-Z binning: X coordinate of the binning axis
For region binnings, first region of the second region set
Default: equal to last region (= WHAT(5) in the first USRBIN
card)
For special binnings, lower limit of the second
user-defined variable (first lattice cell if the default version
of the LUSRBL routine is not overridden)
Default: 0.0
WHAT(3) = For Cartesian, R-Z and R-Phi-Z binnings: Zmin (if Z
symmetry is requested, Zmin cannot be negative)
For region binnings, first region of the third region set
Default: equal to last region (= WHAT(6) in the first USRBIN
card)
For special binnings, lower limit of the 3rd user-defined
variable (0.0 if the default version of the FUSRBV routine is not
overridden)
Default: 0.0
WHAT(4) = For Cartesian binning: number of X bins (default: 30.0)
For R-Z and R-Phi-Z binning: number of R bins (default: 50.0)
For region binnings, step increment for going from the first to
the last region of the first region set
(Default: 1)
For special binnings, step increment for going from the first to
the last "region" (or similar)
(Default: 1)
WHAT(5) = For Cartesian binning: number of Y bins (default: 30.0)
For R-Phi-Z: number of Phi bins (default is R-Z: 1 Phi bin)
For region binnings, step increment for going from the first to
the last region of the second region set
(Default: 1)
For special binnings, step increment for going from the first to
the last "lattice cell" (or similar)
(Default: 1)
WHAT(6) = For Cartesian, R-Z and R-Phi-Z binnings: number of Z bins
Default: 10.0 for Cartesian, 50.0 for R-Z and R-Phi-Z
For region binnings, step increment for going from the first to
the last region of the third region set
(Default: 1)
For special binnings, number of intervals for the third variable
(Default: 1)
SDUM = & in any position in column 71 to 78
Default (option USRBIN not given): no binning detector
Notes:
1) A "binning" is a regular spatial mesh completely independent
from the regions defined by the problem's geometry. As an extension
of the meaning, "region binnings" and "special user-defined
binnings" are also defined, where the term indicates a detector
structure not necessarily regular or independent from the geometry.
On user's request, FLUKA can calculate the distribution of several
different quantities over one or more binning structures, separated
or even overlapping.
The following quantities can be "binned":
- energy density, total or deposited by electrons, positrons
and gamma only
- dose (energy per unit mass), total or deposited by electrons,
positrons and gamma only
- star density (density of hadronic inelastic interactions)
- particle track-length density (fluence)
- dose equivalent (fluence convoluted with fluence-to-dose
equivalent conversion coefficients, or dose multiplied by a
LET-dependent Quality Factor)
- activity (per unit volume) or specific activity (per unit mass)
- density of total, high-energy and low-energy fissions
- density of neutron balance (algebraic sum of outgoing neutrons
minus incoming neutrons for all interactions)
- density of unbiased energy (physically meaningless but useful for
setting biasing parameters and debugging)
- density of momentum transfer components on the three axes
- DPA (Displacements Per Atom)
- density of Non Ionising Energy Losses deposited, unrestricted and
restricted (i.e. larger than the DPA threshold)
- silicon 1 MeV neutron-equivalent fluence
- high energy hadron equivalent fluence (see Note (8) of Chap. 5)
- thermal neutron equivalent fluence (see Note (9) of Chap. 5)
- density of net charge deposited
The available binning shapes are Cartesian (3-D rectangular, with
planes perpendicular to the coordinate axes), R-Z (2-D cylindrical,
with the cylinder axis parallel to the z-axis), and R-Phi-Z (3-D
cylindrical).
2) It is possible to define also binnings with an arbitrary orientation
in space, by means of options ROT-DEFIni and ROTPRBIN.
3) A star is a hadronic inelastic interaction at an energy higher than
a threshold defined via the option THRESHOLd (or by default higher
than the transport threshold of the interacting particle). Star
scoring (traditionally used in most high-energy shielding codes) can
therefore be considered as a form of crude collision estimator:
multiplication of star density by the asymptotic value of the
inelastic nuclear interaction length gives the fluence of hadrons
having energy higher than the current threshold. However, this is
meaningful only if the interaction length doesn't vary appreciably
with energy; therefore it is recommended to set a scoring
threshold = 50 MeV (using option THRESHOLd), since interaction
lengths are practically constant above this energy. Besides, star
densities calculated with a 50 MeV threshold are the basis of some
old techniques to estimate induced activity such as the
omega-factors [Tho88, p.106], and the prediction of single isotope
yields from the ratio of partial to inelastic cross section). These
techniques have now been made obsolete by the capability of FLUKA to
calculate directly induced activity and residual nuclei.
4) Selecting star scoring is meaningful for hadrons, photons and
muons (if their energy is sufficiently high). Any other particle
will not produce any star. And in FLUKA, stars do not include
spallations due to annihilating particles.
The results will be expressed in stars per cm3 per unit primary
weight.
5) Energy deposition will be expressed in GeV per cm3 per unit primary
weight. Doses will be expressed in GeV/g per unit primary weight. To
obtain dose in Gy, multiply GeV/g by 1.602176462E-7
6) Non Ionising Energy Losses deposited (NIEL-DEP), restricted and
unrestricted, will be expressed in GeV per cm3 per unit primary
weight.
7) Displacements Per Atom (DPA) will be expressed as average DPAs in
each bin per unit primary weight.
8) Fluence will be expressed in particles/cm2 per unit primary weight.
9) Dose equivalent will be expressed in pSv per unit primary weight.
10) Activity will be expressed in Bq/cm3 per unit primary weight.
Specific activity will be expressed in Bq/g per unit primary weight.
Scoring activity requires additional commands RADDECAY, IRRPROFI,
DCYTIMES and DCYSCORE.
11) Total, High-energy and Low-energy fissions will be expressed as
fissions/cm3 per unit primary weight.
12) Neutron balance density will be expressed as net number of produced
neutrons per cm3 per unit primary weight.
13) The results from USRBIN are normalised per unit volume and per unit
primary weight, except region binnings and special user-defined
binnings, which are normalised per unit primary weight only, for
DPA, which are given as number of displacements per atom per unit
primary weight, averaged over the bin volume, and for dose
equivalent, expressed as pSv per unit primary weight.
In case symmetries are requested, proper rescaled volumes are taken
into account for normalisation (that is, an extra factor 2 is
applied to the volume if symmetry around one plane is required, 8 if
the symmetry is around the origin)
14) When scoring energy deposition or dose, i.e. generalised particles
208 (ENERGY), 211 (EM-ENRGY), 228 (DOSE) or 241 (DOSE-EM), it is
recommended to set in the first USRBIN card WHAT(1) = 10.0, 11.0,
..., 18 (rather than 0.0, 1.0, ..., 8.0).
The difference between the two settings is the following.
With WHAT(1) = 0.0, 1.0, ..., 8.0, the energy lost in a charged
particle step is deposited in the bin corresponding to the midpoint
of the step: this is the old FLUKA algorithm, which is rather
inefficient when the step length is larger than the bin size.
The accurate algorithm, selected by setting WHAT(1) = 10.0, 11.0,
...., 18, deposits in every bin traversed by the step a fraction of
energy proportional to the respective chord (track-length
apportioning). Statistical convergence is much faster.
15) When scoring region binning and more than one set of regions is
defined, each of the sets (2 or 3) must have the same number of
regions. The first bin will contain the sum of what is contained
in the first regions of each set, the second bin the sum of
the scores of the second regions, etc.
16) The maximum number of binnings that the user can define is
400.
17) The logical output unit for the estimator results (WHAT(3) of
the first USRBIN card) can be any one of the following:
- the standard output unit 11: estimator results (that in this
case need to be formatted) will be written on the same file as
the standard FLUKA output
- a pre-connected unit (via a symbolic link on most UNIX systems,
ASSIGN under VMS, or equivalent commands on other systems)
- a file opened with the FLUKA command OPEN
- a file opened with a Fortran OPEN statement in a user-written
initialisation routine such as USRINI, USRGLO or SOURCE (see 13}).
- a dynamically opened file, with a default name assigned by the
Fortran compiler (typically fort.xx or ftn.xx, with xx equal
to the chosen logical output unit number).
18) The results of several USRBIN detectors in a same FLUKA run can be
written on the same file, but of course only if they are all in the
same mode (all formatted, or all unformatted).
19) It is also possible in principle to write on the same file the
results of different kinds of estimators (USRBDX, USRTRACK, etc.)
but this is not recommended, especially in the case of an
unformatted file, because it would make very difficult any reading
and analysis.
20) In R-Phi-Z binnings, the azimuthal angle Phi extends from -pi to +pi
(-180 to +180 degrees), where Phi = 0 corresponds to the positive
x-axis. Note that it is not possible to further restrict the domain
of Phi.
21) Binning data can be obtained also separately for each "event"
("event" = history of a primary particle and all its descendants).
See option EVENTBIN for details.
22) Two programs, USBSUW and USBREA, are available with the normal FLUKA
code distribution in directory $FLUPRO/flutil. USBSUW allows to
compute standard deviations over several runs, and returns the
standard deviations and the averages in an unformatted file. USBREA
reads an unformatted file and returns the equivalent formatted file,
including the standard deviations if the input file was produced
by USBSUW.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRBIN 10.0 ELECTRON -25.0 7.0 7.0 12.1 verythin
USRBIN -7.0 -7.0 12.0 35.0 35.0 1.0 &
* Cartesian binning of electron tracklength density, to be written
* unformatted on unit 25. Mesh is 35 bins between x = -7 and x = 7, 35 bins
* between y = -7 and y = 7, and 1 bin between z = 12 and z = 12.1
1********************************************************************************
{USRCOLL}
defines a detector for a hadron fluence collision estimator
See also USRBDX, USRBIN, USRTRACK
The full definition of the detector may require two successive cards
(the second card, identified by the character '&' in any column > 70,
must be given unless the corresponding defaults are accepted)
For all SDUM's except EN-NUCL and ENERGY:
First card:
WHAT(1) = i1 + i4 * 10000, where i1, i4, have the following meaning:
i1 = 1.0 : linear energy binning
= -1.0 : logarithmic energy binning
i4 = 0.0 : group-wise scoring for low energy neutrons
=+/-1.0 : point-wise scoring for low energy neutrons
Default = 1.0 (linear binning, groupwise scoring)
WHAT(2) = (generalised) particle type to be scored
Default = 201.0 (all particles)
WHAT(3) = logical output unit:
> 0.0 : formatted data are written on WHAT(3) unit
< 0.0 : unformatted data are written on |WHAT(3)| unit
Values of |WHAT(3)| < 21 should be avoided (with the
exception of +11).
Default = standard output unit
WHAT(4) > 0: region defining the detector
= -1: all regions (see Note 7)
Default = 1.0
WHAT(5) = volume of the detector in cm**3
Default = 1.0
WHAT(6) = number of energy bins
Default = 10.0
SDUM = any character string (not containing '&') identifying the
collision detector (max. 10 characters)
Continuation card:
WHAT(1) = maximum energy for scoring (GeV)
Default: Beam momentum value according to the BEAM option
(if no BEAM card is given, 200 GeV)
WHAT(2) = minimum energy for scoring (GeV)
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260 data set.
Default = 0.0 if linear binning, 0.001 GeV otherwise
WHAT(3)..WHAT(6) : not used
SDUM = & in any position in column 71 to 78
For SDUM = EN-NUCL:
The energy scale for all USRCOLL estimators will be changed from energy
to energy per nucleon (for particles with baryon number = 0 or 1, i.e.
all elementary hadrons and leptons, nothing will be changed).
For SDUM = ENERGY:
The energy scale for all USRCOLL estimators will be changed to the default,
that is total kinetic energy.
Default (option not given): no collision estimator detector
IMPORTANT!
----------
Notes:
1) IMPORTANT! The results of a USRCOLL collision estimator are always
given as DIFFERENTIAL distributions of fluence (or tracklength, if
the detector region volume is not specified) in energy, in units
of cm-2 GeV-1 (or cm GeV-1) per incident primary unit weight. Thus,
for example, when requesting a fluence energy spectrum, to obtain
INTEGRAL BINNED results (fluence in cm-2 or tracklength in cm PER
ENERGY BIN per primary) one must multiply the value of each energy
bin by the width of the bin (even for logarithmic binning). This is
done automatically by the dedicated post-processing utility program
USTSUW (see Note 6).
2) If the generalised particle is 208.0 (ENERGY) or 211.0 (EM-ENRGY),
the quantity scored is differential energy fluence (or tracklength,
if the detector region volume is not specified), expressed in GeV
per cm2 (or cm GeV) per energy unit per primary. That can sometimes
lead to confusion since GeV cm-2 GeV-1 = cm-2, where energy does not
appear. Note that integrating over energy one gets GeV/cm2.
3) The maximum number of collision + tracklength detectors (see
option USRTRACK) that the user can define is 2500.
4) The logical output unit for the estimator results (WHAT(3) of
the first USRCOLL card) can be any one of the following:
- the standard output unit 11: estimator results will be
written on the same file as the standard FLUKA output
- a pre-connected unit (via a symbolic link on most UNIX systems,
ASSIGN under VMS, or equivalent commands on other systems)
- a file opened with the FLUKA command OPEN
- a file opened with a Fortran OPEN statement in a user-written
initialisation routine such as USRINI, USRGLO or SOURCE (see 13})
- a dynamically opened file, with a default name assigned by the
Fortran compiler (typically fort.xx or ftn.xx, with xx equal
to the chosen logical output unit number).
The results of several USRCOLL and USRTRACK detectors in a same FLUKA
run can be written on the same file, but of course only if they are
all in the same mode (all formatted, or all unformatted).
It is also possible in principle to write on the same file the
results of different kinds of estimators (USRBDX, USRBIN, etc.) but
this is not recommended, especially in the case of an unformatted
file, because it would make very difficult any reading and analysis.
5) When scoring neutron fluence, and the requested energy interval
overlaps with the structure of the low energy neutron groups,
one gets two separate tables. In the lower one, interval boundaries
are forced to coincide with group boundaries. For the upper one,
the program uses the input energy limits and number of intervals to
estimate the desired interval width. The number of intervals above
the upper limit of the first low-energy neutron group is recalculated
according to such width, which is readjusted to match the number of
intervals with the least greater integer.
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260 data set.
All group energy boundaries are listed in Table 10.4.1.1}.
6) A program USTSUW is available with the normal FLUKA code
distribution in directory $FLUPRO/flutil. USTSUW reads USRCOLL
results in binary form from several runs and allows to compute
standard deviations. It returns differential and cumulative fluence,
with the corresponding percent errors, in a file, and differential
fluence in another file formatted for easy plotting. It also returns
a binary file that can be read out in turn by USTSUW. The content of
this file is statistically equivalent to that of the sum of the
files used to obtain it, and it can replace them to be combined with
further output files if desired (the USTSUW program takes care of
giving it the appropriate weight).
7) Setting WHAT(4) = -1 will provide the sum of the track-lengths
(calculated as number of collisions times the respective mean free
path!) in all regions, divided by the value set by the user for WHAT(5).
8) A collision estimator can only be defined for hadrons.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRCOLL -1.0 NEUTRON 23.0 15.0 540.0 350. NeutFlu
USRCOLL 250.0 1.E-14 0.0 0.0 0.0 0. &
* Calculate neutron fluence spectrum in region 15 from thermal energies to
* 250 GeV, in 350 logarithmic energy intervals (but low-energy neutrons will
* stick to the energy group structure). Write formatted results on unit 23.
* The volume of region 15 is 540 cm3.
1********************************************************************************
{USRGCALL}
Calls user dependent global initialisation.
See also USRICALL, USROCALL
The meaning of WHAT(1),...,WHAT(6), SDUM is defined by the user.
A call to the user-written routine USRGLO with 6 WHAT numerical
values and one character string SDUM as arguments is issued before
any other FLUKA initialisation if this command is found anywhere
in input.
Notes:
1) In subroutine USRGLO, WHAT and SDUM must be declared as follows:
DOUBLE PRECISION WHAT (6)
CHARACTER SDUM*8
2) A description of routine USRGLO and instructions about its use
are given in Chap. 13}
3) It is suggested that the USRGLO routine shall contain at least
the three standard INCLUDE files:
DBLPRC, DIMPAR, IOUNIT
4) Other useful files to be INCLUDEd, depending on the problem, can be
BEAMCM, CASLIM, SOURCM, SUMCOU, FLKMAT, PAPROP, SCOHLP, USRBDX,
USRBIN, USRSNC, USRTRC, USRYLD}. See Chap. 13} for more information
on INCLUDE files useful in user routines.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRGCALL 789. 321. 18.0 144.0 -27.0 3.14 SPECIAL
* Call global initialisation routine passing 6 numerical values and a string
1********************************************************************************
{USRICALL}
Calls user dependent initialisation.
See also USRGCALL, USROCALL
The meaning of WHAT(1),...,WHAT(6), SDUM is defined by the user.
A call to the user-written routine USRINI with 6 WHAT numerical
values and one character string SDUM as arguments is issued every
time this card is read
Default (option USRICALL not given): no user initialisation
Notes:
1) In subroutine USRINI, WHAT and SDUM must be declared as follows:
DOUBLE PRECISION WHAT (6)
CHARACTER SDUM*8
2) A description of routine USRINI and instructions about its
use are given in 13}
3) It is suggested that the USRINI routine shall contain at least the
three standard INCLUDE files:
DBLPRC, DIMPAR, IOUNIT
Other useful files to be INCLUDEd, depending on the problem, can be
BEAMCM, CASLIM, SOURCM, SUMCOU, FLKMAT, PAPROP, SCOHLP, USRBDX,
USRBIN, USRSNC, USRTRC, USRYLD. See 13} for more information on
INCLUDE files useful in user routines.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRICALL 123. 456. 1.0 -2.0 18.0 18. FLAG12
* Call initialisation routine passing over 6 numerical values and a string
1********************************************************************************
{USROCALL}
calls user-dependent output
See also USRICALL
The meaning of WHAT(1),...,WHAT(6), SDUM is defined by the user.
A call to the user-written routine USROUT with 6 WHAT numerical
values and one character string SDUM as arguments is issued every
time this card is read.
Default (option USROCALL not given): no user-defined output
Notes:
1) In subroutine USROUT, WHAT and SDUM must be declared as follows:
DOUBLE PRECISION WHAT (6)
CHARACTER SDUM*8
2) It is suggested that the USROUT routine shall contain at least the
three standard INCLUDE files:
DBLPRC, DIMPAR, IOUNIT
Other useful files to be INCLUDEd, depending on the problem,
can be:
BEAMCM (characteristics of beam particles),
CASLIM, SOURCM, SUMCOU (normalisation factors),
FLKMAT (info on materials),
PAPROP (particle properties),
SCOHLP (scoring help: flags identifying the different
estimators and binnings),
USRBDX, USRBIN, USRSNC, USRTRC, USRYLD (info about
different detectors and binnings)
3) See 13} for more information on INCLUDE files useful in user routines.
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USROCALL 17.0 17.0 -5.5 1.1 654.0 321. OK
* Call output routine passing over 6 numerical values and a string
1********************************************************************************
{USRTRACK}
defines a detector for a track-length fluence estimator
See also USRBDX, USRBIN, USRCOLL
The full definition of the detector may require two successive cards
(the second card, identified by the character '&' in any column > 70,
must be given unless the corresponding defaults are accepted)
For all SDUM's except EN-NUCL and ENERGY:
First card:
WHAT(1) = i1 + i4 * 10000, where i1, i4, have the following meaning:
i1 = 1.0 : linear energy binning
= -1.0 : logarithmic energy binning
i4 = 0.0 : group-wise scoring for low energy neutrons
=+/-1.0 : point-wise scoring for low energy neutrons
Default = 1.0 (linear binning, groupwise scoring)
WHAT(2) = (generalised) particle type to be scored
Default = 201.0 (all particles)
WHAT(3) = logical output unit:
> 0.0 : formatted data are written on WHAT(3) unit
< 0.0 : unformatted data are written on |WHAT(3)| unit
Values of |WHAT(3)| < 21 should be avoided (with the
exception of +11).
Default = standard output unit
WHAT(4) > 0: region defining the detector
= -1: all regions (see Note 8)
Default = 1.0
WHAT(5) = volume of the detector in cm**3
Default = 1.0
WHAT(6) = number of energy bins
Default = 10.0
SDUM = any character string (not containing '&') identifying the
track-length detector. Max. 10 characters.
Continuation card:
WHAT(1) = maximum kinetic energy for scoring (GeV)
Default: Beam momentum value according to the BEAM option
(if no BEAM card is given, 200 GeV)
WHAT(2) = minimum kinetic energy for scoring (GeV)
(default: 0 if linear binning, 0.001 GeV otherwise)
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260 data set.
WHAT(3)..WHAT(6) : not used
SDUM = & in any position in column 71 to 78
For SDUM = EN-NUCL:
The energy scale for all USRTRACK estimators will be changed from energy
to energy per nucleon (for particles with baryon number = 0 or 1, i.e.
all elementary hadrons and leptons, nothing will be changed).
For SDUM = ENERGY:
the energy scale for all USRTRACK estimators will be changed to the default,
that is total kinetic energy.
Default (option not given): no tracklength estimator detector
IMPORTANT!
----------
Notes:
1) IMPORTANT! The results of USRTRACK are always given as DIFFERENTIAL
distributions of fluence (or tracklength, if the detector region
volume is not specified) in energy, in units of cm-2 GeV-1 (or
cm GeV-1) per incident primary unit weight. Thus, for example, when
requesting a fluence energy spectrum, to obtain INTEGRAL BINNED
results (fluence in cm-2 or tracklength in cm PER ENERGY BIN per
primary) one must multiply the value of each energy bin by the width
of the bin (even for logarithmic binning). This is done automatically
by the dedicated post-processing utility program USTSUW (see Note 7).
2) If the generalised particle is 208 (ENERGY) or 211 (EM-ENRGY), the
quantity scored is differential energy fluence (or tracklength, if
the detector region volume is not specified), expressed in GeV per
cm2 (or cm GeV) per energy unit per primary. That can sometimes lead
to confusion since GeV cm-2 GeV-1 = cm-2, where energy does not appear.
Note that integrating over energy one gets GeV/cm2.
3) The maximum number of tracklength + collision detectors (see
option USRCOLL) that the user can define is 2500.
4) The logical output unit for the estimator results (WHAT(3) of
the first USRTRACK card) can be any one of the following:
- the standard output unit 11: estimator results will be
written on the same file as the standard FLUKA output
- a pre-connected unit (via a symbolic link on most UNIX systems,
ASSIGN under VMS, or equivalent commands on other systems)
- a file opened with the FLUKA command OPEN
- a file opened with a Fortran OPEN statement in a user-written
initialisation routine such as USRINI, USRGLO or SOURCE (see 13})
- a dynamically opened file, with a default name assigned by the
Fortran compiler (typically fort.xx or ftn.xx, with xx equal
to the chosen logical output unit number).
The results of several USRTRACK and USRCOLL detectors in a same
FLUKA run can be written on the same file, but of course only if
they are all in the same mode (all formatted, or all unformatted).
It is also possible in principle to write on the same file the
results of different kinds of estimators (USRBDX, USRBIN, etc.)
but this is not recommended, especially in the case of an
unformatted file, because it would make very difficult any reading
and analysis.
5) When scoring neutron fluence, and the requested energy interval
overlaps with the structure of the low energy neutron groups,
one gets two separate tables. In the lower one, interval boundaries
are forced to coincide with group boundaries. For the upper one,
the program uses the input energy limits and number of intervals to
estimate the desired interval width. The number of intervals above
the upper limit of the first low-energy neutron group is recalculated
according to such width, which is readjusted to match the number of
intervals with the least greater integer.
Note that the lowest energy limit of the last neutron group
is 1.E-14 GeV (1.E-5 eV) for the 260-group data set.
All group energy boundaries are listed in Table 10.4.1.1}.
6) If the scored fluence is that of a generalised particle which
includes neutrons (e.g. ALL-PART, ALL-NEUT, NUCLEONS, NUC&PI+-,
HAD-NEUT, and even ENERGY), the spectrum is also presented in two
separate tables. One table refers to all non-neutron particles and
to neutrons with energies above the upper limit of the first low-energy
neutron group (20 MeV). In case an interval crosses 20 MeV, it will
include the contribution of neutrons with energy > 20 MeV and not that
of neutrons with energy < 20 MeV. The second table refers only to
low-energy neutrons and its interval structure is that of the neutron
energy groups.
7) A program USTSUW is available with the normal FLUKA code distribution
in directory $FLUPRO/flutil. USTSUW reads USRTRACK results in binary
form from several runs and allows to compute standard deviations. It
returns differential and cumulative fluence, with the corresponding
percent errors, in a file, and differential fluence in another file
formatted for easy plotting. It also returns a binary file that can
be read out in turn by USTSUW. The content of this file is
statistically equivalent to that of the sum of the files used to
obtain it, and it can replace them to be combined with further
output files if desired (the USTSUW program takes care of giving it
the appropriate weight).
8) Setting WHAT(4) = -1 will provide the sum of the track-lengths in
all regions, divided by the value set by the user for WHAT(5).
Example:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRTRACK 1.0 PHOTON -24.0 16.0 4500.0 150.PhotFlu
USRTRACK 1.5 0.0 0.0 0.0 0.0 0. &
* Calculate photon fluence spectrum in region 16 from 0 to 1.5 GeV, in
* 150 linear energy intervals. Write unformatted results on
* unit 24. The volume of region 16 is 4500 cm3.
1********************************************************************************
{USRYIELD}
defines a detector to score a double-differential particle yield
around an extended or a point target
See also USRBDX
The full definition of the detector may require two successive cards
(the second card, identified by the character '&' in any column from
71 to 78, must be given unless the corresponding defaults are
acceptable to the user)
First card:
For SDUM = anything but BEAMDEF:
WHAT(1) = ie + ia * 100 + i4 * 10000, where ie and ia indicate the
two physical quantities with respect to which the double-
-differential yield is calculated.
If ie > 0, the yield will be analysed in linear intervals
with respect to the first quantity; if < 0, the yield
distribution will be binned logarithmically.
(Note that for rapidity, pseudorapidity and Feynman-x
logarithmic intervals are not available and will be forced
to linear if requested).
For the second quantity, ia, only one interval will be
considered.
|ie| or |ia| = 1 : kinetic energy in GeV
= 2 : total momentum in GeV/c
= 3 : rapidity in the lab frame
(only linear scoring available)
= 4 : rapidity in the c.m.s. frame
(only linear scoring available)
= 5 : pseudorapidity in the lab frame
(only linear scoring available)
= 6 : pseudorapidity in the c.m.s. frame
(only linear scoring available)
= 7 : Feynman-x in the lab frame (E/Ebeam)
(only linear scoring available)
= 8 : Feynman-x in the c.m.s. frame
(only linear scoring available)
= 9 : transverse momentum in GeV/c
= 10 : transverse mass in GeV
= 11 : longitudinal momentum in the lab frame (GeV/c)
= 12 : longitudinal momentum in the c.m.s. frame (GeV/c)
= 13 : total energy in GeV
= 14 : polar angle in the lab frame (see Note 6)
= 15 : polar angle in the c.m.s. frame (see Note 6)
= 16 : square transverse momentum in (GeV/c)**2
= 17 : 1/(2pi sin(theta)) weighted angle
in the lab frame (see Note 6)
= 18 : 1/(2pi p_t) weighted transverse momentum in GeV/c
= 19 : ratio laboratory momentum/beam momentum
= 20 : transverse kinetic energy
= 21 : excitation energy
= 22 : particle charge
= 23 : particle LET
( = 24 : like 14, but with input data given
in degrees rather than in radians ) (see Note 6)
( = 25 : like 15, but with input data given
in degrees rather than in radians ) (see Note 6)
= 26 : laboratory kinetic energy/nucleon
= 27 : laboratory momentum/nucleon
= 28 : particle baryonic charge
= 29 : four-momentum transfer -t
= 30 : c.m.s. longitudinal Feynman-x
(only linear scoring available)
= 31 : excited mass squared
= 32 : excited mass squared / s
= 33 : time (s)
= 34 : sin weighted angle in the lab frame (see Note 6)
= 35 : total momentum (GeV/c) in the c.m.s. frame
= 36 : total energy (GeV) in the c.m.s. frame
( = 37 : like 17, but with input data given
in degrees rather than in radians ) (see Note 6)
( = 38 : like 34, but with input data given
in degrees rather than in radians ) (see Note 6)
i4 = 0 : group-wise scoring for low energy neutrons
=+/-1 : point-wise scoring for low energy neutrons
WHAT(2) > 0.0: number or name of the (generalised) particle type to be
scored
< -800.0 and WHAT(4) = -1.0 and WHAT(5) = -2: the (generalised)
particles of type IJ ENTERING an inelastic hadronic
interaction are scored by setting WHAT(2) = -1000 -IJ
Default = 201.0 (all particles)
WHAT(3) = logical output unit:
> 0.0 : formatted data are written on WHAT(3) unit
< 0.0 : unformatted data are written on |WHAT(3)| unit
Values of |WHAT(3)| < 21.0 should be avoided (with the
exception of +11.0).
Default = 11.0 (standard output unit)
WHAT(4) > 0.0: number or name of the first region defining the boundary
(upstream region)
= -1.0 and WHAT(5) = -2.0: the yield of particles
EMERGING from inelastic hadronic interactions is scored
Default = -1.0
WHAT(5) > 0.0: number or name of the second region defining the boundary
(downstream region)
= -2.0 and WHAT(4) = -1.0: the yield of particles
EMERGING from inelastic hadronic interactions is scored
Default = -2.0
WHAT(6) = normalisation factor (the results will be divided by WHAT(6))
SDUM = detector name (max. 10 characters)
Continuation card:
WHAT(1) = Upper limit of the scoring interval for the first quantity
Default: beam momentum value in case |ie| = 1 or 2,
no default otherwise!
WHAT(2) = Lower limit of the scoring interval for the first quantity
Default: 0.0 if linear binning, 0.001 otherwise. Note that these
values might not be meaningful for all available quantities.
WHAT(3) = number of scoring intervals for the first quantity
Default: 50.
WHAT(4) = Upper scoring limit for the second quantity
Default: no default!
WHAT(5) = Lower scoring limit for the second quantity
Default: 0.0
WHAT(6) = ixa + 100 * ixm, where ixa indicates the kind of yield or
cross section desired and ixm the target material (if needed
in order to calculate cross section or particle LET,
otherwise ixm = 0). Cross sections are obtained from yields
multiplying the latter ones by the microscopic inelastic cross
section of the beam particle at beam energy on the selected
material.
ixa = 1 : plain double-differential cross section
d2 sigma / d x1 d x2 where x1, x2 are the first
and second quantity
ixa = 2 : invariant cross section E d3 sigma / dp3
ixa = 3 : plain double differential yield
d2 N / d x1 d x2 where x1, x2 are the first
and second quantity
ixa = 4 : double differential yield
d2 (x2 N) / d x1 d x2 where x1, x2 are the
first and second quantity
ixa = 5 : double differential yield
d2 (x1 N) / d x1 d x2 where x1, x2 are the
first and second quantity
ixa = 6 : double differential fluence yield
1/cos(theta) d2 N / d x1 d x2 where x1, x2 are
the first and second quantity, and theta is
the angle between the particle direction and the
NORMAL TO THE SURFACE. The same theta is
also used for x1 or x2 if the laboratory
polar angle (14 or 24) is requested
ixa = 7 : double differential yield
d2 (x2 x2 N) / d x1 d x2 where x1, x2 are
the first and second quantity
ixa = 8 : double differential yield
d2 (x1 x1 N) / d x1 d x2 where x1, x2 are
the first and second quantity
ixa = 9 : double differential yield
d2 N / (x2 d x1 d x2) where x1, x2 are
the first and second quantity
ixa = 10 : double differential yield
d2 N / (x1 d x1 d x2) where x1, x2 are
the first and second quantity
ixa = 11 : double differential yield
d2 N / d (x1/x2) d x2) where x1, x2 are
the first and second quantity
ixa = 12 : double differential yield
d2 (x1 Sqrt[x1^2-x2^2] N) / d x1 d x2 where x1, x2 are
the first and second quantity
ixa = 13 : double differential yield
d2 ([x1^2+x2^2] N) / d x1 d x2 where x1, x2 are
the first and second quantity
ixa = 14 : double differential yield
d2 ([x1+x2^2] N) / (pi d x1 d x2) where x1, x2 are
the first and second quantity
ixa = 15 : double differential yield
d2 ([x1^2+x2] N) / (pi d x1 d x2) where x1, x2 are
the first and second quantity
ixa = 16 : double differential weighted fluence yield
d2 (x2 N) / d x1 d x2 cos(theta) where x1, x2 are
the first and second quantity, and theta is
the angle between the particle direction and the
NORMAL TO THE SURFACE. The same theta is
also used for x1 or x2 if the laboratory
polar angle (14 or 24) is requested
ixa = 26 : double differential weighted fluence yield
d2 (x1 N) / d x1 d x2 cos(theta) where x1, x2 are
the first and second quantity, and theta is
the angle between the particle direction and the
NORMAL TO THE SURFACE. The same theta is
also used for x1 or x2 if the laboratory
polar angle (14 or 24) is requested
ixa > 52 : as per ixa = (ixa - 50), but
double differential cross section instead of yield,
e.g. ixa = 59 is d2 sigma / (x2 d x1 d x2), while
note that ixa = 53 (i.e. d2 sigma / d x1 d x2)
coincides with ixa = 1
ixm : material number of the target for cross section or LET
calculations (default: HYDROGEN). In case of scoring
as a function of LET, it must be a material actually
assigned to some geometry region (and this way
initialised by the code).
Default: 1.0 (plain double-differential cross section)
Note that calculating a cross section has little meaning
in case of a thick target.
For SDUM = BEAMDEF:
WHAT(1) = projectile particle index, or corresponding name
Default = IJBEAM (beam particle)
WHAT(2) = target particle index, or corresponding name (used by the
code to define the c.m.s. frame)
Default: 1.0 (proton)
WHAT(3) = projectile momentum
Default = PBEAM (beam momentum)
WHAT(4,5,6) = projectile direction cosines
Default = UBEAM, VBEAM, WBEAM (beam direction cosines)
Default (option USRYIELD not given): no yield estimator detector is defined
Notes:
1) While option USRBDX calculates angular distributions WITH RESPECT TO
THE NORMAL to the boundary at the point of crossing, USRYIELD's
distributions are calculated WITH RESPECT TO A FIXED DIRECTION (the
beam direction, or a different direction specified by the user with
SDUM = BEAMDEF).
2) When scoring thick-target yields, the angle considered is that
between the direction of the particle at the point where it crosses
the target surface and the beam direction (or a different direction
specified by the user, see previous Note). The target surface is
defined as the boundary between two regions (positive values of
WHAT(4) and WHAT(5) of the first USRYIELD card.
3) Point-target yields, i.e. yields of particles emerging from
inelastic hadronic interactions with single nuclei (including
hadronic interactions by ions and real or virtual photons), are
scored by setting WHAT(4) = -1.0 and WHAT(5) = -2.0 in the first
USRYIELD card. As an alternative, the corresponding cross sections
can be calculated, depending on the value of WHAT(6) in the
continuation card.
In addition, if WHAT(2) in the same card is < -800.0, the
distributions of particles ENTERING the inelastic hadronic
interactions can be scored.
4) Calculating a cross section has little meaning in case of a thick
target. Cross sections are obtained from yields multiplying the
latter ones by the microscopic inelastic cross section of the beam
particle at beam energy on the selected material.
5) Differential yields (or cross sections) are scored over any
desired number of intervals for what concerns the first quantity,
but over only one interval for the second quantity. However, the
results are always expressed as second derivatives (or third
derivatives in the case of invariant cross sections), and NOT as
interval-integrated yields.
In order to obtain more intervals for the second quantity, the
user must define further USRYIELD detectors.
6) In the case of polar angle quantities (|ie| or |ia| = 14,15,17,24,
25,34,37,38) the differential yield is always referred to solid
angle in steradian, although input is specified in radian or
degrees.
7) When scoring yields as a function of LET, the intervals will be in
keV/(micrometer g/cm3), and the histogram will be normalized,
as usual, to the unit interval of the first and second quantities.
8) A USRYIELD card with SDUM = BEAMDEF, if given, does not refer to a
particular detector, but modifies the reference projectile or target
parameters for all USRYIELD detectors of the current run. No
continuation card has to be given after one with SDUM = BEAMDEF.
9) The logical output unit for the estimator results (WHAT(3) of the
first USRYIELD card) can be any one of the following:
- the standard output unit 11: estimator results will be written on
the same file as the standard FLUKA output
- a pre-connected unit (via a symbolic link on most UNIX systems,
ASSIGN under VMS, or equivalent commands on other systems)
- a file opened with the FLUKA command OPEN
- a file opened with a Fortran OPEN statement in a user-written
initialisation routine such as USRINI, USRGLO or SOURCE (see 13})
- a dynamically opened file, with a default name assigned by the
Fortran compiler (typically fort.xx or ftn.xx, with xx equal to
the chosen logical output unit number).
The results of several USRYIELD detectors in a same FLUKA run can be
written on the same file, but of course only if they are all in the
same mode (all formatted, or all unformatted). It is also possible
in principle to write on the same file the results of different
kinds of estimators (USRBDX, USRBIN, etc.) but this is not
recommended, especially in the case of an unformatted file, because
it would make very difficult any reading and analysis.
10) Not all 38x38 combinations of quantities are accepted by the code,
nor are they all meaningful (for instance one could run successfully
by setting WHAT(1) with ia = ie, but the result would have no
physical meaning).
11) When scoring neutron yield with energy as the first quantity, and
the requested energy interval structure overlaps with that of the
low energy neutron groups, interval boundaries are forced to
coincide with group boundaries and no interval can be smaller than
the corresponding group. Actually, the program uses the requested
energy limits and number of intervals to estimate the desired
interval width. The number of intervals above the upper limit of the
first low-energy neutron group is recalculated according to such
width. To preserve the requested upper energy limit, the width of
the first interval above the low energy groups may be smaller than
that of the others. Note that the lowest energy limit of the last
neutron group is 1.E-14 GeV (1.E-5 eV) for the 260-group data set.
All group energy boundaries are listed in Table 10.4.1.1}.
12) If the scored yield with energy as the first quantity is that of a
generalised particle which includes neutrons (e.g. ALL-PART,
ALL-NEUT, NUCLEONS, NUC&PI+-, HAD-NEUT, and even ENERGY), the
spectrum is presented in two separate tables. One table refers to
all non-neutron particles and to neutrons with energies > 20 MeV.
The second table refers only to neutrons with energy < 20 MeV, and
its interval structure is that of the neutron energy groups. In case
an interval crosses 20 MeV, it will include the contribution of
neutrons with energy > 20 MeV and not that of neutrons with
energy < 20 MeV.
13) A program USYSUW is available with the normal FLUKA code
distribution in directory $FLUPRO/flutil. USYSUW reads USRYIELD
results in binary form from several runs and allows to compute
standard deviations. It returns differential and cumulative fluence,
with the corresponding percent errors, in a file, and differential
fluence in another file formatted for easy plotting. It also returns
a binary file that can be read out in turn by USYSUW. The content of
this file is statistically equivalent to that of the sum of the
files used to obtain it, and it can replace them to be combined with
further output files if desired (the USYSUW program takes care of
giving it the appropriate weight).
14) The maximum number of yield detectors that the user can define
is 1000.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRYIELD 1399.0 13. 21.0 3.0 2.0 1.0TotPi+(E)
USRYIELD 50.0 0.001 100.03.14159265 0.0 3.0 &
* Score double differential yield of positive pions going from region 3 to
* region 2 with a polar angle between 0 and pi with respect to the beam
* direction. Energy distribution is in 100 logarithmic intervals between 1 MeV
* and 50 GeV. Normalisation factor = 1. Results are written formatted on
* unit 21.
The same example, name based:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
USRYIELD 1399.0 PION+ 21.0 ThirdReg RegioTwo 1.0TotPi+(E)
USRYIELD 50.0 0.001 100.03.14159265 0.0 3.0 &
1********************************************************************************
{WW-FACTO}r
defines Weight Windows in selected regions
See also BIASING, WW-THRESh, WW-PROFIle
Attention: Option WW-FACTOr alone is not sufficient to define a
weight window. One or more WW-THRESH cards are also necessary in
order to activate the window.
WHAT(1) >= 0.0 : Russian Roulette (RR) parameter (Window "bottom" weight
at the lower energy threshold set by WW-THRESh).
< 0.0 : resets to -1.0 a possible positive value set in a
previous WW-FACTOr card
This value can be modified by WHAT(4) in option WW-THRESh or
by WHAT(2) in WW-PROFIle, and can be overridden in the user
routine UBSSET (argument WWLOW in the calling list, see 13})
Default = -1.0 (no RR)
WHAT(2) > 1.7*WHAT(1) : Splitting parameter (Window "top" weight at
the lower energy threshold set by WW-THRESh)
= 0.0 : ignored
=< 1.7*WHAT(1) : resets to infinity (no splitting) a possible
value set in a previous WW-FACTOr card
This value can be modified by WHAT(4) in option WW-THRESh or
by WHAT(2) in WW-PROFIle, and can be overridden in the user
routine UBSSET (argument WWHIG in the calling list, see 13})
Default: infinity (no splitting)
WHAT(3) > 0.0 : Multiplicative factor to be applied to the two
energy thresholds for RR/splitting (defined by
option WW-THRESh) in the region of interest
= 0.0 : ignored
< 0.0 : resets to 1.0 a possible value set in a previous
WW-FACTOr card
This value can be overridden in the user routine UBSSET
(argument WWMUL in the calling list, see 13})
Default: 1.0 (RR/splitting thresholds are not modified)
WHAT(4) = lower bound of the region indices (or corresponding name) in
which the indicated RR and/or splitting parameters apply
("From region WHAT(4)...")
Default = 2.0
WHAT(5) = upper bound of the region indices (or corresponding name) in
which the indicated RR and/or splitting parameters apply
("...to region WHAT(5)...")
Default = WHAT(4)
WHAT(6) = step length in assigning indices. ("...in steps of
WHAT(6)").
Default = 1.0
SDUM : a number from 1.0 to 5.0 in any position, indicating the
low-energy neutron weight-window profile to be applied
in the regions selected (see WW-PROFIle). Exceptionally,
here SDUM must be a number, in free format, rather than
a character string.
= blank, zero or non numerical: ignored
< 0.0 : resets to 1.0 a possible value previously given
This value can be overridden in the user routine UBSSET
(argument JWSHPP in the calling list, see 13})
Default (if no WW-PROFIle card is present): profile number 1
Default (option WW-FACTOr or WW-THRESH not given): no weight window
Notes:
1) This option, which must be used together with WW-THRESh, allows
the user to define a very detailed weight-window for Russian
Roulette and splitting: energy-dependent, per region and per
particle.
WW-THRESh is used to set two basic energy values for each
particle (including electrons and photons but not low-energy
neutrons). From each basic couple of energies, a different
couple of thresholds is generated for each region by
multiplication with the factor provided in WHAT(3). A weight
window of minimum width is defined at the lower threshold by
its bottom and top edges (WHAT(1) and WHAT(2)); a second wider
window is obtained from it at the higher threshold by
increasing the "top edge" (splitting level) and decreasing the
"bottom edge" (RR level) by the amplification factor given
with WW-THRESh. The whole energy range is thus divided in
three parts. In the high-energy part (above the higher
threshold) the window is of infinite width, i.e. no
splitting/RR takes place. In the medium-energy range the
window narrows down continuously with decreasing energy, its
top and bottom edges varying linearly with energy between the
two thresholds. In the low-energy range the window width remains
constant and equal to the minimum value it has at the lower threshold.
2) Russian Roulette is played in a given region if the particle
weight is lower than the bottom window edge for that energy,
particle and region. The particle survives with a probability
equal to the ratio between its weight and the RR edge, and is
given a new weight equal to the RR edge itself.
Splitting is performed if the particle weight is higher than
the top window edge for that energy, particle and region. The
particle is replaced by two identical ones with half its
weight. Note that the top edge must always be at least a
factor two higher than the bottom one, in order to avoid
repeated and useless changes of weight. Actually, it is
suggested to never make this factor less than 3 or 4.
3) For low-energy neutrons, a different scheme applies. Instead
of dividing the energy range into three parts (constant
window, continuously varying window, infinite window), the
window is assigned group by group by means of option
WW-PROFIle, creating a so-called "weight-window profile". On
the other hand, it is not possible to assign a different
profile to each region, but only a maximum of 5 different
profiles are allowed.
4) A form of splitting and Russian Roulette is also provided by
option BIASING. The two options, however, are different in
many respects:
- with WW-FACTOr, splitting and RR are played at the moment
a particle is taken from the stack and starts to be
transported. With BIASING, splitting/RR happens when a
particle crosses a boundary (in the case of hadrons also
- on request - before loading in stack the secondaries
from an inelastic hadron collision)
- while the criterion used by BIASING to trigger splitting/RR
depends only on the RELATIVE IMPORTANCE of various regions
of phase space, the weight window is based on ABSOLUTE
WEIGHT STANDARDS pre-assigned to different phase space
regions
- BIASING can have two purposes: when used at collisions with
RR only, i.e. reducing factor < 1, it aims at increasing the
total number of histories simulated in a given time, namely
to sample over a more extended part of phase space (e.g.
more primary interactions) without leaving any important
part not sufficiently represented. (This is also true of
leading particle biasing for electrons and photons via
option EMF-BIAS). At the same time (and this holds also for
splitting, especially when the option is used at boundary
crossing) it can be applied to sample preferentially from
those regions of phase space which contribute more to the
result.
This second purpose is also that of the WW-FACTOr weight
window, but in addition this option has the advantage to
avoid excessive weight fluctuations. These can be dangerous
in two ways. In general, if transport is biased and no
control is kept on particle weight, it can happen that too
much time is wasted by tracking particles of very low weight
which can only contribute little to the score. On the other
hand, too large weights can also be a problem. If the part
of phase space used for scoring (the "detector") is very
small (typically an element of a "binning" mesh), so that only
a limited number of particles have a chance to enter it, it is
statistically important that they all make contributions of
the same order. A rare particle of large weight crossing the
detector would give rise to an anomalous score not
compensated by opposite fluctuations.
Why should one then use BIASING and not the weight window?
The answer is that "tuning" an absolute weight by region and
energy is more powerful but also much more difficult and
time-consuming than just quantifying relative spatial
importances. In general, it requires a lot of experience
which can often be obtained only by performing repeated runs
of the same case and by making a careful statistical
analysis of history distributions in phase space. Not all
problems are worth of it and not all users are able to do it.
It can also be said that WW-FACTOr and BIASING (and other
non-analogue transport options) are not necessarily mutually
exclusive; on the contrary the weight window can be
successfully used to damp excessive fluctuations originated
by other techniques. However, it is the user's
responsibility to ensure that the average absolute weights
produced independently by the different options be of the
same order of magnitude. Otherwise, possible conflicts could
give rise to a waste of time due to an excessive rate of
weight adjustments, and even to incorrect results.
5) The weight limits defined by WW-FACTOr apply to all particles:
however, it is possible to set different values for specific
particles (see WHAT(3) of option WW-THRESh). This is especially
necessary when secondary particles are generated with a weight
much smaller than the parent particles of a different kind (for
instance, as the result of LAM-BIAS option).
6) WW-FACTOr is one of the two FLUKA options where SDUM is used to
input numerical data. (Actually, the material number is
first read as a string and then an internal reading is
performed on the string to get the number).
Example 1 (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
WW-FACTOR 76.0 1200.0 1.0 5.0 6.0 0.0
* In regions 5 and 6, set the lower weight limit = 76.0 and set the upper
* limit = 1200. No modification of the two energy thresholds.
The same example, name based:
WW-FACTOR 76.0 1200.0 1.0 Regfive Regsix 0.0
Example 2 (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
WW-FACTOR 13.0 120.0 1.5 27.0 31.0 2.0 3.
* In regions 27, 29 and 31, set the lower weight limit = 13. and set the
* upper limit = 120. The two energy thresholds set by WW-THRES are multiplied
* by a factor 1.5. Apply low-energy neutron profile number 3.
The same example, name based:
WW-FACTOR 13.0 120.0 1.5 regio27 regio31 2.0 3.
1********************************************************************************
{WW-PROFI}le
defines extra factors dependent on energy group ("profiles"), to
modify the basic setting of the low-energy neutron weight-windows in
selected sets of regions, or the low-energy neutron importances in
each region
See also BIASING, WW-FACTOr, WW-THRESh
WHAT(1) = weight-window extra factor for the profile defined by
WHAT(6), concerning the energy groups defined by WHAT(3),
WHAT(4) and WHAT(5) (both the top and bottom window levels
will be multiplied by WHAT(1))
= 0.0 : ignored
< 0.0 : resets to default (extra factor = 1.0)
Default = 1.0 (windows are not modified)
WHAT(2) = importance extra factor. See Note 3).
= 0.0 : ignored
< 0.0 : resets to default (extra factor = 1.0)
Default = 1.0 (importances are not modified)
WHAT(3) = lower bound of the group number for which the extra factor
WHAT(1) or WHAT(2) is requested ("From group WHAT(3)...")
Default = 1.0 (the group of highest energy)
WHAT(4) = upper bound of the group numbers for which the extra
factor WHAT(1) or WHAT(2) is requested ("...to group
WHAT(4)...")
Default = WHAT(3)
WHAT(5) = step length in assigning group numbers ("...in steps of
WHAT(5)").
Default = 1.0
WHAT(6) = profile number defined by WHAT(1), WHAT(3-5) (up to 5
different profiles are allowed).
Default: profile number 1.
SDUM : not used
Default (option WW-PROFIle not given): 1.0 (no extra factor)
Notes:
1) This option applies only to low-energy neutrons. It is used
to refine the basic bias setting defined by two other
options: WW-FACTOr and BIASING.
2) WHAT(1) refers to WW-FACTOr: it allows the user to tune the
weight window by energy group (WW-FACTOr does the same by
region). The profile defined will be applied to raise or
lower the weight-window levels (for low-energy neutrons only)
in a group of regions selected by means of WHAT(4-6) and SDUM
in option WW-FACTOr.
3) WHAT(2) refers to BIASING: its aim is to define a reference
weight level in each region, which is used by the program to
avoid excessive biasing in some critical cases. If the user
has defined a weight-window (options WW-FACTOr and WW-THRESh), the
reference weight level is not needed because it is derived directly
from the window parameters. If the user has not defined a
weight-window but has defined region importances (option
BIASING), the reference weight level for a region is assumed
in most cases to be the inverse of the corresponding
importance. However, since importance biasing is not based on
absolute values of importance but on importance ratios, in
some rare cases the user may give importances which are not
equal to the inverse of the average particle weight, but only
proportional to it. (This is in order to better exploit the
full importance range, since for technical reasons in FLUKA
allowed importance values range only from 0.0001 to 10000.).
In such cases it is possible to multiply all the importances
by a factor WHAT(2) ONLY FOR THE PURPOSE OF CALCULATING THE
REFERENCE WEIGHT LEVEL.
Modification of importances by a factor WHAT(2) apply to ALL
regions (but only for low-energy neutrons). If neither
weight-window nor importances have been given, FLUKA still
calculates a weight reference level from the ratio of physical to
biased non-absorption probability. If a particle's weight exceeds
the reference level in a given region by more than a factor
calculated at run time, non-absorption probability biasing is
switched off and transport continues according to the physical
absorption probabilities (analogue transport).
Example 1:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
WW-PROFIle 0.9 0.0 1. 11. 0.0 4.0
WW-PROFIle 0.7 0.0 12. 70. 0.0 4.0
WW-PROFIle 0.5 0.0 71. 260. 0.0 4.0
* Profile n. 4 is defined a multiplication factor for weight windows, where
* the upper and the lower weight limits (as defined by WW-FACTOr and
* WW-THRESh) are multiplied by 0.9 for the first 11 neutron groups, by 0.7
* for groups 12 to 70, and by 0.5 for groups from 71 to 260.
Example 2:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
WW-PROFIle 0.0 1.8 1. 65. 0.0 2.0
WW-PROFIle 0.0 2.3 66. 260. 0.0 2.0
* Profile n. 2 is defined a multiplication factor for importances, where
* the importances (as defined by BIASING) are multiplied by 1.8 for the first
* 65 neutron groups, and by 2.3 for groups 66 to 260.
1********************************************************************************
{WW-THRES}h
defines the energy limits for a Russian Roulette/splitting weight
window and applies particle-dependent modification factors to the
windows defined by WW-FACTOr
See also BIASING, WW-FACTOr, WW-PROFIle
WHAT(1) > 0.0: upper kinetic energy threshold in GeV for RR/Splitting
with a weight window. For low-energy neutrons,
corresponding (smallest) group number (included).
= 0.0: ignored
< 0.0: any previously selected threshold is cancelled
WHAT(2) >= 0.0 and < WHAT(1): lower kinetic energy threshold in GeV
for RR/Splitting with a weight window. For low-energy
neutrons, corresponding (largest) group number
(included)
< 0.0 or > WHAT(1): WHAT(2) is set = WHAT(1)
WHAT(3) > 0.0: amplification factor used to define the weight window
width at the higher energy threshold represented by WHAT(1).
The weight window at the higher energy threshold is
obtained by multiplying by WHAT(3) the top edge of the
window (splitting level) at the lower threshold, and
dividing by the same factor the bottom edge
(RR-level).
< 0.0: |WHAT(3)| is used as multiplication factor for the
bottom and top levels of every region for the particles
selected by WHAT(4-6). That is, for such particle(s) both
bottom and top levels are multiplied by |WHAT(3)|
Default = 10.0 (amplification factor for the splitting and RR-level
at the higher threshold). The particle dependent
multiplication factor by default is set = 1.0.
WHAT(4) = lower bound of the particle numbers (or corresponding particle
name) to which the indicated weight window energy limits apply
Note that particle number 40 indicates low-energy neutrons
(for this purpose only!). Particle number 8 indicates neutrons
with energy > 20 MeV.
("From particle WHAT(4)...").
Default = 1.0.
WHAT(5) = upper bound of the particle numbers (or corresponding particle
name) to which the indicated weight window energy limits apply
("...to particle WHAT(5)...").
Default = WHAT(4) if WHAT(4) > 0, all particles otherwise.
WHAT(6) = step length in assigning numbers. ("...in steps of
WHAT(6)").
Default = 1.0.
SDUM = PRIMARY: the weight window applies also to primary
particles (default)
= NOPRIMARy: the weight window doesn't apply to primaries
Default (option WW-THRESh or WW-FACTOr not given): no weight window is
defined
Notes:
1) This option is only meaningful when WW-FACTOr is also
requested. See the Note 1) to that option for more information.
2) For low-energy neutrons, the two energy thresholds are expressed
as group numbers, while for all other particles (including
high energy neutrons) they are expressed in GeV. Therefore,
thresholds for low-energy neutrons must be assigned in a
separate WW-THRESh card from other particles.
Example (number based):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...+...8
WW-THRESh 2.0 0.05 2.4 3.0 7.0 0.0
* The weight window weight limits for particles 3 to 7 (practically electrons,
* positrons and photons, since neutrinos are discarded), which have been set
* by WW-FACTOr are applied as such below 50 MeV. Above that energy, the width
* of the window is progressively increased up to 2 GeV: at 2 GeV, the upper
* weight limit is a factor 2.4 larger and the lower limit a factor 2.4
* smaller.
The same example, name based:
WW-THRESh 2.0 0.05 2.4 ELECTRON PHOTON 0.0
1********************************************************************************
8} Combinatorial Geometry
********************************************************************************
8.1} Introduction
The Combinatorial Geometry (CG) used by FLUKA is a modification of the
package developed at ORNL for the neutron and gamma-ray transport
program MORSE [Emm75] which was based on the original combinatorial
geometry by MAGI (Mathematical Applications Group, Inc.) [Gub67,Lic79].
The default input format is fixed, and different from that adopted elsewhere
in the FLUKA code. The input sequence must be completely contained between a
GEOBEGIN and a GEOEND card (see the corresponding description in 7}).
Two concepts are fundamental in CG: bodies and regions.
Originally, MORSE bodies were defined as convex solid bodies (finite
portions of space completely delimited by surfaces of first or second
degree, i.e. planes or quadrics). In FLUKA, the definition has been
extended to include infinite cylinders (circular and elliptical) and
planes (half-spaces). Use of such "infinite bodies" is encouraged since
it makes input preparation and modification much easier and less
error-prone. They also provide a more accurate and faster tracking.
Regions are defined as combinations of bodies obtained by boolean
operations: Union, Subtraction and Intersection. Each region is not
necessarily simply connected (it can be made of two or more non
contiguous parts), but must be of homogeneous material composition.
Because the ray tracing routines cannot track across the outermost
boundary, all the regions must be contained within a surrounding
"blackhole" (an infinitely absorbing material, in MORSE jargon
"external void", designated by the FLUKA material number 1), so that all
escaping particles are absorbed. It is suggested to make the external
blackhole region rather big, so as not to interfere with possible
future modifications of the problem layout. The external blackhole
must be completely surrounded by the boundary of a closed body, and
therefore cannot be defined by means of half-spaces or infinite
cylinders only. Inside such outermost boundary, EACH POINT OF SPACE MUST
BELONG TO ONE AND ONLY ONE REGION.
Note that in MORSE the concept of "region" refers to a portion of space
of homogeneous statistical importance or weight setting, which may
extend over one or several "zones" (homogeneous in material
composition). Since the two MORSE concepts of region and zone coincide in
FLUKA (there is a one-to-one correspondence), the term "region" will be
used here to define "a portion of space of uniform material composition,
obtained by boolean operations on one or more subregions", while "zone"
will indicate one of such subregions, obtained by boolean operations on
one or more geometrical bodies.
Repetition of sets of regions according to symmetry transformations is
possible in FLUKA through the card LATTICE and through a user-written
routine. This allows, for instance, to model in detail only a single cell
of a calorimeter and to replicate it in the entire volume.
8.2} Combinatorial Geometry input
----------------------------
CG input must respect the following sequential order:
GEOBEGIN card (in FLUKA standard format, or in free format if requested
by a previous FREE command)
Geometry title (in special format, or in free geometry format if requested
by an initial GLOBAL command)
Body data (in special or free geometry format)
END line (in special or free geometry format)
Region data (in special or free geometry format)
END line (in special or free geometry format)
LATTICE cards (optional, in FLUKA standard format, or in free format if
requested by a previous FREE command)
Region volumes (optional, see Geometry title line)
GEOEND card (in FLUKA standard format, or in free format if requested
by a previous FREE command)
8.2.1} GEOBEGIN card
This card follows the general FLUKA format (see description in 6}).
It can be in free format if the latter has been requested with
option FREE. The rest of the geometry must be in a special fixed
format described below, unless free geometry format has been requested
by a GLOBAL command at the beginning of input.
The meanings of the WHAT and SDUM parameters are:
WHAT(1) : >0 switches on online parenthesis expansion.
If during expansion at initialization the length of an
expression (measured in number of terms) exceeds the
original length by a factor NINT(WHAT(1)), expansion is
aborted and online parenthesis expansion is used.
WHAT(2) : absolute accuracy parameter (Aa) in units of 10**-6 cm.
It is used for tracking and boundary identification.
Aa should be larger than Ar*L , where L is the largest
coordinate value in the geometry description (excluding
the outer blackhole shell containing it and Ar is the
relative accuracy achievable in double precision (of the
order of 1.E-14 - 1.E-15).
Default = 0.0001
WHAT(3) > 0.0 : logical unit for geometry input. The name of the
corresponding file must be input on the next card
if WHAT(3) is different from 5. Note that values of
WHAT(3) /= 5.0 and < 21.0 must be avoided
because of possible conflicts with FLUKA pre-defined
units.
Default = 5.0 (i.e. geometry input follows)
WHAT(4) > 0.0 : logical unit for geometry output. If different from
11, the name of the corresponding file must be input
on the next card if WHAT(3) = 0 or 5, otherwise on
the card following the next one. Values of
WHAT(4) /= 11.0 and < 21.0 must be avoided because
of possible conflicts with FLUKA pre-defined units.
Default = 11.0 (i.e. geometry output is printed on
the standard output)
WHAT(5) : parentheses optimisation level = i0 + i1 x 1000
i0 = 1: logical optimisation only activated
2: logical + "plane" optimisation activated
3: logical + "plane" + "bounding box"
optimisation activated
(Default: 3)
i1 > 0 forces optimisation even if no parentheses
are found in the region under scrutiny
(Default: 0)
WHAT(6) : not used
SDUM = COMBINAT : Combinatorial geometry is used. See section
on Combinatorial Geometry for input description
Other geometries, available in older versions of
FLUKA, are no longer supported.
Default: COMBINAT
SDUM = COMBNAME : Combinatorial geometry is used in free format, and
names can be used instead of body and region numbers
Default (option GEOBEGIN not given): not allowed! GEOBEGIN and
GEOEND must always be present.
8.2.2} Geometry Title line
Three variables are input in the CG Title line: IVLFLG, IDBG, TITLE.
The format is (2I5,10X,A60).
The first integer value (IVLFLG = Input VoLume FLaG) is a flag to
indicate how to normalise the quantities scored in regions by the
FLUKA option SCORE:
IVLFLG = 0 means that no normalisation must be performed (output
values are total stars or total energy deposited in each
region).
IVLFLG = 1 and IVLFLG = 2 are reserved for future use and they have
currently no meaning in FLUKA.
IVLFLG = 3 means that the scores must be normalised dividing by region
volumes input by the user just before the GEOEND card.
The second integer value can be used to modify the format with which
body and region data are read:
IDBG = 0 or 10 : default fixed format for both bodies and regions
= -10 : high-accuracy fixed format for bodies; default fixed region
format
= -100 : high-accuracy fixed format for bodies; region fixed format
allowing more than 10000 regions
= 100 : default fixed format for bodies; region fixed format allowing
more than 10000 regions
Note however that the maximum number of regions is dimensioned to
10000 in INCLUDE file (DIMPAR).
Any other IDBG value should be avoided. The value of IDBG is
irrelevant if free geometry format has been requested (see the GLOBAL
command).
The remaining 60 characters can be used for any alphanumeric string at
the user's choice.
If fixed format is not used, the value of IDBG is irrelevant.
8.2.3} Body data
The geometry must be specified by establishing two tables. The first
table describes the type, size and location of the bodies used in the
geometry description. The second table defines the physical regions
in terms of these bodies.
Each body TYPE is referred to by a three-letter code.
There are three kinds of possible body input formats, two fixed and one free.
Free format, if used, implies necessarily also the use of free format in
region input (see below).
8.2.3.1} Fixed format body input
-----------------------
Fixed format for both body and region input is the default, unless requested
differently by a GLOBAL command at the beginning of the input file.
In fixed format, each body is defined by: its code, a sequential number, and a
set of floating point numerical parameters defining its size, position and
orientation in space (all in cm).
Default fixed format is the original CG one as used in MORSE and in other
Monte Carlo programs. It expects up to 6 floating point values per line.
High-accuracy fixed format allows to enter numerical data with full precision
(16 significant digits) and accommodates only a maximum of 3 floating point
values per line.
The fixed input format for each body depends on the value of the IDBG variable
given in the Geometry Title line (see above).
If IDBG = 0, 10 or 100, the body input format is (2X, A3, I5, 6D10.3);
if IDBG = -10 or -100, the format is (2X, A3, I5, 3D22.15);
where the 3-letter code in columns 3-5 is one of the following:
ARB BOX ELL PLA PYX PYY PYZ QUA RAW RCC REC RPP
SPH TRC WED XCC XEC XYP XZP YCC YEC YZP ZCC ZEC
(columns 3-5 must be left blank in continuation lines).
The following bodies are no longer maintained and should not be used.
They will be removed in future releases.
ARB BOX RAW WED
The integer in columns 6-10 is the body sequential number (if left
blank numbers are assigned automatically, but this is not recommended;
it must be left blank in continuation lines).
The floating-point numbers in columns 11-76 are geometrical quantities
defining the body (their number depends on the body type as explained
below, and can extend over several continuation lines). The presence of the
decimal values in the numerical data is compulsory.
After the last body description, end with a line having the code END
in columns 3-5.
8.2.3.2} Free format body input
----------------------
Free format is used for both body and region input only if requested by a GLOBAL
command at the beginning of the input file or by the string COMBNAME in the
SDUM field of the GEOBEGIN command.
In free format, each body is defined by: its code, its identifier (an alphanumeric
string of up to 8 characters, with the first character alphabetical) and a set of
numerical parameters defining its size, position and orientation in space (all
in cm).
Free format has been introduced only recently and is expected to supersede soon
the other formats, which will be kept however for reasons of back compatibility.
Its main advantages, in addition to the freedom from strict alignment rules,
are the possibility to modify the input sequence without affecting the region
description (for instance, by inserting a new body) and the availability of
parentheses to perform complex boolean operations in the description of regions.
The input for each body consists of a 3-letter code indicating the body type:
ARB BOX ELL PLA PYX PYY PYZ QUA RAW RCC REC RPP
SPH TRC WED XCC XEC XYP XZP YCC YEC YZP ZCC ZEC
followed by a unique "body name" (alphanumeric identifier) and a set of
geometrical quantities defining the body (their number depends on the body type
as explained below). The different items, separated by one or more blanks, or by
one of the separators "," "%" ";" "\" ":" can extend over as many lines as
needed, each line having a maximum length of 132 characters.
See option FREE for more detailed instructions on the use of separators.
After the last body description, end with a line having the code END
With all input formats, a line having an asterisk (*) in column 1 is treated
as a comment line. Such comment lines can be inserted freely at any point of
Body and Region input, allowing easier identification.
8.2.4} Body types
----------
8.2.4.1} Rectangular Parallelepiped. Code: RPP
An RPP has its edges parallel to the coordinate axes.
It is defined by 6 numbers in the following order:
X_min, X_max, Y_min, Y_max, Z_min, Z_max (minimum and maximum
coordinates which bound the parallelepiped).
Warning! Of course X_min must be < X_max, Y_min < Y_max and Z_min < Z_max.
If this condition is not satisfied, the body is ignored.
An RPP definition extends over one single line in default fixed format,
or over two lines in high-accuracy body fixed format (IDBG = -10 or -100
in the CG Title line, see above).
Example in default fixed format (the comment lines shown are allowed input
lines):
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
RPP 4 -20.0 +20.0 -50.0 +50.0 -38.5 +38.5
* (a parallelepiped centred on the origin)
The same input, in high-accuracy fixed format, would be:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
RPP 4 -20.0 +20.0 -50.0
+50.0 -38.5 +38.5
The same, in free format:
RPP Smlbrick -20.0 +20.0 -50.0 +50.0 -38.5 +38.5
8.2.4.2} General Rectangular Parallelepiped. Code: BOX
A BOX is also a Rectangular Parallelepiped, but with arbitrary
orientation in space. Its use is generally not recommended, since it
can be replaced by a suitable combination of infinite planes (PLA,
XYP, XZP, YZP). Planes are easier to define, make tracking more
accurate and often only a few are needed in a region description.
A BOX is defined by 12 numbers in the following order:
V_x, V_y, V_z (coordinates of a vertex), H1_x, H1_y, H1_z,
H2_x, H2_y, H2_z, H3_x, H3_y, H3_z (x, y and z components of three
mutually PERPENDICULAR vectors representing the height, width and
length of the box). Note that it is the user's responsibility to
ensure perpendicularity. This is best attained if the user has chosen
high-accuracy input fixed format (IDBG = -10 or -100 in the CG Title line,
see above), or free format, and the value of each vector component is
expressed with the largest available number of significant digits.
A BOX definition extends over 2 lines in default fixed format, or
over 4 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
BOX 18 0.0 0.0 0.0 7.0710678 7.0710678 0.0
-14.142136 14.142136 0.0 0.0 0.0 30.0
* (a parallelepiped with a corner on the origin, with edges 10, 20 and
* 30 cm long, rotated counterclockwise by 45 degrees in the x-y plane)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
BOX 18 0.0 0.0 0.0
7.071067811865475 7.071067811865475 0.0
-14.14213562373095 14.14213562373095 0.0
0.0 0.0 30.0
The same, in free format:
BOX tiltslab 0.0 0.0 0.0 7.071067811865475 7.071067811865475 0.0
-14.14213562373095 14.14213562373095 0.0 0.0 0.0 30.0
8.2.4.3} Sphere. Code: SPH
A SPH is defined by 4 numbers:
V_x, V_y, V_z (coordinates of the centre), R (radius)
A SPH definition extends over one single line in default fixed format,
or over two lines in high-precision body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
SPH 002 5.0 -30.0 27.0 528.2
* (a sphere centred at point x=5, y=30, z=27, with a radius of 528.2 cm)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
SPH 002 5.0 -30.0 27.0
528.2
The same, in free format:
SPH TheBall 5.0 -30.0 27.0 528.2
8.2.4.4} Right Circular Cylinder. Code: RCC
An RCC can have any orientation in space. It is limited by a
cylindrical surface and by two plane faces perpendicular to its
axis. (If the cylinder axis is parallel to one of the coordinate
axes, it is worth considering instead the use of an infinite
cylinder XCC, YCC or ZCC (see below), leading to increased tracking
speed).
Each RCC is defined by 7 numbers:
V_x, V_y, V_z (coordinates of the centre of one of the circular
plane faces), H_x, H_y, H_z (x, y and z components of a vector
corresponding to cylinder height, pointing to the other plane face),
R (cylinder radius).
An RCC definition extends over 2 lines in default fixed format, or over
3 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
RCC 07 5.0 5.0 5.0 57.735027 57.735027 57.735027
37.
* (a circular cylinder 100 cm long and of 37 cm radius, with base
* centred at point x=5, y=5, z=5, its axis making equal angles to
* the coordinate axes).
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
RCC 07 5.0 5.0 5.0
57.73502691896258 57.73502691896258 57.73502691896258
37.
The same, in free format:
RCC BYGCYL 5.0 5.0 5.0 57.73502691896258 57.73502691896258
57.73502691896258 37.
8.2.4.5} Right Elliptical Cylinder. Code: REC
A REC can have any orientation in space.
It is limited by a cylindrical elliptical surface and by two plane
faces perpendicular to its axis. (If the cylinder axis is parallel
to one of the coordinate axes, it is worth considering instead the
use of an infinite cylinder XEC, YEC or ZEC (see below), leading to
increased tracking speed).
Each REC is defined by 12 numbers:
V_x, V_y, V_z (coordinates of the centre of one of the elliptical
plane faces), H_x, H_y, H_z (x, y and z components of a vector
corresponding to cylinder height, pointing to other plane face),
R1_x, R1_y, R1_z (components of a vector corresponding to the minor
half-axis of the cylinder elliptical base), R2_x, R2_y, R2_z
(ditto for the major half-axis).
A REC definition extends over 2 lines in default fixed format, or over
4 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
REC 1 -10.0 12.0 7.0 0.0 58.0 0.0
9. 0.0 0.0 0.0 0.0 17.0
* (an elliptical cylinder 58 cm long parallel to the y axis, with minor
* half-axis 9 cm long parallel to the x coordinate axis, major
* half-axis 17 cm long parallel to the z axis, base centred at point
* x=-10, y=12, z=7)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
REC 1 -10.0 12.0 7.0
0.0 58.0 0.0
9. 0.0 0.0
0.0 0.0 17.0
The same, in free format:
REC pipesurf -10.0 12.0 7.0 0.0 58.0 0.0 9.0 0.0 0.0 0.0 0.0 17.0
8.2.4.6} Truncated Right Angle Cone. Code: TRC
A TRC can have any orientation in space.
It is bounded by a conical surface and by two circular plane faces
perpendicular to the axis of the cone.
Each TRC is defined by 8 numbers:
V_x, V_y, V_z, (coordinates of the centre of the major circular
base), H_x, H_y, H_z (components of a vector corresponding to the
TRC height, directed from the major to the minor base), R1 (radius
of the major base), R2 (radius of the minor base)
A TRC definition extends over 2 lines in default fixed format, or over
3 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
TRC 102 0.0 0.0 -130.0 0.0 0.0 1000.0
600. 150.0
* (a truncated cone 1000 cm long parallel to the z axis, with the
* larger circular base 600 cm in radius located at z = -130 and the
* smaller base 150 cm in radius located at z = 870)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
TRC 102 0.0 0.0 -130.0
0.0 0.0 1000.0
600. 150.0
The same, in free format:
TRC NewCone 0.0 0.0 -130.0 0.0 0.0 1000.0 600. 150.0
8.2.4.7} Ellipsoid of Revolution. Code: ELL
An ELL is a prolate (cigar-shaped) ellipsoid, obtainable by
revolution of an ellipse around its major axis, and having any
orientation in space.
Each ELL is defined by 7 numbers:
F1_x, F1_y, F1_z, F2_x, F2_y, F2_z, (coordinates of the two foci
on the major ellipsoid axis), L (full length of the major axis).
An ELL definition extends over 2 lines in default fixed format, or over
3 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
ELL 003 -400.0 0.0 0.0 400.0 0.0 0.0
1000.
* (an ellipsoid obtained by revolution around the x axis of an ellipse
* centred at the origin, with major axis parallel to x 1000 cm long and
* minor axis 600 cm long).
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
ELL 003 -400.0 0.0 0.0
400.0 0.0 0.0
1000.
The same, in free format:
ELL TheCigar -400.0 0.0 0.0 400.0 0.0 0.0 1000.0
8.2.4.8} Right Angle Wedge. Code: WED or RAW
A WED is the half of a BOX (see), cut by a plane passing through
its centre and through four corners. Its use, like that of the BOX,
is now mostly superseded by the availability of infinite planes
(XYP, XZP, YZP and PLA).
A WED is defined by 12 numbers:
V_x, V_y, V_z (coordinates of one of rectangular corners), H1_x,
H1_y, H1_z, H2_x, H2_y, H2_z, H3_x, H3_y, H3_z (x, y and z
components of three mutually PERPENDICULAR vectors corresponding
to the height, width and length of the wedge). Note that it is the
user's responsibility to ensure perpendicularity. This is best attained
if the user has chosen high-accuracy input fixed format (IDBG = -10 or
-100 in the CG Title line, see above), or free format, and the value of
each vector component is expressed with the largest available number of
significant digits.
The face defined by vectors 1 and 3 and that defined by vectors 2
and 3 are rectangular; the 2 faces defined by vectors 1 and 2 are
triangular; the fifth face is rectangular with two edges parallel
to vector 3 and two edges parallel to the hypotenuse of the
triangle made by vectors 1 and 2.
A WED definition extends over 2 lines in default fixed format, or over
4 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
WED 97 0.0 0.0 0.0 7.0710678 7.0710678 0.0
-14.142136 14.142136 0.0 0.0 0.0 30.0
* (the bottom half of a parallelepiped with a corner on the origin,
* with edges 10, 20 and 30 cm long, rotated counterclockwise by 45
* degrees in the x-y plane)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
WED 97 0.0 0.0 0.0
7.071067811865475 7.071067811865475 0.0
-14.14213562373095 14.14213562373095 0.0
0.0 0.0 30.0
The same, in free format:
WED halfbox1 0.0 0.0 0.0 7.071067811865475 7.071067811865475
0.0 -14.14213562373095 14.14213562373095 0.0 0.0 0.0 30.0
8.2.4.9} Arbitrary Convex Polyhedron of 4, 5, or 6 sides. Code: ARB
An ARB is a portion of space bounded by 4, 5 or 6 plane faces.
Its use is rather complicated and is now superseded by the
availability of infinite planes (XYP, XZP, YZP and PLA).
For completeness, however, a description of input will be reported
here.
Assign an index (1 to 8) to each vertex. For each vertex, give
the x, y, z coordinates on 4 lines (8 lines in high-accuracy body
fixed format), with 6 numbers on each line (3 numbers per line in
high-accuracy fixed format):
V1_x, V1_y, V1_z, V2_x, V2_y, V2_z,
V3_x, V3_y, V3_z, V4_x, V4_y, V4_z,
V5_x, V5_y, V5_z, V6_x, V6_y, V6_z,
V7_x, V7_y, V7_z, V8_x, V8_y, V8_z
The vertices not appearing in face descriptions are ignored, but
eight must always be supplied. The above vertex lines are followed
by one line describing the faces (two lines in high-accuracy fixed format).
Each face is described by a four-digit number in floating point format,
such that each digit gives the indices of the three or four vertex
points of that face. These indices must be entered in the same order
for each face (i.e. all clockwise or all counterclockwise).
When the number of the faces is less than 6, the remaining face
description(s) must be zero, and must appear at the end of the
list. If a face has three vertices, the omitted position may be
either 0 or a repeat of one of the other vertices.
An ARB definition extends over 5 lines in default fixed format, or over
10 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
ARB 5 -44.2 -36.5 3572.0 -44.2 -33.5 3572.0
-37.1 -31.0 3572.0 -37.1 -39.0 3572.0
-44.2 -36.5 0.0 -44.2 -33.5 0.0
-37.1 -31.0 0.0 -37.1 -39.0 0.0
1234. 1562. 5876. 1485. 4378. 6732.
* (a right prism of trapezoidal base, of height 3572 cm parallel to the
* z axis)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
ARB 5 -44.2 -36.5 3572.0
-44.2 -33.5 3572.0
-37.1 -31.0 3572.0
-37.1 -39.0 3572.0
-44.2 -36.5 0.0
-44.2 -33.5 0.0
-37.1 -31.0 0.0
-37.1 -39.0 0.0
1234. 1562. 5876.
1485. 4378. 6732.
The same, in free format:
ARB oddbody -44.2 -36.5 3572.0 -44.2 -33.5 3572.0 -37.1 -31.0 3572.0 -37.1
-39.0 3572.0 -44.2 -36.5 0.0 -44.2 -33.5 0.0 -37.1 -31.0 0.0 -37.1
-39.0 0.0 1234. 1562. 5876. 1485. 4378. 6732.
8.2.4.10} Infinite half-space delimited by a coordinate plane. Code: XYP,XZP,YZP
There are 4 kinds of infinite half-spaces. Three of them are delimited by
planes perpendicular to the coordinate axes:
Delimited by a plane perpendicular to the x-axis. Code: YZP
or by a plane perpendicular to the y-axis. Code: XZP
or by a plane perpendicular to the z-axis. Code: XYP
Each of these half-spaces is defined by a single number:
V_x (resp. V_y, or V_z), the coordinate of the plane on the
corresponding perpendicular axis.
The half-space "inside the body" is the locus of points for
which x < V_x (resp. y < V_y, or z < V_z).
An YZP, XZP, XYP definition, in fixed format, extends always over
a single line.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
YZP 71 -44.2
XZP 72 108.0
XYP 73 0.0
* (respectively, all points having x < -44.2, those having y < 108,
* and those having z < 0).
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
YZP 71 -44.2
XZP 72 108.0
XYP 73 0.0
The same example in free format:
YZP horizPla -44.2
XZP vertPla1 108.0
XYP vertPla2 0.0
8.2.4.11} Generic infinite half-space. Code: PLA
Each PLA is defined by 6 numbers:
H_x, H_y, H_z (x, y and z components of a vector of arbitrary length
perpendicular to the plane), V_x, V_y, V_z (coordinates of any point
lying on the plane).
The half-space "inside the body" is that from which the vector is pointing
(i.e., the vector points "outside").
A PLA definition extends over a single line in default fixed format, and
over two lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
PLA 74 0.0 1.0 1.0 200.0 -300.0 240.0
* (all points "below" a plane at 45 degrees in the y-z projection which
* passes through the point x=200, y=-300, z=240 - note that for such a
* plane the x value of the point is completely irrelevant - )
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
PLA 74 0.0 1.0 1.0
200.0 -300.0 240.0
The same example in free format:
PLA tiltPla 0.0 1.0 1.0 200.0 -300.0 240.0
8.2.4.12} Infinite Circular Cylinder parallel to a coordinate axis. Code: XCC, YCC, ZCC
A XCC (YCC, ZCC) is an infinite circular cylinder parallel to the
x (y, z) axis.
Each XCC (YCC, ZCC) is defined by 3 numbers:
A_y, A_z (A_z, A_x for YCC, A_x, A_y for ZCC) (coordinates of the
cylinder axis), R (cylinder radius)
An XCC (YCC, ZCC) definition, in fixed format, extends always over one
single line.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
XCC 013 -480.0 25.0 300.0
* (an infinite cylinder of radius 300 cm, with axis defined by y=-480,
* z=25)
ZCC 014 0.0 0.0 2.5
* (an infinite cylinder of radius 2.5 cm, with axis equal to the z axis)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
XCC 013 -480.0 25.0 300.0
ZCC 014 0.0 0.0 2.5
The same, in free format:
XCC Column -480.0 25.0 300.0
ZCC Tunnel 0.0 0.0 2.5
8.2.4.13} Infinite Elliptical Cylinder parallel to an axis. Code: XEC, YEC, ZEC
A XEC (YEC, ZEC) is an infinite elliptical cylinder parallel to the
x (y, z) axis, and with the axes of the ellipse parallel to the other
two coordinate axes.
Each XEC (YEC, ZEC) is defined by 4 numbers:
A_y, A_z (A_z, A_x for YEC, A_x, A_y for ZEC) (coordinates of the
cylinder axis), L_y, L_z (L_z, L_x for YEC, L_x, L_y for ZEC)
(semiaxes of the ellipse).
A XEC (YEC, ZEC) definition extends over one single line in default
fixed format, and over two lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
ZEC 101 15.0 319.0 33.0 80.0
* (an infinite elliptical cylinder, centred on x=15, y=319, with the
* ellipse minor semi-axis parallel to x, 33 cm long, and the major
* semi-axis parallel to y, 80 cm long)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
ZEC 101 15.0 319.0 33.0
80.0
The same body, described in free format:
ZEC ChimneyA 15.0 319.0 33.0 80.0
8.2.4.14} Generic Quadric. Code: QUA
A QUA is a quadric surface defined by a 2nd degree equation F(x,y,z) = 0.
Each QUA is defined by 10 numbers:
A_xx, A_yy, A_zz, A_xy, A_xz, A_yz, A_x, A_y, A_z, A_0
corresponding to the equation:
A_xx x^2 + A_yy y^2 + A_zz z^2 + A_xy xy + A_xz xz + A_yz yz +
+ A_x x + A_y y + A_z x + A_0 = 0
A QUA definition extends over two lines in default fixed format,
and over 4 lines in high-accuracy body fixed format.
Example in default fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
QUA 27 0.0025 0.04 0.0064 0.0 0.0 0.0
0.055 0.64 0.0256 1.8881
* (an ellipsoid centred at x = -11 cm, y = -8 cm, z = -2 cm, with
* a semi-axis 20 cm long parallel to x, one 5 cm long parallel to y and
* one 12.5 cm long parallel to z)
The same example in high-accuracy body fixed format:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.
QUA 27 0.0025 0.04 0.0064
0.0 0.0 0.0
0.055 0.64 0.0256
1.8881
The same body, described in free format:
QUA Elipsoid 0.0025 0.04 0.0064 0.0 0.0 0.0 0.055 0.64 0.0256 1.8881
8.2.4.15} Pyramid parallel to a coordinate axis. Code: PYX, PYY, PYZ
A PYX (PYY, PYZ) is a pyramid parallel to the x (y, z) axis.
It Can be full or truncated
Each PYX (PYY, PYZ) is defined by 7 parameters:
V_x, V_y, V_z, (coordinates of the centre of the major base)
L_y, L_z (res.p L_z, L_x or L_x, L_y) half-lengths of the sides
of the major base
H : height of the pyramid. The sign gives the direction from major
to minor basis
R : ratio between the sides of the minor base and the sides of the
major base. If R=0.0, the pyramid is not truncated.
R>=1. is not accepted
Example
PYZ body3 0.0 0.5 -10.0 +20.0 +40.0 50.0 0.8
Is a truncated pyramid with major base centered at
0.0, 0.5,-10.0 and extending from x=-20.0 to x=+20, and from
y=-39.5 to y=40.5. Its axis is along z, its height is 50 cm,
the minor basis extends from -16.0 to +16.0 in x and from
-31.5 to 32.5 in y
NOTE
+---------------------------------------------------------------------+
| Whenever it is possible, the following bodies should be preferred: |
| PLA, PYX, PYY, PYZ, QUA, RPP, SPH, XCC, XEC, XYP, XZP, YCC, |
| YEC, YZP, ZCC, ZEC |
| These should indeed make tracking faster, since for them extra |
| coding ensures that unnecessary boundary intersection calculations |
| are avoided when the length of the next step is smaller than the |
| distance to any boundary of the current region. |
+---------------------------------------------------------------------+
8.2.5} Geometry directives
Geometry directives are special commands enclosed between two lines
$Start_xxx ....... $End_xxx
where "xxx" stands for "expansion", "translat" or "transform". They allow to
provide respectively a coordinate expansion, a coordinate translation or a
coordinate roto-translation of the bodies embedded between the starting and
the ending directive lines. Directives can be nested.
The body definitions which are contained between the lines
"$Start_xxx" and "$End_xxx" are automatically modified according to the
syntax described below.
8.2.5.1} Expansion
This directive provides a coordinate expansion (or reduction) of the body
dimensions by a defined scaling factor, for all bodies embedded between the two
lines.
$Start_expansion [scaling factor]
..............
..............
..............
$End_expansion
Example:
$Start_expansion 10.
QUA Elipsoid 0.0025 0.04 0.0064 0.0 0.0 0.0 0.055 0.64 0.0256 1.8881
$End_expansion
transforms an ellipsoid centred at (11, 8, -2), with semiaxes 20, 5 and 12.5 cm
long parallel to the coordinate axes, to one centred at (110, 80, -20)
with semiaxes 200, 50 and 125 cm long.
8.2.5.2} Translation
This directive provides a coordinate translation. The bodies embedded between
the two lines are translated by [dX] [dY] [dZ] on the three axes.
$Start_translat [dX] [dY] [dZ]
..............
..............
..............
$End_translat
Example:
$Start_translat -5., -7., +9.
QUA Elipsoid 0.0025 0.04 0.0064 0.0 0.0 0.0 0.055 0.64 0.0256 1.8881
$End_translat
transforms an ellipsoid centred at (11, 8, -2), with semiaxes 20, 5 and 12.5 cm
long parallel to the coordinate axes, to an identical one centred at (6, 1, 7)
8.2.5.3} Roto-translation transformation
This directive provides a coordinate transformation, predefined by a ROT--DEFIni
card, for all bodies embedded between the two lines.
$Start_transform [ROT-DEFIni name] (or [ROT-DEFIni number])
..............
..............
..............
$End_transform
Two nested (signed) transformations R2 and R1 can be used, acting on a
body vector r as r'=R2(R1(r)):
$Start_transform R2
...
$Start_transform R1
...
$End_transform
...
$End_transform
Example 1:
....
* Cylindrical target is transformed with transformation "Rotdefi1"
$Start_transform Rotdefi1
RCC targRepl 0.0 0.0 -5.0 0.0 0.0 10.0 5.0
$End_transform
....
* ROT-DEFI transformation: shift of (0,-2,-30) then rotation of -21 degrees
* around the x axis
ROT-DEFI 0.0 -2.0 -30.0Rotdefi1
ROT-DEFI 100. -21. Rotdefi1
Example 2 (with lattice):
....
* Cylindrical target
RCC target 0.0 0.0 -5.0 0.0 0.0 10.0 5.0
* Target replica is transformed with inverse transformation of the lattice
$Start_transform -Rotdefi1
RCC targRepl 0.0 0.0 -5.0 0.0 0.0 10.0 5.0
$End_transform
....
* Regions
TARGET 5 +target
REPLICA 5 +targRepl
....
* Lattice
LATTICE REPLICA Rotdefi1
....
* ROT-DEFI transformations shift of (0,-2,-30) then rotation of -21 degrees
* around the x axis
ROT-DEFI 0.0 -2.0 -30.0Rotdefi1
ROT-DEFI 100. -21. Rotdefi1
Example 3:
ROT-DEFIni 3. -90. 0. 0. 0. 0. XtoZ
........................................
$Start_transform XtoZ
$Start_translat 0. -30. +20.
$Start_expansion 10.
QUA Elipsoid 0.0025 0.04 0.0064 0.0 0.0 0.0 0.055 0.64 0.0256 1.8881
$End_expansion
$End_translat
$End_transform
transforms an ellipsoid centred at (11, 8, -2), with semiaxes 20, 5 and
12.5 cm long parallel to the coordinate axes, to a similar one with
semiaxes 200, 50 and 125 cm, centred at (11, -22, 18) and rotated by 90
degrees (axis z becomes axis x).
Example 4:
Trivial example where the combined nested transformation is the
identity. The first transformation (ft) is a rotation by 90 deg around
the y axis, followed by a shift of 10 cm along the z axis. The second
transformation is the inverse: a shift of -10 cm along the z axis and a
rotation of -90 deg around the y axis.
ROT-DEFI 200. 90. ft
ROT-DEFI 0.0 10.ft
ROT-DEFI 0.0 -10.st
ROT-DEFI 200. -90. st
$start_transform st
$start_transform ft
* Cylindrical target
RCC target 0.0 0.0 0.0 0.0 0.0 10. 2.
$end_transform
$end_transform
8.2.5.4} Geometry directives: usage notes
$Start_expansion takes precedence over $Start_translat, which in turn
takes precedence over $Start_transform.
Directives $Start_expansion and $Start_translat are applied when reading
the geometry: therefore they imply no CPU penalty. Directive
$Start_transform, instead, is applied at run-time and requires some
additional CPU time.
Directives can be nested. All the directives can be used in association
with lattices.
The "ROT-DEFIni" cards are used by the geometry directive to transform the
coordinates of the bodies (not of the particles!).
If a "-" sign is placed in front of the [ROT-DEFIni name or number] of the
"$Start_transform" directive the inverse transformation is used instead
8.2.6} Body END line
Body definitions must be terminated by a line with the string END (in
column 3-5 if fixed format is used).
8.2.7} Region data
The various regions are described in terms of differences, intersections
and unions of bodies. As in the case of body description, the user has the
choice between free format and two kinds of fixed format. One of the latter
is the traditional format used by the original Combinatorial Geometry as
implemented for example in MORSE. The other fixed format is similar to it, but
has been extended to allow body numbers larger than 10000. Both fixed
formats are now superseded by the more convenient free region input format,
recently introduced. Free format is based on body mnemonic "names" instead
of sequential numerical identifiers and allows the use of parentheses to
perform more complex boolean operations. However, the two fixed formats are
still available for back compatibility reasons.
With any input format, a line having an asterisk (*) in column 1 is
treated as a comment card.
8.2.7.1} Fixed format region input
-------------------------
Each region is described as a combination of one or more bodies, by means
of the three operator symbols:
-, +, OR
referring respectively to the boolean operations of subtraction (or
complement), intersection and union.
Each body is referred to by its sequential number in the body description
table (see above the description of fixed format body input).
Input for each region extends on one or more lines, in a format which
depends on the value of IDBG on the Geometry Title line (see above).
If IDBG = 0, 10 or -10, region input format is (2X,A3,I5,9(A2,I5));
if IDBG = 100 or -100, region input format is (2X,A3,I5,7(A2,I7));
* where the 3 characters in columns 3-5 are:
- on the first input line of a given region, an arbitrary non-blank
string chosen by the user (it can be used, together with optional
comment lines, to help identifying the region or the region
material).
Note that regions are identified in the code by an integer number
corresponding to the order of their input definition: therefore it
can be useful (but not mandatory) to have that number appearing in
the string. For instance, if the 5th region is air, it could be
labelled AI5.
- on all continuation lines, columns 3-5 must be blank.
* the integer in columns 6-10 (variable NAZ) is the number of regions which
can be entered by a particle leaving any of the bodies defined for the
region being described (leave blank in continuation lines). The NAZ
number is used to allocate memory for this so-called "contiguity list",
and it is not essential that it be exact (if left blank, it is set to 5).
Any number is accepted, but if the final sum of these integers is close to
the actual sum, tracking speed can be slightly improved.
* in columns 11-73, alternate as many 2-character fields ('OR' or
blank) and integer fields (body numbers preceded by + or - sign),
as are needed to complete the description of that region (see below
for an explanation of symbol meaning). If one line is not sufficient,
any number of continuation lines can be added (identified by a
blank field in column 3-5).
After the last region description, end with a line having the code END
in columns 3-5.
8.2.7.2 Meaning of the + - OR operators
-------------------------------
- If a body number appears in a zone description preceded by a +
operator, it means that the zone being described is wholly contained
inside the body (boolean intersection).
- If a body number appears in a zone description preceded by a -
operator, it means that the zone being described is wholly outside
the body (boolean complement).
Obviously, in the description of each region the symbol + must appear at
least once. Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
BA1 4 +7 +3
* (the above zone is the part of space common to body 7 and 3)
MU2 7 +3 -4 -7 +20
* (the above zone is the part of space common to body 3 and 20,
* excluding however that which is inside body 4 and that which is
* inside 7)
AIR 5 +19
* (the latter zone coincides entirely with body 19)
- In some instances a region may be described in terms of subregions
(or "zones") lumped together. The OR operator is used as a boolean union
operator in order to combine subregions (partially overlapping or not).
Subregions (also called "zones" in this manual) are formed as
intersections or differences as explained above, and then the region is
formed by a union of these subregions. When OR operators are used there
are always two or more of them, and they refer to all body numbers
following them until the next OR or the end of the region description,
each body being preceded by its + or - sign.
Examples:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
SA7 11OR +4 +6 -7 -8OR +6 +3 -21
* <---- first subregion -----><- second subregion ->
G18 2OR +9OR +15OR +1OR +8 -2OR +8 -3OR +8 +18
* < 1st >< 2nd >< 3rd ><--- 4th ----><--- 5th ----><--- 6th ---->
OR +12 -10 -11 -13 -14
*< blank ><---- 7th and last subregion -----> (continuation line)
Region END card
Region data must be terminated by a card with the string END in
column 3-5.
8.2.7.3 Free format region input
------------------------
Each region is described as a combination of one or more bodies, by means
of the three operator symbols:
-, +, |
referring respectively to the boolean operations of subtraction (or
complement), intersection and union.
Each body is referred to by its "name" (an alphanumeric string of up to
8 characters, the first character being alphabetical) in the body description
table (see above the description of free format body input).
Input for each region starts on a new line and extends on as many continuation
lines as are needed, each line having a maximum length of 132 characters. It is
of the form:
REGNAME NAZ boolean zone expression
or
REGNAME NAZ | boolean zone expression | boolean zone expression | ...
where REGNAME, NAZ and the remaining part are separated by one or more blanks.
- REGNAME is the region "name" (an arbitrary unique alphanumeric character
string chosen by the user). The region name must begin by an
alphabetical character and must not be longer than 8 characters.
- NAZ is an integer indicating (approximately) the number of regions which
can be entered by a particle leaving any of the bodies appearing in the
region description that follows. The NAZ number is used to allocate memory
for this so-called "contiguity list", and it is not essential that it be
exact. Any number is accepted, but if the final sum of these integers is
close to the actual sum, tracking speed can be slightly improved. In free
format input, {\tt NAZ} may not be left blank.
- If NAZ is negative is enforcing the use of DNEAR (see GLOBAL card) for
that specific zone, which will result in more efficient tracking in this zone.
- If NAZ is positive the use of DNEAR will be decided by the code depending
or not the existance of overlapping zones.
- "boolean zone expression" is a sequence of one or more body names preceded
by the operators + (intersection) or - (complement or subtraction). A zone
expression can be contained inside one or more sets of left and right
parentheses. Several zone expressions can be combined by the union
operator | (corresponding to OR in fixed format input).
When | operators are used there are always two or more of them, and they
refer to all bodies following them until the next | or the end of the
region description, each body being preceded by its + or - sign.
In evaluating the expressions, the highest operator precedence is given to
parentheses (the most inner ones first), followed by the | operator.
In each zone expression, at least one body name preceded by + must be
present. If one line is not sufficient, any number of continuation lines
can be added. Blanks are ignored.
Region description ends with a line containing the single string END.
8.2.7.4 Meaning of the + - | operators
------------------------------
- If a body name is preceded by a + operator in an expression describing a
zone (or a zone component surrounded by parentheses) it means that the zone
or zone component being described is wholly contained inside the body (boolean
intersection).
- If a body name is preceded by a - operator in an expression describing a
zone (or a zone component surrounded by parentheses) it means that the zone
or zone component being described is wholly outside the body (boolean
complement).
Obviously, in the description of each region the symbol + must appear at least
once. The same is true for each zone (subregion delimited by | operators) and
for each zone component (subzone delimited by parentheses)
Examples of regions consisting of a single zone:
lastlayr 4 +bigball +slab
* Region "lastlayr" is the part of space common to body "bigball" and body
* "slab"
MidVacuu 7 +cylind2 -slit -sqrhole +Plane1
* Region "MidVacuu" is the part of space common to bodies "cylind2" and
* "Plane1", excluding however that which is inside body "slit" and that which
* is inside body "sqrhole"
H2Osphere 5 +marble
* Region "H2Osphere" coincides entirely with body "marble"
Examples of regions consisting of the union of several zones, possibly (but
not necessarily) partially overlapping:
Corners 6 | +dice +topNorth | +dice +topEast | +dice +topSouth |
+dice +topWest | +dice +botNorth | +dice +botEast | +dice +botSouth | +dice
+botWest
* Region "Corners" is made of the 8 corners of a cube, each of which is
* obtained by the intersection of a cubic body "dice" and a tilted plane
* described by vector pointing to the centre of the cube
twoparts 0 | +leftpart -outerbox | +rghtpart +topplane
* Region "twoparts" is the sum of two parts of space: the space points which
* are inside body "leftpart" but not inside body "outerbox", plus those which
* are common to bodies "rghtpart" and "topplane"
Examples of a region defined as a single zone by means of parentheses:
AirAroun 5 + tunnel + Column - (+outrpipe-innrpipe)
* Region "AirAroun" contains the space points located inside the intersection
* of body "tunnel" and body "Column", with the exception of those which are
* inside body "outrpipe" but not inside body "innrpipe"
CmplexRg | +longcyl + (+shortcyl +vertPla1 -vertPla2) | (+Brick | + ceeling
- floor)
* Region CmplexRg is the union of two zones. The first zone is the
* intersection of body "longcyl" with a portion of space contained inside
* both bodies "shortcyl" and "vertPla1" but not inside body "vertPla2".
* The second zone is the union of the space points inside body "Brick"
* and the space points contained by body "ceeling" but located outside
* body "floor".
8.2.8} Region END line
Region data must be terminated by a line with the string END (in column 3-5 if
format is fixed).
8.2.9} Region Volumes
--------------
This is an optional set of cards which must be input if (and only if)
flag IVLFLG in the CG Title line has been given a value 3. As many volume
definition cards must be given as is needed to input a volume for every
region. The input variable is an array VLREGS(I) = volume of the
Ith region. The format is (7E10.5). Volume data are used by FLUKA only
to normalise energy or star densities in regions requested by the
SCORE command.
8.2.10} LATTICE card
------------
This is an optional card for modular geometries. Its use needs some
more effort and preparation:
* The basic unit of the geometry, composed by an arbitrary number of
regions, must be described in full detail in the body and region data.
* Additional body and region data must also be provided to describe
"container" regions representing the "boxes", or lattice cells, wherein
the basic unit has to be replicated. No material assignment is needed for
these lattice-cell regions.
* A roto-translation must be defined (option ROT-DEFI) and associated with
each lattice to provide the transformation bringing from any point and
direction inside each lattice cell to the corresponding point and direction
in the basic unit. Alternatively, a user routine (LATTIC, see 13}) can be
written for the same purpose.
* The LATTICE card itself identifies the lattice cells and establishes the
correspondence between region number and lattice cell number, where the
region number is the sequential number in the region table, and the
lattice cell number is that used in the tracking to address the
transformation routine, and is chosen by the user. Contiguous numbering
is recommended for memory management reasons, but is not mandatory.
Non-contiguous numbering can be done using several LATTICE cards.
In the LATTICE card, the meanings of the WHAT parameters are:
WHAT(1) = "Container-region" number of the first lattice cell
("From region WHAT(1)...")
No default
WHAT(2) = "Container-region" number of the last lattice cell
("...to region WHAT(2)...")
Default = WHAT(1)
WHAT(3) = step length in assigning "Container-region" numbers
("...in steps of WHAT(3)").
Default = 1.
WHAT(4) = lattice number of the first lattice cell (or corresponding name),
assigned to region WHAT(1)
No default
WHAT(5) = lattice number of the last lattice cell (or corresponding name),
assigned to region WHAT(2)
WHAT(6) = step length in assigning cell numbers/names
("...in steps of WHAT(6)").
Default = 1.
SDUM = possible index of transformation associated with this lattice.
Exceptionally, here SDUM can contain an integer number, in free
format, following any of the strings "ROT#", "Rot#", "rot#",
"RO#", "Ro#", "ro#. If any one of such strings is present, an
integer identifying the associated roto-translation is read in
the following characters. If no such string is found, the LATTIC
user routine will be called whenever a transformation is
required. Otherwise, if a name is present, it is supposed to be
the (character) name (with sign) of the associated
roto-translation. If a null string is found, the LATTIC user
routine will be called whenever a transformation is required.
It is possible to associate a nested transformation to a
lattice (see card LATTSNGL, section 8.2.11}).
A single geometry can be a mixture of modular areas, described by lattices,
and "normal" areas, described by standard regions.
Many different LATTICE cards may be issued in the same geometry, when different
symmetries are present in different areas. In principle, any analytical
symmetry transformation can be implemented (rotation, translation, reflection,
or combination of these).
Care must be taken to ensure that any region in the basic unit is fully
contained (after coordinate transformation) in any lattice cell
belonging to its symmetry transformation. Regions falling across two
different lattice cells would lead to unpredictable behaviour.
The basic unit does not need necessarily to describe a "real" geometry
region, but can as well be used only as a prototype to reproduce in
any number of "copies".
NOTE: The lattice cell regions do not need to be included in the other input
option cards. Materials, thresholds, etc., must be assigned ONLY to the
regions contained in the basic unit. Of course, this implies that all
copies of a same basic unit share the same material, setting and biasing
properties.
IMPORTANT: If the geometry is being described in free format, using
alphanumeric names as body and region identifiers, names MUST be used also
in the LATTICE card(s) for both regions and lattices.
8.2.11} LATTSNGL card
------------
This card allows to associate two nested (signed) transformations R1
and R2 to a lattice. The resulting nested transformation acts on a body
vector r as
r' = R2 (R1 (r)).
WHAT(1) = "Container-region" number of the lattice cell
No default
WHAT(2) = index or name (with sign) of the first transformation
Default = 0.
WHAT(3) = index or name (with sign) of the second transformation
Default = 0.
WHAT(4) = lattice number of the lattice cell (or corresponding
name), assigned to region WHAT(1)
No default
WHAT(5) = not used
WHAT(6) = not used
SDUM = not used
8.2.12} GEOEND card
-----------
A card with the string GEOEND in column 1-6 must terminate the
combinatorial geometry input.
8.2.12.1} Geometry debugger
-----------------
The GEOEND card can be used also to activate the geometry debugger,
using the WHAT and SDUM parameters. In this case, a second GEOEND
card (continuation) may be necessary. It is recommended that a STOP
card should follow immediately, avoiding to start transport when
debugging is completed.
1st GEOEND card:
WHAT(1) = X_max of the geometry region to be debugged (no default)
WHAT(2) = Y_max of the geometry region to be debugged (no default)
WHAT(3) = Z_max of the geometry region to be debugged (no default)
WHAT(4) = X_min of the geometry region to be debugged (no default)
WHAT(5) = Y_min of the geometry region to be debugged (no default)
WHAT(6) = Z_min of the geometry region to be debugged (no default)
SDUM: must be = DEBUG to activate the debugger
2nd (optional) GEOEND card:
WHAT(1) = Number of steps in the x-direction between
X_min and X_max (default: 20)
WHAT(2) = Number of steps in the y-direction between
Y_min and Y_max (default: 20)
WHAT(3) = Number of steps in the z-direction between
Z_min and Z_max (default: 20)
WHAT(4) = Maximum number of errors after which debugging stops.
Default = 500.0
WHAT(5,6) : not used
SDUM = & in any position in column 71 to 78 (or in the last field if
free format is used)
Default (option GEOEND not given): NOT ALLOWED! GEOBEGIN and GEOEND must
always be present.
See the Notes to GEOEND option for more details and instructions.
8.3} Voxel Geometry
It is possible to describe a complex geometry in terms of "voxels" (tiny
identical parallelepipeds forming a 3-dimensional grid). In principle this can
be done with any geometry but it is especially useful when translating a CT
scan of a human body into a dosimetry phantom [Zan01]. Therefore, we will use
loosely the word "organ" to indicate a contiguous group of voxels (or even
more than one group) made of the same material. The code handles each organ as
a Combinatorial Geometry region, possibly in addition to other conventional
"non-voxel" regions defined by the user, and assigns automatically to each
organ a new region number.
To describe a voxel geometry, the user must:
1) Assign an organ to each voxel. Each organ is identified by a unique integer
=< 32767. The numbering does not need to be contiguous, i.e. gaps in the
numbering sequence are allowed. One of the organs must have number 0 and
plays the role of the medium surrounding the voxels (usually vacuum or air).
The assignment is done via a special file where the organ corresponding to
each voxel is listed sequentially in Fortran list-oriented format, with the
x coordinate running faster than y, and y running faster than z (see example
below). In practice the file is always written by a program similar to the
one reported below. The user will need to modify the values of the
parameters DX, DY, DZ, NX, NY, NZ (respectively voxel size and number of
voxels for each coordinate), and possibly some other more trivial things
(file names, title, reading from the original CT scan file). The following
program takes also care of recompacting the original organ numbers by
eliminating all gaps in the sequence, and writes a translation table to the
screen:
WRITE(*,'(A,2I10)')' New number, old number: ', NO, IC
After having modified the program (assumed to be in a file writegolem.f),
compile it:
$FLUPRO/flutil/fff writegolem.f
link it with the FLUKA library:
$FLUPRO/flutil/lfluka -o writegolem writegolem.o
execute it:
./writegolem
The result will be a file golem.vxl (or equivalent name chosen by the user)
which will be referred to by a special command line in the geometry input
(see below).
*------------------------------------------------------------------------------
PROGRAM WRITEGOLEM
INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
* COLUMNS: FROM LEFT TO RIGHT
* ROWS: FROM BACK TO FRONT
* SLICES: FROM TOP TO BOTTOM
PARAMETER ( DX = 0.208D+00 )
PARAMETER ( DY = 0.208D+00 )
PARAMETER ( DZ =-0.8D+00 )
PARAMETER ( NX = 256 )
PARAMETER ( NY = 256 )
PARAMETER ( NZ = 220 )
DIMENSION GOLEM(NX,NY,NZ)
INTEGER*2 GOLEM
CHARACTER TITLE*80
DIMENSION IREG(1000), KREG(1000)
INTEGER*2 IREG, KREG
*
CALL CMSPPR
DO IC = 1, 1000
KREG(IC) = 0
END DO
OPEN(UNIT=30,FILE='ascii_segm_golem',STATUS='OLD')
READ(30,*) GOLEM
NO=0
MO=0
DO IZ=1,NZ
DO IY=1,NY
DO IX=1,NX
IF (GOLEM(IX,IY,IZ) .GT. 0) THEN
IC = GOLEM(IX,IY,IZ)
MO = MAX (MO,IC)
DO IR=1,NO
IF (IREG(IR) .EQ. IC) GO TO 1000
END DO
NO=NO+1
IREG(NO)=IC
KREG(IC)=NO
WRITE(*,'(A,2I10)')' New number, old number: ', NO, IC
1000 CONTINUE
END IF
END DO
END DO
END DO
* NO = number of different organs
* MO = max. organ number before compacting
WRITE(*,*) ' NO,MO',NO,MO
OPEN(UNIT=31,FILE='golem.vxl',STATUS='UNKNOWN',FORM='UNFORMATTED')
TITLE = 'Golem'
WRITE(31) TITLE
WRITE(31) NX,NY,NZ,NO,MO
WRITE(31) DX,DY,DZ
WRITE(31) GOLEM
WRITE(31) (KREG(IC),IC=1,MO)
STOP
END
*----------------------------------------------------------------------
Starting from Fluka2011.2b, the voxel files can contain an arbitrary
number of extra records of 80 characters each, which are read and
interpreted as ordinary input cards. This allows to embed in the
voxel files informations such as material definitions, material
assignments, correction factor etc, which are often generated
by automatic programs out of a CT scan. Flair contains tools for
reading CT scans in Dicom format, and automatically generates a
voxel file containing the material and correction factor
informations according to a Hounsfield number to material/density
translation algorithm which can be tuned by the user.
2) Prepare the usual FLUKA input file. The geometry must be written like
a normal Combinatorial Geometry input (in any of the allowed formats,
as part of the normal input stream or in a separate file), but
in addition must include:
* A VOXELS card as a first line, before the Geometry title card, with the
following information:
WHAT(1), WHAT(2), WHAT(3) = x, y, z coordinates chosen as the origin of
the "voxel volume", i.e. of a region made of a single RPP body
which contains all the voxels
WHAT(4) = index (or name) of the ROT-DEFIni card for an eventual
roto/translation of the VOXELs
WHAT(5) : not used
WHAT(6) : used mainly for debugging. If WHAT(6) is not divisible by 10,
a voxel geometry test is carried out. The RPP-to-voxel,
voxel-to-organ, and organ-to-region correspondences are
checked. The program stops in case of inconsistency.
SDUM = name of the voxel file (extension will be assumed to be .vxl).
* The usual list of NB bodies, not including the RPP corresponding to the
"voxel volume" (see VOXELS card above). This RPP will be generated and
added automatically by the code as the (NB+1)th body, with one corner in
the point indicated in the VOXELS card, and dimensions NX*DX, NY*DY
and NZ*DZ as read from the voxel file.
* The usual region list of NR regions, with the space occupied by body NB+1
(the "voxel volume") subtracted. In other words, the NR regions listed
must cover the whole available space, excepted the space corresponding to
the "voxel volume". This is easily obtained by subtracting body NB+1 in
the relevant region definitions, even though this body is not explicitly
input at the end of the body list. The code will automatically generate
and add several regions:
Name Number Description
-------- ------ -------------
VOXEL NR+1 this is a sort of "cage" for all the voxels. Nothing
(energy etc.) should ever be deposited in it: the user
shall assign VACUUM to it
VOXEL001 NR+2 containing all voxels belonging to organ number 0.
There must be at least 2 of such voxels, but in general
they should be many more. Typical material assignment
to region NR+2 is AIR.
VOXEL002 NR+3 corresponding to organ 1
VOXEL003 NR+4 corresponding to organ 2
........ .... ........................
VOX##### NR+2+NO corresponding to organ NO
where NO = number of non-zero organs
The assignment of materials shall be made by command ASSIGNMAt
(and in a similar way other region-dependent options) referring to
the first NR regions in the usual way, and to the additional regions
using the correspondence to organs as explained above.
8.4} The FLAIR Geometry Editor
The Geometry Editor is an addition to Flair (see 2.8}) for viewing/debugging
and editing FLUKA geometries in a graphical way. It works on 2D cross sections
of the geometry with some 3D capabilities.
Main features:
- Fast display of complex geometries
- Many user-customizable layers:
the Layers dialog allows the user to create customized views. The user has
the possibility to change the fill color of the regions displaying regions,
materials or even color encoding of biasing, cuts, thresholds etc. Moreover
the user has the possibility to overlay a background image, e.g. a
technical drawing, USRBIN data, BEAM parameters, lattices, voxels,
transformations, as well as 3D representations using a raytracing technique.
Or a combination of any of the above.
- Graphical editing of the bodies with snapping mechanism to generate accurate
coordinates
- Visual selection and editing of zones without the need to know the
orientation of bodies
- Use real curve of bodies with no conversion to vertices/edges
- Interactive debugging with information of problematic bodies, regions
and/or zones
1********************************************************************************
9} Output
********************************************************************************
The output of FLUKA consists of:
* a main (standard) output, written on logical output unit LUNOUT
(predefined as 11 by default)
* two scratch files, of little interest to the user, written on
output units LUNECH and LUNGEO (8 and 16 by default). However,
if the rfluka script is used to run FLUKA, these files
are automatically deleted by the script at the end of the run
* a file with the last random number seeds, unit LUNRAN (2 by default)
* a file of error messages (if any), unit LUNERR (15 by default)
* any number (including zero) of estimator output files. Their
corresponding logical unit number is defined by the user: in case
the number chosen coincides with one of the above, in particular
LUNOUT, estimator formatted output will appear as part of the
corresponding output stream. However, this is not recommended,
and it is not allowed anyway in the case of unformatted output.
Generally, the user can choose between formatted and unformatted
output. Only formatted output is presented here, while unformatted
output is described at the end of each option description
* possible additional output generated by the user in any user routine,
in particular USROUT (see 13})
========================================================================
9.1} Main output
----------------
The standard, or main, output is made of several different parts:
* A banner page
* A header with the FLUKA version and the time when the output was printed
* A straight echo of the input cards
Each input line is echoed in output, but not character by character.
The input WHATs and SDUMs are read, and then written with a different format.
Any alignment error shows up as a number or a character string different
from the one intended: therefore in case of problems checking this part
of the output is more effective than checking the input itself.
Comments are reproduced in output, with the exception of in-line
comments preceded by an exclamation mark (!)
* Geometry output (if not redirected to a separate file, see GEOBEGIN)
The geometry output (which is part of the standard output by default,
but can be re-directed to a separate file) begins with an echo of
the geometry title and the value of the two input variables IVLFLG
(Input VoLume FLaG) and IDBG (in the original CG a debugging flag,
but now used to select various format lengths).
Then there in an echo of the body and region input, including comment
line, and some lines left over from the original MORSE CG, but which are
of little or no meaning in the context of FLUKA: for instance the arrays
IR1 and IR2 (material and biasing assignment to regions, which in FLUKA
are not part of the geometry data). Other information concerns the memory
allocation: FPD (Floating Point Data), INTEGER ARRAY, zone locations
("zone" and "region" have a different meaning in MORSE, but not in FLUKA).
"Code zones" indicates the sub-regions defined by the input OR operator.
The next sections, "Interpreted body echo" and "Interpreted region echo",
show the numbers assigned by the program to bodies and regions defined by
alphanumerical identifiers (if the traditional fixed format has been used,
these output sections are of little interest).
The interpreted echos are followed by the volumes used to normalize a
possible output from option SCORE. Then, for each region in whose
description the OR operator is used, one line similar to the following is
printed at the end of the geometry output:
*** Region # 2 Dnear according to no overlapping ORs ***
*** Region # 3 Dnear according to possible overlapping ORs ***
This information concerns the possibility that random seed sequences
might not be reproducible, a technical issue which does not affect
the quality of the results but can be important for debugging or other
purposes (see a more detailed explanation in a Note to option GLOBAL).
* Basic nuclear data used in the program
The data reported are nuclear masses and model parameters used by the
program. This output section is constant and does not depend on the
problem input (it is printed even if the calculation is purely
electromagnetical and does not depend on nuclear models).
* Information on physical models used in the run
The nuclear models used by FLUKA to describe intermediate nuclear
effects and interactions have been continuously improved since 1989.
They are automatically activated if the user chooses the appropriate
defaults. Depending on the latter and on the input options used, an
informative message is issued concerning the presence of the following:
Evaporation from residual nucleus
Production of deexcitation gammas
Transport of heavy evaporation products
High Energy fission
Fermi Break-Up
* Material quantities related to multiple scattering
The values of various quantities used by the FLUKA multiple Coulomb
scattering algorithm are printed for each material and for each type of
charged particle.
* Memory allocation information
Starting and ending location in memory of various arrays dynamically
allocated are printed at different points on main output, depending
on the order of input cards.
* Table of correspondence between materials used in the run and
materials in the low-energy neutron cross section library.
Example:
*** Fluka to Morse material correspondence: printed atomic densities are
meaningless when used in a compound ***
Fluka medium Name Morse medium atomic density Id. 1 Id. 2 Id. 3
number number ( at/(cm barn) )
1 BLCKHOLE 0 0.0000E+00 0 0 0
2 VACUUM 1000 0.0000E+00 0 0 0
6 CARBON 1 0.0000E+00 6 -2 293
7 NITROGEN 2 0.0000E+00 7 -2 293
8 OXYGEN 3 5.3787E-05 8 16 293
17 LEAD 5 3.2988E-02 82 -2 293
21 ARGON 4 0.0000E+00 18 -2 293
Compounds are not listed in this table, since for the time being the FLUKA
neutron library contains only single elements or nuclides.
"Fluka medium number" refers to the material number given by the user via
WHAT(4) in option MATERIAL; "Morse medium number" is the material index
used internally by the FLUKA low-energy neutron package (originally
derived from the MORSE code). Such index is assigned only to library
materials actually used in the current problem, unlike "FLUKA media" which
can be predefined or defined in input, without being actually assigned to
any region.
Blackhole and vacuum are always assigned Morse index 0 and 1000.
Atomic densities refer to the material in its elemental form and are
printed as 0.0000E+00 if the corresponding element is used only as part of
a compound.
The last 3 columns in the table are the material identifiers unique to each
library material (see 10} and option LOW-MAT).
* Information on the low-energy neutron cross sections
If low-energy neutrons are transported, some problem-specific information
may be printed, e.g. materials for which recoil or (n,p) protons are
produced explicitly and not accounted for by kerma factors (usually
hydrogen and nitrogen), or materials for which pointwise cross sections
are used (see LOW-NEUT: WHAT(6) and Note 5).
This is followed by generic information on the neutron cross section
library used (number of energy groups and angles, number of materials, etc.).
If the user requests a more detailed printout (option LOW-NEUT) the
following information is printed, depending on the value of WHAT(4):
WHAT(4) = 1.:
for each neutron energy group:
- group energy limits
- average energies
- velocities and momenta corresponding to the group energy limits
- energy limits of each gamma group
- thermal neutron velocities
for each material used: availability of residual nuclei information
and, for each neutron energy group:
SIGT = total cross section in barn
SIGST = "scattering" cross section in barn. Actually it is equal
to sigma(n,n) + 2*sigma(n,2n) + 3*sigma(n,3n) etc.
PNUP = upscatter probability (can be different from zero only if
there are several thermal groups)
PNABS = probability of Non-ABSorption (= scattering).
It is = SIGST/SIGT, and can sometimes be > 1 because of
(n,xn) reactions
GAMGEN = GAMma GENeration probability = gamma production cross
section divided by SIGT and multiplied by the average
number of gammas per (n,gamma) reaction
NU*FIS = fission neutron production = fission cross section divided
by SIGT and multiplied by nu, the average number of
neutrons per fission
EDEP = Kerma contribution in GeV per collision
PNEL, PXN, PFISS, PNGAM = partial cross sections, expressed as
probabilities (i.e. ratios to SIGT). In the order:
non-elastic, (n,xn), fission, (n,gamma)
The line: (RESIDUAL NUCLEI INFORMATIONS AVAILABLE), if present,
indicates the possibility to use option RESNUCLEi with
WHAT(1) = 2.0.
WHAT(4) = 2.: the same as above plus:
for each material used and for each neutron energy group:
- the downscattering matrix (group-to-group transfer probabilities),
as in the following example:
1 CROSS SECTIONS FOR MEDIA 4
.............................................................
(RESIDUAL NUCLEI INFORMATIONS AVAILABLE)
GROUP....DOWNSCATTER MATRIX
.............................................................
6....0.4927 0.0148 0.0006 0.0012 0.0017 0.0023 0.0028 0.0033
0.0038 0.0045 0.0056 0.0070 0.0087 0.0104 0.0120 0.0134
0.0149 0.0163 0.0175 0.0184 0.0190 0.0193 0.0193 0.0190
0.0185 0.0178 0.0164 0.0329 0.0311 0.0278 0.0247 0.0219
0.0198 0.0158 0.0126 0.0101 0.0112 0.0070 0.0026 0.0008
0.0004 0.0002 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
.............................................................
The above table means: after scattering in material 4 of a neutron
in energy group 6, the probability of getting a neutron in the
same group is 49.27%; that to get a neutron in the following group
(group 7) is 1.48%, in group 8 is 0.06% etc. This matrix,
normalised to 1, gives the relative probability of each neutron
group: but the actual probability PER COLLISION must be obtained
by multiplying by PNABS, the scattering cross section divided by
the total cross section and multiplied by the average number of
neutrons per non absorption reaction.
- neutron-to-gamma group transfer probabilities, for instance:
1 NEUTRON TO GAMMA TRANSFERS FOR MEDIA 6
NEUT GROUP GAMGEN TRANSFER PROBABILITIES
1 1.7749E+00 0.0000 0.0000 0.0000 0.0003 0.0002 0.0004
0.0008 0.0015 0.0027 0.0048 0.0084 0.0144
0.0239 0.0378 0.0686 0.0942 0.0967 0.1125
0.2830 0.1249 0.0625 0.0625
..............................................................
The meaning is similar to that explained above, except that each
number refers to the probability of getting a gamma in the
corresponding gamma group. Again, this matrix, normalised to 1,
gives the relative probability of each gamma group: but the actual
probability PER COLLISION must be obtained by multiplying by
GAMGEN, the gamma production cross section divided by the total
cross section and multiplied by the average number of gammas per
(n,gamma) reaction
WHAT(4) = 3.: the same as above plus:
for each material used and for each neutron energy group:
Cumulative scattering probabilities and scattering polar angle
cosines as in the following example:
1 SCATTERING PROBABILITIES AND ANGLES FOR MEDIA NUMBER 4
GP TO GP PROB ANGLE PROB ANGLE PROB ANGLE
.............................................................
6 6 0.8736 0.9557 0.9823 0.3741 1.0000 -0.6421
6 7 0.4105 0.8383 0.8199 0.1057 1.0000 -0.7588
6 8 0.4444 0.0001 0.7223 0.7747 1.0000 -0.7746
6 9 0.4444 -0.0001 0.7223 -0.7746 1.0000 0.7746
6 10 0.4444 0.0000 0.7223 -0.7746 1.0000 0.7746
6 11 -1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
6 12 -1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
6 13 -1.0000 0.0000 0.0000 0.0000 0.0000 0.0000
.............................................................
The above table reports 3 discrete angle cosines (corresponding to
a Legendre P5 expansion) for each group-to-group scattering
combination, with the respective cumulative probabilities. For
instance, the line:
6 7 0.4105 0.8383 0.8199 0.1057 1.0000 -0.7588
means that neutron scattering from energy group 6 to group 7
has a 0.4105 probability to be at a polar angle of 33 degrees
(0.8383 = cos(33deg)); a probability (0.8199 - 0.4105) = 0.4094 to
be at 84 degrees = acos(0.1057); and a probability
(1.000 - 0.8199) = 0.1801 to be at 139 degrees = acos(-0.7588).
A -1.0000 probability indicates an isotropic distribution.
* Table of available particle types
This table presents constant properties of all particles transported by
FLUKA (name, id number, rest mass and charge), plus two columns indicating:
- the particles which are discarded, by default (neutrinos) or on user's
request (option DISCARD)
- the particle decay flag (see option PHYSICS, with SDUM = DECAYS)
The available generalised particles and their id are also listed.
* An expanded summary of the input:
This part of output summarises the most important input data, decoded and
presented in a more colloquial way.
a. Beam properties:
Information given by BEAM and BEAMPOS option: type of particle,
energy/momentum, direction, etc. If a user SOURCE is used, it is
indicated here
b. Energy thresholds:
Particle cutoff energies of hadrons and muons as set by default or by
option PART-THR. Neutron cutoff means the threshold between high
and low-energy (multi-group) neutron treatment. Low-energy neutron
group cutoffs are reported by region in a separate table
(see f. below). Electron and photon cutoffs are also reported in a
separate table (see p. below).
c. Ending conditions
The maximum number of histories and stars and other ending options
set in card START are summarised here
d. Multiple scattering (hadrons and muons):
There is a statement about a Coulomb scattering approximation level,
but only for historical reasons. Presently only level 1 is available.
The logical flags which follow are related to option MULSOPT with
SDUM = GLOBAL or GLOBHAD. The number of single scatterings to be
performed at boundary crossing is also printed.
e. Treatment of electrons and photons, including multiple scattering
For historical reasons dating from the time when FLUKA was handling
only high-energy particles, this title of this part is
"Electromagnetic Cascades".
The logical flags which follow are related to option MULSOPT with
SDUM = GLOBAL or GLOBEMF. The number of single scatterings to be
performed at boundary crossing is also printed.
f. Biasing parameters
This table reports several region-dependent biasing and cutoff
parameters:
- Particle importances (set with WHAT(1) and WHAT(3) of option
BIASING)
- Russian Roulette factor (multiplicity biasing set with WHAT(2) of
option BIASING)
- Cutoff group (WHAT(1) of option LOW-BIAS)
- Group limit for non-analogue absorption (WHAT(1) of option LOW-BIAS)
- Non-analogue survival probability (WHAT(3) of option LOW-BIAS)
- Group limit for biased downscattering (WHAT(1) of option LOW-DOWN)
- Biasing downscattering factor (WHAT(2) of option LOW-DOWN)
g. Estimators requested
For each requested estimator (USRBIN, USRBDX, USRCOLL, USRTRACK,
USRYIELD, RESNUCLEi, DETECT), a complete description is printed
(detector number, particle type, defining region(s) or binning
limits, number of intervals/bins, area/volume, linear/logarithmic,
type of quantity etc.). If the estimator output file is formatted, the
same information is printed also there in an identical format,
otherwise it is available on the corresponding unformatted file.
Note that the estimator detectors are numbered separately according to
their estimator type (Bdrx n. 1, Bdrx n. 2 etc.; Binning n. 1,
Binning n. 2 etc. - independent from the type of binning - Track n. 1,
Track n. 2 etc.), in the order they appear in input. The estimator type
and the detector number can be passed (as variables ISCRNG and JSCRNG
in COMMON SCOHLP) to the user routines COMSCW and FLUSCW, to allow
different kinds of weighting on the scored quantities, depending on the
detector number (see 13})
h. Materials defined and pre-defined
This table includes all materials pre-defined and not overridden
by the user, plus those defined in the user input via options
MATERIAL and COMPOUND, independent from the fact that they have been
assigned or not to any region.
The different columns report the material number, name, atomic number Z
and atomic weight A (effective Z, A for compounds), density, inelastic
and elastic scattering lengths for the primary particles at the
energy defined by option BEAM (meaningful only for primary hadrons),
radiation length (value not used by the program) and inelastic
scattering length for neutrons at the threshold momentum for
transition to the group treatment (by default 20 MeV unless
overridden by PART-THR).
For compounds, an insert is printed with the element composition, plus
the atom fraction and partial density of each component.
i. dE/dx tabulations (if requested, see DELTARAY)
For each assigned material and for each charged heavy particle
(hadrons, muons, recoil ions) a table is printed with the following
data:
energy, unrestricted stopping power, eta (= beta * gamma), shell
correction, restricted stopping power (according to the threshold
specified by the user with DELTARAY, WHAT(1)).
j. Other stopping power information
The following is printed for each material used:
gas pressure (if applicable), average excitation energy, effective
Z/A, Sternheimer density effect parameters, delta ray production,
threshold, description level for stopping power fluctuations
description level (set with IONFLUCT, WHAT(1) and WHAT(3)),and
threshold for pair production and bremsstrahlung by heavy particles
(set with PAIRBREM).
k. Photonuclear reaction requests
A line of information is printed for each material in which muon
photonuclear interactions have been activated (see MUPHOTON). A
similar information is printed for gamma photonuclear interactions,
with the PHOTONUC flag for the relevant energy ranges.
l. Table of correspondence between materials and regions
This table corresponds to the ASSIGNMAt command and may be useful to
check the material assignment to the various regions, as well as
the regions where a magnetic field is present. The minimum step size
set with option STEPSIZE is also reported. The last column refers to
a maximum step size which has not yet been implemented.
m. Rayleigh scattering requests
A line of information is printed for each material in which Rayleigh
scattering has been activated (option EMFRAY).
n. Fluorescence requests
For each material for which fluorescence X-ray production has been
requested, information about the relevant photoelectric cross
section edges is reported (option EMFFLUO).
o. Table of correspondence between regions and EMF materials/biasing
For each assigned material, this table reports the name, number
(the internal numbering sequence is different in the EMF part of
FLUKA), electron and photon energy cutoffs (set with EMFCUT), and
four logical flags indicating whether some options have ben activated
for the material concerned (T means on, F off). The meaning of the
flags is:
BIAS --> Leading Particle Biasing (LPB) (set by EMF-BIAS or EMFCUT)
Ray. --> Rayleigh scattering (set by EMFRAY with WHAT(1) = 1., 2.,
4. or 5.)
S(q,Z) --> Compton binding corrections (EMFRAY with WHAT(1) = 1., 3.,
4. or 6.)
Pz(q,Z) --> Compton Doppler broadening (EMFRAY with WHAT(1) = 4.
or 6.)
The energy thresholds below which LPB is played for electrons and
photons (WHAT(2) and WHAT(3) of EMF-BIAS) are also reported, and so
is the LPB bit-code for selected effects (WHAT(1) of EMF-BIAS)
* Random number generator calls and CPU time for some histories
During the calculation, a couple of lines is printed time and again
after a certain number of histories (or after each history, depending
on WHAT(5) of option START). [Occasional warning messages printed
during particle transport are found between the lines, especially
if photonuclear reactions have been activated: they have mainly a
temporary debugging purpose and should be ignored].
One of the two lines contains the number of random number generator
calls, expressed as two integers I1, I2 in hexadecimal format (2Z8).
The actual number of calls is equal to I2*1.E9 + I1.
The second line reports, in the following order: the number of
primary particles handled, the number of particles still to be
handled (with respect to the maximum requested by WHAT(1) of START),
the number of particles which can still be handled judging from the
average time spent so far, the average time per primary based on the
histories already completed, and the estimated time still available
with respect to WHAT(3) of START.
The sequence of random number call lines is terminated by a message
(FEEDER is the FLUKA routine which starts every history):
"All cases handled by feeder" if the whole number of particles
requested in START has been completed
"Run termination forced from outside" if the run has been
shortened by the FLUKA "stop file"
"Feeder ended due to timeout" if the time limit has been reached
- see WHAT(6) of START or system-imposed time limit
* Results of SCORE option for all regions
Up to 4 different quantities (energy or star density) are printed at one
line per region. The volume used for normalisation is also printed
(equal to 1.0 unless a different value has been input by the user at the
end of the geometry description). Even if SCORE has not been requested
a line of zeros is printed for each region.
* Statistics of Coulomb scattering
The number of scatterings which were not performed or were performed
without LDA (Lateral Displacement Algorithm) because they failed to
satisfy Moli\`ere's conditions is reported here. This number is usually
very small compared to the total number of scatterings, also reported.
If single scatterings have been activated, their number is also printed.
* Russian Roulette/Splitting counters (if requested, see BIASING)
If the BIASING option has been used with SDUM = PRINT, the following
statistics is printed for each region:
"N. of RR" --> Number of Russian Roulette operations made on particles
ENTERING that region
" in" --> Average weight of particles submitted to Russian Roulette
when entering the region
" kil" --> Average weight of particles killed after being submitted
to Russian Roulette when entering the region
"N. of Sp" --> Number of splitting operations made on particles ENTERING
the region
" in" --> Average weight of particles submitted to splitting when
entering the region
" out" --> Average weight of particles after being submitted to
splitting when entering the region
Separate counters are printed for hadrons/muons, electrons/photons and
low-energy neutrons (referring to importance biasing requested by BIASING
respectively with WHAT(1) = 1.0, 2.0 and 3.0, or = 0.0 for all).
The number of RR actually refers to "all particles which have not been
splitted" (a particle crossing a boundary between two regions of equal
importance is submitted neither to RR nor to splitting, but is counted as
if it was a RR).
Therefore, the counters can be used to calculate the following quantities,
useful as a guide to set importances and weight windows:
A = "N. of RR" + "N. of Sp" = total number of particles entering the region
B = (" in"_RR * "N. of RR") + (" in"_Sp * "N. of Sp") = total
weight of the particles entering the region
B/A = average weight of the particles entering the region
Note that RR and splitting arising from Weight-Window biasing (options
WW-FACTOR, WW-THRESh, WW-PROFI) or from multiplicity biasing (WHAT(2) in
option BIASING) are not accounted for in the counters.
* Final global statistics
At the end of a successful run, after a title:
"STATISTICS OF THE RUN"
the following are printed:
- Total number of primary particles
- Total weight of the primary particles (can be different from the
previous one, especially if a user source has been used)
- Total number of stars (hadron inelastic collisions) generated
- Total weight of the stars generated
Note: this statistics includes ALL hadron inelastic collisions,
independent from any threshold set by option THRESHOLd.
Therefore, this number of stars can be different from that
obtained with SCORE or USRBIN.
- Total number of low energy neutron interactions
- Total weight of the low energy neutron interactions
- Total CPU time used to describe all the histories
- Average CPU time per history
- Maximum CPU time used by a history
- Time left before time limit (if applicable)
A more detailed statistics of different quantities follows, including all
regions. The contribution of each type of particle is given, normalised
per unit weight of beam/source particles and also in percent of the total.
- Stars (inelastic hadron interactions)
- Secondaries created in inelastic hadron interactions
- High-energy fissions
- Decay products
- Decayed particles
For each particle the decay length at the decay position is also
reported (decay length = c * tau, with tau = mean life)
- Particles reaching cutoff energy
- Secondaries created in low-energy neutron interactions
Energy balance.
Each main output ends with a global energy budget. The user should
always check it to make sure that the calculation is not affected by any
unphysical effect or mistake. The budget entries are:
- Total energy "deposited" per unit weight of beam/source particle
"Deposited" means actually "accounted for". This value should
normally be equal to the average energy of the primary particles,
except in the case of abnormal termination before the end of the
first history.
- Energy deposited by by ionisation
This is energy deposited by continuous losses of heavy charged
particles (hadron, muon and ion stopping power). Note that it
depends on several user choices:
=> the thresholds set for delta ray production (energy
transferred to electrons is accounted for in the next entry)
=> the transport thresholds (energy of stopping particles is
counted in a separate entry below)
=> transport of light ion recoils (if not transported, their
energy is deposited at the point of production and is
recorded under a separate entry)
- Energy deposited by electrons and positrons
For historical reasons this is labelled as "by em-cascade". It
may depend on delta ray thresholds (see above)
- Energy deposited by nuclear recoils and heavy fragments
This includes only ions which have not been transported
- Energy of particles below threshold
- Residual excitation energy
This is excitation energy of nucleus which is left after
evaporation and not emitted as prompt gamma de-excitation (e.g.
radioactive decay energy)
- Energy deposited by low energy neutrons
This energy is deposited as kerma at the point of collision. It
does not include the energy of hydrogen proton recoils and
that of protons from the 14N(n,p)14C reaction. These protons are
transported explicitly and their energy losses are accounted for
as ionisation losses.
- Escaping the system
More generally, energy entering the blackhole, whether in the
external region or in other blackhole regions defined by the user
- Energy of discarded particles
(Remember that neutrinos are always discarded by default)
- Energy of particles out of time limit
Can be different from zero only if the TIME-CUT option has been
chosen for at least one type of particles
- Missing energy
This entry is calculated as the difference between the total
energy and the sum of all the other entries. While it is usually
extremely small in pure electromagnetic problems, it can take
substantial values (positive or negative) in problems involving
nuclear reactions. It is usually positive, since most nuclear
reactions are endothermic (very roughly, about 8 MeV are spent to
produce each secondary nucleon). However, most low energy neutron
capture reactions are exothermic, and several MeV per capture are
emitted as gamma rays. In problems with fissile materials such as
235U, the "missing" energy can reach very large negative values.
Note that a similar, but more detailed energy balance can be obtained
event by event with option EVENTDAT. See description below.
* Maximum size of the particle stack
The last line of information concerns the maximum number of particles that
have been loaded in stack at any time. It is of little interest to most
users.
========================================================================
9.2} Scratch file
-----------------
The scratch file used by FLUKA is of little importance for most
users, and actually is deleted automatically by the rfluka script at
the end of a successful run. It is mentioned here only for the sake of
completeness.
The file, written on output unit LUNGEO (usually 16) is a simple echo
of the Combinatorial Geometry input, in a different format. At input time,
FLUKA stores temporarily the geometry data on this file and calculates the
length of the various geometry arrays, which must include also additional
information (e.g. the DNEAR value for each body). Then the data are retrieved
and the final memory allocation takes place.
========================================================================
9.3} Random number seeds
------------------------
A file of 97 seeds for the random number generator is written on output unit
LUNRAN (usually 2) at the end of each run. The file, which can be read in
the next run on an input unit defined by the user with option RANDOMIZe,
is written in hexadecimal format. The first line (which is also printed
on standard output at the beginning of the calculation) contains the total
number of generator calls corresponding to the present file, expressed as two
integers I1, I2 in hexadecimal format (2Z8). The actual number of calls is
equal to I2*1.E9 + I1. If the difference between the number of calls in two
such files is sufficiently large, the two files can be reasonably expected
to produce statistically independent runs.
========================================================================
9.4} Error messages
-------------------
Most error messages are written on output unit LUNERR (usually 15),
interspersed with lines giving the number of random number generator calls
identical to those printed on standard output. (This file has generally
extension .err). Each error message begins with the name of the routine in
which it is originated. Some messages, however (especially if fatal) are
printed on standard output.
Many error messages (often somewhat cryptic) are printed only for debugging or
information purposes and should be of concern to the user unless there is a
large number of them: for instance when one of the hadronic event generators
fails to conserve some quantity within the strict limits imposed.
Examples:
Eventq: charge/baryon conservation failure with Nucrin 5 4 11 10
Eventv: ekin+am < pla,ij,igreyt 4.93747684 4.94905223 14 1
The following type of message is also not important, and is especially frequent
in runs with photonuclear reactions activated:
*** Umfnst: eexany,eexdel,eexmin,amepar,enenew,np,ikpmx,eexnew,eexmax 0.
0.002 0.004319 1.11498839 1.09082268 2 0 0. 0.0171591096
Another type of informative message, indicating that a step counter has been
reset because it was approaching the upper limit for an integer, is the
following:
*** Emfgeo: Ncoun 2000000000
Generally, messages issued by the geometry routines are more important.
However, fatal ones are written to standard output, for instance:
EXIT BEING CALLED FROM G1, NEXT REGION NOT FOUND
In such cases, it is recommended to run the geometry debugger (see command GEOEND)
to find and correct the error.
The following one indicates a real problem if repeated more than a few times:
GEOFAR, TXYZ: 1. -0.0721463599 -0.409276348 -0.909553612
Nfrom, Nreg, X, Y, Z 1001 3 -0.108787724 -1.26878781 8.78769155
Geofar: Particle in region 3 (cell # 0) in position 1.000000000E+00
0.000000000E+00 1.000000000E+00
is now causing trouble, requesting a step of 6.258867675E-07 cm
to direction -2.285059979E-01 -9.412338141E-01 2.487245789E-01, error count: 0
[...skipped...]
Particle index 3 total energy 5.189748600E-04 GeV Nsurf 0
We succeeded in saving the particle: current region is n. 2 (cell # 0)
As it can be seen, the program has some difficulty to track a particle in
a certain direction, and it tries to fix the problem by "nudging" the particle
by a small amount, in case the problem is due to a rounding error near a
boundary. If the message appears often, it is recommended to run the geometry
debugger centering around the position reported in order to find if there is
an error in the geometry description.
Other geometry errors concern particles with direction cosines not properly
normalised. This happens often with user routines where the user has forgotten
to check that the sum of the squares be = 1.0D0 IN DOUBLE PRECISION.
For instance, the following message is generally caused by an inaccurate MAGFLD
user routine:
MAGNEW, TXYZ: ...[sum of the squares]... U,V,V: ...[3 cosines]...
A similar message may be issued by the tracking routine GEOFAR:
GEOFAR, TXYZ: ...[sum of the squares]... U,V,V: ...[3 cosines]...
Nfrom, Nreg, X, Y, Z' ...[calling code, region number, particle position]...
Another geometry error message is the following:
****************************************
GEOMETRY SEARCH ARRAY FULL
****************************************
This message indicates that insufficient memory has been allocated for the
"contiguity list" (list of zones contiguous to each zone). This is not an actual
error, but it is suggested that the user could optimise computer time
by increasing the values of the NAZ variable in the geometry region
specifications.
========================================================================
9.5} Estimator output
---------------------
Most estimator results can be printed either as unformatted files or as
formatted (ASCII) text, on logical output units chosen by the user.
The only exception is DETECT, for which only the unformatted option is
available, and for which the output unit number cannot be chosen (it is
always 17).
If the formatted option is chosen, it is possible to write the estimator
output as part of the main output (logical output unit 11). It is also
possible to write the results of more than one estimator on the same file.
However, the task of post-processing analysis programs is easier if
estimators of a different kind (e.g. USRBIN and USRBDX), or even with a
different structure (e.g. two USRBINs wit a different number of bins), have
their outputs directed to separate files.
All the formatted estimator outputs follow the same pattern:
- The title of the run (as given in input with option TITLE).
- Date and time
- Total number of particles followed, and their total weight. (Note that
the number of particles is written in format I7, that may be insufficient
for very large runs. In this case the value will be replaced by a line
of asterisks)
------------------------------------------------------------------------
9.5.1} DETECT output
--------------------
Option DETECT produces only unformatted output (see DETECT description for
instructions on how to read it). As for all other estimators, a complete
description in clear of the requested scoring is printed on the standard
output. For instance:
Detector n. 1 "COINC " , Ecutoff = 3.142E-07 GeV
1024 energy bins 2.717E-03 GeV wide, from 3.700E-03 to 2.786E+00 GeV
energy deposition in 1 regions, (n.: 3)
in coincidence with
energy deposition in 1 regions, (n.: 4)
Detector n. 2 "ANTICOINC " , Ecutoff = 6.614E-06 GeV
1024 energy bins 6.704E-03 GeV wide, from 7.300E-03 to 6.872E+00 GeV
energy deposition in 1 regions, (n.: 4)
in anti-coincidence with
energy deposition in 1 regions, (n.: 3)
------------------------------------------------------------------------
9.5.2} EVENTBIN output
----------------------
Option EVENTBIN produces either unformatted or formatted output. The
formatted output is seldom used because of its size (the binning results,
similar to those produced by option USRBIN, are printed after each
primary event). As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Cartesian binning n. 1 "Eventscore" , generalised particle n. 208
X coordinate: from -1.5000E+02 to 1.5000E+02 cm, 75 bins ( 4.0000E+00 cm wide)
Y coordinate: from 1.0000E+02 to 2.0000E+02 cm, 50 bins ( 2.0000E+00 cm wide)
Z coordinate: from -2.0000E+01 to 1.8000E+02 cm, 20 bins ( 1.0000E+01 cm wide)
data will be printed on unit 21 (unformatted if < 0)
accurate deposition along the tracks requested
unnormalised data will be printed event by event
The header of the formatted output is practically identical to that of USRBIN,
except for the words "event by event" printed after the total number of
particles:
***** Title (as provided by input command TITLE) *****
DATE: 1/ 5/ 5, TIME: 8:39:44
Total number of particles to be followed 8000, event by event
1
Cartesian binning n. 1 "Eventscore" , generalised particle n. 208
X coordinate: from -1.5000E+02 to 1.5000E+02 cm, 75 bins ( 4.0000E+00 cm wide)
Y coordinate: from 1.0000E+02 to 2.0000E+02 cm, 50 bins ( 2.0000E+00 cm wide)
Z coordinate: from -2.0000E+01 to 1.8000E+02 cm, 20 bins ( 1.0000E+01 cm wide)
Data follow in a matrix A(ix,iy,iz), format (1(5x,1p,10(1x,e11.4)))
accurate deposition along the tracks requested
The binning matrix is then printed once for each event (8000 times in the above
example), every time preceded by a line:
Binning n: 1, "Eventscore", Event #: 1, Primary(s) weight 1.0000E+00
................................................................................
Binning n: 1, "Eventscore", Event #: 8000, Primary(s) weight 1.0000E+00
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header.
------------------------------------------------------------------------
9.5.3} EVENTDAT output
----------------------
Option EVENTDAT produces either unformatted or formatted output (see EVENTDAT
description for instructions on how to read an unformatted output).
Unlike other estimators, no information is printed on standard output.
The formatted output begins with run title and run time, followed by a short
information about:
- Number of regions
- Number of generalised particle distributions requested
Then, for each primary history:
- History number
- Primary weight
- Primary energy
- Total energy balance for the current history, made of 12
contributions. Some of them correspond to those found in the final
balance printed at the end of the standard output, but in this
case no normalisation to the primary weight is made. Note that
some of the contributions are meaningful only in specific contexts
(e.g. if low-energy neutron transport has been requested). No
explanation is given about the meaning of each contribution, which
must be found here below in the order they are printed:
1 = energy deposited by ionisation
2 = en. depos. by pi0, electrons, positrons and photons
3 = en. depos. by nuclear recoils and heavy fragments
4 = energy deposited by particles below threshold
5 = energy leaving the system
6 = energy carried by discarded particles
7 = residual excitation energy after evaporation
8 = energy deposited by low-energy neutrons (kerma)
9 = energy of particles out of the time limit
10 = energy lost in endothermic nuclear reactions above 50 MeV
11 = energy lost in endothermic low-energy neutron reactions
12 = missing energy
- Energy or stars (depending on the generalised particle scoring
distribution) deposited or produced in each region during the
current history
- Random number generator information to be read in order to
reproduce the current sequence (skipping calls).
Example:
**** Event-Data ****
Energy deposition by protons in PbWO4
DATE: 1/ 5/ 5, TIME: 17:42:33
No. of regions. 3 No. of distr. scored 1
Event # 1
Primary Weight 1. Primary Energy 2. GeV
Contributions to the energy deposition
(GeV not normalised to the weight):
0.519268453 0.963951886 0.183623865 0. 0. 0.0999941751 0. 0.0797502846
0. 0. 0. 0.153411314
Generalised scoring distribution # 208
from first to last region:
0. 0.109102778 1.6374917
Seeds after event # 1
*** FADB81 0 0 0 0 0 33B49B1 0 0 0***
Event # 2
Primary Weight 1. Primary Energy 2. GeV
Contributions to the energy deposition
(GeV not normalised to the weight):
1.04533529 0.827161014 0.00902671926 0. 0. 0. 0. 0.0179061908 0. 0.
0. 0.100570783
Generalised scoring distribution # 208
from first to last region:
0. 0.00186400011 1.89756525
Seeds after event # 2
*** 1034722 0 0 0 0 0 33B49B1 0 0 0***
......................................................................................
------------------------------------------------------------------------
9.5.4} RESNUCLE output
----------------------
Option RESNUCLE produces either formatted or unformatted output (for the
latter, see RESNUCLE description for instructions on how to read it).
The formatted output begins with the run title and run time, followed by
a short information about:
1) Total number of primary particles followed
2) Total weight of the primaries
3) Number and name of the residual nuclei detector, type of reactions
considered (high energy or low energy only, or all), region number
4) Detector volume in cm3
5) Range of Z and N-Z printed
6) Tabulation format
The information reported in 3), 4) and 5) is printed also in the expanded input
summary on main output. For instance:
Res. nuclei n. 1 "Pb-Region " , "high" energy products, region n. 3
detector volume: 1.0000E+00 cm**3
Max. Z: 86, Max. N-Z: 49 Min. N-Z: -4
data will be printed on unit 21 (unformatted if < 0)
On the formatted RESNUCLE output, the above text is followed by one additional
line explaining how to read the result matrix which follows:
Data follow in a matrix A(z,n-z-k), k: -5 format (1(5x,1p,10(1x,e11.4)))
Here is an example of a simple program which can be used to display the same
results in a more plain way:
PROGRAM READRN
CHARACTER*125 LINE, FILINP, FILOUT
PARAMETER (MAXZ = 86, MINNMZ = -4, MAXNMZ = 49, K = -5)
DIMENSION RESULT(MAXZ, MINNMZ-K:MAXNMZ-K)
WRITE(*,*) "Filename?"
READ(*,'(A)') FILINP
OPEN(UNIT=1, FILE=FILINP, STATUS='OLD')
LQ = INDEX(FILINP,' ') - 1
FILOUT = FILINP(1:LQ)//'.rn'
OPEN(UNIT=2, FILE=FILOUT, STATUS='UNKNOWN')
DO 1 I = 1, 14
READ(1,'(A)') LINE ! skip header lines
1 CONTINUE
READ(1,100,END=4) RESULT
4 CONTINUE
WRITE(2,'(A)') ' Z A Residual nuclei'
WRITE(2,'(A,/)') ' per cm**3 per primary'
DO 2 I = 1, MAXZ
DO 3 J = MINNMZ-K, MAXNMZ-K
IF(RESULT(I,J) .GT. 0.D0)
& WRITE(2,'(2I4,1P, G15.6)') I, J+K+2*I, RESULT(I,J)
3 CONTINUE
2 CONTINUE
100 FORMAT(1(5X,1P,10(1X,E11.4)))
END
------------------------------------------------------------------------
9.5.5} USRBDX output
--------------------
Option USRBDX produces either formatted or unformatted output (for the
latter, see USRBDX description for instructions on how to read it).
As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Bdrx n. 1 "bxlogchb " , generalised particle n. 202, from region n. 5 to region n. 6
detector area: 6.3664E+01 cm**2
this is a two ways estimator
this is a fluence like estimator
logar. energy binning from 1.0000E-11 to 3.0000E+00 GeV, 200 bins (ratio : 1.1413E+00)
linear angular binning from 0.0000E+00 to 1.2566E+01 sr , 1 bins ( 1.2566E+01 sr wide )
data will be printed on unit -25 (unformatted if < 0)
After the title and date, and one line reporting the total number of particles and their weight,
the header of the formatted output is very similar to the above text:
***** Test boundary crossing estimator *****
DATE: 10/25/ 4, TIME: 10:32:59
Total number of particles followed 10000, for a total weight of 1.0000E+04
1
Bdrx n. 5 "bxlogchf " , generalised particle n. 202, from region n. 5 to region n. 6
detector area: 6.3664E+01 cm**2
this is a two ways estimator
this is a fluence like estimator
logar. energy binning from 1.0000E-11 to 3.0000E+00 GeV, 200 bins (ratio : 1.1413E+00)
linear angular binning from 0.0000E+00 to 1.2566E+01 sr , 1 bins ( 1.2566E+01 sr wide )
Data follow in a matrix A(ie,ia), format (1(5x,1p,10(1x,e11.4)))
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header. It can also be cut and pasted into
a spreadsheet.
------------------------------------------------------------------------
9.5.6} USRBIN output
--------------------
Option USRBIN produces either formatted or unformatted output (for the
latter, see USRBIN description for instructions on how to read it).
As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Cartesian binning n. 1 "Cufront " , generalised particle n. 208
X coordinate: from -2.1100E-01 to 5.5910E+00 cm, 58 bins ( 1.0003E-01 cm wide)
Y coordinate: from 0.0000E+00 to 5.4010E+00 cm, 53 bins ( 1.0191E-01 cm wide)
Z coordinate: from 0.0000E+00 to -1.0000E-03 cm, 1 bins (-1.0000E-03 cm wide)
data will be printed on unit 21 (unformatted if < 0)
+/- Y symmetry requested and implemented
accurate deposition along the tracks requested
normalised (per unit volume) data will be printed at the end of the run
After the title and date, and one line reporting the total number of particles and their weight,
the header of the formatted output is very similar to the above text:
***** Roman Pot: box with windows *****
DATE: 12/ 8/ 3, TIME: 15:57:27
Total number of particles followed 30000, for a total weight of 3.0000E+04
1
Cartesian binning n. 1 "Cufront " , generalised particle n. 208
X coordinate: from -2.1100E-01 to 5.5910E+00 cm, 58 bins ( 1.0003E-01 cm wide)
Y coordinate: from 0.0000E+00 to 5.4010E+00 cm, 53 bins ( 1.0191E-01 cm wide)
Z coordinate: from 0.0000E+00 to -1.0000E-03 cm, 1 bins (-1.0000E-03 cm wide)
Data follow in a matrix A(ix,iy,iz), format (1(5x,1p,10(1x,e11.4)))
+/- Y symmetry requested and implemented
accurate deposition along the tracks requested
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header. It can also be cut and pasted into
a spreadsheet.
9.5.7} USRCOLL output
---------------------
Option USRCOLL produces either formatted or unformatted output (for the
latter, see USRTRACK description for instructions on how to read it - the
two options produce output with identical format).
As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Coll n. 1 "collogchf " , generalised particle n. 202, region n. 6
detector volume: 4.0000E+01 cm**3
Warning! Collision estimators not implemented for electrons/positrons and photons
logar. energy binning from 1.0000E-11 to 1.0000E+00 GeV, 1000 bins (ratio : 1.0257E+00)
data will be printed on unit 24 (unformatted if < 0)
After the title and date, and one line reporting the total number of particles and their weight,
the header of the formatted output is very similar to the above text:
***** Test collision estimator *****
DATE: 1/ 5/ 5, TIME: 18:32:28
Total number of particles followed 100000, for a total weight of 1.0000E+05
1
Coll n. 1 "collogchf " , generalised particle n. 202, region n. 6
detector volume: 4.0000E+01 cm**3
logar. energy binning from 1.0000E-11 to 1.0000E+00 GeV, 1000 bins (ratio : 1.0257E+00)
Data follow in a vector A(ie), format (1(5x,1p,10(1x,e11.4)))
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header. It can also be cut and pasted into
a spreadsheet.
9.5.8} USRTRACK output
----------------------
Option USRTRACK produces either formatted or unformatted output (for the
latter, see USRTRACK description for instructions on how to read it).
As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Track n. 1 "tklogchb " , generalised particle n. 202, region n. 6
detector volume: 4.0000E+01 cm**3
logar. energy binning from 1.0000E-11 to 1.0000E+00 GeV, 1000 bins (ratio : 1.0257E+00)
data will be printed on unit -23 (unformatted if < 0)
After the title and date, and one line reporting the total number of particles and their weight,
the header of the formatted output is very similar to the above text:
***** Test tracklength/coll. reading program for the manual *****
DATE: 10/25/ 4, TIME: 10:32:59
Total number of particles followed 10000, for a total weight of 1.0000E+04
1
Track n. 5 "tklogchf " , generalised particle n. 202, region n. 6
detector volume: 4.0000E+01 cm**3
logar. energy binning from 1.0000E-11 to 1.0000E+00 GeV, 1000 bins (ratio : 1.0257E+00)
Data follow in a vector A(ie), format (1(5x,1p,10(1x,e11.4)))
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header. It can also be cut and pasted into
a spreadsheet.
9.5.9} USRYIELD output
----------------------
Option USRYIELD produces either formatted or unformatted output (for the
latter, see USRYIELD description for instructions on how to read it).
As for most other estimators, a complete description in
clear of the requested scoring is printed also on the standard
output. For instance:
Yield n. 1 "TotPi+(E) " , generalised particle n. 13, from region n. 3 to region n. 2
user normalisation: 1.0000E+00, adopted cross section (if any): 1.0000E+00 mb
logar. 1st variable binning from 1.0000E-03 to 5.0000E+01 100 bins (ratio : 1.1143E+00)
2nd variable ranges from 0.0000E+00 to 3.1416E+00
1st variable is: Laboratory Kinetic Energy
2nd variable is: Laboratory Angle (radians)
data will be printed on unit 21 (unformatted if < 0)
After the title and date, and one line reporting the total number of particles and their weight,
the header of the formatted output is very similar to the above text:
***** Yield calculation *****
DATE: 1/ 5/ 5, TIME: 18:54:19
Total number of particles followed 10, for a total weight of 1.0000E+01
1
Yield n. 1 "TotPi+(E) " , generalised particle n. 13, from region n. 3 to region n. 2
user normalisation: 1.0000E+00, adopted cross section (if any): 1.0000E+00 mb
logar. 1st variable binning from 1.0000E-03 to 5.0000E+01 100 bins (ratio : 1.1143E+00)
2nd variable ranges from 0.0000E+00 to 3.1416E+00
1st variable is: Laboratory Kinetic Energy
2nd variable is: Laboratory Angle (radians)
Data follow in a vector A(ie), format (1(5x,1p,10(1x,e11.4)))
As for most other estimators, the matrix is easily read and manipulated by a simple
program, using the format reported in the header. It can also be cut and pasted into
a spreadsheet.
9.6} USERDUMP output
--------------------
As a default, no formatted output is available for the USERDUMP option.
A description of the unformatted collision file is given in 11}. However,
the user can modify the MGDRAW user routine as described in 13}, to
obtain any desired output of selected events in the preferred format.
9.7} RAY output
---------------
Tracking RAY pseudoparticles (see 14}) produces only an unformatted
file. No formatted output is available.
9.8} User-generated output
--------------------------
Users can generate their own output in any user routine. However, one special
routine, USROUT, has been designed for this purpose. It is called on request by
command USROCALL, usually at the end of the run, after command START. The
desired output can be printed on the standard output file (logical unit LUNOUT),
or on one or more separate files. These can be opened explicitly with a normal
Fortran OPEN statement or with a FLUKA OPEN command. Otherwise, any
WRITE(xx,...) statement will cause a file to be opened by default with a name
fort.xx, where xx is a logical unit number. In any case, it is important that
the logical unit numbers be > 20 (unit numbers up to 20 are internally reserved
for FLUKA).
1********************************************************************************
10} Low-energy neutrons in FLUKA
********************************************************************************
Low-energy neutron transport is activated by option LOW-NEUT, but it is
requested by defaults with most of the options available with the DEFAULTS
command (CALORIMEtry, EET/TRANsmut, HADROTHErapy, ICARUS, NEUTRONS,
NEW-DEFAults, PRECISIOn, SHIELDINg). The only exception is the DEFAULTS
option EM-CASCAde. However, command LOW-NEUT may be still necessary in
order to give information about the cross section library used, or to issue
special requests. The FLUKA traditional way for neutron transport below 20 MeV
is a multi-group approach, which is fast, compact, and very reliable. It is
particularly suited for shielding problems. This approach is inherently
inclusive and it does not preserve correlations. Energy and momentum are
conserved on average.
However for some problems where the fine structure of the cross sections
(resonances) must be explicitly treated, and/or correlations among products
are important, the multigroup approach cannot be used.
Starting with FLUKA2021.2 an alternative approach based on fully correlated
continuous (pointwise) cross sections is available.
10.1} Multigroup neutron transport
----------------------------------
Transport of neutrons with energies lower than a certain energy is performed
in FLUKA by a multigroup algorithm.
The energy boundary below which multigroup transport takes over depends in
principle on the cross section library used. This energy is 20 MeV for the
260-group library which is distributed with the code.
In FLUKA, internally there are two neutron energy thresholds: one for
high-energy neutrons and one for low-energy neutrons. The high-energy neutron
threshold represents in fact the energy boundary between continuous and
discontinuous neutron transport. Starting from this release, the former is
computed automatically on the basis of the user inputs with options PART-THR
and/or LOW-BIAS. Please note that PART-THR no longer controls the transition
energy between model and group tretaments for neutrons, but rather it sets
the actual lower threshold for neutron transport, regardless if it falls
in the group regime or not.
The multi-group technique, widely used in low-energy neutron transport
programs, consists in dividing the energy range of interest into a
given number of intervals ("energy groups"). Elastic and inelastic reactions
are simulated not as exclusive processes, but by group-to-group transfer
probabilities forming a so-called "downscattering matrix".
The scattering transfer probability between different groups is
represented by a Legendre polynomial expansion truncated at the
(N+1)th term, as shown in the equation:
Sigma_s(g-->g',mu) = Sum_{i=0,N}(2i+1)/(4pi) P_i(mu) Sigma_i(g-->g')
where mu = Omega.Omega' is the scattering angle and N is the chosen
Legendre order of anisotropy.
The particular implementation used in FLUKA has been derived from that of the
MORSE program [Emm75] (although the relevant part of the code has been
completely rewritten). In the FLUKA neutron cross section library, the energy
range up to 20 MeV is divided into 260 energy groups of approximately equal
logarithmic width (31 of which are thermal).
The angular probabilities for inelastic scattering are obtained by a
discretisation of a P5 Legendre polynomial expansion of the actual scattering
distribution which preserves its first 6 moments. The generalised Gaussian
quadrature scheme to generate the discrete distribution is rather complicated:
details can be found in the MORSE manual [Emm75]. The result, in the case of a
P5 expansion, is a set of 6 equations giving 3 discrete polar angles (actually
angle cosines) and 3 corresponding cumulative probabilities.
In the library, the first cross section table for an isotope (isotropic
term P_0) contains the transfer probabilities from each group g to
any group g': Sum_{g-->g'}/Sum_g, where Sum_g is the sum over all the
g' (including the "in-scattering" term g' = g). The next cross section
table provides the P_1 term for the same isotope, the next the P_2
multigroup cross sections, etc.
10.1.1} Possible artefacts
The multigroup scheme adopted in FLUKA is reliable and much faster than
any possible approach using continuous cross sections. However, it is
important to remember that there are two rare situations where the
group approximation could give bad results.
One of such situations may occur when each neutron is likely to
scatter only once (e.g. in a very thin foil) before being scored: an
artefact then is possible, due to the discrete angular distribution.
In practice the problem vanishes entirely, however, as soon as there is
the possibility of two or more scatterings: it must be kept in mind, in
fact, that after a collision only the polar angle is sampled from a
discrete distribution, while the azimuthal angle is chosen randomly from
a uniform distribution. In addition, the 3 discrete angles are different
for each g --> g' combination and for each element or isotope. Thus, any
memory of the initial direction is very quickly lost after just a few
collisions.
The second possible artefact is not connected with the angular but
with the energy structure of the cross sections used. The group
structure is necessarily coarse with respect to the resonance
structure in many materials. A resonance in a material present in a
dilute mixture or as a small piece cannot affect much a smooth neutron
fluence (case of so-called "infinite dilution") but if an isotope is
very pure and is present in large amounts, it can act as a "neutron
sink", causing sharp dips in the neutron spectrum corresponding to
each resonance. This effect, which results in a lower reaction rate
sigma*phi, is called "self-shielding" and is necessarily lost in
the process of cross section averaging over the width of each energy
group, unless a special correction is made. Such corrected cross
section sets with different degrees of self-shielding have been
included in the FLUKA libraries for a few important elements (Al, Fe, Cu, Au,
Pb, Bi): but it is the responsibility of the user to select the set with
the degree of self-shielding most suitable in each different case.
It is worth stressing that non-self-shielded materials are
perfectly adequate in most practical cases, because the presence of even
small amounts of impurities is generally sufficient to smooth out the
effect. On the other hand, in regions of non-resolved resonances
the multigroup approach is known to give very good results anyway.
10.2} Partial pointwise transport with groupwise cross sections
-------------------------
For a few isotopes only, neutron transport can be done also using
continuous (pointwise) cross sections. For 1H, 2H, 3He, 4He, and 12C,
it is applied as a user option (above 3.05 eV for 1H, 2H, if requested
bound, at all energies for 3He, 4He, and 12C). For the reactions
10B(n,alpha)7Li in 10B, and 14N(n,p)14C, the alpha and proton respectively
are explicitly generated. 6Li pointwise treatment which was implemented
in the past for the lowest part of the energy range is now no longer
available, since a much more complete treatment can be requested
using the full pointwise treatment (see paragraph 10.5).
10.3} Secondary particle production
-----------------------------------
10.3.1} Gamma generation
In general, gamma generation by low-energy neutrons (but not gamma
transport) is treated in the frame of a multigroup scheme too. A
downscattering matrix provides the probability, for a neutron in a
given energy group, to generate a photon in each of a number of gamma energy
groups (42 in the FLUKA library), covering the range from 1 keV to 50 MeV.
With the exception of a few important gamma lines, such as the 2.2 MeV
transition of Deuterium and the 478 keV photon from 10B(n,alpha) reaction, the
actual energy of the generated photon is sampled randomly in the energy
interval corresponding to its gamma group. Note that the gamma generation
matrix does not include only capture gammas, but also gammas produced in other
inelastic reactions such as (n,n').
For a few elements (Cd, Xe, Ar), for which evaluated gamma production
cross sections could not be found, a different algorithm, based on
published energy level data, has been provided to generate explicitly
the full cascade of monoenergetic gammas [Fas01b].
In all cases, the generated gammas are transported in the same way
as all other photons in FLUKA, using continuous cross sections and
an explicit and detailed description of all their interactions with
matter, allowing for the generation of electrons, positrons, and even
secondary particles from photonuclear reactions.
10.3.2} Secondary neutrons
In the multigroup transport scheme, the production of secondary
neutrons via (n,xn) reactions is taken into account implicitly by the
so-called "non-absorption probability", a group-dependent factor
by which the weight of a neutron is multiplied after exiting a
collision. If the only possible reactions are capture and scattering,
the non-absorption probability is < 1, but at energies above the
threshold for (n,2n) reaction it can take values larger than 1.
Fission neutrons, however, are treated separately and created
explicitly using a group-dependent fission probability. They are
assumed to be emitted isotropically and their energy is sampled from
the fission spectrum appropriate for the relevant isotope and neutron
energy. The fission neutron multiplicity is obtained separately from
data extracted from European, American and Japanese databases.
10.3.3} Generation of charged particles
Recoil protons and protons from 14-N(n,p) reaction are produced and
transported explicitly, taking into account the detailed kinematics
of elastic scattering, continuous energy loss with energy straggling,
delta ray production, multiple and single scattering.
The same applies to charged fragments from neutron capture in 10-B, and
from all reactions on 2-H, 3-He, 4-He, and 12-C, if pointwise
transport has been requested by the user. All other charged secondaries,
including fission fragments, are not transported but their energy is
deposited at the point of interaction (kerma approximation).
10.3.4} Residual nuclei
For many materials, but not for all, group-dependent information on
the residual nuclei produced by low-energy neutron interactions
is available in the FLUKA libraries. This information can be used to
score residual nuclei, but it is important that the user check
its availability before requesting scoring.
Fission fragments are sampled separately, using evaluated data
extracted from European, American and Japanese databases.
10.4} The FLUKA neutron cross section library
---------------------------------------------
As explained in 3}, an unformatted cross section data set must be available
for low-energy neutron transport. For a description of the algorithms used
for tracking low-energy neutrons, see the beginning of this Chapter. Other
useful information can be found in the Notes to options LOW--NEUT, LOW--MAT
and LOW--BIAS}.
The Legendre expansion used in Fluka is P5, i.e. at each collision
the polar scattering angle is sampled from three discrete values, such that
the first 6 moments of the angular distribution are preserved (the
azimuthal angle is sampled instead from a uniform distribution between
0 and 2*pi). The energy group structure depends on the cross section
set used. Here below the group structure of the currently available sets
is reported, and a list of the materials they contain.
The default FLUKA neutron cross section library (originally prepared by
G. Panini of ENEA [Cuc91]) contains more than 250 different materials (natural
elements or single nuclides), selected for their interest in physics, dosimetry
and accelerator engineering. This library has a larger number of groups and a
better resolution in the thermal energy range in respect to the original one.
The cross section set is being continuously enriched and updated on the basis
of the most recent evaluations (ENDF/B, JEF, JENDL, etc.).
The preparation of the library involves the use of a specialised code [NJOY] and
several ad-hoc programs written to adjust the output to the particular structure
of these libraries. The library is continuously enriched and updated on the
basis of the most recent evaluations (ENDF/B, JEF, JENDL etc.).
The library format is similar to that known as ANISN (or FIDO) format, but it
has been modified to include kerma factor data, residual nuclei and partial
exclusive cross sections when available. The latter are not used directly by
FLUKA, but can be folded over calculated spectra to get reaction rates and
induced activities.
More materials can be made available on request, if good evaluations are
available. Some cross sections are available in the library at two or three
different temperatures, mainly in view of simulations of calorimeters containing
cryogenic scintillators. Doppler broadening is taken into account.
Note that the energy groups are numbered in order of DECREASING energy
(group 1 corresponds to the highest energy).
The FLUKA neutron cross section library has 260 neutron groups and 42
gamma groups. Gamma energy groups are used only for (n,gamma) production, since
transport of photons in FLUKA is continuous in energy and angle and is performed
through the EMF module).
Hydrogen cross sections, which have a particular importance in neutron
slowing-down, are available also for different types of molecular binding
(free, H2O, CH2).
At present, the FLUKA libraries contain only single isotopes or elements
of natural isotopic composition, although the possibility exists to
include in future also pre-mixed materials.
Neutron energy deposition in most materials is calculated by means of
kerma factors (including contributions from low-energy fission). However,
recoil protons and protons from N(n,p) reaction are produced and transported
explicitly.
Each material is identified by an alphanumeric name (a string
not longer than 8 characters, all in upper case), and by three integer
identifiers. Correspondence with FLUKA materials (pre-defined or
user-defined) is based on any combination of name and zero or more
identifiers. In case of ambiguity, the first material in the list
fulfilling the combination is selected. (See command LOW-MAT for more details).
The convention generally used (but there may be exceptions) for the 3
identifiers is:
* Atomic number
* Mass number, or natural isotopic composition if negative
(exceptions are possible in order to distinguish between
data from different sources referring to the same nuclide)
* Neutron temperature in degrees Kelvin
10.4.1} 260 neutron, 42 gamma group library
-------------------------------------------
10.4.1.1} Energy group structure of the 260-neutron, 42-gamma groups data set:
Neutron upper Neutron upper Neutron upper
group limit group limit group limit
number (GeV) number (GeV) number (GeV)
1 0.02000000 88 1.737739E-3 175 2.187491E-5
2 0.01964033 89 1.652989E-3 176 2.133482E-5
3 0.01915541 90 1.612176E-3 177 1.930454E-5
4 0.01868246 91 1.572372E-3 178 1.703620E-5
5 0.01822119 92 1.533550E-3 179 1.503439E-5
6 0.01777131 93 1.495686E-3 180 1.326780E-5
7 0.01733253 94 1.422741E-3 181 1.170880E-5
8 0.01690459 95 1.353353E-3 182 1.033298E-5
9 0.01648721 96 1.287349E-3 183 9.118820E-6
10 0.01608014 97 1.224564E-3 184 8.047330E-6
11 0.01568312 98 1.194330E-3 185 7.101744E-6
12 0.01529590 99 1.164842E-3 186 6.267267E-6
13 0.01491825 100 1.108032E-3 187 5.530844E-6
14 0.01454991 101 1.053992E-3 188 5.004514E-6
15 0.01419068 102 1.002588E-3 189 4.528272E-6
16 0.01384031 103 9.778344E-4 190 4.307425E-6
17 0.01349859 104 9.616402E-4 191 4.097350E-6
18 0.01316531 105 9.536916E-4 192 3.707435E-6
19 0.01284025 106 9.071795E-4 193 3.354626E-6
20 0.01252323 107 8.629359E-4 194 3.035391E-6
21 0.01221403 108 8.208500E-4 195 2.863488E-6
22 0.01191246 109 7.808167E-4 196 2.746536E-6
23 0.01161834 110 7.427358E-4 197 2.612586E-6
24 0.01133148 111 7.065121E-4 198 2.485168E-6
25 0.01105171 112 6.720551E-4 199 2.248673E-6
26 0.01077884 113 6.392786E-4 200 2.034684E-6
27 0.01051271 114 6.081006E-4 201 1.841058E-6
28 0.01025315 115 5.784432E-4 202 1.665858E-6
29 0.01000000 116 5.502322E-4 203 1.584613E-6
30 9.753099E-3 117 5.366469E-4 204 1.507331E-6
31 9.512294E-3 118 5.233971E-4 205 1.363889E-6
32 9.277435E-3 119 5.104743E-4 206 1.234098E-6
33 9.048374E-3 120 4.978707E-4 207 9.611165E-7
34 8.824969E-3 121 4.735892E-4 208 7.485183E-7
35 8.607080E-3 122 4.504920E-4 209 5.829466E-7
36 8.394570E-3 123 4.285213E-4 210 4.539993E-7
37 8.187308E-3 124 4.076220E-4 211 3.535750E-7
38 7.985162E-3 125 3.877421E-4 212 2.753645E-7
39 7.788008E-3 126 3.688317E-4 213 2.144541E-7
40 7.595721E-3 127 3.508435E-4 214 1.670170E-7
41 7.408182E-3 128 3.337327E-4 215 1.300730E-7
42 7.225274E-3 129 3.174564E-4 216 1.013009E-7
43 7.046881E-3 130 3.096183E-4 217 7.889325E-8
44 6.872893E-3 131 3.019738E-4 218 6.144212E-8
45 6.703200E-3 132 2.945181E-4 219 4.785117E-8
46 6.647595E-3 133 2.872464E-4 220 3.726653E-8
47 6.592384E-3 134 2.801543E-4 221 2.902320E-8
48 6.537698E-3 135 2.732372E-4 222 2.260329E-8
49 6.376282E-3 136 2.599113E-4 223 1.760346E-8
50 6.218851E-3 137 2.472353E-4 224 1.370959E-8
51 6.065307E-3 138 2.351775E-4 225 1.067704E-8
52 5.915554E-3 139 2.237077E-4 226 8.315287E-9
53 5.769498E-3 140 2.127974E-4 227 6.475952E-9
54 5.488116E-3 141 2.024191E-4 228 5.043477E-9
55 5.220458E-3 142 1.925470E-4 229 3.927864E-9
56 4.965853E-3 143 1.831564E-4 230 3.059023E-9 thermal
57 4.843246E-3 144 1.742237E-4 231 2.382370E-9 thermal
58 4.723666E-3 145 1.699221E-4 232 1.855391E-9 thermal
59 4.607038E-3 146 1.657268E-4 233 1.444980E-9 thermal
60 4.493290E-3 147 1.616349E-4 234 1.125352E-9 thermal
61 4.274149E-3 148 1.576442E-4 235 8.764248E-10 thermal
62 4.065697E-3 149 1.499558E-4 236 8.336811E-10 thermal
63 3.867410E-3 150 1.426423E-4 237 6.825603E-10 thermal
64 3.678794E-3 151 1.356856E-4 238 6.250621E-10 thermal
65 3.499377E-3 152 1.290681E-4 239 5.315785E-10 thermal
66 3.328711E-3 153 1.227734E-4 240 4.139938E-10 thermal
67 3.246525E-3 154 1.167857E-4 241 2.826153E-10 thermal
68 3.166368E-3 155 1.110900E-4 242 1.929290E-10 thermal
69 3.088190E-3 156 9.803655E-5 243 1.317041E-10 thermal
70 3.011942E-3 157 8.651695E-5 244 8.990856E-11 thermal
71 2.865048E-3 158 7.635094E-5 245 6.137660E-11 thermal
72 2.725318E-3 159 6.737947E-5 246 4.189910E-11 thermal
73 2.592403E-3 160 6.251086E-5 247 2.860266E-11 thermal
74 2.465970E-3 161 5.946217E-5 248 1.952578E-11 thermal
75 2.425130E-3 162 5.656217E-5 249 1.332938E-11 thermal
76 2.385205E-3 163 5.247518E-5 250 9.099382E-12 thermal
77 2.365253E-3 164 4.630919E-5 251 6.211746E-12 thermal
78 2.345703E-3 165 4.086771E-5 252 4.240485E-12 thermal
79 2.306855E-3 166 3.606563E-5 253 2.894792E-12 thermal
80 2.268877E-3 167 3.517517E-5 254 1.976147E-12 thermal
81 2.231302E-3 168 3.430669E-5 255 1.349028E-12 thermal
82 2.122480E-3 169 3.182781E-5 256 9.209218E-13 thermal
83 2.018965E-3 170 2.808794E-5 257 6.286727E-13 thermal
84 1.969117E-3 171 2.605841E-5 258 4.291671E-13 thermal
85 1.920499E-3 172 2.478752E-5 259 2.929734E-13 thermal
86 1.873082E-3 173 2.417552E-5 260 2.000000E-13 thermal
87 1.826835E-3 174 2.357862E-5 lower limit 1.000000E-14
Gamma upper Gamma upper Gamma upper
group limit group limit group limit
number (GeV) number (GeV) number (GeV)
1 5.000000E-2 15 4.000000E-3 29 5.100000E-4
2 3.000000E-2 16 3.500000E-3 30 4.500000E-4
3 2.000000E-2 17 3.000000E-3 31 4.000000E-4
4 1.400000E-2 18 2.500000E-3 32 3.000000E-4
5 1.200000E-2 19 2.000000E-3 33 2.000000E-4
6 1.000000E-2 20 1.660000E-3 34 1.500000E-4
7 8.000000E-3 21 1.500000E-3 35 1.000000E-4
8 7.500000E-3 22 1.340000E-3 36 7.500000E-5
9 7.000000E-3 23 1.330000E-3 37 7.000000E-5
10 6.500000E-3 24 1.000000E-3 38 6.000000E-5
11 6.000000E-3 25 8.000000E-4 39 4.500000E-5
12 5.500000E-3 26 7.000000E-4 40 3.000000E-5
13 5.000000E-3 27 6.000000E-4 41 2.000000E-5
14 4.500000E-3 28 5.120000E-4 42 1.000000E-5
lower limit 1.000000E-6
10.4.1.2} List of materials for which cross sections are available in the
260 neutron, 42 gamma group library:
A symbol Y or N in column "RN" refers to availability of information
about production of residual nuclei; in column "Gam" to information
about gamma production.
Material Temp. Origin RN Name Identifiers Gam
H H2O bound natural Hydrogen 296K ENDF/B-VIIR0 Y HYDROGEN 1 -2 296 Y
H CH2 bound natural Hydrogen 296K ENDF/B-VIIR0 Y HYDROGEN 1 -3 296 Y
H Free gas natural Hydrogen 296K ENDF/B-VIIR0 Y HYDROGEN 1 -5 296 Y
H Free gas natural Hydrogen 87K ENDF/B-VIIR0 Y HYDROGEN 1 -2 87 Y
H Free gas natural Hydrogen 4K ENDF/B-VIIR0 Y HYDROGEN 1 -5 4 Y
H Free gas natural Hydrogen 430K ENDF/B-VIIR0 Y HYDROGEN 1 -5 430 Y
1H H2O bound Hydrogen 1 296K ENDF/B-VIIR0 Y HYDROG-1 1 +1 296 Y
1H CH2 bound Hydrogen 1 296K ENDF/B-VIIR0 Y HYDROG-1 1 +11 296 Y
1H Free gas Hydrogen 1 296K ENDF/B-VIIR0 Y HYDROG-1 1 +31 296 Y
1H Free gas Hydrogen 1 87K ENDF/B-VIIR0 Y HYDROG-1 1 +1 87 Y
2H D2O bound Deuterium 296K ENDF/B-VIIR0 Y DEUTERIU 1 +2 296 Y
2H Free gas Deuterium 296K ENDF/B-VIIR0 Y DEUTERIU 1 +32 296 Y
2H Free gas Deuterium 87K ENDF/B-VIIR0 Y DEUTERIU 1 +2 87 Y
3H Free gas Tritium 296K ENDF/B-VIIR0 Y TRITIUM 1 +4 296 Y
3H Free gas Tritium 87K ENDF/B-VIIR0 Y TRITIUM 1 +4 87 Y
He Natural Helium 296K ENDF/B-VIIR0 Y HELIUM 2 -2 296 Y
He Natural Helium 87K ENDF/B-VIIR0 Y HELIUM 2 -2 87 Y
He Natural Helium 4K ENDF/B-VIIR0 Y HELIUM 2 -2 4 Y
3He Helium 3 296K ENDF/B-VIIR0 Y HELIUM-3 2 3 296 Y
3He Helium 3 87K ENDF/B-VIIR0 Y HELIUM-3 2 3 87 Y
3He Helium 3 4K ENDF/B-VIIR0 Y HELIUM-3 2 3 4 Y
4He Helium 4 296K ENDF/B-VIIR0 Y HELIUM-4 2 4 296 Y
4He Helium 4 87K ENDF/B-VIIR0 Y HELIUM-4 2 4 87 Y
4He Helium 4 4K ENDF/B-VIIR0 Y HELIUM-4 2 4 4 Y
Li Natural Lithium 296K ENDF/B-VIIIR0 Y LITHIUM 3 -2 296 Y
Li Natural Lithium 87K ENDF/B-VIIIR0 Y LITHIUM 3 -2 87 Y
6Li Lithium 6 296K ENDF/B-VIIIR0 Y LITHIU-6 3 6 296 Y
6Li Lithium 6 87K ENDF/B-VIIIR0 Y LITHIU-6 3 6 87 Y
7Li Lithium 7 296K ENDF/B-VIIIR0 Y LITHIU-7 3 7 296 Y
7Li Lithium 7 87K ENDF/B-VIIIR0 Y LITHIU-7 3 7 87 Y
9Be Beryllium 9 296K ENDF/B-VIIIR0 Y BERYLLIU 4 9 296 Y
9Be Beryllium 9 87K ENDF/B-VIIIR0 Y BERYLLIU 4 9 87 Y
B Natural Boron 296K ENDF/B-VIIIR0 Y BORON 5 -2 296 Y
B Natural Boron 87K ENDF/B-VIIIR0 Y BORON 5 -2 87 Y
10B Boron 10 296K JENDL-4.0 Y BORON-10 5 10 296 Y
10B Boron 10 87K JENDL-4.0 Y BORON-10 5 10 87 Y
11B Boron 11 296K ENDF/B-VIIIR0 Y BORON-11 5 11 296 Y
11B Boron 11 87K ENDF/B-VIIIR0 Y BORON-11 5 11 87 Y
C Free gas natural Carbon 296K ENDF/B-VIIIR0 Y CARBON 6 -2 296 Y
C Free gas natural Carbon 87K ENDF/B-VIIIR0 Y CARBON 6 -2 87 Y
C Free gas natural Carbon 4K ENDF/B-VIIIR0 Y CARBON 6 -2 4 Y
C Free gas natural Carbon 430K ENDF/B-VIIIR0 Y CARBON 6 -2 430 Y
C Graphite bound nat. Carbon 296K ENDF/B-VIIIR0 Y CARBON 6 -3 296 Y
12C Carbon 12 296K ENDF/B-VIIIR0 Y CARBON 6 12 296 Y
12C Carbon 12 87K ENDF/B-VIIIR0 Y CARBON 6 12 87 Y
N Natural Nitrogen 296K ENDF/B-VIIIR0 Y NITROGEN 7 -2 296 Y
N Natural Nitrogen 87K ENDF/B-VIIIR0 Y NITROGEN 7 -2 87 Y
14N Nitrogen 14 296K ENDF/B-VIIIR0 Y NITRO-14 7 14 296 Y
14N Nitrogen 14 87K ENDF/B-VIIIR0 Y NITRO-14 7 14 87 Y
O Natural Oxygen 296K ENDF/B-VIIIR0 Y OXYGEN 8 -2 296 Y
O Natural Oxygen 87K ENDF/B-VIIIR0 Y OXYGEN 8 -2 87 Y
O Natural Oxygen 4K ENDF/B-VIIIR0 Y OXYGEN 8 -2 4 Y
O Natural Oxygen 430K ENDF/B-VIIIR0 Y OXYGEN 8 -2 430 Y
16O Oxygen 16 296K ENDF/B-VIIIR0 Y OXYGE-16 8 16 296 Y
16O Oxygen 16 87K ENDF/B-VIIIR0 Y OXYGE-16 8 16 87 Y
19F Fluorine 19 296K ENDF/B-VIIIR0 Y FLUORINE 9 19 296 Y
19F Fluorine 19 87K ENDF/B-VIIIR0 Y FLUORINE 9 19 87 Y
Ne Natural Neon 296K TENDL-19 Y NEON 10 -2 296 Y
23Na Sodium 23 296K ENDF/B-VIIIR0 Y SODIUM 11 23 296 Y
23Na Sodium 23 87K ENDF/B-VIIIR0 Y SODIUM 11 23 87 Y
Mg Natural Magnesium 296K ENDF/B-VIIIR0 Y MAGNESIU 12 -2 296 Y
Mg Natural Magnesium 87K ENDF/B-VIIIR0 Y MAGNESIU 12 -2 87 Y
27Al Aluminium 27 296K ENDF/B-VIIIR0 Y ALUMINUM 13 27 296 Y
27Al Aluminium 27 87K ENDF/B-VIIIR0 Y ALUMINUM 13 27 87 Y
27Al Aluminium 27 4K ENDF/B-VIIIR0 Y ALUMINUM 13 27 4 Y
27Al Aluminium 27 430K ENDF/B-VIIIR0 Y ALUMINUM 13 27 430 Y
27Al Aluminium 27 SelfShielded 296K ENDF/B-VIIIR0 Y ALUMINUM 13 1027 296 Y
27Al Aluminium 27 SelfShielded 87K ENDF/B-VIIIR0 Y ALUMINUM 13 1027 87 Y
27Al Aluminium 27 SelfShielded 4K ENDF/B-VIIIR0 Y ALUMINUM 13 1027 4 Y
27Al Aluminium 27 SelfShielded 430K ENDF/B-VIIIR0 Y ALUMINUM 13 1027 430 Y
Si Natural Silicon 296K ENDF/B-VIIIR0 Y SILICON 14 -2 296 Y
Si Natural Silicon 87K ENDF/B-VIIIR0 Y SILICON 14 -2 87 Y
28Si Silicon 28 296K ENDF/B-VIIIR0 Y SILIC-28 14 28 296 Y
28Si Silicon 28 87K ENDF/B-VIIIR0 Y SILIC-28 14 28 87 Y
31P Phosphorus 31 296K ENDF/B-VIIIR0 Y PHOSPHO 15 31 296 Y
31P Phosphorus 31 87K ENDF/B-VIIIR0 Y PHOSPHO 15 31 87 Y
S Natural Sulphur (1) 296K JENDL-3.3 Y SULFUR 16 -2 296 Y
S Natural Sulphur (1) 87K JENDL-3.3 Y SULFUR 16 -2 87 Y
Cl Natural Chlorine 296K ENDF/B-VIIR0 Y CHLORINE 17 -2 296 Y
Cl Natural Chlorine 87K ENDF/B-VIIR0 Y CHLORINE 17 -2 87 Y
Ar Natural Argon 296K ENDF/B-VIIIR0 Y ARGON 18 -2 296 Y
Ar Natural Argon 87K ENDF/B-VIIIR0 Y ARGON 18 -2 87 Y
Ar Natural Argon SelfShielded 296K ENDF/B-VIIIR0 Y ARGON 18 -4 296 Y
Ar Natural Argon SelfShielded 87K ENDF/B-VIIIR0 Y ARGON 18 -4 87 Y
40Ar Argon 40 296K ENDF/B-VIIIR0 Y ARGON-40 18 40 296 Y
40Ar Argon 40 87K ENDF/B-VIIIR0 Y ARGON-40 18 40 87 Y
40Ar Argon 40 SelfShielded 296K ENDF/B-VIIIR0 Y ARGON-40 18 1040 296 Y
40Ar Argon 40 SelfShielded 87K ENDF/B-VIIIR0 Y ARGON-40 18 1040 87 Y
K Natural Potassium 296K ENDF/B-VIIR1 Y POTASSIU 19 -2 296 Y
K Natural Potassium 87K ENDF/B-VIIR1 Y POTASSIU 19 -2 87 Y
Ca Natural Calcium (2) 296K ENDF/B-VIIR0 Y CALCIUM 20 -2 296 Y
Ca Natural Calcium (2) 87K ENDF/B-VIIR0 Y CALCIUM 20 -2 87 Y
45Sc Scandium 45 (2) 296K ENDF/B-VIIR0 Y SCANDIUM 21 45 296 Y
45Sc Scandium 45 (2) 87K ENDF/B-VIIR0 Y SCANDIUM 21 45 87 Y
Ti Natural Titanium 296K ENDF/B-VIIR1 Y TITANIUM 22 -2 296 Y
Ti Natural Titanium 87K ENDF/B-VIIR1 Y TITANIUM 22 -2 87 Y
V Natural Vanadium 296K ENDF/B-VIIIR0 Y VANADIUM 23 -2 296 Y
V Natural Vanadium 87K ENDF/B-VIIIR0 Y VANADIUM 23 -2 87 Y
Cr Natural Chromium 296K ENDF/B-VIIR1 Y CHROMIUM 24 -2 296 Y
Cr Natural Chromium 87K ENDF/B-VIIR1 Y CHROMIUM 24 -2 87 Y
Cr Natural Chromium 4K ENDF/B-VIIR1 Y CHROMIUM 24 -2 4 Y
Cr Natural Chromium 430K ENDF/B-VIIR1 Y CHROMIUM 24 -2 430 Y
55Mn Manganese 55 296K ENDF/B-VIIIR0 Y MANGANES 25 55 296 Y
55Mn Manganese 55 87K ENDF/B-VIIIR0 Y MANGANES 25 55 87 Y
55Mn Manganese 55 4K ENDF/B-VIIIR0 Y MANGANES 25 55 4 Y
55Mn Manganese 55 430K ENDF/B-VIIIR0 Y MANGANES 25 55 430 Y
55Mn Manganese 55 SelfShielded 296K ENDF/B-VIIIR0 Y MANGANES 25 1055 296 Y
Fe Natural Iron 296K ENDF/B-VIIIR0 Y IRON 26 -2 296 Y
Fe Natural Iron 87K ENDF/B-VIIIR0 Y IRON 26 -2 87 Y
Fe Natural Iron 4K ENDF/B-VIIIR0 Y IRON 26 -2 4 Y
Fe Natural Iron 430K ENDF/B-VIIIR0 Y IRON 26 -2 430 Y
Fe Natural Iron SelfShielded 296K ENDF/B-VIIIR0 Y IRON 26 -4 296 Y
Fe Natural Iron SelfShielded 87K ENDF/B-VIIIR0 Y IRON 26 -4 87 Y
Fe Natural Iron SelfShielded 4K ENDF/B-VIIIR0 Y IRON 26 -4 4 Y
Fe Natural Iron SelfShielded 430K ENDF/B-VIIIR0 Y IRON 26 -4 430 Y
Fe Shielding Fe (5% C) SelfSh. 296K ENDF/B-VIIIR0 Y IRON 26 -8 296 Y
Fe Shielding Fe (5% C) SelfSh. 87K ENDF/B-VIIIR0 Y IRON 26 -8 87 Y
Fe Shielding Fe (5% C) SelfSh. 4K ENDF/B-VIIIR0 Y IRON 26 -8 4 Y
Fe Shielding Fe (5% C) SelfSh. 430K ENDF/B-VIIIR0 Y IRON 26 -8 430 Y
Fe Natural Iron 296K ENDF/B-VIIR1 Y IRON 26 -712 296 Y
Fe Natural Iron SelfShielded 296K ENDF/B-VIIR1 Y IRON 26 -714 296 Y
56Fe Iron 56 296K ENDF/B-VIIIR0 Y 56-FE 26 56 296 Y
56Fe Iron 56 SelfShielded 296K ENDF/B-VIIIR0 Y 56-FE 26 1056 296 Y
59Co Cobalt 59 296K ENDF/B-VIIIR0 Y COBALT 27 59 296 Y
59Co Cobalt 59 87K ENDF/B-VIIIR0 Y COBALT 27 59 87 Y
59Co Cobalt 59 4K ENDF/B-VIIIR0 Y COBALT 27 59 4 Y
59Co Cobalt 59 430K ENDF/B-VIIIR0 Y COBALT 27 59 430 Y
59Co Cobalt 59 SelfShielded 296K ENDF/B-VIIIR0 Y COBALT 27 1059 296 Y
Ni Natural Nickel 296K ENDF/B-VIIIR0 Y NICKEL 28 -2 296 Y
Ni Natural Nickel 87K ENDF/B-VIIIR0 Y NICKEL 28 -2 87 Y
Ni Natural Nickel 4K ENDF/B-VIIIR0 Y NICKEL 28 -2 4 Y
Ni Natural Nickel 430K ENDF/B-VIIIR0 Y NICKEL 28 -2 430 Y
Ni Natural Nickel SelfShielded 296K ENDF/B-VIIIR0 Y NICKEL 28 -4 296 Y
Ni Natural Nickel 296K ENDF/B-VIIR1 Y NICKEL 28 -2 296 Y
Cu Natural Copper 296K ENDF/B-VIIIR0 Y COPPER 29 -2 296 Y
Cu Natural Copper 87K ENDF/B-VIIIR0 Y COPPER 29 -2 87 Y
Cu Natural Copper 4K ENDF/B-VIIIR0 Y COPPER 29 -2 4 Y
Cu Natural Copper 430K ENDF/B-VIIIR0 Y COPPER 29 -2 430 Y
Cu Natural Copper SelfShielded 296K ENDF/B-VIIIR0 Y COPPER 29 -4 296 Y
Cu Natural Copper SelfShielded 87K ENDF/B-VIIIR0 Y COPPER 29 -4 87 Y
Cu Natural Copper SelfShielded 4K ENDF/B-VIIIR0 Y COPPER 29 -4 4 Y
Cu Natural Copper SelfShielded 430K ENDF/B-VIIIR0 Y COPPER 29 -4 430 Y
Zn Natural Zinc 296K JENDL-4.0 Y ZINC 30 -2 296 Y
Zn Natural Zinc 87K JENDL-4.0 Y ZINC 30 -2 87 Y
Zn Natural Zinc 4K JENDL-4.0 Y ZINC 30 -2 4 Y
Zn Natural Zinc 430K JENDL-4.0 Y ZINC 30 -2 430 Y
Ga Natural Gallium 296K JEFF-3.2 Y GALLIUM 31 -2 296 Y
Ga Natural Gallium 87K JEFF-3.2 Y GALLIUM 31 -2 87 Y
Ge Natural Germanium 296K ENDF/B-VIIIR0 Y GERMANIU 32 -2 296 Y
Ge Natural Germanium 87K ENDF/B-VIIIR0 Y GERMANIU 32 -2 87 Y
75As Arsenic 75 296K ENDF/B-VIIR1 Y ARSENIC 33 75 296 Y
75As Arsenic 75 87K ENDF/B-VIIR1 Y ARSENIC 33 75 87 Y
Se Natural Selenium (2) 296K ENDF/B-VIIIR0 Y SELENIUM 34 -2 296 N
Br Natural Bromine 296K JEFF-3.2 Y BROMINE 35 -2 296 Y
Br Natural Bromine 87K JEFF-3.2 Y BROMINE 35 -2 87 Y
Kr Natural Krypton (2) 296K ENDF/B-VIIR1 Y KRYPTON 36 -2 296 N
Kr Natural Krypton (2) 120K ENDF/B-VIIR1 Y KRYPTON 36 -2 120 N
Rb Natutal Rubidium (2) 296K ENDF/B-VIIIR0 Y RUBIDIUM 37 -2 296 N
Sr Natural Strontium 296K JEFF-3.2 Y STRONTIU 38 -2 296 N
Sr Natural Strontium 87K JEFF-3.2 Y STRONTIU 38 -2 87 N
90Sr Strontium 90 296K JEFF-3.2 Y 90-SR 38 90 296 Y
90Sr Strontium 90 87K JEFF-3.2 Y 90-SR 38 90 87 Y
89Y Yttrium 89 296K ENDF/B-VIR8 Y YTTRIUM 39 89 296 N
89Y Yttrium 89 87K ENDF/B-VIR8 Y YTTRIUM 39 89 87 N
Zr Natural Zirconium (2) 296K ENDF/B-VIIIR0 Y ZIRCONIU 40 -2 296 Y
Zr Natural Zirconium (2) 296K ENDF/B-VIIIR0 Y ZIRCONIU 40 -2 87 Y
90Zr Zirconium 90 296K ENDF/B-VIIIR0 Y 90-ZR 40 90 296 Y
91Zr Zirconium 91 (2) 296K ENDF/B-VIIIR0 Y 91-ZR 40 91 296 Y
92Zr Zirconium 92 (2) 296K ENDF/B-VIIIR0 Y 92-ZR 40 92 296 Y
94Zr Zirconium 94 (2) 296K ENDF/B-VIIIR0 Y 94-ZR 40 94 296 Y
96Zr Zirconium 96 (2) 296K ENDF/B-VIIRI0 Y 96-ZR 40 96 296 Y
93Nb Niobium 93 (2) 296K ENDF/B-VIIR0 Y NIOBIUM 41 93 296 Y
93Nb Niobium 93 (2) 87K ENDF/B-VIIR0 Y NIOBIUM 41 93 87 Y
Mo Natural Molybdenum (2) 296K TENDL-19 Y MOLYBDEN 42 -2 296 Y
Mo Natural Molybdenum (2) 87K TENDL-19 Y MOLYBDEN 42 -2 87 Y
92Mo Molybdenum 92 296K TENDL-19 Y 92-MO 42 92 296 Y
94Mo Molybdenum 94 296K TENDL-19 Y 94-MO 42 94 296 Y
95Mo Molybdenum 95 296K TENDL-19 Y 95-MO 42 95 296 Y
96Mo Molybdenum 96 296K TENDL-19 Y 96-MO 42 96 296 Y
97Mo Molybdenum 97 296K TENDL-19 Y 97-MO 42 97 296 Y
98Mo Molybdenum 98 296K TENDL-19 Y 98-MO 42 98 296 Y
100Mo Molybdenum 100 296K TENDL-19 Y 100-MO 42 100 296 Y
99Tc Technetium 99 296K ENDF/B-VIIR0 Y 99-TC 43 99 296 Y
99Tc Technetium 99 87K ENDF/B-VIIR0 Y 99-TC 43 99 87 Y
Pd Natural Palladium 296K ENDF/B-VIIR1 Y PALLADIU 46 -2 296 Y
Pd Natural Palladium 87K ENDF/B-VIIR1 Y PALLADIU 46 -2 87 Y
103Rh Rhodium 103 296K ENDF/B-VIIIR0 Y RHODIUM 45 103 296 Y
102Pd Palladium 102 296K ENDF/B-VIIR1 Y 102-PD 46 102 296 Y
104Pd Palladium 104 296K ENDF/B-VIIR1 Y 104-PD 46 104 296 Y
105Pd Palladium 105 296K ENDF/B-VIIR1 Y 105-PD 46 105 296 Y
106Pd Palladium 106 296K ENDF/B-VIIR1 Y 106-PD 46 106 296 Y
108Pd Palladium 108 296K ENDF/B-VIIR1 Y 108-PD 46 108 296 Y
110Pd Palladium 110 296K ENDF/B-VIIR1 Y 110-PD 46 110 296 Y
Ag Natural Silver 296K ENDF/B-VIIR0 Y SILVER 47 -2 296 Y
Ag Natural Silver 87K ENDF/B-VIIR0 Y SILVER 47 -2 87 Y
Cd Natural Cadmium (2) 296K JENDL-4.0 Y CADMIUM 48 -2 296 Y
Cd Natural Cadmium (2) 87K JENDL-4.0 Y CADMIUM 48 -2 87 Y
In Natural Indium 296K TENDL-19 Y INDIUM 49 -2 296 Y
In Natural Indium SelfShielded 296K TENDL-19 Y INDIUM 49 -4 296 Y
In Natural Indium 87K TENDL-19 Y INDIUM 49 -2 87 Y
Sn Natural Tin (2) 296K JENDL-4.0 Y TIN 50 -2 296 Y
Sn Natural Tin (2) 87K JENDL-4.0 Y TIN 50 -2 87 Y
Sb Natural Antimony 296K ENDF/B-VIIR0 Y ANTIMONY 51 -2 296 N
Sb Natural Antimony 87K ENDF/B-VIIR0 Y ANTIMONY 51 -2 87 N
Te Natural Tellurium 296K ENDF/B-VIIIR0 Y TELLURIUM 52 -2 296 N
127I Iodine 127 296K ENDF/B-VIIR0 Y IODINE 53 127 296 Y
127I Iodine 127 87K ENDF/B-VIIR0 Y IODINE 53 127 87 Y
129I Iodine 129 (2) 296K ENDF/B-VIIR0 Y 129-I 53 129 296 N
129I Iodine 129 (2) 87K ENDF/B-VIIR0 Y 129-I 53 129 87 N
Xe Natural Xenon (2) 296K ENDF/B-VIIR0 Y XENON 54 -2 296 N
Xe Natural Xenon (2) 87K ENDF/B-VIIR0 Y XENON 54 -2 87 N
124Xe Xenon 124 296K ENDF/B-VIIR0 Y 124-XE 54 124 296 N
124Xe Xenon 124 87K ENDF/B-VIIR0 Y 124-XE 54 124 87 N
126Xe Xenon 126 296K ENDF/B-VIIR0 Y 126-XE 54 126 296 N
126Xe Xenon 126 87K ENDF/B-VIIR0 Y 126-XE 54 126 87 N
128Xe Xenon 128 296K ENDF/B-VIIR0 Y 128-XE 54 128 296 N
128Xe Xenon 128 87K ENDF/B-VIIR0 Y 128-XE 54 128 87 N
129Xe Xenon 129 296K ENDF/B-VIIR0 Y 129-XE 54 129 296 N
129Xe Xenon 129 87K ENDF/B-VIIR0 Y 129-XE 54 129 87 N
130Xe Xenon 130 296K ENDF/B-VIIR0 Y 130-XE 54 130 296 N
130Xe Xenon 130 87K ENDF/B-VIIR0 Y 130-XE 54 130 87 N
131Xe Xenon 131 296K ENDF/B-VIIR0 Y 131-XE 54 131 296 Y
131Xe Xenon 131 87K ENDF/B-VIIR0 Y 131-XE 54 131 87 Y
132Xe Xenon 132 296K ENDF/B-VIIR0 Y 132-XE 54 132 296 N
132Xe Xenon 132 87K ENDF/B-VIIR0 Y 132-XE 54 132 87 N
134Xe Xenon 134 296K ENDF/B-VIIR0 Y 134-XE 54 134 296 N
134Xe Xenon 134 87K ENDF/B-VIIR0 Y 134-XE 54 134 87 N
135Xe Xenon 135 296K ENDF/B-VIIR0 Y 135-XE 54 135 296 N
135Xe Xenon 135 87K ENDF/B-VIIR0 Y 135-XE 54 135 87 N
136Xe Xenon 136 296K ENDF/B-VIIR0 Y 136-XE 54 136 296 N
136Xe Xenon 136 87K ENDF/B-VIIR0 Y 136-XE 54 136 87 N
133Cs Cesium 133 296K ENDF/B-VIIIR0 Y CESIUM 55 133 296 Y
133Cs Cesium 133 87K ENDF/B-VIIIR0 Y CESIUM 55 133 87 Y
135Cs Cesium 135 (2) 296K ENDF/B-VIIR0 Y 135-CS 55 135 296 N
135Cs Cesium 135 (2) 87K ENDF/B-VIIR0 Y 135-CS 55 135 87 N
137Cs Cesium 137 (2) 296K ENDF/B-VIIR0 Y 137-CS 55 137 296 N
137Cs Cesium 137 (2) 87K ENDF/B-VIIR0 Y 137-CS 55 137 87 N
Ba Natural Barium (2) 296K TENDL-12/14 Y BARIUM 56 -2 296 Y
Ba Natural Barium (2) 87K TENDL-12/14 Y BARIUM 56 -2 87 Y
La Natural Lanthanum 296K JEFF-3.2 Y LANTHANU 57 -2 296 Y
La Natural Lanthanum 87K JEFF-3.2 Y LANTHANU 57 -2 87 Y
Ce Natural Cerium (2) 296K ENDF/B-VIIIR0 Y CERIUM 58 -2 296 N
Ce Natural Cerium (2) 87K ENDF/B-VIIIR0 Y CERIUM 58 -2 87 N
Nd Natural Neodymium 296K ENDF/B-VIIR0 Y NEODYMIU 60 -2 296 Y
Nd Natural Neodymium 87K ENDF/B-VIIR0 Y NEODYMIU 60 -2 87 Y
Sm Natural Samarium (2) 296K ENDF/B-VIIR0 Y SAMARIUM 62 -2 296 Y
Sm Natural Samarium (2) 87K ENDF/B-VIIR0 Y SAMARIUM 62 -2 87 Y
Eu Natural Europium (3) 296K ENDF/B-VIIIR0 Y EUROPIUM 63 -2 296 Y
Eu Natural Europium (3) 87K ENDF/B-VIIIR0 Y EUROPIUM 63 -2 87 Y
Gd Natural Gadolinium 296K ENDF/B-VIIR0 Y GADOLINI 64 -2 296 Y
Gd Natural Gadolinium 87K ENDF/B-VIIR0 Y GADOLINI 64 -2 87 Y
159Tb Terbium 159 296K ENDF/B-VIIR0 Y TERBIUM 65 159 296 N
159Tb Terbium 159 87K ENDF/B-VIIR0 Y TERBIUM 65 159 87 N
Dy Natural Dysprosium (2) 296K ENDF/B-VIIIR0 Y DYSPROSI 66 -2 296 Y
165Ho Holmium 165 296K ENDF/B-VIIIR0 Y HOLMIUM 67 165 296 Y
165Ho Holmium 165 87K ENDF/B-VIIIR0 Y HOLMIUM 67 165 296 Y
Lu Natural Lutetium (2) 296K TENDL-19 Y LUTETIUM 71 -2 296 Y
Lu Natural Lutetium (2) 87K TENDL-19 Y LUTETIUM 71 -2 87 Y
Hf Natural Hafnium 296K ENDF/B-VIIIR0 Y HAFNIUM 72 -2 296 Y
Hf Natural Hafnium 87K ENDF/B-VIIIR0 Y HAFNIUM 72 -2 87 Y
181Ta Tantalum 181 296K ENDF/B-VIIIR0 Y TANTALUM 73 181 296 Y
181Ta Tantalum 181 87K ENDF/B-VIIIR0 Y TANTALUM 73 181 87 Y
181Ta Tantalum 181 SelfShielded 296K ENDF/B-VIIIR0 Y TANTALUM 73 1181 296 Y
181Ta Tantalum 181 SelfShielded 87K ENDF/B-VIIIR0 Y TANTALUM 73 1181 87 Y
W Natural Tungsten (2) 296K ENDF/B-VIIIR0 Y TUNGSTEN 74 -2 296 Y
W Natural Tungsten (2) 87K ENDF/B-VIIIR0 Y TUNGSTEN 74 -2 87 Y
W Natural Tungsten (2) 4K ENDF/B-VIIIR0 Y TUNGSTEN 74 -2 4 Y
W Natural Tungsten (2) 430K ENDF/B-VIIIR0 Y TUNGSTEN 74 -2 430 Y
W Natural Tungsten SelfSh.(2) 296K ENDF/B-VIIIR0 Y TUNGSTEN 74 -4 296 Y
W Natural Tungsten SelfSh.(2) 87K ENDF/B-VIIIR0 Y TUNGSTEN 74 -4 87 Y
W Natural Tungsten SelfSh.(2) 4K ENDF/B-VIIIR0 Y TUNGSTEN 74 -4 4 Y
W Natural Tungsten SelfSh.(2) 430K ENDF/B-VIIIR0 Y TUNGSTEN 74 -4 430 Y
Re Natural Rhenium 296K ENDF/B-VIIIR0 Y RHENIUM 75 -2 296 Y
Re Natural Rhenium 87K ENDF/B-VIIIR0 Y RHENIUM 75 -2 87 Y
Os Natural Osmium (2) 296K ENDF/B-VIIIR0 Y OSMIUM 76 -2 296 Y
Os Natural Osmium (2) 87K ENDF/B-VIIIR0 Y OSMIUM 76 -2 87 Y
Ir Natural Iridium (2) 296K ENDF/B-VIIR0 Y IRIDIUM 77 -2 296 Y
Ir Natural Iridium (2) 87K ENDF/B-VIIR0 Y IRIDIUM 77 -2 87 Y
Pt Natural Platinum 296K JEFF-3.2 N PLATINUM 78 -2 296 Y
Pt Natural Platinum 87K JEFF-3.2 N PLATINUM 78 -2 87 Y
197Au Gold 197 296K ENDF/B-VIIIR0 Y GOLD 79 197 296 Y
197Au Gold 197 87K ENDF/B-VIIIR0 Y GOLD 79 197 87 Y
197Au Gold 197 SelfShielded 296K ENDF/B-VIIIR0 Y GOLD 79 1197 296 Y
197Au Gold 197 SelfShielded 87K ENDF/B-VIIIR0 Y GOLD 79 1197 87 Y
197Au Gold 197 0.1mm SelfShielded 296K ENDF/B-VIIIR0 Y GOLD 79 2197 296 Y
Hg Natural Mercury (2) 296K ENDF/B-VIIR0 Y MERCURY 80 -2 296 Y
Hg Natural Mercury (2) 87K ENDF/B-VIIR0 Y MERCURY 80 -2 87 Y
Tl Natural Thallium 296K ENDF/B-VIIIR0 Y THALLIUM 81 -2 296 Y
Tl Natural Thallium 87K ENDF/B-VIIIR0 Y THALLIUM 81 -2 87 Y
Pb Natural Lead 296K ENDF/B-VIIIR0 Y LEAD 82 -2 296 Y
Pb Natural Lead 87K ENDF/B-VIIIR0 Y LEAD 82 -2 87 Y
Pb Natural Lead SelfShielded 296K ENDF/B-VIIIR0 Y LEAD 82 -4 296 Y
Pb Natural Lead SelfShielded 87K ENDF/B-VIIIR0 Y LEAD 82 -4 87 Y
208Pb Lead 208 296K ENDF/B-VIIIR0 Y 208-PB 82 208 296 Y
208Pb Lead 208 SelfShielded 296K ENDF/B-VIIIR0 Y 208-PB 82 1208 296 Y
209Bi Bismuth 209 296K ENDF/B-VIIR1 Y BISMUTH 83 209 296 Y
209Bi Bismuth 209 87K ENDF/B-VIIR1 Y BISMUTH 83 209 87 Y
209Bi Bismuth 209 SelfShielded 296K ENDF/B-VIIR1 Y BISMUTH 83 1209 296 Y
209Bi Bismuth 209 SelfShielded 87K ENDF/B-VIIR1 Y BISMUTH 83 1209 87 Y
230Th Thorium 230 296K ENDF/B-VIIIR0 Y 230-TH 90 230 296 Y
230Th Thorium 230 87K ENDF/B-VIIIR0 Y 230-TH 90 230 87 Y
232Th Thorium 232 296K ENDF/B-VIIIR0 Y 232-TH 90 232 296 Y
232Th Thorium 232 87K ENDF/B-VIIIR0 Y 232-TH 90 232 87 Y
232Th Thorium 232 SelfShielded 296K ENDF/B-VIIIR0 Y 232-TH 90 1232 296 Y
233U Uranium 233 296K ENDF/B-VIIIR0 Y 233-U 92 233 296 Y
233U Uranium 233 87K ENDF/B-VIIIR0 Y 233-U 92 233 87 Y
234U Uranium 234 296K ENDF/B-VIIIR0 Y 234-U 92 234 296 Y
234U Uranium 234 87K ENDF/B-VIIIR0 Y 234-U 92 234 87 Y
235U Uranium 235 296K ENDF/B-VIIIR0 Y 235-U 92 235 296 Y
235U Uranium 235 87K ENDF/B-VIIIR0 Y 235-U 92 235 87 Y
238U Uranium 238 296K ENDF/B-VIIIR0 Y 238-U 92 238 296 Y
238U Uranium 238 87K ENDF/B-VIIIR0 Y 238-U 92 238 87 Y
239Pu Plutonium 239 296K ENDF/B-VIIIR0 Y 239-PU 94 239 296 Y
239Pu Plutonium 239 87K ENDF/B-VIIIR0 Y 239-PU 94 239 87 Y
239Pu Plutonium 239 SelfShielded 296K ENDF/B-VIIIR0 Y 239-PU 94 1239 296 Y
241Am Americium 241 296K ENDF/B-VIIR0 Y 241-AM 95 241 296 Y
241Am Americium 241 87K ENDF/B-VIIR0 Y 241-AM 95 241 87 Y
243Am Americium 243 296K ENDF/B-VIIR0 Y 243-AM 95 243 296 Y
243Am Americium 243 87K ENDF/B-VIIR0 Y 243-AM 95 243 87 Y
(1: Kerma factor not very satisfactory, particularly for 36S
(2: Bad kerma factor
(3: Actually 151Eu from TENDL-19, 153Eu from ENDF/B-VIIIR0
10.5} Full pointwise transport
-------------------------
Starting with Fluka2021.2 neutron transport can be done also using
continuous (pointwise) cross sections. For 1H, 2H, 3He, 4He, and 12C
fully correlated pointwise cross sections are built-in inside the code,
and are automatically processed at the temperature(s) required by
the problem.
For many other isotopes fully correlated pointwise cross sections are
available in external files (directory pwxs) generated out of evaluated
data files.
In all cases, all secondaries, including charged particles and recoils
are explicitly generated.
Binding effect (eg H in water, H in polyethylene, C in graphite...)
are not yet implemented, all isotopes are treated as free gas in the
thermal region.
However by default, for those isotopes for which bound cross sections
exist and are requested in the multi-group library, the pointwise
treatment will be stopped at 3.059023 eV and the bound groupwise
treatment used below that energy. This default behaviour can be
overriden setting what(6) in LOW-NEUT, however this is strongly
discouraged.
The easiest way to activate pointwise cross sections is to issue
a LOW-PWXS card like:
All isotopes for all materials at 296 K, leaving FLUKA to decide which
evaluations to pick up for each of them:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+...
LOW-PWXS 1.0 3.0 @LASTMAT
The code will automatically split each element into the constituent
isotopes and pick up the corresponding pointwise cross section for each
isotope. Please look into the output file if you want to know the exact
details about how the association isotope to pointwise cross section set
is performed.
The CPU penalty for using pointwise cross sections can be significant.
The number of energy-cross section pairs can be very large (eg 96033
points for 56Fe total cross section, ENDF/B-VIIIR0, at 296 K), and
the generation of secondaries much more complex with respect to
multi-group cross sections. On top of these considerations,
the transport of the generated charged products can in itself take
up a considerable computer time.
10.5.1} Resonances and self-shielding with pointwise cross sections
Resolved resonances are obviously fully described in the pointwise
cross sections, properly broadened at the given temperature.
In the resolved resonance energy range self-shielding is automatically
accounted for.
For materials with no unresolved resonance regions, no further consideration
is required.
When unresolved resonance regions (URR's) are present, even pointwise
cross sections have a problem with self-shielding. In order to solve
this issue, offline generated statistical distributions of cross sections
are sampled from at run-time. This procedure is implemented in the FLUKA
pointwise approach, and therefore partial or full self-shielding is
automatically assured in all conditions and energy ranges.
10.5.2} Secondary particle emission with pointwise cross sections
All secondary particles, neutrons, charged particles, recoils, are
produced in a completely correlated manner, that is energy and
momentum are conserved exactly at each neutron interactions.
The user should be aware that the secondary particle distributions
available in the evaluated data files are inclusive, that is they
do not provide the correlations among the various products.
Hence considerable work is required to develop interaction models
which reproduce as much as possible the inclusive distributions
provided in the evaluated data files, while at the same time
generating fully correlated events.
An exact reproduction of the inclusive distribution is sometimes
impossible to achieve, priority is always given to match as
much as possible the one of the emitted neutrons. Often evaluated
data contain inclusive distributions which are plainly inconsistent
with energy conservation for the given reaction channel. In those
cases corrections with respect to the tabulated inclusive distributions
are applied in order to bring them in compliance with basic conservation
laws.
There are several degrees of arbitrariness in these procedures, particularly
for complex reactions with many emitted secondaries. Physics considerations
are applied in order to solve hopefully for the best these issues.
However the user should not expect to obtain results which are *exactly*
reproducing the inclusive distributions contained in the original
evaluated data file.
10.5.3} Photon emission with pointwise cross sections
For reaction involving particle emissions, often the final, ground state
or excited, level of the residual nucleus is not provided in the evaluated
data files. The FLUKA implementation tries to guess as best as possible
the final excitation on the basis of the inclusive spectra of the
emitted particles and physics consideration. The following de-excitation
is performed using the standard FLUKA de-excitation models, which
heavily rely on experimental data when within the range of known levels.
For (n,gamma) reactions in the thermal region, the capture photons emission
schemes are as much as possible based on experimental data of primary
de-excitation from the capture level as available in the ENSDF database.
For many light and medium isotopes the available data are more or less
complete. For medium to heavy nuclei, the available data, when present,
often cover only a fraction of the possible schemes. The missing informations
are generated as usual by the FLUKA de-excitation models.
Therefore the agreement with experimental secondary lines can be very good
when primary ones are almost completely known, questionable otherwise.
It should be noted that even evaluated data files often contain model
calculated capture gamma spectra, in some cases not even in agreement
with experimentally known primary lines.
For capture reactions in the resonance region, the same de-excitation schemes
of the thermal range are applied. This is obviously not correct since
the spin and parity of the given resonance could be different from
those of thermal capture, however the experimental data about gamma
spectra in the resonance region are very scarce.
As a consequence of all the above consideration, production of a specific
isomer can be very accurate in some cases, eg for (n,n') specifically
ending up on that level, or much less accurate in others. If accurate
predictions os isomers are of importance, it is better to rely on the
group-wise cross sections which contain their (uncorrelated) production
branchings as derived from available evaluated activation files.
10.5.4} Fission with pointwise cross sections
Prompt fission is described in a fully correlated manner by means of
a simple fission model. As such, the exact reproduction of the inclusive
distributions of fission fragments, fission neutron multiplicities and
energies are not assured. On the other hand, fully correlated events
not very far from reality can be simulated allowing to study for
example the single event response of a detector.
The fission model parameters have been tuned so that for the
most important isotopes are well reproduced, particularly for those
isotopes with significant fission cross sections in the thermal region.
Delayed neutrons are not yet generated, they will come in a future
release.
10.5.5} List of isotopes for which pointwise cross sections are available
At present pointwise cross sections are available for the following
isotopes, besides 1H, 2H, 3He, 4He, and 12C:
Isotope Temperature Source
6 Li 87 K Endf/B-8r0
6 Li 296 K Endf/B-8r0
7 Li 87 K Endf/B-8r0
7 Li 296 K Endf/B-8r0
9 Be 87 K Endf/B-8r0
9 Be 296 K Endf/B-8r0
10 B 87 K Endf/B-8r0
10 B 296 K Endf/B-8r0
11 B 87 K Endf/B-8r0
11 B 296 K Endf/B-8r0
13 C 4 K Endf/B-8r0
13 C 87 K Endf/B-8r0
13 C 296 K Endf/B-8r0
13 C 430 K Endf/B-8r0
13 C 686 K Endf/B-8r0
14 N 87 K Endf/B-8r0
14 N 296 K Endf/B-8r0
15 N 87 K Endf/B-8r0
15 N 296 K Endf/B-8r0
16 O 4 K Endf/B-8r0
16 O 87 K Endf/B-8r0
16 O 296 K Endf/B-8r0
16 O 430 K Endf/B-8r0
16 O 686 K Endf/B-8r0
17 O 4 K Endf/B-8r0
17 O 87 K Endf/B-8r0
17 O 296 K Endf/B-8r0
17 O 430 K Endf/B-8r0
17 O 686 K Endf/B-8r0
18 O 4 K Endf/B-8r0
18 O 87 K Endf/B-8r0
18 O 296 K Endf/B-8r0
18 O 430 K Endf/B-8r0
18 O 686 K Endf/B-8r0
19 F 87 K Endf/B-8r0
19 F 296 K Endf/B-8r0
20 Ne 87 K Tendl19
20 Ne 296 K Tendl19
21 Ne 87 K Tendl19
21 Ne 296 K Tendl19
22 Ne 87 K Tendl19
22 Ne 296 K Tendl19
23 Na 87 K Endf/B-8r0
23 Na 296 K Endf/B-8r0
24 Mg 87 K Endf/B-8r0
24 Mg 296 K Endf/B-8r0
25 Mg 87 K Endf/B-8r0
25 Mg 296 K Endf/B-8r0
26 Mg 87 K Endf/B-8r0
26 Mg 296 K Endf/B-8r0
27 Al 4 K Endf/B-8r0
27 Al 87 K Endf/B-8r0
27 Al 296 K Endf/B-8r0
27 Al 430 K Endf/B-8r0
27 Al 686 K Endf/B-8r0
28 Si 4 K Endf/B-8r0
28 Si 87 K Endf/B-8r0
28 Si 296 K Endf/B-8r0
28 Si 430 K Endf/B-8r0
28 Si 686 K Endf/B-8r0
29 Si 4 K Endf/B-8r0
29 Si 87 K Endf/B-8r0
29 Si 296 K Endf/B-8r0
29 Si 430 K Endf/B-8r0
29 Si 686 K Endf/B-8r0
30 Si 4 K Endf/B-8r0
30 Si 87 K Endf/B-8r0
30 Si 296 K Endf/B-8r0
30 Si 430 K Endf/B-8r0
30 Si 686 K Endf/B-8r0
31 P 87 K Endf/B-8r0
31 P 296 K Endf/B-8r0
32 S 87 K Endf/B-8r0
32 S 296 K Endf/B-8r0
33 S 87 K Endf/B-8r0
33 S 296 K Endf/B-8r0
34 S 87 K Endf/B-8r0
34 S 296 K Endf/B-8r0
36 S 87 K Endf/B-8r0
36 S 296 K Endf/B-8r0
35 Cl 87 K Endf/B-8r0
35 Cl 296 K Endf/B-8r0
37 Cl 87 K Endf/B-8r0
37 Cl 296 K Endf/B-8r0
36 Ar 87 K Endf/B-8r0
36 Ar 296 K Endf/B-8r0
38 Ar 87 K Tendl19
38 Ar 296 K Tendl19
40 Ar 87 K Endf/B-8r0
40 Ar 296 K Endf/B-8r0
39 K 87 K Endf/B-8r0
39 K 296 K Endf/B-8r0
40 K 87 K Endf/B-8r0
40 K 296 K Endf/B-8r0
41 K 87 K Endf/B-8r0
41 K 296 K Endf/B-8r0
40 Ca 87 K Endf/B-8r0
40 Ca 296 K Endf/B-8r0
42 Ca 87 K Endf/B-8r0
42 Ca 296 K Endf/B-8r0
43 Ca 87 K Endf/B-8r0
43 Ca 296 K Endf/B-8r0
44 Ca 87 K Endf/B-8r0
44 Ca 296 K Endf/B-8r0
46 Ca 87 K Endf/B-8r0
46 Ca 296 K Endf/B-8r0
48 Ca 87 K Endf/B-8r0
48 Ca 296 K Endf/B-8r0
45 Sc 87 K Endf/B-8r0
45 Sc 296 K Endf/B-8r0
46 Ti 4 K Endf/B-8r0
46 Ti 87 K Endf/B-8r0
46 Ti 296 K Endf/B-8r0
46 Ti 430 K Endf/B-8r0
46 Ti 686 K Endf/B-8r0
47 Ti 4 K Endf/B-8r0
47 Ti 87 K Endf/B-8r0
47 Ti 296 K Endf/B-8r0
47 Ti 430 K Endf/B-8r0
47 Ti 686 K Endf/B-8r0
48 Ti 4 K Endf/B-8r0
48 Ti 87 K Endf/B-8r0
48 Ti 296 K Endf/B-8r0
48 Ti 430 K Endf/B-8r0
48 Ti 686 K Endf/B-8r0
49 Ti 4 K Endf/B-8r0
49 Ti 87 K Endf/B-8r0
49 Ti 296 K Endf/B-8r0
49 Ti 430 K Endf/B-8r0
49 Ti 686 K Endf/B-8r0
50 Ti 4 K Endf/B-8r0
50 Ti 87 K Endf/B-8r0
50 Ti 296 K Endf/B-8r0
50 Ti 430 K Endf/B-8r0
50 Ti 686 K Endf/B-8r0
50 V 87 K Endf/B-8r0
50 V 296 K Endf/B-8r0
51 V 87 K Endf/B-8r0
51 V 296 K Endf/B-8r0
50 Cr 4 K Endf/B-8r0
50 Cr 87 K Endf/B-8r0
50 Cr 296 K Endf/B-8r0
50 Cr 430 K Endf/B-8r0
50 Cr 686 K Endf/B-8r0
52 Cr 4 K Endf/B-8r0
52 Cr 87 K Endf/B-8r0
52 Cr 296 K Endf/B-8r0
52 Cr 430 K Endf/B-8r0
52 Cr 686 K Endf/B-8r0
53 Cr 4 K Endf/B-8r0
53 Cr 87 K Endf/B-8r0
53 Cr 296 K Endf/B-8r0
53 Cr 430 K Endf/B-8r0
53 Cr 686 K Endf/B-8r0
54 Cr 4 K Endf/B-8r0
54 Cr 87 K Endf/B-8r0
54 Cr 296 K Endf/B-8r0
54 Cr 430 K Endf/B-8r0
54 Cr 686 K Endf/B-8r0
55 Mn 4 K Endf/B-7r0
55 Mn 87 K Endf/B-7r0
55 Mn 296 K Endf/B-7r0
55 Mn 430 K Endf/B-7r0
55 Mn 686 K Endf/B-7r0
55 Mn 4 K Endf/B-8r0
55 Mn 87 K Endf/B-8r0
55 Mn 296 K Endf/B-8r0
55 Mn 430 K Endf/B-8r0
55 Mn 686 K Endf/B-8r0
54 Fe 4 K Endf/B-7r1
54 Fe 87 K Endf/B-7r1
54 Fe 296 K Endf/B-7r1
54 Fe 430 K Endf/B-7r1
54 Fe 686 K Endf/B-7r1
54 Fe 4 K Endf/B-8r0
54 Fe 87 K Endf/B-8r0
54 Fe 296 K Endf/B-8r0
54 Fe 430 K Endf/B-8r0
54 Fe 686 K Endf/B-8r0
56 Fe 4 K Endf/B-7r1
56 Fe 87 K Endf/B-7r1
56 Fe 296 K Endf/B-7r1
56 Fe 430 K Endf/B-7r1
56 Fe 686 K Endf/B-7r1
56 Fe 4 K Endf/B-8r0
56 Fe 87 K Endf/B-8r0
56 Fe 296 K Endf/B-8r0
56 Fe 430 K Endf/B-8r0
56 Fe 686 K Endf/B-8r0
57 Fe 4 K Endf/B-7r1
57 Fe 87 K Endf/B-7r1
57 Fe 296 K Endf/B-7r1
57 Fe 430 K Endf/B-7r1
57 Fe 686 K Endf/B-7r1
57 Fe 4 K Endf/B-8r0
57 Fe 87 K Endf/B-8r0
57 Fe 296 K Endf/B-8r0
57 Fe 430 K Endf/B-8r0
57 Fe 686 K Endf/B-8r0
58 Fe 4 K Endf/B-7r1
58 Fe 87 K Endf/B-7r1
58 Fe 296 K Endf/B-7r1
58 Fe 430 K Endf/B-7r1
58 Fe 686 K Endf/B-7r1
58 Fe 4 K Endf/B-8r0
58 Fe 87 K Endf/B-8r0
58 Fe 296 K Endf/B-8r0
58 Fe 430 K Endf/B-8r0
58 Fe 686 K Endf/B-8r0
59 Co 4 K Endf/B-8r0
59 Co 87 K Endf/B-8r0
59 Co 296 K Endf/B-8r0
59 Co 430 K Endf/B-8r0
59 Co 686 K Endf/B-8r0
58 Ni 4 K Endf/B-8r0
58 Ni 87 K Endf/B-8r0
58 Ni 296 K Endf/B-8r0
58 Ni 430 K Endf/B-8r0
58 Ni 686 K Endf/B-8r0
60 Ni 4 K Endf/B-8r0
60 Ni 87 K Endf/B-8r0
60 Ni 296 K Endf/B-8r0
60 Ni 430 K Endf/B-8r0
60 Ni 686 K Endf/B-8r0
61 Ni 4 K Endf/B-8r0
61 Ni 87 K Endf/B-8r0
61 Ni 296 K Endf/B-8r0
61 Ni 430 K Endf/B-8r0
61 Ni 686 K Endf/B-8r0
62 Ni 4 K Endf/B-8r0
62 Ni 87 K Endf/B-8r0
62 Ni 296 K Endf/B-8r0
62 Ni 430 K Endf/B-8r0
62 Ni 686 K Endf/B-8r0
64 Ni 4 K Endf/B-8r0
64 Ni 87 K Endf/B-8r0
64 Ni 296 K Endf/B-8r0
64 Ni 430 K Endf/B-8r0
64 Ni 686 K Endf/B-8r0
63 Cu 4 K Endf/B-8r0
63 Cu 87 K Endf/B-8r0
63 Cu 296 K Endf/B-8r0
63 Cu 430 K Endf/B-8r0
63 Cu 686 K Endf/B-8r0
65 Cu 4 K Endf/B-8r0
65 Cu 87 K Endf/B-8r0
65 Cu 296 K Endf/B-8r0
65 Cu 430 K Endf/B-8r0
65 Cu 686 K Endf/B-8r0
64 Zn 4 K Endf/B-8r0
64 Zn 87 K Endf/B-8r0
64 Zn 296 K Endf/B-8r0
64 Zn 430 K Endf/B-8r0
64 Zn 686 K Endf/B-8r0
66 Zn 4 K Endf/B-8r0
66 Zn 87 K Endf/B-8r0
66 Zn 296 K Endf/B-8r0
66 Zn 430 K Endf/B-8r0
66 Zn 686 K Endf/B-8r0
67 Zn 4 K Endf/B-8r0
67 Zn 87 K Endf/B-8r0
67 Zn 296 K Endf/B-8r0
67 Zn 430 K Endf/B-8r0
67 Zn 686 K Endf/B-8r0
68 Zn 4 K Endf/B-8r0
68 Zn 87 K Endf/B-8r0
68 Zn 296 K Endf/B-8r0
68 Zn 430 K Endf/B-8r0
68 Zn 686 K Endf/B-8r0
70 Zn 4 K Endf/B-8r0
70 Zn 87 K Endf/B-8r0
70 Zn 296 K Endf/B-8r0
70 Zn 430 K Endf/B-8r0
70 Zn 686 K Endf/B-8r0
69 Ga 87 K Endf/B-8r0
69 Ga 296 K Endf/B-8r0
71 Ga 87 K Endf/B-8r0
71 Ga 296 K Endf/B-8r0
70 Ge 87 K Endf/B-8r0
70 Ge 296 K Endf/B-8r0
72 Ge 87 K Endf/B-8r0
72 Ge 296 K Endf/B-8r0
73 Ge 87 K Endf/B-8r0
73 Ge 296 K Endf/B-8r0
74 Ge 87 K Endf/B-8r0
74 Ge 296 K Endf/B-8r0
76 Ge 87 K Endf/B-8r0
76 Ge 296 K Endf/B-8r0
75 As 87 K Endf/B-8r0
75 As 296 K Endf/B-8r0
74 Se 87 K Endf/B-8r0
74 Se 296 K Endf/B-8r0
76 Se 87 K Endf/B-8r0
76 Se 296 K Endf/B-8r0
77 Se 87 K Endf/B-8r0
77 Se 296 K Endf/B-8r0
78 Se 87 K Endf/B-8r0
78 Se 296 K Endf/B-8r0
80 Se 87 K Endf/B-8r0
80 Se 296 K Endf/B-8r0
82 Se 87 K Endf/B-8r0
82 Se 296 K Endf/B-8r0
79 Br 87 K Endf/B-8r0
79 Br 296 K Endf/B-8r0
81 Br 87 K Endf/B-8r0
81 Br 296 K Endf/B-8r0
78 Kr 87 K Endf/B-8r0
78 Kr 296 K Endf/B-8r0
80 Kr 87 K Endf/B-8r0
80 Kr 296 K Endf/B-8r0
82 Kr 87 K Endf/B-8r0
82 Kr 296 K Endf/B-8r0
83 Kr 87 K Endf/B-8r0
83 Kr 296 K Endf/B-8r0
84 Kr 87 K Endf/B-8r0
84 Kr 296 K Endf/B-8r0
86 Kr 87 K Endf/B-8r0
86 Kr 296 K Endf/B-8r0
85 Rb 87 K Endf/B-8r0
85 Rb 296 K Endf/B-8r0
87 Rb 87 K Endf/B-8r0
87 Rb 296 K Endf/B-8r0
84 Sr 87 K Endf/B-8r0
84 Sr 296 K Endf/B-8r0
86 Sr 87 K Endf/B-8r0
86 Sr 296 K Endf/B-8r0
87 Sr 87 K Endf/B-8r0
87 Sr 296 K Endf/B-8r0
88 Sr 87 K Endf/B-8r0
88 Sr 296 K Endf/B-8r0
90 Sr 87 K Endf/B-8r0
90 Sr 296 K Endf/B-8r0
89 Y 87 K Endf/B-8r0
89 Y 296 K Endf/B-8r0
90 Zr 87 K Endf/B-8r0
90 Zr 296 K Endf/B-8r0
91 Zr 87 K Endf/B-8r0
91 Zr 296 K Endf/B-8r0
92 Zr 87 K Endf/B-8r0
92 Zr 296 K Endf/B-8r0
94 Zr 87 K Endf/B-8r0
94 Zr 296 K Endf/B-8r0
96 Zr 87 K Endf/B-8r0
96 Zr 296 K Endf/B-8r0
93 Nb 87 K Endf/B-8r0
93 Nb 296 K Endf/B-8r0
92 Mo 87 K Endf/B-8r0
92 Mo 296 K Endf/B-8r0
94 Mo 87 K Endf/B-8r0
94 Mo 296 K Endf/B-8r0
95 Mo 87 K Endf/B-8r0
95 Mo 296 K Endf/B-8r0
96 Mo 87 K Endf/B-8r0
96 Mo 296 K Endf/B-8r0
97 Mo 87 K Endf/B-8r0
97 Mo 296 K Endf/B-8r0
98 Mo 87 K Endf/B-8r0
98 Mo 296 K Endf/B-8r0
100 Mo 87 K Endf/B-8r0
100 Mo 296 K Endf/B-8r0
99 Tc 87 K Endf/B-8r0
99 Tc 296 K Endf/B-8r0
96 Ru 87 K Endf/B-8r0
96 Ru 296 K Endf/B-8r0
98 Ru 87 K Endf/B-8r0
98 Ru 296 K Endf/B-8r0
99 Ru 87 K Endf/B-8r0
99 Ru 296 K Endf/B-8r0
100 Ru 87 K Endf/B-8r0
100 Ru 296 K Endf/B-8r0
101 Ru 87 K Endf/B-8r0
101 Ru 296 K Endf/B-8r0
102 Ru 87 K Endf/B-8r0
102 Ru 296 K Endf/B-8r0
104 Ru 87 K Endf/B-8r0
104 Ru 296 K Endf/B-8r0
103 Rh 87 K Endf/B-8r0
103 Rh 296 K Endf/B-8r0
102 Pd 87 K Endf/B-8r0
102 Pd 296 K Endf/B-8r0
104 Pd 87 K Endf/B-8r0
104 Pd 296 K Endf/B-8r0
105 Pd 87 K Endf/B-8r0
105 Pd 296 K Endf/B-8r0
106 Pd 87 K Endf/B-8r0
106 Pd 296 K Endf/B-8r0
108 Pd 87 K Endf/B-8r0
108 Pd 296 K Endf/B-8r0
110 Pd 87 K Endf/B-8r0
110 Pd 296 K Endf/B-8r0
107 Ag 87 K Endf/B-8r0
107 Ag 296 K Endf/B-8r0
109 Ag 87 K Endf/B-8r0
109 Ag 296 K Endf/B-8r0
106 Cd 87 K Endf/B-8r0
106 Cd 296 K Endf/B-8r0
108 Cd 87 K Endf/B-8r0
108 Cd 296 K Endf/B-8r0
110 Cd 87 K Endf/B-8r0
110 Cd 296 K Endf/B-8r0
111 Cd 87 K Endf/B-8r0
111 Cd 296 K Endf/B-8r0
112 Cd 87 K Endf/B-8r0
112 Cd 296 K Endf/B-8r0
113 Cd 87 K Endf/B-8r0
113 Cd 296 K Endf/B-8r0
114 Cd 87 K Endf/B-8r0
114 Cd 296 K Endf/B-8r0
116 Cd 87 K Endf/B-8r0
116 Cd 296 K Endf/B-8r0
113 In 87 K Endf/B-8r0
113 In 296 K Endf/B-8r0
115 In 87 K Endf/B-8r0
115 In 296 K Endf/B-8r0
112 Sn 87 K Endf/B-8r0
112 Sn 296 K Endf/B-8r0
114 Sn 87 K Endf/B-8r0
114 Sn 296 K Endf/B-8r0
115 Sn 87 K Endf/B-8r0
115 Sn 296 K Endf/B-8r0
116 Sn 87 K Endf/B-8r0
116 Sn 296 K Endf/B-8r0
117 Sn 87 K Endf/B-8r0
117 Sn 296 K Endf/B-8r0
118 Sn 87 K Endf/B-8r0
118 Sn 296 K Endf/B-8r0
119 Sn 87 K Endf/B-8r0
119 Sn 296 K Endf/B-8r0
120 Sn 87 K Endf/B-8r0
120 Sn 296 K Endf/B-8r0
122 Sn 87 K Endf/B-8r0
122 Sn 296 K Endf/B-8r0
124 Sn 87 K Endf/B-8r0
124 Sn 296 K Endf/B-8r0
121 Sb 87 K Endf/B-8r0
121 Sb 296 K Endf/B-8r0
123 Sb 87 K Endf/B-8r0
123 Sb 296 K Endf/B-8r0
120 Te 87 K Endf/B-8r0
120 Te 296 K Endf/B-8r0
122 Te 87 K Endf/B-8r0
122 Te 296 K Endf/B-8r0
123 Te 87 K Endf/B-8r0
123 Te 296 K Endf/B-8r0
124 Te 87 K Endf/B-8r0
124 Te 296 K Endf/B-8r0
125 Te 87 K Endf/B-8r0
125 Te 296 K Endf/B-8r0
126 Te 87 K Endf/B-8r0
126 Te 296 K Endf/B-8r0
128 Te 87 K Endf/B-8r0
128 Te 296 K Endf/B-8r0
130 Te 87 K Endf/B-8r0
130 Te 296 K Endf/B-8r0
127 I 87 K Endf/B-8r0
127 I 296 K Endf/B-8r0
129 I 4 K Endf/B-8r0
129 I 87 K Endf/B-8r0
129 I 296 K Endf/B-8r0
129 I 430 K Endf/B-8r0
129 I 686 K Endf/B-8r0
131 I 4 K Endf/B-8r0
131 I 87 K Endf/B-8r0
131 I 296 K Endf/B-8r0
131 I 430 K Endf/B-8r0
131 I 686 K Endf/B-8r0
135 I 4 K Endf/B-8r0
135 I 87 K Endf/B-8r0
135 I 296 K Endf/B-8r0
135 I 430 K Endf/B-8r0
135 I 686 K Endf/B-8r0
124 Xe 87 K Endf/B-8r0
124 Xe 296 K Endf/B-8r0
126 Xe 87 K Endf/B-8r0
126 Xe 296 K Endf/B-8r0
128 Xe 87 K Endf/B-8r0
128 Xe 296 K Endf/B-8r0
129 Xe 87 K Endf/B-8r0
129 Xe 296 K Endf/B-8r0
130 Xe 87 K Endf/B-8r0
130 Xe 296 K Endf/B-8r0
131 Xe 87 K Endf/B-8r0
131 Xe 296 K Endf/B-8r0
132 Xe 87 K Endf/B-8r0
132 Xe 296 K Endf/B-8r0
134 Xe 87 K Endf/B-8r0
134 Xe 296 K Endf/B-8r0
135 Xe 4 K Endf/B-8r0
135 Xe 87 K Endf/B-8r0
135 Xe 296 K Endf/B-8r0
135 Xe 430 K Endf/B-8r0
135 Xe 686 K Endf/B-8r0
136 Xe 87 K Endf/B-8r0
136 Xe 296 K Endf/B-8r0
133 Cs 87 K Endf/B-8r0
133 Cs 296 K Endf/B-8r0
135 Cs 4 K Endf/B-8r0
135 Cs 87 K Endf/B-8r0
135 Cs 296 K Endf/B-8r0
135 Cs 430 K Endf/B-8r0
135 Cs 686 K Endf/B-8r0
136 Cs 4 K Endf/B-8r0
136 Cs 87 K Endf/B-8r0
136 Cs 296 K Endf/B-8r0
136 Cs 430 K Endf/B-8r0
136 Cs 686 K Endf/B-8r0
130 Ba 87 K Endf/B-8r0
130 Ba 296 K Endf/B-8r0
132 Ba 87 K Endf/B-8r0
132 Ba 296 K Endf/B-8r0
134 Ba 87 K Endf/B-8r0
134 Ba 296 K Endf/B-8r0
135 Ba 87 K Endf/B-8r0
135 Ba 296 K Endf/B-8r0
136 Ba 87 K Endf/B-8r0
136 Ba 296 K Endf/B-8r0
137 Ba 87 K Endf/B-8r0
137 Ba 296 K Endf/B-8r0
138 Ba 87 K Endf/B-8r0
138 Ba 296 K Endf/B-8r0
138 La 87 K Endf/B-8r0
138 La 296 K Endf/B-8r0
139 La 87 K Endf/B-8r0
139 La 296 K Endf/B-8r0
136 Ce 87 K Endf/B-8r0
136 Ce 296 K Endf/B-8r0
138 Ce 87 K Endf/B-8r0
138 Ce 296 K Endf/B-8r0
140 Ce 87 K Endf/B-8r0
140 Ce 296 K Endf/B-8r0
142 Ce 87 K Endf/B-8r0
142 Ce 296 K Endf/B-8r0
141 Pr 87 K Endf/B-8r0
141 Pr 296 K Endf/B-8r0
142 Nd 87 K Endf/B-8r0
142 Nd 296 K Endf/B-8r0
143 Nd 87 K Endf/B-8r0
143 Nd 296 K Endf/B-8r0
144 Nd 87 K Endf/B-8r0
144 Nd 296 K Endf/B-8r0
145 Nd 87 K Endf/B-8r0
145 Nd 296 K Endf/B-8r0
146 Nd 87 K Endf/B-8r0
146 Nd 296 K Endf/B-8r0
148 Nd 87 K Endf/B-8r0
148 Nd 296 K Endf/B-8r0
150 Nd 87 K Endf/B-8r0
150 Nd 296 K Endf/B-8r0
145 Pm 87 K Endf/B-8r0
145 Pm 296 K Endf/B-8r0
144 Sm 87 K Endf/B-8r0
144 Sm 296 K Endf/B-8r0
147 Sm 87 K Endf/B-8r0
147 Sm 296 K Endf/B-8r0
148 Sm 87 K Endf/B-8r0
148 Sm 296 K Endf/B-8r0
149 Sm 87 K Endf/B-8r0
149 Sm 296 K Endf/B-8r0
150 Sm 87 K Endf/B-8r0
150 Sm 296 K Endf/B-8r0
152 Sm 87 K Endf/B-8r0
152 Sm 296 K Endf/B-8r0
154 Sm 87 K Endf/B-8r0
154 Sm 296 K Endf/B-8r0
151 Eu 87 K Endf/B-8r0
151 Eu 296 K Endf/B-8r0
153 Eu 87 K Endf/B-8r0
153 Eu 296 K Endf/B-8r0
152 Gd 87 K Endf/B-8r0
152 Gd 296 K Endf/B-8r0
154 Gd 87 K Endf/B-8r0
154 Gd 296 K Endf/B-8r0
155 Gd 87 K Endf/B-8r0
155 Gd 296 K Endf/B-8r0
156 Gd 87 K Endf/B-8r0
156 Gd 296 K Endf/B-8r0
157 Gd 87 K Endf/B-8r0
157 Gd 296 K Endf/B-8r0
158 Gd 87 K Endf/B-8r0
158 Gd 296 K Endf/B-8r0
160 Gd 87 K Endf/B-8r0
160 Gd 296 K Endf/B-8r0
159 Tb 87 K Endf/B-8r0
159 Tb 296 K Endf/B-8r0
156 Dy 87 K Endf/B-8r0
156 Dy 296 K Endf/B-8r0
158 Dy 87 K Endf/B-8r0
158 Dy 296 K Endf/B-8r0
160 Dy 87 K Endf/B-8r0
160 Dy 296 K Endf/B-8r0
161 Dy 87 K Endf/B-8r0
161 Dy 296 K Endf/B-8r0
162 Dy 87 K Endf/B-8r0
162 Dy 296 K Endf/B-8r0
163 Dy 87 K Endf/B-8r0
163 Dy 296 K Endf/B-8r0
164 Dy 87 K Endf/B-8r0
164 Dy 296 K Endf/B-8r0
165 Ho 87 K Endf/B-8r0
165 Ho 296 K Endf/B-8r0
162 Er 87 K Endf/B-8r0
162 Er 296 K Endf/B-8r0
164 Er 87 K Endf/B-8r0
164 Er 296 K Endf/B-8r0
166 Er 87 K Endf/B-8r0
166 Er 296 K Endf/B-8r0
167 Er 87 K Endf/B-8r0
167 Er 296 K Endf/B-8r0
168 Er 87 K Endf/B-8r0
168 Er 296 K Endf/B-8r0
170 Er 87 K Endf/B-8r0
170 Er 296 K Endf/B-8r0
169 Tm 87 K Tendl19
169 Tm 296 K Tendl19
168 Yb 87 K Endf/B-8r0
168 Yb 296 K Endf/B-8r0
170 Yb 87 K Endf/B-8r0
170 Yb 296 K Endf/B-8r0
171 Yb 87 K Endf/B-8r0
171 Yb 296 K Endf/B-8r0
172 Yb 87 K Endf/B-8r0
172 Yb 296 K Endf/B-8r0
173 Yb 87 K Endf/B-8r0
173 Yb 296 K Endf/B-8r0
174 Yb 87 K Endf/B-8r0
174 Yb 296 K Endf/B-8r0
176 Yb 87 K Endf/B-8r0
176 Yb 296 K Endf/B-8r0
175 Lu 87 K Tendl19
175 Lu 296 K Tendl19
176 Lu 87 K Tendl19
176 Lu 296 K Tendl19
174 Hf 87 K Endf/B-8r0
174 Hf 296 K Endf/B-8r0
176 Hf 87 K Endf/B-8r0
176 Hf 296 K Endf/B-8r0
177 Hf 87 K Endf/B-8r0
177 Hf 296 K Endf/B-8r0
178 Hf 87 K Endf/B-8r0
178 Hf 296 K Endf/B-8r0
179 Hf 87 K Endf/B-8r0
179 Hf 296 K Endf/B-8r0
180 Hf 87 K Endf/B-8r0
180 Hf 296 K Endf/B-8r0
180mTa 87 K Tendl19
180mTa 296 K Tendl19
181 Ta 87 K Endf/B-8r0
181 Ta 296 K Endf/B-8r0
180 W 4 K Endf/B-8r0
180 W 87 K Endf/B-8r0
180 W 296 K Endf/B-8r0
180 W 430 K Endf/B-8r0
180 W 686 K Endf/B-8r0
182 W 4 K Endf/B-8r0
182 W 87 K Endf/B-8r0
182 W 296 K Endf/B-8r0
182 W 430 K Endf/B-8r0
182 W 686 K Endf/B-8r0
183 W 4 K Endf/B-8r0
183 W 87 K Endf/B-8r0
183 W 296 K Endf/B-8r0
183 W 430 K Endf/B-8r0
183 W 686 K Endf/B-8r0
184 W 4 K Endf/B-8r0
184 W 87 K Endf/B-8r0
184 W 296 K Endf/B-8r0
184 W 430 K Endf/B-8r0
184 W 686 K Endf/B-8r0
186 W 4 K Endf/B-8r0
186 W 87 K Endf/B-8r0
186 W 296 K Endf/B-8r0
186 W 430 K Endf/B-8r0
186 W 686 K Endf/B-8r0
185 Re 87 K Endf/B-8r0
185 Re 296 K Endf/B-8r0
187 Re 87 K Endf/B-8r0
187 Re 296 K Endf/B-8r0
184 Os 87 K Endf/B-8r0
184 Os 296 K Endf/B-8r0
186 Os 87 K Endf/B-8r0
186 Os 296 K Endf/B-8r0
187 Os 87 K Endf/B-8r0
187 Os 296 K Endf/B-8r0
188 Os 87 K Endf/B-8r0
188 Os 296 K Endf/B-8r0
189 Os 87 K Endf/B-8r0
189 Os 296 K Endf/B-8r0
190 Os 87 K Endf/B-8r0
190 Os 296 K Endf/B-8r0
192 Os 87 K Endf/B-8r0
192 Os 296 K Endf/B-8r0
191 Ir 87 K Endf/B-8r0
191 Ir 296 K Endf/B-8r0
193 Ir 87 K Endf/B-8r0
193 Ir 296 K Endf/B-8r0
190 Pt 87 K Endf/B-8r0
190 Pt 296 K Endf/B-8r0
192 Pt 87 K Endf/B-8r0
192 Pt 296 K Endf/B-8r0
194 Pt 87 K Endf/B-8r0
194 Pt 296 K Endf/B-8r0
195 Pt 87 K Endf/B-8r0
195 Pt 296 K Endf/B-8r0
196 Pt 87 K Endf/B-8r0
196 Pt 296 K Endf/B-8r0
198 Pt 87 K Endf/B-8r0
198 Pt 296 K Endf/B-8r0
197 Au 87 K Endf/B-8r0
197 Au 296 K Endf/B-8r0
196 Hg 87 K Endf/B-8r0
196 Hg 296 K Endf/B-8r0
198 Hg 87 K Endf/B-8r0
198 Hg 296 K Endf/B-8r0
199 Hg 87 K Endf/B-8r0
199 Hg 296 K Endf/B-8r0
200 Hg 87 K Endf/B-8r0
200 Hg 296 K Endf/B-8r0
201 Hg 87 K Endf/B-8r0
201 Hg 296 K Endf/B-8r0
202 Hg 87 K Endf/B-8r0
202 Hg 296 K Endf/B-8r0
204 Hg 87 K Endf/B-8r0
204 Hg 296 K Endf/B-8r0
203 Tl 87 K Endf/B-8r0
203 Tl 296 K Endf/B-8r0
205 Tl 87 K Endf/B-8r0
205 Tl 296 K Endf/B-8r0
204 Pb 4 K Tendl19
204 Pb 87 K Tendl19
204 Pb 296 K Tendl19
204 Pb 430 K Tendl19
204 Pb 686 K Tendl19
206 Pb 4 K Tendl19
206 Pb 87 K Tendl19
206 Pb 296 K Tendl19
206 Pb 430 K Tendl19
206 Pb 686 K Tendl19
207 Pb 4 K Tendl19
207 Pb 87 K Tendl19
207 Pb 296 K Tendl19
207 Pb 430 K Tendl19
207 Pb 686 K Tendl19
208 Pb 4 K Endf/B-8r0
208 Pb 87 K Endf/B-8r0
208 Pb 296 K Endf/B-8r0
208 Pb 430 K Endf/B-8r0
208 Pb 686 K Endf/B-8r0
209 Bi 4 K Endf/B-8r0
209 Bi 87 K Endf/B-8r0
209 Bi 296 K Endf/B-8r0
209 Bi 430 K Endf/B-8r0
209 Bi 686 K Endf/B-8r0
230 Th 87 K Endf/B-7r1
230 Th 296 K Endf/B-7r1
230 Th 87 K Endf/B-8r0
230 Th 296 K Endf/B-8r0
232 Th 4 K Endf/B-8r0
232 Th 87 K Endf/B-8r0
232 Th 296 K Endf/B-8r0
232 Th 430 K Endf/B-8r0
232 Th 686 K Endf/B-8r0
233 Th 4 K Endf/B-8r0
233 Th 87 K Endf/B-8r0
233 Th 296 K Endf/B-8r0
233 Th 430 K Endf/B-8r0
233 Th 686 K Endf/B-8r0
233 U 4 K Endf/B-8r0
233 U 87 K Endf/B-8r0
233 U 296 K Endf/B-8r0
233 U 430 K Endf/B-8r0
233 U 686 K Endf/B-8r0
234 U 87 K Endf/B-8r0
234 U 296 K Endf/B-8r0
235 U 4 K Endf/B-7r1
235 U 87 K Endf/B-7r1
235 U 296 K Endf/B-7r1
235 U 430 K Endf/B-7r1
235 U 686 K Endf/B-7r1
235 U 4 K Endf/B-8r0
235 U 87 K Endf/B-8r0
235 U 296 K Endf/B-8r0
235 U 430 K Endf/B-8r0
235 U 686 K Endf/B-8r0
236 U 87 K Endf/B-8r0
236 U 296 K Endf/B-8r0
237 U 87 K Endf/B-8r0
237 U 296 K Endf/B-8r0
238 U 4 K Endf/B-7r1
238 U 87 K Endf/B-7r1
238 U 296 K Endf/B-7r1
238 U 430 K Endf/B-7r1
238 U 686 K Endf/B-7r1
238 U 4 K Endf/B-8r0
238 U 87 K Endf/B-8r0
238 U 296 K Endf/B-8r0
238 U 430 K Endf/B-8r0
238 U 686 K Endf/B-8r0
238 Pu 87 K Endf/B-8r0
238 Pu 296 K Endf/B-8r0
239 Pu 4 K Endf/B-8r0
239 Pu 87 K Endf/B-8r0
239 Pu 296 K Endf/B-8r0
239 Pu 430 K Endf/B-8r0
239 Pu 686 K Endf/B-8r0
240 Pu 4 K Endf/B-8r0
240 Pu 87 K Endf/B-8r0
240 Pu 296 K Endf/B-8r0
240 Pu 430 K Endf/B-8r0
240 Pu 686 K Endf/B-8r0
241 Pu 87 K Endf/B-8r0
241 Pu 296 K Endf/B-8r0
241 Am 87 K Endf/B-8r0
241 Am 296 K Endf/B-8r0
1********************************************************************************
11} Collision tape
********************************************************************************
A "collision tape" is a file where quantities describing selected events
are recorded in the course of a FLUKA run.
This file is the standard output of the MGDRAW user routine, that can be
customised by the user to get different and/or more complete output
(see description of user routine MGDRAW in Chap. 13}).
Note that "event" would be a more appropriate word than "collision",
and "file" better than "tape". For historical reasons, however,
the expression "collision tape" is used in Monte Carlo jargon rather
than "event file". It is true that most interesting events are generally
collision events (but also boundary crossings, decays, etc.), and that
the large size of the file may require the use of a magnetic tape (or at
least, that was often the case in the past).
Recently, the expression "phase space file" has also been used.
There are several reasons for which the user might decide to write a
collision tape. Some examples are:
* to perform a non-standard analysis or scoring. In general, this is
not recommended because the available FLUKA scoring facilities are
reliable, efficient and well tested. However, there may be special cases
where a user-written scoring is necessary.
* to save details of transport for a new independent analysis. In this
case, however, the user must make sure that no phase-space region
of interest be undersampled because of biasing options in the
corresponding run. As a general rule, writing of a collision file is not
recommended in non-analogue (biased) calculations.
* to connect FLUKA to other radiation transport codes (now less
likely than in the past, since FLUKA covers most energy ranges
and transports most particles which can be of interest).
* to split the transport problem in two or more sequential phases.
A technique used in deep penetration calculations, which can be
considered as an extension of splitting, consists in recording
all particles crossing a given boundary (with their energy,
weight, coordinates and direction cosines at the point of crossing),
and to sample repeatedly source particles from that set in a
successive run (Fas87). A special subroutine SOURCE (see 13} and
option SOURCE) must be written for this purpose. The user must make
sure that the final normalisation is done with respect to the total
particle weight used in the first step of the procedure, and not
to that of the second step. It is also recommended to assign blackhole to
all materials immediately beyond the recording boundary, to avoid that
backscattered particles be considered twice.
* to perform some manipulation in an intermediate phase of Monte
Carlo transport. An example is a variation of d), in which a user
program interpolates some smooth analytical distribution through
the recorded quantities, from which source particles are sampled
in the next FLUKA run.
* to trace suspected errors in transport
* to connect to a graphical display program
FLUKA allows to write a complete dump of each source particle, of each
trajectory and of each energy deposition event, possibly under event-driven
conditions specified by the user (see description of user routine MGDRAW
in 13}).
11.1} How to write a collision tape
-----------------------------------
To obtain a collision tape, the user must input option USERDUMP with
WHAT(1) >= 100.
The user can choose to dump all data concerning particle trajectories, data
concerning continuous energy deposition, data concerning local (point) energy
deposition, or any combination of the three. By default, data are written on
the collision tape in single precision and unformatted, but it is also possible
for the user to modify the MGDRAW subroutine and to obtain a more customised
output file (see 13}).
The variables written by the default version of MGDRAW}, and their number,
differ in the three cases. The sign of the first (integer) variable dumped at an
event indicates how to interpret the following ones:
- Case 1 (First variable > 0 ): continuous energy deposition
- Case 2 (First variable = 0 ): point energy deposition
- Case 3 (First variable < 0 ): source particles
In Case 1, the following variables are written:
First record:
NTRACK, MTRACK, JTRACK, ETRACK, WTRACK,
(three integers and two real variables)
Next record:
(XTRACK(I), YTRACK(I), ZTRACK(I), I = 0, NTRACK),
(DTRACK(J), J = 1, MTRACK), CTRACK
(NTRACK+MTRACK+1 real variables)
where:
NTRACK = number of trajectory segments
MTRACK = number of energy deposition events along the trajectory
JTRACK = particle type (see 5})
ETRACK = total energy of the particle (rest + kinetic)
WTRACK = particle weight
XTRACK(I), YTRACK(I), ZTRACK(I) = coordinates defining the upstream
end of the (I+1)th segment; for I = NTRACK, the end of the
trajectory
DTRACK(J) = energy deposition in the Jth deposition event along the
trajectory
CTRACK = total curved path
In Case 2, the following variables are written:
First record:
0, ICODE, JTRACK, ETRACK, WTRACK
(three integers and two real variables)
Next record:
XSCO, YSCO, ZSCO, RULL
(4 real variables)
where:
JTRACK, ETRACK, WTRACK have the meaning explained above,
XSCO, YSCO, ZSCO = coordinates of the energy deposition point
RULL = amount of energy deposited
ICODE = indicates the type of point event giving raise to energy
deposition, as explained below:
1x = call from KASKAD (hadronic part of FLUKA);
10: elastic interaction recoil
11: inelastic interaction recoil
12: stopping particle
13: pseudo-neutron deposition
14: escape
2x = call from EMFSCO (electromagnetic part of FLUKA);
20: local energy deposition (i.e. photoelectric)
21: below user-defined cutoff
22: below user cutoff
23: escape
3x = call from KASNEU (low-energy neutron part of FLUKA)
30: target recoil
31: neutron below threshold
32: escape
4x = call from KASHEA (heavy ion part of FLUKA)
40: escape
5x = call from KASOPH (optical photon part of FLUKA)
50: optical photon absorption
51: escape
In Case 3, the following variables are written:
First record:
-NCASE, NPFLKA, NSTMAX, TKESUM, WEIPRI,
(three integers and two real variables)
Next record:
(ILOFLK(I), ETOT(I), WTFLK(I), XFLK(I), YFLK(I), ZFLK(I), TXFLK(I), TYFLK(I),
TZFLK(I), I = 1, NPFLKA )
(NPFLKA times (one integer + 8 real variables))
where:
NCASE = number of primaries treated so far (including current one)
NPFLKA = number of particles in the stack
NSTMAX = maximum number of particles in stack so far
TKESUM = total kinetic energy of the primaries of a user written
SOURCE
WEIPRI = total weight of the primaries handled so far
ILOFLK(I) = type of the Ith stack particle (see 5})
ETOT(I) = total energy of Ith stack particle
XFLK(I), YFLK(I), ZFLK(I) = source coordinates for the Ith stack particle
TXFLK(I), TYFLK(I), TZFLK(I) = direction cosines of the Ith stack particle
1********************************************************************************
12} Generating and propagating optical photons
********************************************************************************
FLUKA can be used to generate and propagate optical photons of Cherenkov,
scintillation and transition radiation light. Light generation is switched
off by default and is activated and totally controlled by the user by means
of data cards and user routines. This is true also for the optical properties of
materials. These include the refraction index as a function of wave-length
(or frequency or energy), the reflection coefficient of a given material,
etc.
In this respect, the user has the responsibility of issuing the right input
directives: the code does not perform any physics check on the assumptions
about the light yield and the properties of material.
Optical photons (FLUKA id = -1) are treated according the laws of
geometrical optics and therefore can be reflected and refracted at
boundaries between different materials. From the physics point of view,
optical photons have a certain energy (sampled according to the
generation parameters given by the user) and carry along their polarisation
information. Cherenkov photons are produced with their expected
polarisation, while scintillation photons are assumed to be unpolarised. At
each reflection or refraction, polarisation is assigned or modified
according to optics laws derived from Maxwell equations.
At a boundary between two materials with different refraction index, an
optical photon is propagated (refracted) or reflected with a relative
probability calculated according to the laws of optics.
Furthermore, optical photons can be absorbed in flight (if the user
defines a non zero absorption coefficient for the material under
consideration) or elastically scattered (Rayleigh scattering) if the
user defines a non zero diffusion coefficient for the material under
consideration).
In order to deal with optical photon problems, two specific input cards
are available to the user:
OPT-PROP: to set optical properties of materials.
OPT-PROD: to manage light generation.
See the corresponding detailed description of these options and of their
parameters in Chapter 7}.
Some user routines are also available for a more complete representation
of the physical problem:
RFRNDX: to specify a refraction index as a function of wavelength,
frequency or energy
RFLCTV: to specify the reflectivity of a material.
This can be activated by card OPT-PROP with SDUM = METAL and
WHAT(3) < -99.
OPHBDX: to set optical properties of a boundary surface. The call
is activated by card OPT-PROP with SDUM = SPEC-BDX.
FRGHNS: to set a possible degree of surface roughness, in order to have
both diffusive and specular reflectivity from a given material
surface.
QUEFFC: to request a detailed quantum efficiency treatment. This is
activated by card OPT-PROP with SDUM = SENSITIV, setting the
0-th optical photon sentitivity parameter to a value lesser
than -99 (WHAT(1) < -99).
All running values of optical photon tracking are contained in the TRACKR
common block, just as for the other ordinary elementary particles.
12.1} Cherenkov transport and quantum efficiency
------------------------------------------------
In order to use quantum efficiency (using the QUEFFC routine)
the user must input a sensitivity < -100 using the OPT-PROP option with
SDUM = SENSITIV).
That option sets the quantum efficiency as a function of photon energy
OVERALL through the problem and it is not material/region dependent.
The reason is that it is applied "a priori" at photon generation time
(for obvious time saving reasons). Here below is an explanation taken
directly from the code.
* current particle is at a given position, in a given material
* Cherenkov (or scintillation) photons are going to be produced
* the photon generation probability is immediately reduced over the whole
energy spectrum according to the maximum quantum efficiency of the problem.
The latter, set as WHAT(5) in card OPT-PROD, IS MEANINGFUL EVEN IF
ROUTINE QUEFFC IS USED, see below
* the detailed efficiency, set again by the OPT-PROD card with
SDUM = SENSITIV or by routine QUEFFC, is used for a further reduction
when the actual energy of each individual photon is selected (rejecting it
against Q.E.(omega)/Q.E._max, where omega = photon angular frequency)
Summarising, the yes/no detection check is done AT PRODUCTION and NOT AT
DETECTION: this in order to substantially cut down CPU time. If one wants
all photons to be produced the sensitivity must be set = 1. Then it is
still possibile to apply a quantum efficiency curve AT DETECTION, by means of
the user weighting routine FLUSCW (see 13}) or by a user-written off-line code.
Since the quantum efficiency curve provided by OPT-PROD with
SDUM = SENSITIV is applied at production and not at detection, it is not known
which material the photon will eventually end up in.
Furthermore, WHAT(5) must be set anyway equal to the maximum quantum
efficiency over the photon energy range under consideration. One cannot
use the QUEFFC routine as a way to provide an initial screening on the
produced photons, i.e. to use a "safe" initial guess for the quantum
efficiency (say, for instance 20%) and then, at detection, to refine it
through more sophisticated curves, i.e. rejecting against the
actual quantum efficiency/0.2 (this again can be done in routine FLUSCW).
This makes sense of course if the user has different quantum efficiency curves
for different detectors (one should use in QUEFFC the curve that maximises
all of them and then refine it by rejection case by case), or if the
quantum efficiency is position/angle dependent upon arrival on the
photomultiplier (again one should use inside QUEFFC the quantum efficiency
for the most efficient position/angle and refine by rejection at detection
time.
Optical photons are absorbed in those material where the user selected properties
dictate absorption, i.e. metals or materials with a non zero absorption cross
section. These absorption events can be detected in different ways. For instance:
* through energy deposition by particle -1 (optical photons have always
id = -1), photons usually deposit all energy in one step (since only
absorption and coherent scattering are implemented). So one can
check for JTRACK = -1 and energy deposition (RULL) in a
given region (e.g., the photocathode of the PMT). One can also apply an extra
quantum efficiency selection, e.g. using the COMSCW user routine.
* through boundary crossing of particles -1 into the given region,
however this is correct if and only if absorption is set such that the
photon will not survive crossing the region. Again further selections
can be performed, e.g., using the FLUSCW user routine.
12.2} Handling optical photons
In order to help the user to understand how to deal with optical photons,
in the following we describe two input files respectively concerning the
production in Liquid Argon of Cherenkov (section 12.2.3}) and Scintillation
light (section 12.2.4}). A specific user routine, giving the refraction index
of Liquid Argon as a function of wave-length is also shown (section 12.2.2}).
It is a very simple case, in which muons are generated inside a box
filled with Liquid Argon. Notice that at present it is not yet
possible to request optical photons as primary particles via the
BEAM card. Therefore light must be generated starting from ordinary particles,
or by a special user-written SOURCE routine, where optical photons are
loaded into their dedicated stack (OPPHST) instead of that of ordinary
particles (FLKSTK). An example of such SOURCE is shown in 1.2.1}.
The examples presented here consider 0.5 GeV muons in a box of 4 x 4 x 4 m^3.
In order to avoid unnecessary complications in the example, secondary particle
production by muons is switched off. Of course this is not required in real
problems.
As far as the output is concerned, the following example proposes a
standard energy spectrum scoring at a boundary (option USRBDX)
applied to optical photons, together with a user-specific output built
via the MGDRAW user routine (see Chap. 13}), where a dump of optical photon
tracking is inserted. At the end of this section (in section 12.2.5}) we shall
propose the relevant code lines to be inserted in MGDRAW (activated by the
USERDUMP card), together with an example of readout (section 12.2.6}).
12.2.1} Example of SOURCE routine for optical photons
*$ CREATE SOURCE.FOR
*COPY SOURCE
*
*=== source ===========================================================*
*
SUBROUTINE SOURCE ( NOMORE )
INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
*
*----------------------------------------------------------------------*
* *
* Copyright (C) 1990-2009 by Alfredo Ferrari & Paola Sala *
* All Rights Reserved. *
* *
* *
* New source for FLUKA9x-FLUKA20xy: *
* *
* Created on 07 january 1990 by Alfredo Ferrari & Paola Sala *
* Infn - Milan *
* *
* Last change on 08-feb-09 by Alfredo Ferrari *
* *
* This is just an example of a possible user written source routine. *
* note that the beam card still has some meaning - in the scoring the *
* maximum momentum used in deciding the binning is taken from the *
* beam momentum. Other beam card parameters are obsolete. *
* *
* Output variables: *
* *
* Nomore = if > 0 the run will be terminated *
* *
*----------------------------------------------------------------------*
*
INCLUDE '(BEAMCM)'
INCLUDE '(FHEAVY)'
INCLUDE '(FLKSTK)'
INCLUDE '(IOIOCM)'
INCLUDE '(LTCLCM)'
INCLUDE '(PAPROP)'
INCLUDE '(SOURCM)'
INCLUDE '(SUMCOU)'
INCLUDE '(OPPHST)'
INCLUDE '(TRACKR)'
*
LOGICAL LFIRST
*
SAVE LFIRST
DATA LFIRST / .TRUE. /
*======================================================================*
* *
* BASIC VERSION *
* *
*======================================================================*
NOMORE = 0
* +-------------------------------------------------------------------*
* | First call initializations:
IF ( LFIRST ) THEN
* | *** The following 3 cards are mandatory ***
TKESUM = ZERZER
LFIRST = .FALSE.
LUSSRC = .TRUE.
* | *** User initialization ***
END IF
* |
* +-------------------------------------------------------------------*
* Push one source particle to the stack. Note that you could as well
* push many but this way we reserve a maximum amount of space in the
* stack for the secondaries to be generated
* LSTOPP is the stack counter: of course any time source is called it
* must be =0
IJBEAM = -1
LSTOPP = LSTOPP + 1
* Weight of optical photon
WTOPPH (LSTOPP) = ONEONE
WEIPRI = WEIPRI + WTOPPH (LSTOPP)
NUMOPH = NUMOPH + 1
IF ( NUMOPH .GT. 1000000000 ) THEN
MUMOPH = MUMOPH + 1
NUMOPH = NUMOPH - 1000000000
END IF
WOPTPH = WOPTPH + ONEONE
*
* Insert in POPTPH (LSTOPP) the proper energy for optical photon
*
POPTPH (LSTOPP) = 4.D-09
DONEAR (LSTOPP) = ZERZER
* Injection coordinates of optical photon
XOPTPH (LSTOPP) = XBEAM
YOPTPH (LSTOPP) = YBEAM
ZOPTPH (LSTOPP) = ZBEAM
* Initial direction cosines of optical photon
TXOPPH (LSTOPP) = UBEAM
TYOPPH (LSTOPP) = VBEAM
TZOPPH (LSTOPP) = WBEAM
* Set-up the polarization vector
TXPOPP (LSTOPP) = -TWOTWO
TYPOPP (LSTOPP) = ZERZER
TZPOPP (LSTOPP) = ZERZER
* age
AGOPPH (LSTOPP) = ZERZER
* total path
CMPOPP (LSTOPP) = ZERZER
* Particle generation
LOOPPH (LSTOPP) = 1
LOUOPP (LSTOPP) = LLOUSE
DO 2100 ISPR = 1, MKBMX1
SPAROK (ISPR,LSTOPP) = ZERZER
2100 CONTINUE
DO 2200 ISPR = 1, MKBMX2
ISPORK (ISPR,LSTOPP) = 0
2200 CONTINUE
TKESUM = TKESUM + POPTPH (LSTOPP) * WTOPPH (LSTOPP)
*
CALL GEOCRS ( TXOPPH (LSTOPP), TYOPPH (LSTOPP), TZOPPH (LSTOPP)
& )
CALL GEOREG ( XOPTPH (LSTOPP), YOPTPH (LSTOPP), ZOPTPH (LSTOPP)
& ,NREGOP (LSTOPP), IDISC )
* Do not change these cards:
CALL GEOHSM ( IHSPNT, 1, -11, MLATTC )
NLATOP (LSTOPP) = MLATTC
CALL SOEVSV
RETURN
*=== End of subroutine Source =========================================*
END
12.2.2} Routine assigning a continuous Refraction Index as a function of
Wave-Length
Notice that in this example, a check is performed on the material number.
In the following problems, the light will be generated on material
no. 18. In order to avoid problems a FLUKA abort is generated if
the routine is called by mistake for a different material.
*
*=== Rfrndx ===========================================================*
*
DOUBLE PRECISION FUNCTION RFRNDX ( WVLNGT, OMGPHO, MMAT )
INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
*
*----------------------------------------------------------------------*
* *
* user defined ReFRaction iNDeX: *
* *
* Created on 19 September 1998 by Alfredo Ferrari & Paola Sala *
* Infn - Milan *
* *
* Last change on 25-Oct-02 by Alfredo Ferrari *
* *
* *
*----------------------------------------------------------------------*
*
INCLUDE '(FLKMAT)'
*
* Check on the material number
*
IF ( MMAT .NE. 18 ) THEN
CALL FLABRT ( 'RFRNDX', 'MMAT IS NOT SCINTILLATOR!' )
END IF
*
WL = WVLNGT * 1.D+07
RFRNDX = ONEONE
& + 9.39373D+00*(4.15D-08/(0.000087892D+00 - WL**(-2))
& + 2.075D-07 / (0.000091012D+00 - WL**(-2))
& + 4.333D-06 / (0.00021402 D+00 - WL**(-2)))
RETURN
*=== End of function Rfrndx ===========================================*
END
12.2.3} Input Example no. 1: Only Cherenkov light is generated
Cherenkov light generation depends on the refraction index. Among the
different possibilities, here we have chosen to give the refraction
index by means of the user routine shown above.
The relevant data cards are commented.
The value inserted for light absorption in this example is arbitrary, while
the mean free path for Rayleigh scattering is the result obtained
from measurements performed in the framework of the Icarus collaboration.
TITLE
Test of Cherenkov light production in Liquid Argon
DEFAULTS PRECISIO
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+
BEAM -10.000 MUON+
BEAMPOS 0.0 0.0 190.0 NEGATIVE
DELTARAY -1.0 18.0 18.0
PAIRBREM -3.0 18.0 18.0
MUPHOTON -1.0 18.0 18.0
PHOTONUC -1.0 3.0 100.0
IONTRANS -6.0
DISCARD 27.0 28.0 43.0 44.0 5.0 6.0
GEOBEGIN COMBINAT
Test
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+
* A large box for the blackhole
RPP 1 -9999999. +9999999. -9999999. +9999999. -9999999. +9999999.
* A smaller box for for liquid argon
RPP 2 -200.0 +200.0 -200.0 +200.0 -200.0 +200.0
END
*== Region Definitions =================================================
* 1) Blackhole
BL1 +1 -2
* 2) Liquid Argon
LG3 +2
END
GEOEND
* Switch off electron and photon transport
EMF EMF-OFF
*
MATERIAL 18.0 0.0 1.400 18.0 ARGON
* Select neutron cross sections at liquid argon temperature
LOW-MAT 18.0 18.0 -2.0 87.0 ARGON
*
ASSIGNMAT 1.0 1.0 500. 1.0 0.0
ASSIGNMAT 18.0 2.0 2.0
*
* Set Light production/transport properties: from 100 to 600 nm in all materials
OPT-PROP 1.000E-05 3.500E-05 6.000E-05 3.0 100.0 WV-LIMIT
* Set all materials to "metal" with 0 reflectivity:
OPT-PROP 1.0 3.0 100.0 METAL
* resets all previous properties for material n. 18 (Liquid Argon)
OPT-PROP 18.0 RESET
* switches off scintillation light production in material n. 18 (Liq. Argon)
OPT-PROD 18.0 SCIN-OFF
* defines Cherenkov production for material n. 18 (Liq. Argon)
OPT-PROD 1.100E-05 5.500E-05 18.0 CEREN-WV
* The following card restores the wave-length limits for material n. 18
OPT-PROP 1.000E-05 3.500E-05 6.000E-05 18.0 WV-LIMIT
* The following card, for material n. 18:
* a) calls the RFRNDX user routine (to define the refraction index
* vs wave-length (WHAT(1)< -99)
* b) sets to 1000 cm the mean free path for absorption.
* c) sets to 90 cm the mean free path for Rayleigh scattering.
OPT-PROP -100.0 0.001 0.01111 18.0
* The following card defines the "Sensitivity" in order to introduce the
* maximum Quantum Efficiency at generation level.
* Here 1/10 of photons is actually generated.
* Fluctuations are properly sampled
OPT-PROP 0.1 0.1 SENSITIV
SCORE 208.0 211.0 201.0 210.0
RANDOMIZ 1.0
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+
USRBDX 1.0 -1.0 -55.0 2.0 1.0 Opt.Phot
USRBDX 12.0E-09 0.0 120.0 &
USERDUMP 111. 2. MGDRAW
START 10000.0
STOP
12.2.4} Input Example no. 2: Only Scintillation light is concerned
Here it is necessary to point out that, at present, FLUKA can generate
scintillation lines only for monochromatic lines. A maximum number of 3
different lines is possible. The value inserted here (128 nm) is the correct one
for Liquid Argon. The fraction of deposited energy going into scintillation light
depends on the degree of recombination after ionisation.
Again, the value used here is a parameter justified in the framework of the Icarus
collaboration, where about 20000 photons/MeV of deposited energy have been
measured for the electric field of 500 V/cm (the field used in
Icarus). A different electric field intensity will change the degree of
recombination and therefore the light yield.
TITLE
Test of scintillation light production in Liquid Argon
DEFAULTS PRECISIO
BEAM -0.5000 MUON+
BEAMPOS 0.0 0.0 199.0 NEGATIVE
*
DELTARAY -1.0 18.0 18.0
PAIRBREM -3.0 18.0 18.0
MUPHOTON -1.0 18.0 18.0
PHOTONUC -1.0 3.0 100.0
IONTRANS -6.0
DISCARD 27.0 28.0 43.0 44.0 5.0 6.0
GEOBEGIN COMBINAT
Test
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+
* A large box for the blackhole
RPP 1 -9999999. +9999999. -9999999. +9999999. -9999999. +9999999.
* A SMALLER BOX FOR FOR LIQUID ARGON
RPP 2 -200.0 +200.0 -200.0 +200.0 -200.0 +200.0
END
*== Region Definitions =================================================
* 1) Blackhole
BL1 +1 -2
* 2) Liquid Argon
LG3 +2
END
GEOEND
*
EMF EMF-OFF
*
MATERIAL 18.0 0.0 1.400 18.0 ARGON
LOW-MAT 18.0 18.0 -2.0 87.0 ARGON
ASSIGNMAT 1.0 1.0 500. 1.0 0.0
ASSIGNMAT 18.0 2.0 2.0
*
* Set Light production/transport properties: from 100 to 600 nm in all materials
OPT-PROP 1.000E-05 1.280E-05 6.000E-05 3.0 100.0 WV-LIMIT
* Set all materials to "metal" with 0 reflectivity:
OPT-PROP 1.0 3.0 100.0 METAL
* resets all previous properties for material n. 18 (Liquid Argon)
OPT-PROP 18.0 RESET
* switches off Cherenkov light production in material n. 18 (Liquid Argon)
OPT-PROD 18.0 CERE-OFF
* defines Scint. light production for material n. 18 (Liq. Argon). Parameters:
* a) wavelength (cm) of first scintillation line.
* b) fraction of deposited energy going into scint. light
* (in Liquid Argon ~ 2 10**4 photons/MeV)
OPT-PROD 1.280E-05 1.937E-01 18.0 SCINT-WV
* The following card restores the wave-length limits for material n. 18
OPT-PROP 1.000E-05 1.280E-05 6.000E-05 18.0 WV-LIMIT
* The following card, for material n. 18:
* a) calls the RFRNDX user routine (to define the refraction index
* vs wave-length (WHAT(1)< -99)
* b) sets to 1000 cm the mean free path for absorption.
* c) sets to 90 cm the mean free path for Rayleigh scattering
OPT-PROP -100.0 0.001 0.01111 18.0
* The following card defines the "Sensitivity" in order to introduce the
* maximum Quantum Efficiency at generation level. Here 1/10 of photons are
* actually generated.
* Fluctuations are properly sampled
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+
OPT-PROP 0.1 0.1 SENSITIV
SCORE 208.0 211.0 201.0 210.0
RANDOMIZ 1.0
*
USRBDX 1.0 -1.0 -55.0 2.0 1.0 Opt.Phot
USRBDX 12.0E-09 0.0 120.0 &
USERDUMP 111. 2. MGDRAW
START 10000.
STOP
12.2.5} User output for optical photons from USERDUMP
The user can request any kind of standard FLUKA output for optical photons
and also a user specific output, starting for instance from the MGDRAW
user routine. Here an example follows, where a few variables are
simply recorded in the output "collision tape" (dump file) at each step
in the tracking only for particle id = -1 (optical photons).
It can be useful, in order to exploit the flags available in this
routine, and explained in the different comments, to know that the FLUKA
routine which drives the transport of optical photons is KASOPH.
The content of the TRACKR common can be used to fully exploit
the possibilities offered from the use of MGDRAW routine
(see Chap. 13}).
Warning: in the present version of FLUKA, there is not yet the possibility
of using the User Particle Properties for optical photons (variables
SPAUSR, ISPUSR and the STUPFR user routine)
* *
*=== mgdraw ===========================================================*
* *
SUBROUTINE MGDRAW ( ICODE, MREG )
INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
*
*----------------------------------------------------------------------*
* *
* MaGnetic field trajectory DRAWing: actually this entry manages *
* all trajectory dumping for *
* drawing *
* *
* Created on 01 march 1990 by Alfredo Ferrari *
* INFN - Milan *
* last change 05-may-06 by Alfredo Ferrari *
* INFN - Milan *
* *
*----------------------------------------------------------------------*
*
INCLUDE '(CASLIM)'
INCLUDE '(COMPUT)'
INCLUDE '(SOURCM)'
INCLUDE '(FHEAVY)'
INCLUDE '(FLKSTK)'
INCLUDE '(GENSTK)'
INCLUDE '(MGDDCM)'
INCLUDE '(PAPROP)'
INCLUDE '(QUEMGD)'
INCLUDE '(SUMCOU)'
INCLUDE '(TRACKR)'
*
DIMENSION DTQUEN ( MXTRCK, MAXQMG )
*
CHARACTER*20 FILNAM
LOGICAL LFCOPE
SAVE LFCOPE
DATA LFCOPE / .FALSE. /
*
*----------------------------------------------------------------------*
* *
* Icode = 1: call from Kaskad *
* Icode = 2: call from Emfsco *
* Icode = 3: call from Kasneu *
* Icode = 4: call from Kashea *
* Icode = 5: call from Kasoph *
* *
*----------------------------------------------------------------------*
* *
IF ( .NOT. LFCOPE ) THEN
LFCOPE = .TRUE.
IF ( KOMPUT .EQ. 2 ) THEN
FILNAM = '/'//CFDRAW(1:8)//' DUMP A'
ELSE
FILNAM = CFDRAW
END IF
WRITE(*,*) 'TRAJECTORY OPEN!'
WRITE(*,'(A)') 'FILNAM = ',FILNAM
OPEN ( UNIT = IODRAW, FILE = FILNAM, STATUS = 'NEW', FORM =
& 'UNFORMATTED' )
END IF
C
C Write trajectories of optical photons
C
IF(JTRACK .EQ. -1) THEN
WRITE (IODRAW) NTRACK, MTRACK, JTRACK, SNGL (ETRACK),
& SNGL (WTRACK)
WRITE (IODRAW) ( SNGL (XTRACK (I)), SNGL (YTRACK (I)),
& SNGL (ZTRACK (I)), I = 0, NTRACK ),
& ( SNGL (DTRACK (I)), I = 1,MTRACK ),
& SNGL (CTRACK)
WRITE(IODRAW) SNGL(CXTRCK),SNGL(CYTRCK),SNGL(CZTRCK)
ENDIF
RETURN
*
*======================================================================*
* *
* Boundary-(X)crossing DRAWing: *
* *
* Icode = 1x: call from Kaskad *
* 19: boundary crossing *
* Icode = 2x: call from Emfsco *
* 29: boundary crossing *
* Icode = 3x: call from Kasneu *
* 39: boundary crossing *
* Icode = 4x: call from Kashea *
* 49: boundary crossing *
* Icode = 5x: call from Kasoph *
* 59: boundary crossing *
* *
*======================================================================*
* *
ENTRY BXDRAW ( ICODE, MREG, NEWREG, XSCO, YSCO, ZSCO )
RETURN
*
*======================================================================*
* *
* Event End DRAWing: *
* *
*======================================================================*
* *
ENTRY EEDRAW ( ICODE )
RETURN
*
*======================================================================*
* *
* ENergy deposition DRAWing: *
* *
* Icode = 1x: call from Kaskad *
* 10: elastic interaction recoil *
* 11: inelastic interaction recoil *
* 12: stopping particle *
* 13: pseudo-neutron deposition *
* 14: escape *
* 15: time kill *
* Icode = 2x: call from Emfsco *
* 20: local energy deposition (i.e. photoelectric) *
* 21: below threshold, iarg=1 *
* 22: below threshold, iarg=2 *
* 23: escape *
* 24: time kill *
* Icode = 3x: call from Kasneu *
* 30: target recoil *
* 31: below threshold *
* 32: escape *
* 33: time kill *
* Icode = 4x: call from Kashea *
* 40: escape *
* 41: time kill *
* 42: delta ray stack overflow *
* Icode = 5x: call from Kasoph *
* 50: optical photon absorption *
* 51: escape *
* 52: time kill *
* *
*======================================================================*
* *
ENTRY ENDRAW ( ICODE, MREG, RULL, XSCO, YSCO, ZSCO )
RETURN
*
*======================================================================*
* *
* SOurce particle DRAWing: *
* *
*======================================================================*
*
ENTRY SODRAW
* |
* +-------------------------------------------------------------------*
RETURN
*
*======================================================================*
* *
* USer dependent DRAWing: *
* *
* Icode = 10x: call from Kaskad *
* 100: elastic interaction secondaries *
* 101: inelastic interaction secondaries *
* 102: particle decay secondaries *
* 103: delta ray generation secondaries *
* 104: pair production secondaries *
* 105: bremsstrahlung secondaries *
* 110: decay products *
* Icode = 20x: call from Emfsco *
* 208: bremsstrahlung secondaries *
* 210: Moller secondaries *
* 212: Bhabha secondaries *
* 214: in-flight annihilation secondaries *
* 215: annihilation at rest secondaries *
* 217: pair production secondaries *
* 219: Compton scattering secondaries *
* 221: photoelectric secondaries *
* 225: Rayleigh scattering secondaries *
* Icode = 30x: call from Kasneu *
* 300: interaction secondaries *
* Icode = 40x: call from Kashea *
* 400: delta ray generation secondaries *
* For all interactions secondaries are put on GENSTK common (kp=1,np) *
* but for KASHEA delta ray generation where only the secondary elec- *
* tron is present and stacked on FLKSTK common for kp=npflka *
* *
*======================================================================*
*
ENTRY USDRAW ( ICODE, MREG, XSCO, YSCO, ZSCO )
* No output by default:
RETURN
*=== End of subroutine Mgdraw ==========================================*
END
12.2.6} Readout of the sample user output
A sample program to readout the output obtained from the previously
shown MGDRAW routine is here presented. In this example the key routine
in the one called VXREAD, where some trivial output is sent to logical
units 66 and 67. Of course the user must adapt such a readout program
to his own needs.
PROGRAM MGREAD
CHARACTER FILE*80
*
WRITE (*,*)' Name of the binary file?'
READ (*,'(A)') FILE
OPEN ( UNIT = 33, FILE = FILE, STATUS ='OLD',
& FORM = 'UNFORMATTED' )
1000 CONTINUE
WRITE (*,*)' Event number?'
READ (*,*) NCASE
IF ( NCASE .LE. 0 ) GO TO 9999
CALL VXREAD (NCASE)
GO TO 1000
9999 CONTINUE
STOP
END
SUBROUTINE VXREAD (NCASE)
PARAMETER ( MXH = 2000 )
PARAMETER ( MXPR = 300 )
DIMENSION XH (MXH), YH (MXH), ZH (MXH), DH (MXH),
& EPR (MXPR), WPR (MXPR), XPR (MXPR), YPR (MXPR),
& ZPR (MXPR), TXP (MXPR), TYP (MXPR), TZP (MXPR),
& IPR (MXPR)
*
LUNSCR = 33
REWIND (LUNSCR)
*
* +-------------------------------------------------------------------*
* |
NEVT=0
DO 4000 I=1,2000000000
READ (LUNSCR,END=4100) NDUM,MDUM,JDUM,EDUM,WDUM
IF(I.EQ.1) WRITE(*,*) 'NDUM,MDUM,JDUM,EDUM,WDUM',NDUM,MDUM,JDUM
& ,EDUM,WDUM
NEVT = NEVT + 1
* | +----------------------------------------------------------------*
* | | Real tracking data:
* | +----------------------------------------------------------------*
IF ( NDUM .GT. 0 ) THEN
NTRACK=NDUM
MTRACK=MDUM
JTRACK=JDUM
ETRACK=EDUM
WTRACK=WDUM
IF(NTRACK.GT.1) WRITE(67,*) 'NTRACK = ',NTRACK
READ (LUNSCR)(XH(J),YH(J),ZH(J),J=1,NTRACK+1),
& (DH(J),J=1,MTRACK), CTRACK
READ (LUNSCR) CXX,CYY,CZZ
IF(I.EQ.1) THEN
WRITE(67,*) (XH(J),YH(J),ZH(J),J=1,NTRACK+1),
& (DH(J),J=1,MTRACK), CTRACK
WRITE(67,*) CXX,CYY,CZZ
ENDIF
DO J=1,NTRACK+1
WRITE(67,*) XH(J),YH(J),ZH(J),
& CXX,CYY,CZZ
END DO
IF ( NEVT.EQ.NCASE ) THEN
WRITE(66,*)' New step:'
WRITE(66,*)' Part.id.:',JTRACK,' Kin.En.:',ETRACK,
& ' N.of substep:', NTRACK
WRITE(66,*)' X, Y, Z, i=0, # substep'
WRITE(*,*)' New step:'
WRITE(*,*)' Part.id.:',JTRACK,' Kin.En.:',ETRACK,
& ' N.of substep:', NTRACK
WRITE(*,*)' X, Y, Z, i=0, # substep'
END IF
* | |
* | +----------------------------------------------------------------*
* | | Energy deposition data:
ELSE IF ( NDUM .EQ. 0 ) THEN
ICODE1=MDUM/10
ICODE2=MDUM-ICODE1*10
IJDEPO=JDUM
ENPART=EDUM
WDEPOS=WDUM
READ (LUNSCR) XSCO, YSCO, ZSCO, ENDEPO
IF ( NEVT.EQ.NCASE ) THEN
WRITE(66,*) ' En. dep. code n.:',MDUM
WRITE(66,*) IJDEPO,' Tot. en. proj.:', ENPART,
& ' Weight:',WDEPOS
WRITE(66,*) ' Position:',XSCO,YSCO,ZSCO,
& ' En. Dep.:',ENDEPO
END IF
* | |
* | +----------------------------------------------------------------*
* | | Source particle:
ELSE
NEVT =-NDUM
LPRIMA = MDUM
NSTMAX = JDUM
TKESUM = EDUM
WEIPRI = WDUM
READ (LUNSCR) ( IPR(J),EPR(J),WPR(J),XPR(J),YPR(J),
& ZPR(J),TXP(J),TYP(J),TZP(J),J=1,LPRIMA )
DO J = 1, LPRIMA
IF ( ABS(IPR(J)) .LT. 10000 ) THEN
LPTRUE=J
END IF
END DO
LPROJ = LPRIMA - LPTRUE
LPRIMA = LPTRUE
IF (NEVT .EQ. NCASE) THEN
WRITE(66,*)' Event #',NEVT
IF ( LPROJ .GT. 0) THEN
WRITE(66,*)
& ' Original projectile(s),n. of:',LPROJ
DO IJ = 1, LPROJ
J=LPRIMA+IJ
IPR(J) = IPR(J)/10000
WRITE(66,*) ' Part.id.:',IPR(J),' Kin.en.:',
& EPR(J),' Weight:',WPR(J)
WRITE(66,*) IPR(J),EPR(J),WPR(J)
WRITE(66,*) ' Position :', XPR(J),YPR(J),ZPR(J)
WRITE(66,*) ' Direction:', TXP(J),TYP(J),TZP(J)
END DO
END IF
WRITE(66,*)' Source particle(s), n. of:',LPRIMA
DO J = 1, LPRIMA
WRITE(66,*) ' Part.id.:',IPR(J),' Kin.en.:',
& EPR(J),' Weight:',WPR(J)
WRITE(66,*) ' Position :', XPR(J),YPR(J),ZPR(J)
WRITE(66,*) ' Direction:', TXP(J),TYP(J),TZP(J)
C WRITE(67,*) XPR(J)/1.E+05,YPR(J)/1.E+05,ZPR(J)/1.E+05
END DO
END IF
IF (NEVT.GT.NCASE) GO TO 4100
END IF
* | |
* | +----------------------------------------------------------------*
4000 CONTINUE
* |
* +-------------------------------------------------------------------*
4100 CONTINUE
RETURN
END
1********************************************************************************
13} User routines
********************************************************************************
Unlike some other Monte Carlo particle transport codes, FLUKA gets its input
mainly from a simple file. It offers a rich choice of options for scoring most
quantities of possible interest and for applying different variance reduction
techniques, without requiring the user to write a single line of code.
However, although normally there is no need for any "user code", there are
special cases where this is unavoidable, either because of the complexity of
the problem, or because the desired information is too unusual or too
problem-specific to be offered as a standard option.
And on the other hand, even when this is not strictly necessary, experienced
programmers may like to create customised input/output interfaces.
A number of user routines (available on LINUX and UNIX platforms in directory
usermvax) allow to define non-standard input and output, and in some cases
even to modify to a limited extent the normal particle transport. Most of them
are already present in the FLUKA library as dummy or template routines, and
require a special command in the standard input file to be activated. Users
can modify any one of these routines, and even insert into them further calls
to their own private ones, or to external packages (at their own risk!). This
increased flexibility must be balanced against the advantage of using as far as
possible the FLUKA standard facilities, which are known to be reliable and well
tested.
To implement their own code, users must perform the following steps:
1) make a modified copy of one or more of these routines. It is recommended
that each modified routine should always print an informative message when
called for the first time, to confirm that it has been successfully
activated, for future documentation, and to avoid misinterpretations of the
standard output. It is important to remember that when calling modified
user routines, the units, titles etc. reported in the normal FLUKA output
become often meaningless.
A typical way to do this is:
..............
LOGICAL LFIRST
SAVE LFIRST
DATA LFIRST /.TRUE./
* return message from first call
IF (LFIRST) THEN
WRITE(LUNOUT,*) 'Version xxx of Routine yyy called'
LFIRST = .FALSE.
ENDIF
..............
IMPORTANT: The user should not modify the value of any argument in a routine
calling list, except when marked as "returned" in the description of the
routine here below.
Similarly, no variable contained in COMMON blocks should be overwritten
unless explicitly indicated.
2) compile the modified routines (with the fff script on LINUX/UNIX):
fff yyy.f (produces a new file yyy.o)
3) link them (with the lfluka script on LINUX/UNIX) to the FLUKA
library and any additional library of interest (for instance
CERNLIB):
lfluka -o myfluka -m fluka yyy.o
This will produce a new executable (indicated here as myfluka).
To run the new executable, launch the usual rfluka script with the option
-e myfluka.
13.1} INCLUDE files
-------------------
It is recommended that at least the following lines be present at the beginning
of each routine:
INCLUDE '(DBLPRC)'
INCLUDE '(DIMPAR)'
INCLUDE '(IOUNIT)'
Each INCLUDE contains a COMMON block, plus related constants.
Additional INCLUDEs may be useful, in particular BEAMCM, CASLIM, EMFSTK, SOURCM,
EVTFLG, FHEAVY, GENSTK, LTCLCM, FLKMAT, RESNUC, SCOHLP, SOUEVT, FLKSTK, SUMCOU,
TRACKR, USRBIN, USRBDX, USRTRC, USRYLD.
Files flukaadd,add and emfadd.add contain a full documentation about the
meaning of the variables of these INCLUDE files.
Here is a summary of their content:
DBLPRC: included in ALL routines of FLUKA, contains the declaration
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
and sets many mathematical and physical constants. Users are strongly
encouraged to adhere to "FLUKA style" by using systematically double
precision (except for very good reasons such as calling external single
precision scoring packages), and to use constants defined in this file
for maximum accuracy.
DIMPAR: dimensions of the most important arrays
IOUNIT: logical input and output unit numbers
BEAMCM: properties of primary particles as defined by options BEAM
and BEAMPOS
CASLIM: number of primary particles followed (needed for normalisation)
EMFSTK: particle stack for electrons and photons
SOURCM: user variables and information for a user-written source
EVTFLG: event flags (still undocumented)
FHEAVY: stack of heavy secondaries created in nuclear evaporation
GENSTK: properties of each secondary created in a hadronic event
LTCLCM: LaTtice CeLl CoMmon (needed when writing symmetry transformations for
Lattice Geometry)
FLKMAT: material properties
RESNUC: properties of the current residual nucleus
SCOHLP: SCOring HeLP (information on current detector and estimator type). It
contains a flag ISCRNG, indicating the quantity being scored by the
current binning or the estimator corresponding to the current
detector, and one JSCRNG corresponding to the binning/detector number.
Binnings and detectors are sequentially numbered according to their
order of appearance in standard input. Note that detectors
corresponding to different estimators can have the same JSCRNG number
(for instance Binning N. 3 and Tracklength detector N. 3). They can be
distinguished based on the value of ISCRNG. However, note that the
same value of ISCRNG may have different meanings in functions FLUSCW
and COMSCW.
SOUEVT: SOUrce EVenT (useful when source particles are obtained from an
external event generator)
FLKSTK: main FLUKA particle stack
SUMCOU: total numbers and total weights relative to many physical and Monte
Carlo events (needed for normalisation, energy balance etc.)
TRACKR: TRACKs Recording (properties of the currently transported particle and
its path)
USRBIN, USRBDX, USRSNC, USRTRC, USRYLD: parameters of the requested estimator
detectors and binnings
13.2} User routines
-------------------
13.2.1} abscff.f: user-defined ABSorption CoeFFicient
-----------------------------------------------------
Argument list (all variables are input only):
WVLNGT : photon wavelength (in cm)
OMGPHO : angular frequency (omega = 2pi nu) of the photon (in s-1)
MMAT : material index
Function ABSCFF returns a user-defined absorption coefficient for optical
photons.
It is activated by setting WHAT(2) < -99 in command OPT-PROP, with SDUM = blank.
See option OPT-PROP and Chap. 12} for more information.
13.2.2} comscw.f: weighting deposited energy, stars or residual nuclei
----------------------------------------------------------------------
Argument list:
IJ : particle type (1 = proton, 8 = neutron, etc.: see code in 5})
Input only, cannot be modified.
XA,YA,ZA : current particle position
MREG : current geometry region
RULL : amount to be deposited (unweighted)
LLO : particle generation. Input only, cannot be modified.
ICALL : internal code calling flag (not for general use)
This routine is activated by option USERWEIG, with WHAT(6) > 0.0.
Energy and star densities obtained via SCORE and USRBIN, and energy
and stars obtained via EVENTBIN and production of residual nuclei
obtained via RESNUCLEi are multiplied by the value returned
by this function. The user can implement any desired logic to
differentiate the returned value according to any information
contained in the argument list (particle type, position, region,
amount deposited, particle generation), or information available in
the SCOHLP COMMON block (binning number, type of scored quantity).
The scored quantity is given by the flag ISCRNG (in SCOHLP):
ISCRNG = 1 --> Energy density binning
ISCRNG = 2 --> Star density binning
ISCRNG = 3 --> Residual nuclei scoring
The binning/detector number is given by JSCRNG (in SCOHLP) and is
printed in output:
Res. nuclei n. 3 "any-name" , "high" energy products, region n. 4
R-Phi-Z binning n. 5 "other-name" , generalised particle n. 1
Note that a detector of residual nuclei can have the same JSCRNG
number as a binning (use the value of ISCRNG to discriminate).
Further information can be obtained including COMMON TRACKR (for
instance particle's total energy, direction cosines, age). TRACKR
contains also special user variables (both integer and in double
precision) which can be used to save information about particles which
have undergone some particular event. If data concerning the current
material are needed, it can be accessed as MEDIUM(MREG) if file (FLKMAT)
is included. Indeed, a common simple application of COMSCW is to score
dose according to the local density (especially useful to get the
correct average dose in bins straddling a boundary between two
different media):
..................
INCLUDE '(FLKMAT)'
INCLUDE '(SCOHLP)'
..................
* ========== In order to compute doses ========= *
* Medium(n) is the material number of region n
* Rho(m) is the density of material m (in g/cm3)
* Iscrng = 1 means we are depositing energy (not stars)
IF ( ISCRNG .EQ. 1 ) THEN
* to get dose in Gy (elcmks is the electron charge in C)
COMSCW = ELCMKS * 1.D12 / RHO (MEDIUM(MREG))
ELSE
* oneone is defined as 1.D0 in include DBLPRC
COMSCW = ONEONE
ENDIF
..................
Note that the variables in the argument list, with the exception of IJ, LLO and
ICALL, are local copies of those used for particle transport, and therefore can
be modified to have an effect on scoring, without affecting transport.
If name-based input is being used, the name corresponding to MREG can be
obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG (returned
variable) is the corresponding region name (to be declared as CHARACTER*8).
IERR is a returned error code: if = 0, the conversion is successful. See
example in the description of BXDRAW below.
Note: setting the variable LSCZER = .TRUE. before RETURN (LSCZER is in
COMMON SCOHLP), will cause zero scoring whatever the value returned by
COMSCW. This is more efficient than returning a zero value.
13.2.3} dffcff.f: user-defined DiFFusion CoeFFicient
----------------------------------------------------
Argument list (all variables are input only):
WVLNGT : photon wavelength (in cm)
OMGPHO : angular frequency (omega = 2pi nu) of the photon (in s-1)
MMAT : material index
Function DFFCFF returns a user-defined diffusion coefficient for optical photons.
It is activated by setting WHAT(3) < -99 in command OPT-PROP, with SDUM = blank.
See option OPT-PROP and Chap. 12} for more information.
13.2.3b} elefld.f definition of an electric field
------------------------------------------------
Argument list:
X,Y,Z,T : current position and time (input only)
ETX,ETY,ETZ : direction cosines of the electric field vector
(returned).
E : electric field intensity in MV/m (returned)
NREG : current region (input only)
IDISC : if returned = 1, the particle will be discarded
ELEFLD is activated by option ELCFIELD with WHAT(4-6) = 0.0 and is
used to return intensity and direction of an electric field
based on the current position, time and region. It is called only
if the current region has been flagged as having a non-zero
electric field by option ASSIGNMAt, with WHAT(5) = 2.0.
The electric field spatial distribution is often read and
interpolated from an external field map. Note that in any
case the direction cosines MUST be properly normalised in
double precision (e.g. ETX = SQRT(ONEONE - ETY**2 - ETZ**2)), even if E = 0.0.
Please read carefully the notes on option ELCFIELD.
If name-based input is being used, the name corresponding to NREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW below.
13.2.4} endscp.f: ENergy density DiStributed - Change of Positions
------------------------------------------------------------------
Argument list (all variables are input only):
IJ : particle type (input only)
NTRUCK : number of step points (input only)
XTRUCK,YTRUCK,ZTRUCK : particle step points, can be modified by user
MREG : region number (input only)
LLO : particle generation (input only)
ICALL : internal code calling flag (not for general use)
Subroutine ENDSCP allows to shift by a user-defined distance the energy which
is being deposited along a step or several step binning portions, by providing
new segment endpoints. A typical application is to simulate an instrument drift.
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the conversion
is successful. See example in the description of BXDRAW below.
13.2.5} fldscp.f: FLuence DiStributed - Change of Positions
-----------------------------------------------------------
Argument list (all variables are input only):
IJ : particle type
PLA : particle momentum (if > 0), or kinetic energy (if < 0)
(input only)
TXX,TYY,TZZ : particle direction cosines, can be modified by user
NTRUCK : number of step points
XTRUCK,YTRUCK,ZTRUCK : particle step points, can be modified by user
NREG : new region number (input only)
IOLREG : old region number (input only)
LLO : particle generation (input only)
ICALL : internal code calling flag (not for general use)
Subroutine FLDSCP allows to shift by a user-defined distance the track whose
length is being scored as fluence along a step or several step binning portions,
by providing new segment endpoints. A typical application is to simulate an
instrument drift.
If name-based input is being used, the names corresponding to NREG and IOLREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW below.
13.2.6} fluscw.f: weighting fluence, current and yield
------------------------------------------------------
Argument list:
IJ : particle type (input only, cannot be modified)
PLA : particle momentum (if > 0), or -PLA = kinetic energy
(if < 0)
TXX,TYY,TZZ: particle current direction cosines
WEE : particle weight
XX,YY,ZZ: particle position
NREG : current region (after boundary crossing)
IOLREG : previous region (before boundary crossing). Useful only
whith boundary crossing estimators; for other estimators it
has no meaming.
LLO : particle generation (input only, cannot be modified)
ICALL : internal code calling flag (not for general use)
Function FLUSCW is activated by option USERWEIG, with WHAT(3) > 0.0.
Yields obtained via USRYIELD, fluences calculated with USRBDX,
USRTRACK, USRCOLL, USRBIN, and currents calculated with USRBDX are
multiplied by the value returned by this function. The user can
implement any desired logic to differentiate the returned value
according to any information contained in the argument list (particle
type, energy, direction, weight, position, region, boundary, particle
generation), or information available in the SCOHLP COMMON block
(binning or detector number, estimator type).
The scored quantity is given by the flag ISCRNG (in SCOHLP):
ISCRNG = 1 --> Boundary crossing estimator
ISCRNG = 2 --> Track length binning
ISCRNG = 3 --> Track length estimator
ISCRNG = 4 --> Collision density estimator
ISCRNG = 5 --> Yield estimator
The binning/detector number is given by JSCRNG (in SCOHLP) and is
printed in output:
Bdrx n. 2 "bdxname" , generalised particle n. 8,
from region n. 22 to region n. 78
Track n. 6 "trkname" , generalised particle n. 14, region n. 9.
Note that a track-length detector can have the same JSCRNG number as
a boundary crossing one or a binning etc. (use the value of ISCRNG to
discriminate).
Further information can be obtained including COMMON TRACKR (for
instance particle age). TRACKR contains also special user variables
(both integer and in double precision) which can be used to save
information about particles which have undergone some particular event.
Function FLUSCW has many applications. A common one is conditional scoring
(score only if within a certain distance from a point, etc.): for instance it
is possible to implement a sort of 2-dimensional fluence binning on a plane
boundary.
FLUSCW can be used also when scoring "fluxes" (i.e. fluences or
currents or yields) of heavy ions, to discriminate between different
types of ions.
All ions in FLUKA carry the same id-number IJ = -2: therefore ion
fluxes obtained by the various estimators will refer to all ions
unless an additional discrimination is introduced by the user at
scoring time. This can be done in FLUSCW as follows:
CALL USRDCI(IJ,IONA,IONZ,IONM)
The three integer values returned are the following ion properties:
IONA = mass number of the ion
IONZ = atomic number
IONM = flag for isomeric state
Based on their values, the user can decide or not to accept the
scoring.
Other interesting applications are based on the fact that
FLUSCW is called at every boundary crossing, provided that at least
one USRBDX detector has been requested. Although the function has
been designed mainly to weight scored quantities, it can be "cheated"
to do all sorts of side things, even not directly connected with
scoring. Note that the variables in the argument list, with the
exception of IJ, LLO and ICALL, are local copies of those used for
particle transport, and therefore can be modified to have an effect
on scoring, without affecting transport.
If name-based input is being used, the name corresponding to NREG and IOLREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW below.
Note: setting the variable LSCZER (in SCOHLP) = .TRUE. before
RETURN, will cause zero scoring whatever the value returned
by FLUSCW. This is more efficient than returning a zero value.
13.2.7} formfu.f nuclear form factor
------------------------------------
Argument list (all variables are input only):
IJ : particle code, except that it is set to 3 for both e+ and e-
QU2 : squared momentum transfer (GeV/c)^2
ZMEDIU : atomic number of target nucleus
AMEDIU : atomic mass of target nucleus
Function FORMFU can be used to override the standard value of the
nuclear charge form factor. It must return the squared value of the
nuclear charge form factor for particle IJ.
The default version computes the form factor in Born approximation for
a medium of given composition, using the simple expression given by
Tsai [Tsa74], and accounts also for the contribution of incoherent
scattering.
The function is called by the multiple and single scattering routines if
option MULSOPT has been issued with WHAT(3) = 100.,
usually writes a "collision tape", i.e. a file where all or selected
transport events are recorded. The default version (unmodified by the
user) offers several possibilities, selected by WHAT(3) in USERDUMP.
Details are given in 11}.
Additional flexibility is offered by a user entry USDRAW, selected
by WHAT(4) in USERDUMP, interfaced with the most important physical
events happening during particle transport.
The user can modify of course also any other entry of this
subroutine (BXDRAW called at boundary crossings, EEDRAW called at event
end, MGDRAW for trajectory drawing, ENDRAW for recording of
energy depositions and SODRAW for recording of source events:
for instance the format of the output file can be changed, and
different combinations of events can be written to file.
No information is written by default at EEDRAW and BXDRAW calls, but the
entries are called for any value of WHAT(3) in USERDUMP (EEDRAW also
for WHAT(4) >= 1).
But the most interesting aspect of the routine is that the five
entries (all of which, if desired, can be activated at the same time
by setting USERDUMP with WHAT(3) = 0.0 and WHAT(4) >= 1.0) constitute
a complete interface to the whole FLUKA transport. Therefore, MGDRAW
can be used not only to write a collision tape, but to do any kind
of complex analysis (for instance studying correlations between events).
Entries:
* MGDRAW (trajectory dumping for drawing)
Argument list (all variables are input only):
ICODE : FLUKA physical compartment originating the call
= 1: call from Kaskad (hadrons and muons)
= 2: call from Emfsco (electrons, positrons and photons)
= 3: call from Kasneu (low-energy neutrons)
= 4: call from Kashea (heavy ions)
= 5: call from Kasoph (optical photons)
MREG : current region
MGDRAW writes by default, for each trajectory, the following
variables (contained in COMMON TRACKR):
NTRACK : number of track segments
MTRACK : number of continuous energy deposition events along the track.
Local energy deposition events, i.e. energy deposition at a
point, such as that from heavy recoils, particles below threshold
and low energy neutron kerma, are written instead by ENTRY ENDRAW
(see below).
JTRACK : type of particle
ETRACK : total energy of the particle
WTRACK : weight of the particle
Ntrack values of XTRACK, YTRACK, ZTRACK : end of each track segment
Mtrack values of DTRACK : energy deposited at each deposition event
CTRACK : total length of the curved path
Other variables are available in TRACKR (but not written by
MGDRAW unless the latter is modified by the user: particle
momentum, direction cosines, cosines of the polarisation
vector, age, generation, etc. (see a full list in the comment
in the INCLUDE file).
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW below.
* BXDRAW (boundary crossing dumping)
Argument list (all variables are input only):
ICODE : FLUKA physical compartment originating the call
= 19: call from Kaskad (hadrons and muons)
= 29: call from Emfsco (electrons, positrons and photons)
= 39: call from Kasneu (low-energy neutrons)
= 49: call from Kashea (heavy ions)
= 59: call from Kasoph (optical photons)
MREG : number of region before boundary crossing
NEWREG : number of region after boundary crossing
XSCO, YSCO, ZSCO : coordinates of crossing point
BXDRAW is called at each boundary crossing (if requested by the user
with USERDUMP, WHAT(3) < 7.0). There is no default output: any
output must be supplied by the user.
If name-based input is being used, the names corresponding to MREG
and NEWREG can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is a region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful.
Example:
.......................................
CHARACTER*8 MRGNAM, NRGNAM
.......................................
ENTRY BXDRAW ( ICODE, MREG, NEWREG, XSCO, YSCO, ZSCO )
CALL GEOR2N ( MREG, MRGNAM, IERR1 )
CALL GEOR2N ( NEWREG, NRGNAM, IERR2 )
IF(IERR1 .NE. 0 .OR. IERR2 .NE. 0) STOP "Error in name conversion"
.......................................
IF(MRGNAM .EQ. "MyUpsREG" .AND. NRGNAM .EQ. "MyDwnREG") THEN
.......................................
* EEDRAW (event end)
Argument list:
ICODE = -1: event not completed
= 0: normal event termination
= 4: stack overflow
EEDRAW is called at the end of each event, or primary history,
(if requested by the user with USERDUMP, WHAT(3) =< 0.0). There is no
default output: any output must be supplied by the user.
* ENDRAW (dumping of energy deposition at a point)
Argument list (all variables are input only):
ICODE : type of event originating energy deposition
1x: call from Kaskad (hadrons and muons)
10: elastic interaction recoil
11: inelastic interaction recoil
12: stopping particle
13: pseudo-neutron deposition
14: particle escaping (energy deposited in blackhole)
15: time kill
2x: call from Emfsco (electrons, positrons and photons)
20: local energy deposition (i.e. photoelectric)
21 or 22: particle below threshold
23: particle escaping (energy deposited in blackhole)
24: time kill
3x: call from Kasneu (low-energy neutrons)
30: target recoil
31: neutron below threshold
32: neutron escaping (energy deposited in blackhole)
33: time kill
4x: call from Kashea (heavy ions)
40: ion escaping (energy deposited in blackhole)
41: time kill
42: delta ray stack overflow
5x: call from Kasoph (optical photons)
50: optical photon absorption
51: optical photon escaping (energy deposited in
blackhole)
52: time kill
MREG : current region
RULL : energy amount deposited
XSCO, YSCO, ZSCO : point where energy is deposited
ENDRAW writes by default, for each energy deposition point:
0 : flag identifying ENDRAW output from that of other entries
ICODE : see argument list
JTRACK, ETRACK, WTRACK : see MGDRAW above. Note that for recoils,
electrons, positrons and photons below threshold and kerma
deposition, JTRACK can be outside the allowed particle ID range,
assuming values like:
208: heavy recoil
211: electron, positron or photon below threshold
308: low energy neutron kerma
In those cases the ID of the particle originating the
interaction is saved in the TRACKR variable J0TRK (which
otherwise has value zero)
XSCO, YSCO, ZSCO, RULL : see argument list
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
* SODRAW (source particle dumping)
No arguments
SODRAW writes by default, for each source or beam particle:
-NCASE (in COMMON CASLIM, with a minus sign to identify
Sodraw output): number of primaries followed so far
NPFLKA (in COMMON FLKSTK): stack pointer
NSTMAX (in COMMON FLKSTK): highest value of the stack pointer
encountered so far
TKESUM (in COMMON SOURCM): total kinetic energy of the
primaries of a user written source (see source.f
here below), if applicable. Otherwise = 0.0
WEIPRI (in COMMON SUMCOU): total weight of the primaries
handled so far
Npflka times: ILOFLK : type of source particle
TKEFLK+AM : total particle energy (kinetic+mass)
WTFLK : source particle weight
XFLK, YFLK, ZFLK : source particle position
TXFLK, TYFLK, TZFLK : source particle direction cosines
* USDRAW
Argument list (all variables are input only):
ICODE : 10x: call from Kaskad (hadron and muon interactions)
100: elastic interaction secondaries
101: inelastic interaction secondaries
102: particle decay secondaries
103: delta ray generation secondaries
104: pair production secondaries
105: bremsstrahlung secondaries
110: radioactive decay products
20x: call from Emfsco (electron, positron and photon
interactions)
208: bremsstrahlung secondaries
210: Moller secondaries
212: Bhabha secondaries
214: in-flight annihilation secondaries
215: annihilation at rest secondaries
217: pair production secondaries
219: Compton scattering secondaries
221: photoelectric secondaries
225: Rayleigh scattering secondaries
30x: call from Kasneu (low-energy neutron interactions)
300: interaction secondaries
40x: call from Kashea (heavy ion interactions)
400: delta ray generation secondaries
MREG : current region
XSCO, YSCO, ZSCO : interaction point
USDRAW is called after each particle interaction (if requested by
the user with USERDUMP, WHAT(4) >= 1.0). There is no default output:
any output must be supplied by the user.
Information about the secondary particles produced is available
in COMMON GENSTK, except that concerning delta rays produced by heavy
ions (in which case the properties of the single electron produced
are available in COMMON EMFSTK, with index NP).
Another exception is that about heavy evaporation fragments (deuterons,
3-H, 3-He, alphas, with JTRACK ID equal respectively to -3, -4, -5, -6)
and fission/fragmentation products generated in an inelastic interaction
(with JTRACK = -7 to -12) which are all stored in COMMON FHEAVY, with
index NPHEAV. To get the kinetic energy of particles with JTRACK < -6,
one must subtract from their total energy (ETRACK} in COMMON TRACKR)
their fully stripped nuclear mass (AMNHEA in COMMON FHEAVY).
Information about the interacting particle and its trajectory can be
found in COMMON TRACKR (see description under the MGDRAW entry
above). In TRACKR there are also some spare variables at the user's
disposal: LLOUSE (integer), ISPUSR (integer array) and SPAUSR
(double precision array). Like many other TRACKR variables, each of
them has a correspondent in the particle stacks, i.e. the COMMONs
from which the particles are unloaded at the beginning of their
transport: FLKSTK, EMFSTK and OPPHST (respectively, the stack of
hadrons/muons, electrons/photons, and optical photons). The
correspondence with TRACKR is shown below under STUPRF/STUPRE.
When a particle is generated, its properties (weight, momentum,
energy, coordinates etc., as well as the values of the user flags)
are loaded into one of the stacks. The user can write a STUPRF or
STUPRE subroutine (see description below) to change anyone of such
flags just before it is saved in stack.
When a particle starts to be transported, its stack variables are
copied to the corresponding TRACKR ones. Unlike the other TRACKR
variables, which in general become modified during transport due to
energy loss, scattering etc., the user flags keep their original
value copied from stack until they are changed by the user himself
(generally in USDRAW).
One common application is the following: after an interaction which
has produced sencondaries, let USDRAW copy some properties of the
interacting particle into the TRACKR user variables. When STUPRF is
called next to load the secondaries into stack, by default it copies
the TRACKR user variables to the stack ones. In this way,
information about the parent can be still carried by its daughters
(and possibly by further descendants). This technique is sometimes
referred to as "latching".
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
13.2.14} ophbdx.f user-defined Optical PHoton BounDary-(X)crossing properties
-------------------------------------------------------------------------------
Argument list (all variables are input only):
OMGPHO : angular frequency (omega = 2 pi nu) of the photon (in s-1)
WVLNGT : photon wavelength (in cm)
MREG : old region number
NEWREG : new region number
SIGANW : absorption coefficient in the new region (cm-1)
SIGDNW : diffusion coefficient in the new region (cm-1)
RFNDPR : refractive index in the new region
VGRPNW : group velocity in the new region (cm s-1)
LPHKLL : if .TRUE., the photon will be absorbed on the boundary
Subroutine OPHBDX sets the optical properties of a boundary surface.
The call is activated by command OPT-PROP, with SDUM = SPEC-BDX.
See option OPT-PROP and Chap. 12} for more information.
If name-based input is being used, the names corresponding to MREG and NEWREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
13.2.15} pshckp.f: user-call when PuSHing CerenKov Photons to the stack
---------------------------------------------------
Argument list (all variables are input only):
PX/Y/ZCR : momentum components of the photon (GeV/c)
EPHSMP : energy of the photon (GeV)
X/Y/ZTRKCR : coordinates of the production point
ATRCKR : photon age at production (s)
POX/Y/ZCR : polarization components of the photon
WTRACK : statistical weight of the photon
LLOUSE : user defined variable (see common (TRACKR))
Subroutine PSHCKP is for informational purposes, it is called every time
a Cerenkov photon is pushed to the stack
13.2.16} pshscp.f: user-call when PuSHing SCintillation Photons to the stack
---------------------------------------------------
Argument list (all variables are input only):
PX/Y/ZCR : momentum components of the photon (GeV/c)
EPHSMP : energy of the photon (GeV)
X/Y/ZTRKCR : coordinates of the production point
ATRCKR : photon age at production (s)
POX/Y/ZCR : polarization components of the photon
WTRACK : statistical weight of the photon
LLOUSE : user defined variable (see common (TRACKR))
Subroutine PSHSCP is for informational purposes, it is called every time
a scintillation photon is pushed to the stack
13.2.17} queffc.f: user-defined QUantum EFFiCiency
---------------------------------------------------
Argument list (all variables are input only):
WVLNGT : photon wavelength (in cm)
OMGPHO : angular frequency (omega = 2pi nu) of the photon (in s-1)
Function QUEFFC returns a user-defined quantum efficiency for an optical
photon of the given wavelength or frequency.
It is activated by OPT-PROP, with SDUM = SENSITIV, by setting
the 0th photon sensitivity parameter to a value < -99.
See option OPT-PROP and Chap. 12} for more information.
13.2.18} rflctv.f: user-defined ReFLeCTiVity
---------------------------------------------
Argument list (all variables are input only):
WVLNGT : photon wavelength (in cm)
OMGPHO : angular frequency (omega = 2pi nu) of the photon (in s-1)
MMAT : material index
Function RFLCTV returns a user-defined value equal to 1-R, where R is the
reflectivity of the current material for an optical photon of the given
wavelength or frequency.
It is activated by OPT-PROP, with SDUM = METAL, and WHAT(3) < -99.
See option OPT-PROP and Chap. 12} for more information.
13.2.19} rfrndx.f: user-defined ReFRaction iNDeX
-------------------------------------------------
Argument list (all variables are input only):
WVLNGT : photon wavelength (in cm)
OMGPHO : angular frequency (omega = 2pi nu) of the photon (in s-1)
MMAT : material index
Function RFRNDX returns a user-defined refraction index of the current
material for an optical photon of the given wavelength or frequency.
It is activated by OPT-PROP, with SDUM = blank, and WHAT(1) < -99.
See option OPT-PROP and Chap. 12} for more information.
13.2.20} soevsv.f SOurce EVent SaVing
-------------------------------------
No arguments
Subroutine SOEVSV is always called after a beam particle is loaded
into FLKSTK, but a call to SOEVSV can be inserted by the user anywhere
in a user routine.
SOEVSV copies the whole FLKSTK to another COMMON, SOUEVT, which can
be included in other user routines. In other words, this routine is
used to "take a snapshot" of the particle bank at a particular time
for further use (interfacing to independent generators, etc.)
13.2.21} source.f user-written source
-------------------------------------
Argument list:
NOMORE : if set = 1, no more calls will occur (the run will be
terminated after exhausting the primary particles loaded
into FLKSTK stack in the present call). The history number
limit set with option START will be overridden.
Subroutine SOURCE is probably the most frequently used user routine.
It is activated by option SOURCE and is used to sample primary
particle properties from distributions (in space, energy, time,
direction, polarisation or mixture of particles) too complicated to be
described with the BEAM, BEAMPOS and POLARIZAti cards alone. For each
phase-space variable, a value must be loaded into COMMON FLKSTK (particle
bank) before returning control. These values can be read from a file,
generated by some sampling algorithm, or just assigned.
* Reading from a file
Reading from a file is needed, for instance, when the particle data
are taken from a collision file, written by FLUKA or by another
program. The user must open the file with a unit number > 20 (unit
numbers lower than 20 are reserved), in one of the following ways:
- Using option OPEN, with SDUM = OLD
- In a user subroutine USRINI or USRGLO (see below), with a Fortran
OPEN statement. Option USRICALL (resp. USRGCALL) is needed to
activate the call to the routine.
- With an OPEN statement in the initialisation part of subroutine
SOURCE itself.
Then, a READ statement in SOURCE can be used to get the data to load
in stack, for instance:
READ(21,*) IPART, X, Y, Z, COSX, COSY, COSZ, ENERGY, WEIGHT
ILOFLK (NPFLKA) = IPART
XFLK (NPFLKA) = X
YFLK (NPFLKA) = Y
ZFLK (NPFLKA) = Z
TXFLK (NPFLKA) = COSX
...etc...
(NPFLKA is the current stack index).
* Direct assignment
Direct assignment can be done explicitly, for instance:
PMOFLK (NPFLKA) = 305.2D0
or implicitly, leaving unmodified values input with BEAM or BEAMPOS:
PMOFLK (NPFLKA) = PBEAM
(PBEAM is the momentum value input as WHAT(1) in option BEAM).
A set of direct assignments, one for each of several different stack
entries, can be useful, for example, to define a series of RAYs through
the geometry (see 14}):
DO 10 I = 1, 20
NPFLKA = NPFLKA + 1
ILOFLK (NPFLKA) = 0 (0 is the RAY particle id number)
XFLK (NPFLKA) = 500.D0 + DBLE(I) * 40.D0
YFLK (NPFLKA) = 200.D0
...etc...
10 CONTINUE
* Sampling from a uniform distribution
To sample from a uniform distribution, the user must use the
function FLRNDM(DUMMY), which returns a double precision
pseudo-random number uniformly distributed between 0 (included)
and 1 (not included). Actually, DUMMY can be any variable name.
A simple example of sampling from a uniform distribution is that of
a linear source along the Z axis, between Z = 10 and Z = 80:
Z1 = 10.D0
Z2 = 80.D0
ZFLK (NPFLKA) = 10.D0 + (Z2 - Z1) * FLRNDM(XXX)
* Sampling from a generic distribution
One way to sample a value XX from a generic distribution f(x) is
the following.
First integrate the distribution function, analytically or
numerically, and normalise to 1 to obtain the normalised
cumulative distribution:
/x /xmax
F(x) = | f(x)dx / | f(x)dx
/xmin /xmin
Then, sample a uniform pseudo-random number t using FLRNDM and
get the desired result by finding the inverse value:
-1
XX = F (t)
(analytically or most often by interpolation).
A FLUKA subroutine is available to sample directly from a Gaussian
distribution:
CALL FLNRRN (RGAUSS)
or, if two independent Gaussian distributed numbers are needed:
CALL FLNRR2 (RGAUS1, RGAUS2)
(faster than calling FLNRRN twice).
* Sampling from a biased distribution
The technique for sampling from a generic distribution described
above can be extended to modify the probability of sampling in
different parts of the interval (importance sampling). We
replace f(x) by a weighted function g(x) = f(x) * h(x), where h(x)
is any appropriate function of x we like to choose. We normalise g(x)
in the same way as f(x) before:
/x /xmax /x
G(x) = | g(x)dx / | g(x)dx = | f(x)*h(x)dx / B
/xmin /xmin /xmin
and we need also the integral of f(x) over the whole interval:
/xmax
A = | f(x)dx
/xmin
All the sampling is done using the biased cumulative normalised
function G instead of the original unbiased F: we sample a uniform
pseudo-random number t as before, and we get the sampled value XX by
inverting G(x):
-1
XX = G (t)
The particle is assigned a weight B/(A * h(XX))
A special case of importance sampling is when the biasing function
chosen is the inverse of the unbiased distribution function:
h(x) = 1/f(x)
g(x) = f(x) * h(x) = 1
G(x) = (x - xmin) / (xmax - xmin)
In this case we sample a uniform pseudo-random number t using
FLRNDM as shown above. The sampled value XX is simply given by:
XX = xmin + (xmax - xmin)*t
and the particle is assigned a weight:
/xmax
B/(A h(X)) = f(XX)*(xmax - xmin) / | f(x)dx
/xmin
But since FLUKA normalizes all results per unit primary weight, any
constant factor is eliminated in the normalization. Therefore it is
sufficient to assign each particle a weight f(x).
Because XX is sampled with the same probability over all possible
values of x, independently of the value f(XX) of the function,
this technique is used to ensure that sampling is done uniformly
over the whole interval, even though f(x) might have very small
values somewhere. For instance it may be important to avoid
undersampling in the high-energy tail of a spectrum, steeply falling
with energy but more penetrating, such as that of cosmic rays or
synchrotron radiation.
Option SOURCE allows the user to input up to 12 numerical values
(WHASOU(1),(2)...(12)) and one 8-character string (SDUSOU) which can
be accessed by the subroutine by including the following line:
INCLUDE '(SOURCM)'
These values can be used as parameters or switches for a multi-source
routine capable to handle several cases, or to identify an external
file to be read, etc., without having to compile and link again the
routine.
In the SOURCE routine there are a number of mandatory statements,
(clearly marked as such in accompanying comments) which must not be
removed or modified. The following IF block initialises the total
kinetic energy of the primary particles and sets two flags: the
first to skip the IF block in all next calls, and the second to
remind the program, when writing the final output, that a user source
has been used:
* +-------------------------------------------------------------------*
* | First call initialisations:
IF ( LFIRST ) THEN
* | *** The following 3 cards are mandatory ***
TKESUM = ZERZER
LFIRST = .FALSE.
LUSSRC = .TRUE.
* | *** User initialisation ***
END IF
* |
* +-------------------------------------------------------------------*
The user can insert into the above IF block any other initialisation
needed, for instance the preparation of a cumulative spectrum
array from which to sample the energy of the source particles.
Note that user initialisation can take place also in routines USRINI
and USRGLO (activated at input time by input options USRICALL and
USRGCALL) and USREIN (called before unloading from stack the first
source particle of an event, i.e., just after the call to SOURCE)
At the time SOURCE is called, the particle bank FLKSTK is always empty
and the stack pointer NPFLKA has value 0.
The user can load into the FLKSTK stack one or more source particles
at each call: for each particle loaded the pointer must be increased by 1.
The template version of SOURCE loads only one particle: if several
are loaded the following sequence, until the statement CALL SOEVSV not
included, must be repeated once for each particle, possibly inside
a DO loop:
NPFLKA = NPFLKA + 1 increases the pointer
The following statements assign a value to each of the FLKSTK
variables concerning the particle being loaded:
WTFLK (NPFLKA) = ONEONE sets the weight of the particle = 1.
This must be changed if the sampling of one or more of the
particle properties are biased. In that case, generally the weight
must be set after the sampling, and its value depends on the
sampling outcome.
WEIPRI = WEIPRI + WTFLK (NPFLKA) updates the total weight of the
primaries (don't change)
ILOFLK (NPFLKA) = IJBEAM by default sets the type of particle
equal to the one defined by the BEAM card. If no BEAM card is
given in input, IJBEAM is = 1 (proton), but it is strongly
recommended to always provide a BEAM command in input (see Note 1
at the end of Section 13.2.19}).
The above statement is followed by several others that must not be
changed or removed. In the template routine, they are encompassed by
the comment lines:
From this point .... / ... to this point: don't change anything
These statements are:
* From this point ....
LOFLK (NPFLKA) = 1 Generation is 1 for source particles
LOUSE (NPFLKA) = 0 User variables: the user can set
DO 100 ISPR = 1, MKBMX1 different values in the STUPRF or
SPAREK (1,NPFLKA) = ZERZER STUPRE routine, but it is better
100 CONTINUE not to do it here
DO 200 ISPR = 1, MKBMX2
ISPARK (ISPR,NPFLKA) = 0 More user variables (integer)
200 CONTINUE
NPARMA = NPARMA + 1 Updating the maximum particle number
NUMPAR (NPFLKA) = NPARMA Setting the current particle number
NEVENT (NPFLKA) = 0 Resetting the current event number
DFNEAR (NPFLKA) = +ZERZER Resetting the distance to the
nearest boundary
* ... to this point: don't change anything
The following statements can be overridden or rewritten by the user,
assigning new values or sampling them from problem-dependent distributions.
First three statements which are rarely modified:
AGESTK (NPFLKA) = +ZERZER Particle age is zero by default
AKNSHR (NPFLKA) = -TWOTWO Resets the Kshort component of
K0/K0bar. Usually not to be changed.
IGROUP (NPFLKA) = 0 Group number for low energy
neutrons: if set to 0, the program
derives it from the kinetic energy
Then the most frequently changed lines: both energy and momentum of
the particle must be loaded onto FLKSTK, but the two cannot be defined
independently. Appropriate kinematical (relativistic) relations must
be applied to derive one from the other.
In the template routine, the momentum is assumed to be assigned by
BEAM option (its value, PBEAM, is taken from COMMON BEAMCM, which
contains all values defined by options BEAM and BEAMPOS).
PMOFLK (NPFLKA) = PBEAM
Therefore, the kinetic energy (in GeV) must be derived:
TKEFLK (NPFLKA) = SQRT ( PBEAM**2 + AM (IJBEAM)**2 ) - AM (IJBEAM)
(where AM is the rest mass, in COMMON PAPROP, and IJBEAM is the
particle type, in COMMON BEAMCM)
If instead the energy had been sampled first from some spectrum, and
ENSAMP would be the sampled value, the two statements above would become:
TKEFLK (NPFLKA) = ENSAMP
PMOFLK (NPFLKA) = SQRT(ENSAMP * (ENSAMP + TWOTWO * AM(IJBEAM)))
The direction cosines are loaded next:
TXFLK (NPFLKA) = UBEAM Assumed here to be the same as
TYFLK (NPFLKA) = VBEAM defined by option BEAMPOS. UBEAM,
TZFLK (NPFLKA) = WBEAM VBEAM, WBEAM are some among the beam
properties in COMMON BEAMCM.
(If BEAMPOS is not given, by default UBEAM = VBEAM = 0.0, WBEAM= 1.0)
Remember to make sure that the cosines are normalised! One could
replace the last statement by:
TZFLK (NPFLKA) = SQRT ( ONEONE - TXFLK(NPFLKA)**2 - TYFLK(NPFLKA)**2 )
The polarisation cosines are not set by default:
TXPOL (NPFLKA) = -TWOTWO -2 is a flag for "no polarisation"
TYPOL (NPFLKA) = +ZERZER
TZPOL (NPFLKA) = +ZERZER
but appropriate values need to be given in some cases, for instance
in synchrotron radiation shielding problems.
Finally the particle coordinates, set again by default equal to those
input with BEAMPOS:
XFLK (NPFLKA) = XBEAM Assumed here to be the same as
YFLK (NPFLKA) = YBEAM defined by option BEAMPOS. XBEAM,
ZFLK (NPFLKA) = ZBEAM YBEAM, ZBEAM are also in COMMON
BEAMCM.
(If BEAMPOS is not given, by default XBEAM = YBEAM = ZBEAM = 0.0)
If for example our problem required instead a linear source uniformly
distributed along Z between Z1 and Z2, we could replace the last
statement by:
ZFLK (NPFLKA) = Z1 + FLRNDM(UGH) * (Z2 - Z1)
The following lines in the template SOURCE routine should never be
changed. They calculate the total energy of the primary particles,
define the remaining properties of the particles (starting region and
lattice cell) and do some geometry initialisation.
The last line calls the SOEVSV user routine (see description above)
to save the stack for possible further use.
IMPORTANT!
----------
Note 1: Even though a user-written source is used, it is recommended to issue
in input a card BEAM with an energy larger than the maximum energy
that can be sampled by the user source. This value is used to set up
tables such as stopping powers, cross sections etc., and if not
provided, crashes can occur.
Note 2: The values of beam characteristics defined by commands BEAM and
POLARIZAti are available in COMMON BEAMCM: the angular divergence
(variable DIVBM), beam width (XSPOT and YSPOT), and the polarisation
vector (UBMPOL, VBMPOL, WBMPOL) can help to set up a scheme to sample
the corresponding quantities from user-defined distributions. But
sampling from the distributions pre-defined by BEAM and POLARIZAti is
not simply inherited by subroutine SOURCE: it is the responsibility of
the user to write such a scheme!
For this task, it may be useful to define a "beam reference frame" by
means of option BEAMAXES (see more details at the BEAMAXES command).
13.2.22} sphspc.f: user-defined Sampling optical PHoton SPectrum
-------------------------------------------------
Argument list (all variables are input only):
IP : ip-th scintillation emission for material Mmat
MMAT : material index
Function SPHSPC returns the energy (GeV) of a scintillation optical photon
sampled from an user-defined spectrum, corresponding to the ip-th scintillation
emission for material Mmat.
It is activated by OPT-PROD, with SDUM = SCINTILL/SCINT-WVb/SCINT-OM, and
WHAT(2) < -99.
See option OPT-PROD and Chap. 12} and usfsci.f for more information.
13.2.23} stupre.f SeT User PRoperties for EMF particles
stuprf.f SeT User PRoperties for FLUKA particles
---------------------------------------------------------
These two functions are used to assign a value to one or more stack
user variables when the corresponding particle is loaded into one of
the stacks (FLKSTK for hadrons/muons, EMFSTK for electrons/photons,
OPPHST for optical photons).
In each of these stacks the user has access to one integer variable,
one integer array and one double precision array. Each of them is
copied to a correspondent variable or array in COMMON TRACKR at the
beginning of transport:
Correspondence: FLKSTK EMFSTK OPPHST TRACKR
-------------- ----- ------ ------ ------
integer variable: LOUSE LOUEMF LOUOPP --> LLOUSE
integer array: ISPARK IESPAK ISPORK --> ISPUSR
double precision array: SPAREK ESPARK SPAROK --> SPAUSR
The user can access and modify the TRACKR variables via subroutine
MGDRAW and its entries ENDRAW, SODRAW and especially USDRAW (see
description above). STUPRF and STUPRE can be used to do the reverse,
namely to copy TRACKR user variables to those of the relevant stack
(see USDRAW above).
* STUPRE is called before loading into stack electrons, positrons and photons.
No arguments
The default version does nothing (the user variables of the parent
particle are already set equal to the original projectile by the
various electromagnetic interaction routines. Also the
region/position etc. are already set inside the stack arrays.
* STUPRF is called before loading into stack hadrons, muons, neutrinos,
low-energy neutrons, heavy ions and optical photons
Argument list:
IJ : type of the parent particle
MREG : current region
XX, YY, ZZ : particle position
NPSECN : index in the GENSTK COMMON of the secondary being loaded
onto stack
NPPRMR : if > 0, the secondary being loaded is actually still the
interacting particle (it can happen in some biasing
situations)
Note that heavy ions in FLUKA carry all the same id-number IJ = -2.
The characteristics of primary ions are characterised by option HI-PROPE.
To obtain the those of a secondary ion, call the routine USRDCI as follows:
CALL USRDCI(IJ,IONA,IONZ,IONM)
The three integer values returned are the following ion properties:
IONA = mass number of the ion
IONZ = atomic number
IONM = flag for isomeric state
The default version of STUPRF copies to stack the user flags of the parent.
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
13.2.24} ubsset.f User BiaSing SETting
--------------------------------------
Argument list:
IR : region number
RRHADR : multiplicity biasing factor to be applied to the
secondaries from hadronic interactions in region IR
(WHAT(2) of card BIASING)
HMPHAD : Importance of region IR for hadrons and muons (WHAT(3) of
card BIASING, with WHAT(1) = 0 or 1).
Actually the routine argument is an integer, IMPHAD, equal
to importance multiplied by 10000, but the user should
consider only the double precision version HMPHAD
(a conversion from and to the integer version is provided
at the beginning and at the end of the routine, and should
not be changed).
HMPLOW : Importance of region IR for low energy neutrons (WHAT(3)
of card BIASING, with WHAT(1) = 0 or 3).
Actually the routine argument is an integer, IMPLOW, equal
to importance multiplied by 10000, but the user should
consider only the double precision version HMPLOW
(a conversion from and to the integer version is provided
at the beginning and at the end of the routine, and should
not be changed).
HMPEMF : Importance of region IR for electrons and photons (WHAT(3)
of card BIASING, with WHAT(1) = 0 or 2).
Actually the routine argument is an integer, IMPEMF, equal
to importance multiplied by 10000, but the user should
consider only the double precision version HMPEMF
(a conversion from and to the integer version is provided
at the beginning and at the end of the routine, and should
not be changed).
IGCUTO : Cutoff group index for low energy neutrons in region IR
(WHAT(1) in card LOW-BIAS)
IGNONA : Non-analogue absorption group limit for low energy neutrons
in region IR (WHAT(2) in card LOW-BIAS)
PNONAN : Non-analogue survival probability for low energy neutrons in
region IR (WHAT(3) in card LOW-BIAS)
IGDWSC : Group limit for biased downscattering for low energy
neutrons in region IR (WHAT(1) in card LOW-DOWN)
FDOWSC : Biased downscattering factor for low energy neutrons in
region IR (WHAT(2) in card LOW-DOWN)
JWSHPP : Weight-Window/importance profile index for low energy
neutrons in region IR (SDUM in WW-FACTO)
WWLOW : Weight-Window lower level in region IR (WHAT(1) in card
WW-FACTO, possibly modified by WHAT(4) in WW-THRES or
WHAT(2) in WW-PROFI)
WWHIG : Weight-Window upper level in region IR (WHAT(2) in card
WW-FACTO, possibly modified by WHAT(4) in WW-THRES or
WHAT(2) in WW-PROFI)
WWMUL : Weight-Window multiplicative factor applied to the two
energy thresholds defined with WW-THRES, for region IR
(WHAT(3) in card WW-FACTO)
EXPTR : Exponential transform parameter for region IR (WHAT(2) in
card EXPTRANS) (not implemented yet!!!!!!!!)
ELECUT : e+,e- cutoff in region IR (WHAT(1) in card EMFCUT)
GAMCUT : Photon cutoff in region IR (WHAT(2) in card EMFCUT)
LPEMF : Leading Particle Biasing flag in region IR (SDUM = LPBEMF
in card EMF-BIAS, or WHAT(3) in card EMFCUT)
ELPEMF : Maximum e+/e- energy for applying Leading Particle Biasing
(WHAT(2) in card EMF-BIAS with SDUM = LPBEMF)
PLPEMF : Maximum photon energy for applying leading particle
biasing (WHAT(3) in card EMF-BIAS with SDUM = LPBEMF)
Subroutine UBSSET does not require a special command to be activated:
it is always called several times for each region: (once for every
biasing option or suboption) after the end of input reading and
before starting the calculations. The default version is a dummy and
does nothing. The user can replace it to override any biasing
parameters specified in input.
The UBSSET subroutine is used especially in cases with a large number
of regions, because it allows to derive the biasing parameters from
simple algorithms instead of entering each input value by hand.
Choosing an appropriate numbering scheme for the geometry regions can
often facilitate the task.
For instance, assuming a simple slab geometry with an expected
exponential hadron attenuation from region 3 to region 20, each
region being one half-value-layer thick, one could write the
following in order to set importances that would keep the hadron
number about constant in all regions:
IF(IR .GE. 3 .AND. IR .LE. 20) HMPHAD = ONEONE * TWOTWO**(IR-3)
It is important, however, not to do recursive assignments of the type:
GAMCUT(5) = GAMCUT(5) * HLFHLF (HLFHLF is a FLUKA constant for 0.5D0)
because that would halve the value of the photon cutoff for
Region 5 AT EVERY CALL, and the number of calls is not known to the user.
If name-based input is being used, the name corresponding to IR
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
13.2.25} udcdrl.f user-defined DeCay DiRection biasing and Lambda
(for neutrinos only)
-----------------------------------------------------------------
Argument list:
IJ : type of decaying particle
KPB : outgoing neutrino, the one direction biasing is asked for
NDCY : (???)
UDCDRB, VDCDRB, WDCDRB : cosines of the preferential outgoing
direction for the neutrino
Function UDCDRL is used to bias the direction of a neutrino emitted
by a decaying particle of type IJ. The value returned by UDCDRL is
the Lambda for direction biasing (1-cos(theta)) (???)
13.2.26} usfsci.f: USer-defined Fraction for SCIntillation PHotons
-------------------------------------------------
Argument list (all variables are input only):
IP : ip-th scintillation emission for material Mmat
MMAT : material index
Function USFSCI returns the number of scintillation photons per deposited
GeV corresponding to the ip-th scintillation emission for material Mmat.
It is activated by OPT-PROD, with SDUM = SCINTILL/SCINT-WVb/SCINT-OM, and
WHAT(2) < -99.
See option OPT-PROD and Chap. 12}, and sphspc.f for more information.
13.2.27} usimbs.f user-defined IMportance BiaSing
-------------------------------------------------
Argument list:
input:
MREG : region at the beginning of the step
NEWREG : region at the end of the step
output:
FIMP : returns the user-defined importance ratio between the
position at the end and at the beginning of the step
The routine is called AT EVERY PARTICLE STEP. It can be used to
implement any importance biasing scheme based on region number and
on phase space coordinates and other information provided by COMMON TRACKR.
WARNING: The user must balance the very effective biasing power offered
by the routine with the important demand on CPU time due to the
large number of calls.
If name-based input is being used, the names corresponding to MREG and NEWREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
13.2.28} usrein.f USeR Event INitialisation
-------------------------------------------
No arguments
Subroutine USREIN is called just before the first source particle of
an event is unloaded from stack and begins to be transported.
An event is the full history of a group of related particles and their
descendants. If primaries are loaded into stack by the input option
BEAM, there is only one source particle per event; but there can be
more if the user routine SOURCE is used to load particles into stack.
USREIN does not need any special command to be activated, but the
default version of USREIN does nothing: the user can write here any
kind of initialisation.
13.2.29} usreou.f USeR Event OUtput (called at the end of each event)
---------------------------------------------------------------------
No arguments
Subroutine USREOU is called at the end of each event, namely after all
event primary particles and their descendants have been transported.
(See USREIN above for a definition of an event).
USREOU does not need any special command to be activated, but the
default version of USREOU does nothing: the user can write here any
kind of event analysis, output, etc.
13.2.30} usrglo.f USeR GLObal settings
--------------------------------------
Argument list:
WHAT(1), (2), (3), (4), (5), (6) : user-given numerical parameters
SDUM : user-given character string (8 characters)
Subroutine USRGLO is called before any other initialisation is done
by the program, provided a command USRGCALL is present anywhere in the input.
The calling parameters can carry any kind of useful information or can
be used as flags to choose between different possible actions to be
performed before any particle transport takes place.
13.2.31} usrini.f USeR INItialisation
-------------------------------------
Argument list:
WHAT(1), (2), (3), (4), (5), (6) : user-given numerical parameters
SDUM : user-given character string (8 characters)
Subroutine USRINI is called every time a USRICALL card is read in
input. It can be used to do any kind of initialisation: reading
and manipulating data from one or more files, calling other private
routines, etc.
The calling parameters can carry any kind of useful information or can
be used as flags to choose between different possible actions to be
performed before any particle transport takes place.
13.2.32} usrmed.f USeR MEDium dependent directives
--------------------------------------------------
Argument list:
IJ : particle type
EKSCO : particle kinetic energy (GeV)
PLA : particle momentum (GeV/c)
WEE : particle weight
MREG : previous region number
NEWREG : current region number
XX, YY, ZZ : particle position
TXX, TYY, TZZ : particle direction
Subroutine USRMED is activated by option MAT-PROP with SDUM = USERDIRE,
for one or more materials indicated by the user.
It is called every time a particle is going to be transported in one of
the user-flagged materials.
Two cases are possible:
1) MREG = NEWREG: the particle is going to move from a point inside
the medium. The user is allowed to change only the particle weight.
Typical application: simulating attenuation of optical photons in an
absorbing medium by reducing the photon weight.
2) MREG not = NEWREG: the particle is going to move from a point on a
boundary between two different regions. The user may change any of
the following: particle weight, current region number, direction cosines.
Typical applications:
- simulating refraction, by changing the direction cosines so that
the particle is still inside the same region. To do this, one
generally needs the direction cosines of the normal to the
surface: TXNOR(NPFLKA), TYNOR(NPFLKA), TZNOR(NPFLKA) (COMMON
FLKSTK must be included).
- simulating reflection (albedo) at a boundary. The direction
cosines must be modified according to some reflection law or
albedo angular distribution, and NEWREG must be set = MREG.
In both cases the weight can also be reduced to account for surface
reflectivity or similar (if the particle is an optical photon, the
FRGHNS user function can be called to establish a surface roughness).
Also, setting the weight WEE to zero is a way to kill the particle.
If name-based input is being used, the names corresponding to MREG and NEWREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG (returned
variable) is the corresponding region name (to be declared as CHARACTER*8).
IERR is a returned error code: if = 0, the conversion is successful. See
example in the description of BXDRAW above.
13.2.33} usrout.f USeR OUTput
-----------------------------
Argument list:
WHAT(1), (2), (3), (4), (5), (6) : user-given numerical parameters
SDUM : user-given character string (8 characters)
Subroutine USROUT is called every time a USROCALL card is read in
input. It is used to print special user-written output in addition
to the standard one provided by default.
The calling parameters can carry any kind of useful information or can
be used as flags to choose between different possible actions to be
performed after all particle transport has taken place.
13.2.34} usrrnc.f USeR Residual NuClei
--------------------------------------
Argument list:
IZ : atomic number of the residual nucleus
IA : mass number of the residual nucleus
IS : isomeric state of the residual nucleus
X, Y, Z : particle position
MREG : number of the current region
WEE : particle weight
ICALL : internal code calling flag (not for general use)
Subroutine USRRNC is called every time a residual nucleus is produced, if
option USERWEIG has been requested with WHAT(5) > 0.
If name-based input is being used, the name corresponding to MREG
can be obtained via a call to routine GEOR2N:
CALL GEOR2N (NUMREG, NAMREG, IERR)
where NUMREG (input variable) is the region number, and NAMREG
(returned variable) is the corresponding region name (to be declared
as CHARACTER*8). IERR is a returned error code: if = 0, the
conversion is successful. See example in the description of BXDRAW above.
1********************************************************************************
14} Use of RAY pseudoparticles
********************************************************************************
Pseudoparticles are called RAY and have particle number 0. As for real
particles, their energy, starting point and direction cosines can be
defined by options BEAM and BEAMPOS, or by a user-written SOURCE routine
(see option START).
A RAY travels in a straight line at the speed of light without any
physical interaction. At the starting point, and at each boundary
crossing, FLUKA writes information on an unformatted file.
The file logical unit number is parameterised as LUNRAY in INCLUDE file
IOUNIT (usually LUNRAY = 10).
The following user program can be used to retrieve the tracking
information from the unformatted file:
* .................................................................
* user program or subroutine
* .................................................................
PARAMETER (LUNRAY = 10)
CHARACTER MATNAM*8, FILNAM*80
INTEGER*8 MLATTC, MLATLD
INTEGER NRAYRN, MREG, MMAT, MREGLD, MMATLD, IDISC
REAL EKIN, XX, YY, ZZ, R2, R3, THETAP, PHIPOS, TXX, TYY, TZZ,
& THETAD, PHIDIR, ETADIR, RCM, ALAMDI, ALAMDP, ALAMDN, ALAMDG,
& ALAMDR, DEKMIP, GMOCM2, DELAGE, RCMTOT, ALITOT, ALPTOT,
& ALNTOT, ALGTOT, ALRTOT, TOTMIP, SRHTOT, AGEAGE
* .................................................................
* here other possible declarations
* .................................................................
WRITE (*,*) ' File name?'
READ (*,'(A80)') FILNAM
OPEN (FILE = FILNAM, UNIT = LUNRAY, STATUS = 'OLD', FORM =
& 'UNFORMATTED')
* loop over several rays
1 CONTINUE
* read info about ray starting point
READ (LUNRAY, END = 3000, ERR=1000) NRAYRN, MREG, MLATTC,
& MMAT, EKIN
READ (LUNRAY, END = 1000) XX, YY, ZZ, R2, R3, THETAP, PHIPOS
READ (LUNRAY, END = 1000) TXX, TYY, TZZ, THETAD, PHIDIR, ETADIR
* where:
* NRAYRN = ray number
* MREG = starting region
* MLATTC = starting lattice cell
* MMAT = material of starting region
* EKIN = reference kinetic energy of the ray (GeV)
* XX, YY, ZZ = ray starting point
* R2 = distance of ray starting point from z-axis (cm)
* R3 = distance of ray starting point from the origin (cm)
* THETAP = polar angle between the position vector of the ray
* starting point and the z-axis (radians)
* PHIPOS = azimuthal angle of the position vector of the ray
* starting point around the z-axis (radians)
* TXX, TYY, TZZ = ray direction cosines
* THETAD = polar angle between the ray and the z-axis (radians)
* PHIDIR = azimuthal angle of ray around the z-axis (radians)
* ETADIR = pseudorapidity of ray direction with respect to the
* direction defined by option BEAMPOS
* ................................................................
* here possible user code to manipulate values read
* ................................................................
* loop over further positions along the ray path
2 CONTINUE
* read info about next point
READ (LUNRAY, END = 2000) MREGLD, MLATLD, MMATLD,
& MATNAM, IDISC
READ (LUNRAY, END = 2000) XX, YY, ZZ, R2, R3, THETAP, PHIPOS
READ (LUNRAY, END = 2000) RCM, ALAMDI, ALAMDP, ALAMDN, ALAMDG,
& ALAMDR, DEKMIP, GMOCM2, DELAGE
READ (LUNRAY, END = 2000) RCMTOT, ALITOT, ALPTOT, ALNTOT,
& ALGTOT, ALRTOT, TOTMIP, SRHTOT,
& AGEAGE
* where:
* MREGLD = number of next region traversed by ray
* MLATLD = number of next lattice cell traversed by ray
* MMATLD = material of next region
* MATNAM = name of material of next region
* IDISC = 0 unless next region is blackhole
* XX, YY, ZZ, R2, R3, THETAP, PHIPOS: as described above, but
* referred to the current position
* RCM = distance traversed from last point to here
* ALAMDI = distance traversed from last point to here, in units
* of high energy nucleon inelastic mean free paths (at
* the reference kinetic energy of the ray)
* ALAMDP = distance traversed from last point to here, in units
* of high energy pion inelastic mean free paths (at the
* reference kinetic energy of the ray)
* ALAMDN = distance traversed from last point to here, in units
* of maximum neutron inelastic mean free paths (i.e.,
* at 200 MeV)
* ALAMDG = distance traversed from last point to here, in units
* of maximum photon mean free paths (i.e., at so-called
* Compton minimum). Note: if the EMF option has not
* been requested, ALAMDG has always zero value
* ALAMDR = distance traversed from last point to here, in units
* of radiation lengths. Note: if the EMF option has not
* been requested, ALAMDR is calculated but only in an
* approximate way
* DEKMIP = energy lost from last point to here by a minimum
* ionising muon
* GMOCM2 = distance traversed from last point to here in g/cm2
* DELAGE = time elapsed from last point to here in sec (i.e.,
* distance divided by speed of light)
* RCMTOT = cumulative distance traversed so far in cm
* ALITOT = cumulative distance traversed so far, in units of
* high energy nucleon inelastic mean free paths
* ALPTOT = cumulative distance traversed so far, in units of
* high energy pion inelastic mean free paths
* ALNTOT = cumulative distance traversed so far, in units of
* maximum neutron inelastic mean free paths
* ALGTOT = cumulative distance traversed so far, in units of
* maximum photon mean free paths (i.e., at so-called
* Compton minimum). Note: if the EMF option has not
* been requested, ALGTOT has always zero value
* ALRTOT = cumulative distance traversed so far, in units of
* radiation lengths. Note: if the EMF option has not
* been requested, ALRTOT is calculated but only in an
* approximate way
* TOTMIP = cumulative energy lost so far by a minimum ionising
* muon
* SRHTOT = cumulative distance traversed so far in g/cm2
* AGEAGE = cumulative time elapsed so far in sec
* .............................................................
* possible user code to manipulate values read
* .............................................................
IF ( IDISC .EQ. 0 ) THEN
* ...........................................................
* possible user code at the end of ray step
* ...........................................................
GO TO 2
END IF
* ...............................................................
* possible user code at the end of ray trajectory
* ...............................................................
* new ray
GO TO 1
1000 CONTINUE
WRITE(*,*) ' Incomplete data on file about ray starting point'
GO TO 3000
2000 CONTINUE
WRITE(*,*) ' Incomplete data on file about ray trajectory'
3000 CONTINUE
* .................................................................
* possible user code at the end of analysis
* .................................................................
CLOSE (UNIT = LUNRAY)
END
1********************************************************************************
15} Special source: colliding beams
********************************************************************************
Colliding beams as a source can be specified via command SPECSOUR and SDUM
equal to PPSOURCE or ppsource, CROSSASY or CROSSSYM.
One of the two colliding beams (from now on the "first beam") is a beam of
hadrons (including protons or heavier nuclei), the other one (the "second
beam") is a beam of protons or heavier nuclei but not of other hadrons.
The different SDUM values allow to define the two beams in different ways.
The first and the second continuation cards are identical for all SDUM
options.
For SDUM = PPSOURCE or ppsource:
First card:
WHAT(1) = lab momentum x-component for hadrons or nuclei of the first beam
(GeV/c)
WHAT(2) = lab momentum y-component for hadrons or nuclei of the first beam
(GeV/c)
WHAT(3) = lab momentum z-component for hadrons or nuclei of the first beam
(GeV/c)
WHAT(4) = lab momentum x-component for protons or nuclei of the 2nd beam
(GeV/c)
WHAT(5) = lab momentum y-component for protons or nuclei of the 2nd beam
(GeV/c)
WHAT(6) = lab momentum z-component for protons or nuclei of the 2nd beam
(GeV/c)
SDUM: PPSOURCE or ppsource
First continuation card:
WHAT(1) = sigma_x (cm) for the Gaussian sampling of the interaction position
around XBEAM (the x position defined in the BEAMPOSit card)
WHAT(2) = sigma_y (cm) for the Gaussian sampling of the interaction position
around YBEAM (the y position defined in the BEAMPOSit card)
WHAT(3) = sigma_z (cm) for the Gaussian sampling of the interaction position
around ZBEAM (the z position defined in the BEAMPOSit card)
WHAT(4) = sampling limit, in sigma, applying along x, y, and z
=< 0: ignored (no limit)
WHAT(5) = particle id number (or corresponding name) of hadrons
of the first beam
Default: as defined by the BEAM card (and by the HI-PROPErt card
in case it is a heavy ion)
WHAT(6) = mass number of the nuclei of the second beam
= 0: it is a proton beam, and WHAT(1) of the second continuation
card - if present - is ignored
SDUM = "&" in any position in column 71 to 78 (or in the last field if
free format is used)
Second continuation card (only needed if the second is a heavy ion beam):
WHAT(1) = atomic number of the nuclei of the second beam
WHAT(2) : specifies the divergence of the first beam in the crossing plane
(in rad):
sigma_th_C for the Gaussian sampling of the angle between the
direction of the particle and the most probable direction as
defined by WHAT(1-3) of the first card
WHAT(3) : specifies the divergence of the first beam in the orthogonal plane
(in rad):
sigma_th_O for the Gaussian sampling of the angle between the
direction of the particle and the most probable direction as
defined by WHAT(1-3) of the first card
WHAT(4) : specifies the divergence of the second beam in the crossing plane
(in rad):
sigma_th_C for the Gaussian sampling of the angle between the
direction of the particle and the most probable direction as
defined by WHAT(4-6) of the first card
WHAT(5) : specifies the divergence of the second beam in the orthogonal
plane (in rad):
sigma_th_O for the Gaussian sampling of the angle between the
direction of the particle and the most probable direction as
defined by WHAT(4-6) of the first card
WHAT(6) : flag for interactions to be sampled
i0 + i1 * 10 + i2 * 100
0 = default, nuclear nonelastic + EMD if selected with the physics
card
otherwise:
i0 = flag for nuclear nonelastic interactions
i1 = flag for nuclear elastic interactions
i2 = flag for electromagnetic dissociation interactions
SDUM = "&&" in any position in column 71 to 78 (or in the last field if
free format is used)
For SDUM = CROSSASY (asymmetric crossing):
First card:
WHAT(1) = lab momentum of hadrons or nuclei of the first beam (GeV/c)
WHAT(2) = polar angle (rad) between the momentum of hadrons or nuclei of the
first beam and the z (positive) direction (must be between 0 and
pi/2)
WHAT(3) = azimuthal angle (deg) defining the crossing plane (see Note 2
below)
WHAT(4) = lab momentum of protons or nuclei of the second beam (GeV/c)
WHAT(5) = polar angle (rad) between the momentum of protons or nuclei of the
second beam and the -z (negative) direction (must be between 0 and
pi/2)
WHAT(6) = not used
SDUM: not used
First and second continuation cards: as for SDUM = PPSOURCE (see above)
For SDUM = CROSSSYM (symmetric crossing):
First card:
WHAT(1) = lab momentum for protons or nuclei of both beams (GeV/c) (see
Note 3)
WHAT(2) = half crossing angle (rad) (must be between 0 and pi/2)
WHAT(3) = azimuthal angle (deg) defining the crossing plane (see Note 2)
WHAT(4)-WHAT(6): not used
First and second continuation cards: as for SDUM = PPSOURCE (see above)
Notes:
1) When SPECSOUR is used to define two colliding beams (SDUM = PPSOURCE,
CROSSASY or CROSSSYM), DPMJET must be linked through the script
$FLUPRO/flutil/ldpmqmd.
A card PHYSICS with SDUM = LIMITS sets the maximum CMS momentum (GeV/c)
in WHAT(1) for DPMJET initialization purposes.
2) With SDUM = CROSSASY and CROSSSYM, the half plane containing the two
proton momenta at the sampled interaction point (XXX, YYY, ZZZ) is
assumed to be limited by an axis z' passing through (XXX, YYY) and
parallel to the z-axis. Polar and azimuthal angles are defined with
respect to z', with WHAT(3) = 0 corresponding to the xz' half plane
towards positive x, WHAT(3) = 90 corresponding to the yz' half plane
towards positive y, WHAT(3) = 180 corresponding to the xz' half plane
towards negative x, WHAT(3) = 270 corresponding to the yz' half plane
towards negative y.
3) With SDUM = CROSSSYM, the particles of the two beams are identical and
have the same momentum. They can only be protons or nuclei: other
hadrons are excluded.
4) The particles produced in the interaction of two beams have generation
number 1 (i.e., they are considered as primary particles)
5) All the scores in a run where the source consists of two colliding beams
are normalised per beam interaction
1********************************************************************************
16} Special source: cosmic rays
********************************************************************************
Cosmic ray calculations can be done with FLUKA using the input commands GCR-SPE
(for initialisation purposes) and SPECSOUR. In addition, several auxiliary
stand-alone programs need to be used to prepare the geometry and material cards
to be inserted into the input file.
Command SPECSOUR does not define only cosmic ray sources, but also a number of
other pre-defined complex sources that cannot be described by the simple
keywords BEAM, BEAMPOSit, BEAMAXES and HI-PROPErt. To avoid confusion, SPECSOUR
input related to cosmic rays is described separately in this Chapter, in 16.7}.
A complete calculation to determine particle fluxes in the atmosphere requires:
- the determination of the spectrum and composition of cosmic rays at the local
interstellar medium,
- the determination of changing conditions in the solar wind magnetic field and
the resulting interaction with the inward flow of galactic cosmic rays from
the local interstellar medium,
- the determination of the trajectories of cosmic rays through the Earth's
geomagnetic field,
- the transport of the surviving incident cosmic rays through the Earth's
atmosphere to various depths.
The following options are available concerning the simulation of cosmic ray
interactions in FLUKA:
- Superposition model. In this approach primary nuclei are split into
equivalent independent nucleons. See card PHYSICS with SDUM = IONSPLITti.
- DPMJET interaction model [Ran95,Roe01]. This model simulates the
nucleus-nucleus collision above 5 GeV/nucleon.
In case DPMJET is chosen for cosmic ray application, it is suggested to
avoid the otherwise recommended DPMJET-III choice and to use instead the
DPMJET-II.5 version (linking with the script $FLUPRO/flutil/ldpm2qmd).
The DMPJET and the superposition model can also be used together, by setting
the respective energy ranges with the PHYSICS card.
A number of tools and packages have been developed for the FLUKA environment
to simulate the production of secondary particles by primary cosmic rays
interacting with the Earth's atmosphere. These tools, in different
stand-alone versions, have already been successfully used for fundamental
physics research [Bat00,Bat03a]. '
The set of FLUKA tools for cosmic ray simulation includes a set of core
routines to manage event generation, geomagnetic effects and particle scoring,
and the following stand-alone data files and programs :
- file atmomat.cards: it contains the material definitions for the density
profile of the US Standard Atmosphere. These cards must be inserted
(or the file included with the #include directive) into the FLUKA input file.
-file atmogeo.cards: it contains an example of a 3D geometrical description of
the Earth atmosphere, generated in according with the previous
data cards (and corresponding density profile). This geometry includes
the whole Earth
- program atmloc_2011.f: it prepares the description of the local atmosphere
geometry with the atmospheric shells initialised by option GCR-SPE. This
geometry includes only a slice of the Earth geometry, centered around the
geomagnetic latitude input by the user
- phi.spc: GCR All-Particle-Spectra for the iz_th ion species
(iz=1,...,28), modulated for the solar activity corresponding to
a Phi parameter MegVolt. Phi=500 MV roughly corresponds to
solar minimum, while Phi=1400 MV roughly corresponds to solar
maximum
- allnucok.dat: GCR All-Nucleon Spectra
- sep20jan2005.spc: spectra for the Solar Particle Event of Jan 20th, 2005
- sep28oct2003.spc: spectra for the Solar Particle Event of Oct 28th, 2008
16.1} Primary spectrum
The Galactic Cosmic Ray (GCR) component of the cosmic ray flux can be
simulated up to 30 TeV/nucleon (or 500 TeV/n when DPMJET is linked).
Two options are available: with the first one the actual ion composition
of the flux is used (All-Particle Spectrum), while with the second option
the primary flux is treated as a sum of nucleons (All-Nucleon Spectrum).
16.1.1} The All-Particle Spectrum
The ion composition of the galactic flux is derived from a code [Bad96]
which considers all elemental groups from Z = 1 to Z = 28. The spectrum is
modified to follow recent data sets (AMS [Alc00,Alc00a] and BESS [San00] data
of 1998) up to 100 GeV according to the so-called ICRC2001 fit [Gai01].
The spectrum components are written into 28 files. The name of the files
has the form (Z+phi++.spc). The first two
characters of each file name are the atomic number of a different primary
spectrum ion (e.g. 01:protons, 02:alpha...). They are followed by the
solar modulation parameter used for generating the spectrum (7 characters)
and by an extension ".spc".
The ".spc" files are spectra without geomagnetic cutoff. The ".spc"
files are used together with an analytical calculation of the rigidity cutoff,
according to a centered dipole approximation of the Earth geomagnetic field,
adapted to result in the vertical cutoff inserted into the input file
(SPECSOUR command, SDUM=GCR-IONF, WHAT(2) of the continuation card), at the
geomagnetic latitude and longitude of interest.
16.1.2} The High Energy All-Nucleon Spectrum
The All-Nucleon Spectrum is obtained modifying the fit of the All-Nucleon flux
proposed by the Bartol group [Agr96], using the All-Particle Spectrum (16.1.1})
up to 100 GeV and data published in ICRC 2003. Fluxes are read from a file
named "allnucok.dat" giving the total energy (GeV), the fluxes (E.dN/dE)
and the neutron/proton ratios. This option ("All Nucleon Flux") is chosen with
command SPECSOUR and SDUM = GCR-ALLF (see details in 16.7}).
The user can decide whether to sample neutrons and protons from the file and
to transport them using the superposition model, or to consider all neutrons as
being bound in alpha particles and to transport protons and alphas. This latter
choice has the advantage of taking better into account the magnetic field,
which has no effect on the neutrons.
For the proton component at energies larger than 100 GeV, using the
normalization obtained at 100 GeV, a spectral index gamma = -2.71 is assumed.
A spectral index gamma = -3.11 is assumed above the knee at 3000 TeV. For what
concerns the He component, gamma = -2.59 is used above 100 GeV and a
charge-dependent knee is assumed according to the rule:
E_nucleon = Z * 3000 TeV/A. Higher Z components have been grouped in CNO, MgSi
and Fe sets and treated using an All-Particle spectrum with the above mentioned
charge-dependent knee parameterisation.
16.2} Solar modulation
The deviation from the power law, observed below 10 GeV, is a consequence of
the influence of the solar wind called solar modulation [Gle68]. Flux intensity
in this energy range is anti-correlated to the solar activity and follows the
sun-spot 11-year cycle. The correlation between the solar activity and the
modulation of the cosmic rays flux has been studied by monitoring the flux of
atmospheric neutrons. In fact, a flux of low energy neutrons (E ~ 1.E8-1.E9 eV)
is produced in the interaction of primary CRs with the atmosphere and it is
mostly due to low energy primaries (1-20 GeV), due to the rapid fall of the
primary flux intensity with energy. One assumes that far from the solar system
there exists an unmodified flux called Local Interstellar Spectrum, which is
modified within the solar system by the interaction with the solar wind. This
interaction is well described by the Fokker-Planck diffusion equation.
Describing the solar wind by a set of magnetic irregularities, and considering
these irregularities as perfect elastic scattering centres, one obtains the
Fokker-Planck diffusion equation. For energies above 100 MeV this equation can
be solved using the "Force Field Approximation" [Cab04]. According to this
approximation, at a given distance from the Sun, for example at 1 a.u., the
population of CRs at energy E_interstellar is shifted at the energy E_0 as in
an energy loss mechanism due to a potential V:
E_0 = E_interstellar + Z . V_solarwind(t)
The solar wind potential at a given distance from the Sun depends on only one
parameter, the time: V = V(t). So it doesn't matter what the interstellar flux
is: given a flux on the Earth at a time t, one can find the flux at another
time just from the relative variation of the solar wind potential Phi. This
variation can be derived from the neutron monitor counts [Bad96]. In the case
of the fit used by FLUKA, an offline code [Bad96] makes use of an algorithm
which takes into account a specific Phi value, or the counting rate of the
CLIMAX neutron monitor [CLIMAX] to provide the prediction for the flux at a
specific date or for a given value of the potential which expresses the effect
of the interplanetary modulation of the local interstellar spectrum. Even if the
model is not a description of the processes and of the manner in which they
occur, it reasonably predicts the GCR modulation at Earth.
16.3} Atmospheric model: geometry
16.3.1} Earth atmosphere model
The FLUKA package makes use of a density vs. height profile of atmosphere. An
external program containing a functional fit to this profile
has been used to generate at the same time an input geometry file, together
with the data cards for material description (each atmospheric layer, having
its proper density, needs to be assigned a different FLUKA material).
The geometry produced, and distributed with the name atmogeo.cards
is a spherical representation of the whole Earth
atmosphere. The material definitions and assigment contained in the file
atmomat.cards correspond to the density profile of the U.S. Standard
atmosphere. The cards contained in atmomat.cards shall be included
by the user in her/his input file.
In addition, the user can specialize this geometry to a given geomagnetic
latitude and longitude with the help of the atmloc_2011.f auxiliary program.
In this way, the geometry will contain only a slice of the atmosphere,
centered on the given position. The local geometry file produced by
atmloc_2011.f} is named atmloc.geo.
The user shall rename this geometry file for further use. More auxiliary
files are produced by atmloc_2011.f: the file atmlocmat.cards contain
additional material assignments to be included in the input together
with the ones from atmogeo.cards; the file atmloc.sur contains data
used by FLUKA runtime, and normalization areas.
16.3.2} Local atmosphere model
The geometry is built using two truncated cones (TRC) whose vertex is in the
centre of the Earth, the base is out of the atmosphere and the altitude
(considering a geographical location in the northern hemisphere) is in the
direction of the Earth radius which passes through the North Pole. The angular
span between the two cones contains the atmosphere of interest for the
latitude of interest. In addition there is a third cone placed in the opposite
direction: its vertex is where the other two cones have the base, its base is
out of the atmosphere and its height is in the direction of the Earth radius
which passes through the South Pole. A similar geometry can be built for a
requested latitude in the southern emisphere.
So the complete geometry of the local model, built with the auxiliary program
atmloc_2011.f, is made of:
- a main series of layers made from the part of the atmospheric shells between
the two cones (this is the part where the scoring takes place),
- two series of side layers made from the part of the atmospheric shells
between one of the two cones and the third one. These additional layers are
needed to take into account the primary and secondary particles which don't
come from the vertical direction but can anyway reach the region of interest.
16.4} Atmospheric model: density
The atmosphere can be roughly characterized as the region from sea level to
about 1000 km altitude around the globe, where neutral gases can be detected.
Below 50 km the atmosphere can be assumed to be homogeneously mixed and can
be treated as a perfect gas. Above 80 km the hydrostatic equilibrium gradually
breaks down as diffusion and vertical transport become important.
The following Table shows the U.S. Standard Atmosphere depth vs altitude and
vs FLUKA atmospheric layer.
--------------------------------------------------------------------------
km US St. km US St. km US St.
FLUKA from Atm. FLUKA from Atm. FLUKA from Atm.
region s.l. Depth region s.l. Depth region s.l. Depth
(g/cm2) (g/cm2) (g/cm2)
--------------------------------------------------------------------------
1.0 70.0 0.092 35.0 31.6 9.367 69.0 10.7 242.777
2.0 68.5 0.108 36.0 30.8 10.540 70.0 10.2 260.107
3.0 67.1 0.126 37.0 30.0 11.849 71.0 9.8 278.093
4.0 65.6 0.146 38.0 29.2 13.309 72.0 9.4 296.729
5.0 64.2 0.170 39.0 28.4 14.937 73.0 8.9 316.007
6.0 62.8 0.198 40.0 27.7 16.748 74.0 8.5 335.921
7.0 61.5 0.230 41.0 26.9 18.763 75.0 8.1 356.460
8.0 60.1 0.266 42.0 26.2 21.004 76.0 7.7 377.615
9.0 58.8 0.308 43.0 25.5 23.492 77.0 7.3 399.374
10.0 57.5 0.356 44.0 24.8 26.255 78.0 6.9 421.727
11.0 56.2 0.411 45.0 24.1 29.290 79.0 6.6 444.661
12.0 55.0 0.474 46.0 23.4 32.613 80.0 6.2 468.163
13.0 53.8 0.546 47.0 22.7 36.244 81.0 5.8 492.219
14.0 52.5 0.628 48.0 22.1 40.205 82.0 5.5 516.815
15.0 51.4 0.722 49.0 21.4 44.516 83.0 5.1 541.936
16.0 50.2 0.828 50.0 20.8 49.201 84.0 4.8 567.566
17.0 49.1 0.950 51.0 20.2 54.283 85.0 4.4 593.691
18.0 47.9 1.088 52.0 19.6 59.785 86.0 4.1 620.295
19.0 46.8 1.245 53.0 19.0 65.733 87.0 3.8 647.359
20.0 45.7 1.423 54.0 18.4 72.152 88.0 3.4 674.869
21.0 44.7 1.625 55.0 17.8 79.068 89.0 3.1 702.807
22.0 43.6 1.854 56.0 17.2 86.506 90.0 2.8 731.155
23.0 42.6 2.112 57.0 16.7 94.493 91.0 2.5 759.898
24.0 41.6 2.404 58.0 16.1 103.057 92.0 2.2 789.016
25.0 40.6 2.734 59.0 15.6 112.224 93.0 1.9 818.493
26.0 39.6 3.106 60.0 15.0 122.023 94.0 1.6 848.311
27.0 38.7 3.525 61.0 14.5 132.482 95.0 1.3 878.453
28.0 37.7 3.996 62.0 14.0 143.628 96.0 1.1 908.900
29.0 36.8 4.526 63.0 13.5 155.489 97.0 0.8 939.636
30.0 35.9 5.121 64.0 13.0 168.094 98.0 0.5 970.643
31.0 35.0 5.789 65.0 12.5 181.471 99.0 0.3 1001.903
32.0 34.1 6.538 66.0 12.0 195.646 100.0 0.0 1033.400
33.0 33.3 7.378 67.0 11.6 210.649
34.0 32.4 8.317 68.0 11.1 226.507
--------------------------------------------------------------------------
16.5} Geomagnetic field
In the last 50 years measurements of the geomagnetic field configuration
have been performed regularly with increasing precision, revealing a yearly
weakening of the field intensity of 0.07% and a westward drift of ~0.2 degrees
per year over the Earth 's surface.
This field can be described, to first order, as a magnetic dipole tilted with
respect to the rotation axis by ~11.5 degrees, displaced by ~400 km with
respect to the Earth's center and with a magnetic moment M = 8.1E25 G cm3. The
dipole orientation is such that the magnetic South pole is located near the
geographic North pole, in the Greenland, at a latitude of 75 degrees N and a
longitude of 291 degrees. The magnetic North pole is instead near the
geographic South pole, on the border of the Antarctica. The intensity at the
Earth's surface varies from a maximum of ~0.6 G near the magnetic poles to a
minimum of ~0.2 G in the region of the South Atlantic Anomaly (SAA), between
Brazil and South Africa. The complex behavior of the equipotential field lines
is mainly a consequence of the offset and tilt.
In FLUKA the geomagnetic field is taken into account in two different stages of
the simulation chain.
1) Effect of geomagnetic cutoff which modulates the primary spectrum: at a
given location (point of first interaction of primary particles) and for a
given direction a threshold in magnetic rigidity exists. The closer the
injection point is to the geomagnetic equator, the higher will be the
vertical rigidity threshold. The standard possibility offered to the user
is to evaluate the geomagnetic cutoff making use of a dipolar field
centered with respect to the centre of the Earth, adapted to give
the "correct" vertical rigidity cutoff for the geographic location
under examination.
Under this approximation, an analytical calculation of the cutoff can
be performed and the FLUKA source routine for galactic cosmic
rays can apply the resulting geomagnetic cutoff. In case an off-set
dipole (not provided at present) or more sophisticated approaches are
deemed necessary, a spherical harmonic expansion model like the IGRF model
is available [CLIMAX]. However no default mean is provided for making use
of these higher order approximations for computing geomagnetic cutoff's,
since no analytical calculation is possible, and a numerical (back)tracking
of the primary particle from(/to) infinity is required.
Please note that activating these more realistic options for the
earth geomagnetic field by means of the GCR-SPE card has only the effect of
using the resulting field while showering in the atmosphere (see next
point), a minimal correction with respect to the dominant effect of the
geomagnetic cutoff.
2) The local geomagnetic field can be taken into account during shower
development in the atmosphere. The field is automatically provided by
the default MAGFLD FLUKA user routine, in accordance to the option selected
in the GCR-SPE card. For local problems, provided the coordinate system
is consistently used (that is geomagnetic coordinates for the dipolar field,
geographic ones for the multipolar field) there is no need to provide
any orientation or intensity information about the field.
16.6} Scoring
The usual scoring options (USRBDX, USRYIELD...) can be used to define detectors
to calculate the fluence of different radiation fields.
16.7} The various SDUM options available with command SPECSOUR
For SDUM = GCR-ALLF: All-nucleon flux
All-nucleon flux as explained in 16.1.2}.
Three different options (average, maximum and minimum flux) are available.
The program reads fluxes from a file named "allnucok.dat" in which are given
the total energy (GeV), the fluxes (E.dN/dE) and the neutron/proton ratios.
It is possible to give an energy interval and to choose a starting radius
(radius of the emission sphere in case of spherical geometry) or starting
height (the emission height in case of flat geometry). It is possible to
activate the vertical geomagnetic cutoff and to give the cutoff value at
the central latitude, otherwise the geomagnetic cutoff will be not taken
into account. Ions are treated like separate nucleons, or as alphas and
protons.
WHAT(1) = 1: central value
= 2: minimum value
= 3: maximum value
WHAT(2) >= 0: starting radius (cm)
< 0: starting height (cm)
WHAT(3) = Minimum energy
WHAT(4) = Maximum energy
WHAT(5) = Spectral index for sampling (below transition energy)
WHAT(6) = Transition energy for sampling (above it, sample from 1/E)
SDUM : not used
Continuation card:
WHAT(1) = 0: no geomagnetic cutoff
= 1: geomagnetic cutoff is requested
= 2: the vertical geomagnetic cutoff is read as WHAT(2)
WHAT(2) = vertical geomagnetic cutoff at central latitude for WHAT(1) = 2,
no meaning otherwise
WHAT(3)-WHAT(5): no meaning
WHAT(6) =< 0: nucleons are transported separately
> 0: transport as many alphas as can be built by neutrons, and the
remaining protons
SDUM = "&" in any position in column 71 to 78 (or in the last field if
free format is used)
For SDUM = GCR-IONF: All-particle flux
All-particle flux (ion flux), as explained in 16.1.1}.
The particle composition of the flux can be modified by choosing the minimum
and maximum atomic number (1 =< Z =< 28). The spectrum components have been
produced by the modified Badhwar code [Bad96] for various modulation
parameters and written on '.spc' files (Z++.spc). It is possible to
give an energy interval and to choose a starting radius (radius of the
emission sphere in case of spherical geometry) or starting height (the
emission height in case of flat geometry). It is possible to activate the
geomagnetic cutoff (WHAT(7) in SPECSOUR) and to input optionally the
vertical cutoff value at the central latitude.
Ions are treated like real ions or can be splitted.
The optimized value for spectral index for sampling (below transition
energy) is gamma = 1.75 (WHAT(5)). Above transition energy, the spectrum
will be assumed to have a 1/E shape.
For SDUM = SPE-SPEC, SPE-2003 or SPE-2005, the source is a Solar
Particle Event.
The input parameters are the same for the three SDUM values.
For SDUM = SPE-SPEC or SPE-2005, the spectrum is read from a
file sep20jan2005.spc
For SDUM = SPE-2003, the spectrum is read from a file sep28oct2003.spc
WHAT (1) = Z_max + 100 * Z_min (Z_min = 1 if none is defined)
WHAT (2) = Starting radius (cm)
WHAT (3) = Minimum energy
WHAT (4) = Maximum energy
If maximum and minimum energy differ by less than 5% then a fixed
energy (= Maximum energy) is sampled
WHAT (5) = Spectral index for sampling (below transition energy)
WHAT (6) = Transition energy for sampling (above it, sample from 1/E)
Continuation card:
WHAT(1) = 0: no geomagnetic cutoff
= 1: geomagnetic cutoff is requested
= 2: the vertical geomagnetic cutoff is read from WHAT(2)
WHAT(2) = vertical geomagnetic cutoff at central latitude for WHAT(1) = 2,
no meaning otherwise
WHAT(3) = number of energy point in the spectra
Default: 50
WHAT(4) = if > 0 vertical run
WHAT(5) = if > 0 probabilities 1 / (2 x Z) are used for the various ions
(1 for Z = 1)
WHAT(6) =< 0: ions are split
> 0: ions are treated like real ions
SDUM = "&" in any position in column 71 to 78 (or in the last field if
free format is used)
16.8} Example of input data cards
An example of user data cards to run a FLUKA cosmic ray problem is shown in
the following, with some comments on the relevant points. The example refers to
the simulation at geographical coordinates of 36.0 degrees North Latitude
and 140.0 degrees East Longitude, using the solar modulation of Dec. 23rd
1995.
TITLE
Ion flux at Tsukuba, 36N 140E. Year 1995, 23 December.
#define dpmjet
DEFAULTS PRECISIO
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
BEAM 3.D+04 PROTON
*
* In the following, GCR-IONF is the option to generate the all-particles flux.
* Maximum energy is 30000 GeV.
*
#if dpmjet
*** Dpmjet:
SPECSOUR 28.0 6.449D+08 0.3 30000.0 1.75 500.0 GCR-IONF
SPECSOUR 2.0 11.4 &
*
IONTRANS -2.0
*** End Dpmjet
#else
*** No Dpmjet:
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
SPECSOUR 28.0 6.449D+08 0.3 3000.0 1.75 500.0 GCR-IONF
SPECSOUR 2.0 11.4 1.0 &
*
EVENTYPE 6.0 EVAP
* The following to split the ions:
*MAT-PROP 1.0 8.0 8.0 1.0 USERDIRE
*PHYSICS 1.0 0.1 1000000. IONSPLIT
*** End no Dpmjet
#endif
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
LAM-BIAS -1000000.0 10.0 39.0 GDECAY
DISCARD -27.0 -28.0 -5.0 -6.0
*
* Next card calls the initialization routine. The string 23dec95 refers
* to the names of input files prepared by GCRIONF specifically considering
* the solar modulation of Dec 23th 1995
*
GCR-SPE 101000.0 0.0 0.0 23dec95
*
* In the following the geometry file (specifically prepared for the
* required geographical coordinates) is invoked.
*
*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
GEOBEGIN 0.1 53.0 54.0 COMBINAT
36n140e.geo
36n140e.scr
GEOEND
*
MATERIAL 7.0 0.0 0.001251 5.0 NITROGEN
MATERIAL 8.0 0.0 0.001429 6.0 OXYGEN
MATERIAL 18.0 0.0 0.00178 7.0 ARGON
*
* Here the 100 different material specifications for all atmospheric layers
* follow
*
MATERIAL 8.781E-08 8.0 AIR001
COMPOUND -.9256E-03 5.0 -.2837E-03 6.0 -.01572E-3 7.0 AIR001
MATERIAL 1.036E-07 9.0 AIR002
COMPOUND -.9256E-03 5.0 -.2837E-03 6.0 -.01572E-3 7.0 AIR002
...
* Idem: Mat-prop cards:
MAT-PROP 7.168E-05 8.0 8.0 1.0
MAT-PROP 8.453E-05 9.0 9.0 1.0
MAT-PROP 9.957E-05 10.0 10.0 1.0
...
* cards to Assign a different material to each region
ASSIGNMAT 8.0 1.0 103.0 102.0 1.
ASSIGNMAT 9.0 2.0 104.0 102.0 1.
ASSIGNMAT 10.0 3.0 105.0 102.0 1.
* Internal Vacuum: black hole in this case
ASSIGNMAT 1.0 101.0 0.0
* External Vacuum
ASSIGNMAT 2.0 102.0 1.0
* Internal vacuum black hole:
ASSIGNMAT 1.0 203.0 0.0
* Atmospheric black hole:
ASSIGNMAT 1.0 204.0 0.0
* External black hole:
ASSIGNMAT 1.0 205.0 0.0
ASSIGNMAT 1.0 206.0 0.0
MGNFIELD 20. 100. 30. 0.0 0.0 0.0
*
STEPSIZE -100. 100000. 1.0 206.0
PHYSICS +1. 1.0 39.0 DECAYS
*
* The following cards deactivate/activate the electromagnetic
* interactions. If ON, cuts on e+/- & gamma have to be defined in the
* EMFCUT cards.
*
EMF EMF-OFF
*EMFCUT -0.001 +0.0005 1.0 205.0
*EMFCUT -0.001 +0.0005 1.0 1.0 205.0
SCORE 208.0 210.0 201.0 229.0
*
* The following cards activate the scoring of double differential flux
* (energy * and angle) at the boundaries of some atmospheric layers
*
* Mu -
USRYIELD 2398.0 11.0 -21.0 98.0 99.0 1.0 970.6g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
USRYIELD 2398.0 11.0 -21.0 99.0 100.0 1.0 1001.g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
USRYIELD 2398.0 11.0 -21.0 100.0 101.0 1.0 1033.g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
* Mu +
USRYIELD 2398.0 10.0 -22.0 98.0 99.0 1.0 970.6g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
USRYIELD 2398.0 10.0 -22.0 99.0 100.0 1.0 1001.g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
USRYIELD 2398.0 10.0 -22.0 100.0 101.0 1.0 1033.g/cm2
USRYIELD 20.552 0.576 48.0 11.47834 0.0 6.0 &
...
RANDOMIZ 1.0
START 100000.
USROCALL
STOP
1********************************************************************************
17} Special source: synchrotron radiation
********************************************************************************
Synchrotron radiation as a source can be specified via command SPECSOUR and
SDUM = SYNC-RAD, SYNC-RDN, SYNC-RAS, or SYNC-RDS.
Synchrotron radiation photons are assumed to be emitted by a particle
(most commonly an electron or a positron, but any charged particle is allowed),
moving along one or two circular arcs or helical paths. The emitting particle
is not transported. The bending is assumed to be due to a magnetic field of
intensity and direction specified by the user, but no magnet needs necessarily
to be described in the geometry, and the magnetic field must not be declared
with command MGNFIELD nor assigned to any region with command ASSIGNMAt.
The program samples energy and direction of the synchrotron radiation photons
from the proper energy and angular distributions. Polarization is implemented
as a function of emitted photon energy. The emitting particle can have any
direction with respect to that of the magnetic field. Therefore, photon
emission can occur along arcs (if the particle direction is perpendicular to
the magnetic field) or helical paths in the more general case.
The user must specify several parameters:
- the emitting particle type and energy (or momentum)
- the particle direction, at the beginning of the first and possibly of the
second arc or helical path
- the magnetic field intensity (or alternatively the curvature radius of the
particle trajectory)
- the direction of the magnetic field
- the lower limit of the photon energy spectrum
- the length of one of the trajectory arcs or helical paths (the other path, if
present, having the same length)
- the starting points of the first path, and if present, of the second path
The SPECSOUR command for synchrotron radiation extends over two cards. The
input parameters are:
WHAT(1) = particle emitting the radiation
Default: 3.0 (ELECTRON)
WHAT(2) > 0.0: emitting particle momentum (GeV/c)
< 0.0: kinetic energy of the emitting particle (GeV)
WHAT(3) > 0.0: curvature radius of the emitting particle trajectory (cm)
< 0.0: absolute value of the bending magnetic field (T)
WHAT(4) = lower limit of the photon energy spectrum (GeV)
Default: 1.E-7 GeV
WHAT(5) = x-component of the magnetic field versor
WHAT(6) = y-component of the magnetic field versor
SDUM = SYNC-RAD if the z-component of the magnetic field versor is > 0.0
SYNC-RDN if the z-component is < 0.0
SYNC-RAS if the z-component of the magnetic field versor is > 0.0
and the magnetic field of the second arc (if present) has opposed
sign to that of the first arc.
SYNC-RDS if the z-component is < 0.0 and the magnetic field of
the second arc (if present) has opposed sign to that of the first
arc.
Continuation card:
WHAT(1) = length of the emission arc or helical path (cm)
Default = 100.0 cm
WHAT(2) = x-coordinate of the starting point of a possible second path of
same length (see Note 1)
WHAT(3) = y-coordinate of the starting point of the second path (see Note 1)
WHAT(4) = z-coordinate of the starting point of the second path (see Note 1)
WHAT(5) = x-component of the emitting particle direction versor at the
beginning of the second path (see Notes 1 and 2)
WHAT(6) = y-component of the emitting particle direction versor at the
beginning of the second path (see Notes 1 and 2)
SDUM = "&" in any position in columns 71-78 (or in last field if free
format is used)
Note:
1) The starting point of the first arc or helical path as well as the
initial direction of the emitting particle must be defined in the
BEAMPOS card.
2) The z-component of the emmitting particle direction versor for the
2nd arc takes the same sign as the one of the 1st arc
1********************************************************************************
18} History of FLUKA
********************************************************************************
The history of FLUKA goes back to 1962-1967. During that period,
Johannes Ranft was at CERN doing work on hadron cascades under the
guide of Hans Geibel and Lothar Hoffmann, and wrote the first
high-energy Monte Carlo transport codes.
Starting from those early pioneer attempts, according to a personal
recollection of Ranft himself [Ran97], it is possible to distinguish
three different generation of "FLUKA" codes along the years, which can
be roughly identified as the FLUKA of the '70s (main authors
J. Ranft and J. Routti), the FLUKA of the '80s (P. Aarnio, A. Fasso`,
H.-J. Moehring, J. Ranft, G.R. Stevenson), and the FLUKA of today
(A. Fasso`, A. Ferrari, J. Ranft and P.R. Sala).
These codes stem from the same root and of course every new "generation"
originated from the previous one. However, each new "generation" represented
not only an improvement of the existing program, but rather a quantum
jump in the code physics, design and goals. The same name "FLUKA" has been
preserved as a reminder of this historical development - mainly as a
homage to J. Ranft who has been involved in it as an author and mentor
from the beginning until the present days - but the present code is
completely different from the versions which were released before 1990,
and far more powerful than them.
18.1} First generation (the CERN SPS Project, 1962-1978)
--------------------------------------------------------
The first codes of Ranft [Ran64,Gei65,Ran66,Ran67,Ran70a,Ran72]
were originally non-analogue and were used as a tool for designing shielding
of high energy proton accelerators. The first analogue cascade code was written
and published at Rutherford High Energy Lab, where Ranft worked from 1967 to
1969. His work was supported by Leo Hobbis of RHEL, who at the time was the
radiation study group leader for the CERN 300 GeV project. The analogue code was
called FLUKA (FLUktuierende KAskade), and was used to evaluate the
performances of NaI crystals used as hadron calorimeters [Ran70a].
Around 1970, J. Ranft got a position at Leipzig University. During
the SPS construction phase in the Seventies he was frequently invited
by the CERN-Lab-II radiation group, leader Klaus Goebel, to
collaborate in the evaluation of radiation problems at the SPS on the
basis of his hadron cascade codes. These codes were FLUKA and versions
with different geometries and slightly differing names [Sch74]. Jorma Routti,
of Helsinki University of Technology, collaborated with Ranft in
setting up several of such versions [Ran72a,Ran74]. The particles
considered were protons, neutrons and charged pions.
At that time, FLUKA was used mainly for radiation studies connected
with the 300 GeV Project [Goe71,Goe73,Fas78]. During that time, the development
of FLUKA was entirely managed by Ranft, although many suggestions for various
improvements came from Klaus Goebel, partly from Jorma Routti and later from
Graham Stevenson (CERN). In that version of FLUKA, inelastic hadronic
interactions were described by means of an inclusive event generator
[Ran74,Ran80a]. In addition to nucleons and charged pions, the generator could
now sample also neutral pions, kaons and antiprotons.
Ionisation energy losses and multiple Coulomb scattering were
implemented only in a crude way, and a transport cutoff was set at 50 MeV
for all particles. The only quantities scored were star density and
energy deposited. The electromagnetic cascade
and the transport of low-energy particles were not simulated in detail
but the corresponding energy deposition was sampled from "typical"
space distributions.
18.2} Second generation (development of new hadron generators, 1978-1989)
-------------------------------------------------------------------------
After the SPS construction phase, a complete re-design of the code was
started in 1978 on the initiative of Graham Stevenson (CERN), with the
support of Klaus Goebel, then leader of the CERN Radiation Protection
Group, and of Jorma Routti, Chairman of the Department of Technical
Physics at the Helsinki University of Technology (HUT), in the form of
a collaboration between CERN, HUT and Leipzig University
[Moh81,Aar84,Aar84a,Ran85b]. The goal was to make FLUKA a more user
friendly hadron cascade code with flexible geometry and with a modern
formulation of the hadron interaction model. The new FLUKA code was
started to be written by visitors from Leipzig University (H.-J. Moehring)
and Helsinki Technical University (Jorma Sandberg). The project was finished by
Pertti Aarnio, also visitor from Helsinki. Other contributions came from
Jukka Lindgren (Helsinki) and by Stevenson himself, who was acting as a
coordinator.
The existing versions of Ranft's programs (at least 14) were unified
into a single code under the name FLUKA. The new code was capable to
perform multi-material calculations in different geometries and to
score energy deposition, star density and differential "fluxes"
(actually, angular yields around a target).
This second generation resulted in the release of several versions.
In FLUKA81 [Moh81] only one geometry was available (cylindrical). High-energy
hadronic events were still sampled from inclusive distributions, but
the low-energy generators HADRIN [Han79,Han86] and NUCRIN [Han80,Han86a]
were introduced for the first time.
In FLUKA82 [Aar84,Ran85b], Cartesian and spherical geometries were added, and in
principle Combinatorial Geometry too (but the latter option was rarely
used, since there was no scoring associated with it and it did not support
charged particle multiple scattering and/or magnetic fields). After a first
release with the old inclusive hadron generator, an update [Aar84a] was
released soon in which a new quark-chain generator developed by Ranft
and his collaborators was introduced in a tentative way [Ran83,Ran85,Ran85a].
At least four Ph.D. projects at Leipzig University did contribute to this new
generator, based on the Dual Parton Model, known as EVENTQ. The model
soon turned out to be superior by far to all those used before in
hadron Monte Carlo, and various versions of it were later adopted also
in other codes (HETC [Als89,Als90], HERMES [Clo88], CALOR [Gab89], and the
simulation codes used for the H1 and ZEUS experiments).
The link to the EGS4 program [Nel85] was introduced in the FLUKA86 version by
G.R. Stevenson and A. Fasso`, as an alternative to the parameterised
electromagnetic cascade used before. The link was working both ways,
allowing to transport gammas issued from pi0 decay, and also
photohadrons. Production of the latter was implemented only for
energies larger than the Delta resonance, in the frame of the Vector
Meson Dominance model [Bau78], by J. Ranft and W.R. Nelson [Ran87b].
The possibility to work with complex composite materials was
introduced in the FLUKA81 version by Moehring and Sandberg.
P. Aarnio restructured the code by encapsulating all COMMON blocks into
INCLUDE files. In that version, and in FLUKA87 which soon followed [Aar87],
several other new features were introduced. A first attempt at simulating
ionisation fluctuations (with the Landau approach) was contributed by P. Aarnio,
and a rudimentary transport of particles in magnetic fields was provided by
J. Lindgren (for charged hadrons only). Some fluence estimators (boundary
crossing, collision, tracklength) were added in a preliminary form by
Alberto Fasso`, based on the same algorithms he had written for the
MORSE code [Fas87]. J. Ranft and his group improved the EVENTQ hadron
generator with the inclusion of diffractive events and Fermi momentum
and provided a first model (later abandoned) of nucleus-nucleus
collisions.
Practically none of these features, however, is surviving today in
same form: in all cases, with the exception of the hadron event
generator, even the basic approach is now completely different.
18.3} Third generation (the modern multiparticle/multipurpose code, 1988 to present)
------------------------------------------------------------------------------------
At about the time when the last version was frozen (1987), a new
generation of proton colliders, with large luminosities and energies
of the order of several TeV, started to be planned. Because of its
superior high-energy hadron generator, FLUKA became the object of a
great interest and began to be employed for shielding calculations and
especially to predict radiation damage to the components of the
machines and of the experiments.
But soon many limitations of the code became evident: the design of
the new accelerators (SSC and LHC) and associated experiments needed
a capability to handle large multiplicities, strong magnetic fields,
energy deposition in very small volumes, high-energy effects, low-energy
neutron interactions, which the code was lacking. A. Ferrari (INFN) and
A. Fasso` set up a plan to transform FLUKA from a high-energy code mostly
devoted to radiation shielding and beam heating into a code which could
handle most particles of practical interest and their interactions over
the widest possible energy range. This plan was entirely supported by INFN,
since after the retirement of K. Goebel, the CERN Radiation Protection
Group had decided to stop support to any further FLUKA development. The
Leipzig group was dissolved following Germany reunification, but J. Ranft
continued to contribute, especially during three 6-months stays in
different INFN labs.
Over a period of six years, FLUKA evolved from a code specialised in high
energy accelerator shielding, into a multipurpose multiparticle code
successfully applied in a very wide range of fields and energies, going much
beyond what was originally intended in the initial development reworking
plan of Fasso` and Ferrari. Just as examples, a few of the fields where
the modern FLUKA has been successfully applied are listed in the following:
* Neutrino physics and Cosmic Ray studies: initiated within ICARUS
- Neutrino physics: ICARUS, CNGS, NOMAD, CHORUS
- Cosmic Rays: First 3D neutrino flux simulation, Bartol, MACRO,
Notre-Dame, AMS, Karlsruhe (CORSIKA)
- Neutron background in underground experiments (MACRO, Palo Verde)
* Accelerators and shielding: the very first FLUKA application field
- Beam-machine interactions: CERN, NLC, LCLS, IGNITOR
- Radiation Protection: CERN, INFN, SLAC, Rossendorf, DESY, GSI, TERA, APS
- Waste Management and environment: LEP dismantling, SLAC
* Synchrotron radiation shielding: SLAC
* Background and radiation damage in experiments: Pioneering work for ATLAS
- all LHC experiments, NLC
* Dosimetry, radiobiology and therapy:
- Dose to Commercial Flights: E.U., NASA, AIR project (USA)
- Dosimetry: INFN, ENEA, GSF, NASA
- Radiotherapy: Already applied to real situations (Optis at PSI,
Clatterbridge, Rossendorf/GSI)
- Dose and radiation damage to Space flights: NASA, ASI
* Calorimetry:
- ATLAS test beams
- ICARUS
* ADS, spallation sources (FLUKA+EA-MC, C.Rubbia et al.)
- Energy Amplifier
- Waste trasmutation with hybrid systems
- Pivotal experiments on ADS (TARC, FEAT)
- nTOF
This effort, mostly done in Milan by Ferrari and Paola Sala (also of
INFN), started in 1989 and went off immediately in many directions: a
new structure of the code, a new transport package including in
particular an original multiple Coulomb scattering algorithm for all
charged particles, a complete remake of the electromagnetic part, an
improvement and extension of the hadronic part, a new module for the
transport of low-energy neutrons, an extension of Combinatorial
Geometry and new scoring and biasing facilities. At the end of 1990, most
of these goals had been achieved, although only in a preliminary form.
All the new features were further improved and refined in the
following years.
18.4} Code structure
--------------------
One of the first changes which led to the modern FLUKA was a complete
redesign of the code structure. The main change was a general
dynamical allocation scheme allowing to obtain a great flexibility
while keeping the global memory size requirements within reasonable
limits. Other improvements were a re-arrangement of COMMON blocks to
optimise variable alignment, a parameterisation of constants making
the program easier to maintain and update, the possibility to insert
freely comments in input, and a special attention devoted to
portability (FLUKA87 could run only on IBM under VM-CMS).
The greatest importance was attached to numerical accuracy: the whole
code was converted to double precision (but the new allocation scheme
allowed for implementation also in single precision on 64-bit
computers). As a result, energy conservation was ensured within
10^{-10}.
A decision was also made to take systematically maximum advantage from
the available machine precision, avoiding all unnecessary rounding and
using consistently the latest recommended set of the physical constant
values. Such an effort succeeded in strongly reducing the number of
errors in energy and momentum conservation and especially the number
of geometry errors.
A double precision random number generator was also adopted, kindly
provided by Fred James (CERN) [Jam90], and based on the algorithm of
RANMAR by Marsaglia and Zaman of Florida State University [Mar87,Mar91].
The possibility to initialise different independent random number
sequences was introduced in 2001. In 2005, the newly proposed
double-precision generator proposed by Marsaglia and Tsang [Mar04] has
been implemented.
A deliberate choice was made at an early stage to give preference to
table look-up over analytical parameterisations or rejection
sampling. The burden of large file management was more than
compensated by the better accuracy and increased
efficiency. Cumulative tabulations optimised for fast sampling were
initialised at run-time for the materials of the problem on hand, and
were obtained mainly from complete binary data libraries stored in
external files.
The concern for self-consistency was and still is the main guiding
principle in the design of the code structure. The same attention has
been devoted to each component of the hadronic and of the
electromagnetic cascade, with the aim of obtaining a uniform degree of
accuracy. For this reason, FLUKA can now be used just as well to
solve problems where only a single component is present (pure hadron,
neutron, muon or electromagnetic problems). It has also been tried to
give a complete description of the mutual interaction between the
different components, preserving the possible correlations.
A set of default settings recommended for several applications
(shielding, radiotherapy, calorimetry etc.) was introduced in 1996 to
help the user in a difficult task, but essential to get reliable
results.
18.5} Geometry
--------------
The original Combinatorial Geometry (CG) package from MAGI [Gub67,Lic79]
was adopted and extensively improved by Fasso` and Ferrari, starting from the
one used in their improved version of the Morse code. In 1990, new bodies were
added (infinite planes and cylinders) which made the task of writing
geometry input much easier and allowed more accurate and faster tracking.
CG had originally been designed for neutral particles, but charged
particles definitely required a fully new treatment near boundaries,
especially when magnetic fields were present. Previous attempts to
use CG to track charged particles, in FLUKA87, EGS4 and other
codes, had always resulted in a large number of particle rejections,
due to rounding errors and to the "pathological" behaviour of charged
particles scattering near boundaries and in the practical impossibility
to use CG for these purposes.
The tracking algorithm was thoroughly redesigned attaining a complete
elimination of rejections. A new tracking strategy brought about large speed
improvements for complex geometries, and the so-called DNEAR facility
(minimum distance from any boundary) was implemented for most geometry
bodies and all particles. A sophisticated algorithm was written to
ensure a smooth approach of charged particles to boundaries by
progressively shortening the length of the step as the particle gets
closer to a boundary. Boundary crossing points could now be identified
precisely even in the presence of very thin layers. The combined
effect of multiple scattering and magnetic/electric fields was taken
into account.
In 1994, the PLOTGEOM program, written by R. Jaarsma and H. Rief in Ispra
and adapted as a FLUKA subroutine by G.R. Stevenson in 1990, was
modified by replacing its huge fixed dimension arrays with others,
dynamically allocated. The same year, a repetitive (lattice) geometry
capability was introduced in CG by Ferrari, and a powerful debugger
facility was made available.
In 1997-1998, following a request from the ATLAS experiment, INFN hired
a fellow, S. Vanini, who, together with Sala, developed an interface called
FLUGG which allows to use FLUKA using the GEANT4 geometry routines for
detector description. This interface was further improved by Sala and
in recent times I. Gonzalez and F. Carminati from ALICE.
In 2001-2002, following a collaboration between INFN-Milan and GSF (Germany),
Ferrari developed a generalised voxel geometry model for FLUKA. This
algorithm was originally developed to allow to use inside FLUKA
the human phantoms developed at GSF out of real person whole body CT scans.
It was general enough to be coupled with generic CT scans, and it is
already used in Rossendorf (Germany) for hadron therapy applications.
18.6} Particle transport
------------------------
The number of particles which can be transported by FLUKA was 25 in
1990; after the muon (anti)neutrinos and several hyperons were added,
the number increased to 36. In 1992, transport of light ions (deuterons,
tritons, 3He, alpha) was introduced, without nuclear interactions. In 1996
tau leptons and neutrinos transport (and in some cases interactions)
were added. In 1999 the transport of optical photons was set up. The same
year charmed hadrons brought the total number of transported
particles to 63, plus all kinds of heavy ions.
The transport threshold, originally fixed at 50 MeV has been lowered
since 1991 to the energy of the Coulomb barrier. Below that value,
charged particles were ranged out to rest.
18.7} Particle decays
---------------------
The old FLUKA allowed for two and three body phase-space like particle
decays with no account for possible matrix element, particle polarisations
and higher multiplicities. Starting since 1995, particle decays have been
rewritten from scratch by Ferrari allowing for more than 3 body decays,
implementing polarised decays for pi's, Kaons, Tau's and muons when
relevant, and introducing proper matrix elements for Kaon and muon decays.
Among these features, polarised muon decays with the proper V-A matrix
element were developed by G. Battistoni (INFN-Milan) and K_mu3 and K_l3
decays of K+/- K_Long with the proper matrix element were based on the
KL3DCAY code kindly provided by Vincenzo Patera (INFN-Frascati).
Various methods of particle decay biasing were also introduced by Ferrari
(described later in the Biasing subsection).
18.8} Magnetic fields
---------------------
Transport in magnetic fields was extended to electrons and positrons
in 1990 by Ferrari. In 1992 and again in 1994, the magnetic field
tracking algorithm was completely reworked by Ferrari and Sala in
order to overcome the many limitations of the previous one. The new
algorithm was much more precise and fast, it supported complex
particle/boundary interactions typical of multiple scattering, allowed
for charged particle polarisation and did no longer miss by construction
any geometrical feature, even if small, met along the curved path.
18.9} Multiple Coulomb scattering
---------------------------------
The version of EGS4 which had been linked to FLUKA87 was an early one,
which did not include the PRESTA algorithm for the control of the
multiple scattering step and was therefore very sensitive to the step
length chosen. In 1989, Ferrari and Sala developed and implemented in
FLUKA an independent model which had several advantages even with
respect to PRESTA: it was accounting for several correlations, it
sampled the path length correction accounting for the first and second
moment of its distribution, it allowed the introduction of high-energy
effects (nuclear form factors) and could be easily integrated within
the Combinatorial Geometry package. The algorithm, which included also
higher order Born approximations, was very efficient and was taking
care also of special high-energy effects, very grazing angles,
correlations between angular, lateral and longitudinal displacements,
backscattering near a boundary etc.
The Ferrari-Sala model, which has proved very robust and has been
shown to reproduce with good accuracy even backscattering experiments,
was applied to both electrons and heavier charged particles. The final
revision and update of the algorithm were made in 1991. In 1995, the
Fano correction for multiple scattering of heavy charged particles was
introduced.
18.10} Ionisation losses
------------------------
The treatment of ionisation losses was completely re-written in
1991-1992 by Fasso` and Ferrari to eliminate many crude approximations,
and delta-ray production was added.
Ranging of stopping charged particle was also changed. Quenching
according to the Birks law was introduced to calculate the response
of scintillators.
Application of FLUKA to proton therapy called for further refinements
of stopping power routines in 1995, with the inclusion of tabulated
data of effective ionisation potentials and density effect parameters.
Shell corrections were added. The new treatment was fully compliant
with ICRU recommended formulae and parameters and included all corrections,
including low energy shell corrections as worked out by Ziegler et
al. [Zie77]
In 1996, a new formalism for energy loss fluctuations by Ferrari replaced
the old treatment of Landau fluctuations. This formalism, based on the
statistical properties of the cumulants of a distribution, was
applied to both heavy charged particles and e+e-, and was fully
compatible with any user-defined threshold for delta ray emission.
Other improvements concerned the possibility to define materials
with local density different from average (porous substances),
and the ranging out of particles with energies lower than the
transport cutoff.
In 1999-2000, heavy ion dE/dx was improved by the inclusion of
effective Z and straggling (Ferrari).
High-energy energy loss mechanisms for heavy charged particles
were implemented by Ferrari both as a continuous and as an explicit treatment:
bremsstrahlung and pair production in 1992, nuclear interaction via
virtual photons in 1993.
18.11} Time dependence
----------------------
Time-dependent calculations were made available in FLUKA for all
particles since 1991. Time cutoffs could be set by the user for both
transport and scoring.
18.12} Nuclear data and cross sections
--------------------------------------
All the nuclear data used by the original evaporation routines by
Dresner [Dre61] (see below), were replaced by Ferrari at an early stage
with the most recent ones available from the NNDC database, thanks to the
help of Federico Carminati. In 1990, the isotopic composition of elements
was included, taken from modern evaluations.
In 1991, the proton and neutron inelastic cross sections between 10
and 200 MeV were updated by Ferrari and Sala with fits to experimental
data. An accurate treatment of cross section energy dependence for
all charged particles, independent of the step size, was introduced
at that stage through the fictitious sigma method.
Hadron-nucleus cross sections underwent further extensive reworking
starting from 1994 by Ferrari and Sala. The present treatment is based
on a novel approach blending experimental data, data driven theoretical
approaches, PDG fits and phase shift analysis when available.
Elastic scattering on hydrogen of protons, neutrons, and pions was
rewritten from scratch in 1994 by Ferrari and Sala. The same work was
done for kaons in 1997.
18.13} Electron and photon transport (EMF)
------------------------------------------
The original EGS4 implementation in FLUKA was progressively modified,
substituded with new algorithms and increasingly integrated with the
hadronic and the muon components of FLUKA, giving rise to a very different
code, called EMF (Electro-Magnetic-Fluka). In 2005, the last remaining EGS
routine has been eliminated, although some of the structures still remind
of the original EGS4 implementation.
The main developments were made according to the following sequence.
The Ferrari-Sala multiple scattering algorithm was the first major
addition in 1989. It has already been described elsewhere since it was
applied to hadrons and muons as well. Following its implementation, the
whole electron/positron transport algorithm had to be reworked from scratch
in order to comply with the features (initial and final step deflections,
complex boundary crossing algorithm) of the new model.
In 1990, the treatment of photoelectric effect was completely
changed. Shell-by-shell cross sections were implemented, the photoelectron
angular distribution [Sau31] was added, taking into
account the fine structure of the edges, and production of
fluorescence X-rays was implemented.
Many new features were added in 1991. The emission angle of
pair-produced electron and positrons and that of bremsstrahlung
photons, which were only crudely approximated in the original EGS4
code, were now sampled from the actual physical distributions.
The full set of the electron-nucleus and electron-electron
bremsstrahlung cross sections, differential in photon energy and
angle, published by Seltzer and Berger for all elements up to 10 GeV [Sel86]
was tabulated in extended form and introduced into the code
together with a brand new sampling scheme by Fasso` and Ferrari.
The energy mesh was concentrated, especially near the photon spectrum tip,
and the maximum energy was extended to higher energies. The
Landau-Pomeranchuk-Migdal effect [Lan53,Lan53a,Mig56,Mig57] for
bremsstrahlung and the Ter-Mikaelyan polarisation effect [Ter54]
(suppressing soft photon emission) were implemented.
Positron bremsstrahlung was treated separately, using below 50 MeV the
scaling function for the radiation integral given by Kim [Kim86] and
differential cross sections obtained by fitting proper analytical
formulae to numerical results of Feng et al. The photon angular
distribution was obtained by sampling the emission angle from the
double differential formula reported by Koch and Motz [Koc59], fully
correlated with the photon energy sampled from the Seltzer-Berger
distributions.
The Compton effect routines were rewritten in 1993 by Ferrari and Luca
Cozzi (University of Milan), including binding effects. At the end of
the same year, the effect of photon polarisation was introduced for
Compton, Rayleigh and photoelectric interactions by Ferrari.
In 1993 and 1994, A. Fasso` and A. Ferrari implemented photonuclear
reactions over the whole energy range, opening the way to the use of
Monte Carlo in the design of electron accelerator shielding [Fas94]. Giant
Dipole Resonance, Delta Resonance and high-energy photonuclear total
cross sections were compiled from published data [Fas98] (further updated in
2000 and 2002), while the quasideuteron cross section was calculated
according to the Levinger model, with the Levinger's constant taken
from Tavares et al. [Tav92], and the damping factor according to Chadwick et
al. [Cha91]. The photon interaction with the nucleus was handled in the
frame of the FLUKA hadronic event generators PEANUT and DPM (see below).
In 1995, a single Coulomb scattering option was made available for
electrons and positrons by Ferrari and Sala. The aim of this option
was mainly to eliminate some artefacts which affected the angular
distributions of charged particles crossing a boundary, but it
turned out very useful also to solve some problems at very low
electron energy or with materials of low density (gases).
In the same year, the electron transport algorithm was reworked once
more by Ferrari and Sala introducing an adaptive scheme which "senses" close
boundaries in advance and automatically adapts the step length depending on
their distance. Also in 1995 Ferrari discovered that the EGS4
implementation of M{\o}ller and Bhabha scattering, still used at that time in
FLUKA, was flawed. The bug was duly reported to the EGS4 authors who took
corrective actions on their own code, while Ferrari developed a new algorithm
for M{\o}ller and Bhabha scattering for FLUKA.
In 1997 mutual polarisation of photons emitted in positron annihilation at
rest was introduced by Ferrari.
Cherenkov photon production and optical photon transport was implemented
in 1999 by Ferrari. In 2002 scintillation photon production was added as well.
In 1998-2001 an improved version of the Ferrari-Sala multiple scattering
model was developed, introducing further refinements and the so called
"polygonal" step approach. This version is presently fully tested offline
and will be soon introduced into the production code.
In 2005, the need for an external data preprocessor has been eliminated,
integrating all the needed functionalities into the FLUKA initialization stage.
At the same time, data from the EPDL97 [EPDL97] photon data library have become
the source for pair production, photoelectric and total coherent cross section
tabulations, as well as for atomic form factor data.
At the same time, Rayleigh scattering has been reworked from scratch by
Ferrari with a novel approach, and the photoeletric interaction model have been
further improved with respect to the 1993 Ferrari-Sala approach, extending
it among the others down to a few eV's.
Finally the energy sampling for pair production have been completely
reworked by Ferrari using a vastly superior approach, which can distinguish
between interactions in the nuclear or electron field, and properly
sample the element in a compound or mixture on which the interaction is going
to occur. Thew algorithm is also capable of producing meaningful results for
photon energies close to thresholds where several corrections are important
and the symmetry electron/positron is broken, insimilar fashion to the
bremsstrahlung case.
18.14} Low-energy neutrons
--------------------------
The 50 MeV energy cutoff was one of the most important limitations of
the FLUKA87 version. The cutoff concerned muons and all hadrons, but
it was the absence of neutron transport below 50 MeV which constituted
the most serious drawback for many applications. The limitations stemmed
from the increasing inadequacy of the hadron interaction models in dealing
with interactions below 1 GeV and with the lack of any detailed
nuclear physics treatment, i.e. the lack of an evaporation model and low
energy particle production, at all energies.
Actually, several early attempts to overcome these weaknesses of the code
had been made by H.-J. Moehring, H. Kowalski and T. Tymieniecka
(code NEUKA [Kow87,Tym90], for Uranium/Lead scintillator only) and J. Zazula
(code FLUNEV [Zaz90,Zaz91]), with mixed results. The most promising approach
was that of Jan Zazula, of the Institute of Nuclear Physics in Cracow: he had
coupled Fluka87 with the Evap-5 evaporation module which he had extracted from
the Hetc/KFA code, and then interfaced the code with the only available
multi-group neutron cross section library extending to 50 MeV and beyond,
the HILO library.
The main limitations of these approaches, was their inability to address
the real deficiencies of the FLUKA87 hadron interaction model, their lack
of nuclear physics details and therefore the unreliability of their
excitation energy predictions, which indeed were never intended by
the original authors for any real use.
Furthermore, it became apparent that HILO had several weaknesses:
the cross section set had been put together by extending a low-energy
one of rather coarse structure based on evaluated experimental data
with the addition of much less accurate data calculated with an
intranuclear cascade code (HETC); for the same reason the library did
not contain any information on (n,gamma) generation above 20 MeV and
was based on a different Legendre angular expansion below and above
that energy. And because the library contained a very small number of
materials, the possibilities of application were rather limited.
The approach followed by Ferrari and Sala to overcome those
shortcomings was two-fold:
* improve/substitute the hadronic interaction models in order to describe
with reasonable accuracy low energy particle production and
medium-low energy particle interactions
* develop an ad-hoc neutron cross section library for FLUKA extending
up to 20 MeV (in collaboration with G.C. Panini and M. Frisoni of
ENEA - Bologna [Cuc91])
The former point is discussed in detail in the section on hadronic
models, the latter in the following.
Since Ferrari and Sala had started to work on a preequilibrium
model (later known as PEANUT, see next section) which was expected to cover
intermediate energies more accurately than the traditional
intranuclear cascade codes, it was decided to lower the FLUKA energy
cutoff to 20 MeV (thus making HILO unnecessary) and to create a
dedicated multigroup neutron cross section library to be used with FLUKA,
with the more usual upper energy limit of 20 MeV. The task was
carried out with the essential collaboration of G.C. Panini, an expert of
an ENEA laboratory in Bologna specialised in nuclear data processing
for reactor and fusion applications. Several neutron cross section
libraries have been produced for FLUKA over the years as a result of a
contract between INFN-Milan and ENEA [Cuc91].
These libraries, designed by Ferrari, had a format which was similar to
the ANISN one [Eng67] used for example by MORSE [Emm75], but which was
modified to include partial cross sections and kerma factors for dose
calculations (critically revised). Because at that time there was still
a US embargo on the most recent ENDF/B evaluated file, the cross sections
were originally derived from the European compilations JEF-1 and JEF-2.
(Later, they were regularly updated with the best ones available from JEF,
ENDF, JENDL and others). The choice of materials was particularly tailored
on detector and machine applications for high-energy colliders,
including also cryogenic liquids at various temperatures, and was much
wider than in most other libraries: it contained initially about 40
different materials (elements or isotopes), which became soon 70 (in
1991) and are now more than 130. Hydrogen cross sections were also
provided for different H molecular bonds (H gas, water, polyethylene).
Doppler reduced broadening was implemented for a few materials
at liquid argon (87 K) and liquid helium (approximately 0 K) temperatures.
The incorporation of the neutron multigroup transport module into FLUKA
by Ferrari was loosely based on the approach followed in the MORSE and
other multigroup codes, Ferrari and Fasso` had a deep expertise about.
The low energy neutron transport and interaction routines had been
rewritten from scratch progressively introducing many extra features
which are detailed in the following. Capture and inelastic gamma
generation was still implemented in the multigroup framework,
but gamma transport was taken care of by the EMF part of FLUKA.
Survival biasing was left as an option to the user with the possibility
to replace it by analogue survival.
Energy deposition computed via kerma factors was preserved, but in the
case of hydrogen the recoiling protons were explicitly generated and
transported. The same was done with protons from the 14-N(n,p) 14-C
reaction due to its importance for tissue dosimetry, and later for
all reaction on 6-Li.
The new low energy neutrons transport was ready at the end of
1990 [Fer91b]. The corresponding FLUKA version was called FlukaN
for a while to underline the neutron aspect, but the name was soon
abandoned.
At the beginning of 1997, the possibility to score residual nuclei
produced by low energy neutrons was introduced. Many improvements were
made in that same year. Federico Carminati, who was using FLUKA for
calculations related to C. Rubbia's Energy Amplifier, added to the
program a few routines and nuclear data necessary to score low-energy
fission products. Pointwise cross sections were introduced for the
neutron interactions with hydrogen. Ferrari and Sala also developed a
model to sample gammas from neutron capture in Cadmium, an important
reaction for which no data were available in evaluated cross section
files. Similar schemes for capture photon generation were established
in 2001 for other nuclei (Ar, Xe) [Fas01b]. Pointwise transport and
interactions for 6-Li were also provided.
18.15} Hadron event generators
------------------------------
The two Leipzig event generators developed in the 80's, one for intermediate
energies and the other for high energies (> 5 GeV), were a remarkable
achievement with great potentialities. In particular the high energy
model was among the first developed in the world based on partonic
ideas and quark degrees of freedom (specifically on the so called
Dual Parton Model [Cap80,Cap80a]).
The part of the code concerning hadron-nucleus primary interactions at
energies above 4 GeV has been extensively extended and updated since
1987 and is now virtually a new model, even though the physics
foundations are still essentially the same. Several bugs and
approximations have been removed too. The intermediate energy resonance
model has also been deeply modified and its use is currently restricted
to few particles over a restricted energy range. The newly developed
pre-equilibrium-cascade model PEANUT has progressively replaced this model.
The main lines of the work developed mostly in Milan by Ferrari and
Sala starting from 1990 can be summarised as follow [Fer96b,Col00]:
* Further develop and improve the high energy DPM based part of the models.
These was performed in 4 main stages, which eventually led to an
almost completely new code still based on the same physics foundations
with some extensions
* Introduce a self-consistent nuclear environment in both the medium and
high energy models, allowing for a physically meaningful excitation
energy and excited residual A and Z calculations
* Develop a state-of-the-art evaporation/fission/break up/deexcitation
stage to be used to describe the "slow" part of nuclear interactions.
These actually took place in two major steps
* Develop a completely new model (PEANUT) based on a novel approach for
describing the low-to-intermediate (up to a few GeV) energy range, while
progressively phasing out the improved version of the intermediate energy
Leipzig code. This effort took also place in two main steps.
18.15.1} High energy model improvements
In all the developments described in this paragraph and also of some in
other paragraphs, J. Ranft always acted as the main mentor and source
of theoretical and often practical support. Even when he did not
contributed to the code directly, his ideas, help and suggestions were
essential part of its development.
The two models developed by the Leipzig group were initially improved
by removing a number of known bugs and approximations (mainly, but not
only, in the kinematics). In the years 1990-1991 all hyperons and
anti-hyperons were added as possible projectiles, and most important,
nuclear effects, previously restricted to Fermi momentum, were
expanded and treated more accurately, with an explicit treatment
of the nuclear well potential, the inclusion of detailed tables
of nuclear masses to account for nuclear binding energy, a consistent exact
determination of nuclear excitation energy and an overall "exact"
conservation of energy and momentum on an event-by-event basis. These
changes were the minimal modifications required for introducing a sensible
evaporation module and related low energy particle production: they made
up the first stage of upgrade of the intermediate and high energy event
generator and were performed by Ferrari and Sala.
In the following years, negative Binomial multiplicity distribution,
correlations between primary interactions and cascade particles and
better energy-angle distributions were implemented.
Sea quark distributions were updated, new distributions
were used for the number of primary collisions using an improved Glauber
cascade approach, and Reggeon mediated interactions (single chains) were
introduced at the lower energy end of the application range of the Dual
Parton Model. An initial improvement of the diffraction treatment as well
of the hadronisation algorithm were performed. These developments ended
up in the 1993 version, which represented the second stage of the high energy
generator development (and which was made available to GEANT3 users, see
later).
Several major changes were performed on both the intermediate and high
energy hadron generator in the years 1994-1996 by Ferrari and Sala.
The latter was extensively improved, bringing its results into much better
agreement with available experimental data from as low as 4 GeV up to
several hundreds of GeV. A fully new treatment of transverse momentum
and of all DPM in general was developed, including a substantially
improved version of the hadronisation code and a new driver
model for managing two-chain events. The existing treatment of
high-energy photonuclear reactions, previously already based on the
VMD model [Bau78] but in an approximate way, was improved by implementing the
contribution of all different vector mesons, as well as the quasielastic
contribution. The simulation of diffractive events was completely reworked
distinguishing between resonant, single-chain and two-chain events, and
a smeared mass distributions for resonance was introduced.
This version of the model was completed in 1996 and performed very well
together with the new "sophisticated" PEANUT when applied to a variety
of problems, ranging from radiation protection, to cosmic ray showers
in the atmosphere and to the test beam of the ATLAS calorimeters.
The latest round of improvements originated by the new interest of
Ferrari and Sala for neutrino physics, triggered by
their participation in the ICARUS experiment and resulted in several
improvements in the high-energy interaction model.
In 1998, a new chain fragmentation/hadronisation scheme was
put to use, and a new diffraction model was worked out once
more according to rigorous scaling, including low mass diffraction
and antibaryon diffraction. In 1999, charm production was set up by
Ranft and Ferrari (reasonable at least for integrated rates),
and charmed particle transport and decay were introduced.
The chain building algorithm was thoroughly revised to ensure a
continuous transition to low energies, and a significant reworking was
done on the chain hadronisation process, providing a smooth and physically
sound passage to chains made up by only two particles, resulting in an
overall better description of particles emitted in the fragmentation
region. This model was thoroughly benchmarked against data taken at WANF
by NOMAD and the particle production data measured by SPY. It constituted
the basis for all calculations performed for CNGS, both in the early
physics design stage and later in the optimisation and engineering studies.
18.15.2} Cascade-Preequilibrium model (PEANUT)
There were two main steps in the development of the FLUKA preequilibrium
cascade model (PEANUT) by Ferrari and Sala:
* The so called "linear" preequilibrium cascade model
* The full preequilibrium cascade model
The first implementation of the FLUKA cascade-preequilibrium model, the
"linear" one was finalised in July 1991 [Fer94]. The model, loosely based
for the preequilibrium part on the exciton formalism of M. Blann and coworkers
called Geometry Dependent Hybrid Model (GDH) [Bla71,Bla72,Bla75,Bla83a,Bla83b]
now cast in a Monte Carlo form, was able to treat nucleon interactions at
energies between the Coulomb barrier (for protons) or 10-20 MeV (for neutrons)
and 260 MeV (the pion threshold). The model featured a very innovative concept,
coupling a preequilibrium approach with a classical intranuclear cascade model
supplemented with modern quantistic corrections. This approach was
adopted for the first time by FLUKA and independently by the LAHET code [Pra89]
at LANL. Capture of stopping negative pions, previously very crudely
handled (the available alternatives being forced decay or energy deposited
on the spot) was also introduced in this framework. This first
implementation was called "linear" since in the cascade part refraction and
refrection in the nuclear mean field was not yet taken into
account, resulting in straight ("linear") paths of particles through
the nuclear medium. First order corrections for these effects were anyway
implemented on the final state angular distributions. This model
immediately demonstrated superb performances when compared with nucleon
induced particle production data. Its implementation into FLUKA allowed to
overcome some of the most striking limitations of the code and permitted
the use of the new neutron cross section library through its ability to
produce sound results down to 20 MeV: in this way it opened a huge range
of new application fields for the code.
However, despite its nice performances, the "linear" cascade-preequilibrium
model was always felt by Ferrari and Sala as a temporary solution for the
low end side of particle interactions, while waiting for something
even more sophisticated. The work on the "full" cascade-preequilibrium,
which in the meantime had been called PEANUT (Pre-Equilibrium Approach to
Nuclear Thermalisation) started at the end of 1991 and produced
the first fully working version by mid-1993. Despite its improved quality
this version was not included into any of the general use
FLUKA versions until 1995, due to its complexity and the overall
satisfactory results of the "linear" one for most applications.
Till 1995, the full version was in use only by a few selected groups,
including the EET group led by Carlo Rubbia at CERN, which meanwhile
decided to adopt FLUKA as their standard simulation tools above 20 MeV,
mostly due to the superior performances of PEANUT full version.
It would be too long to describe in details all features of this
model, which represented a quantum jump in the FLUKA performances and a
significant development in the field. Actually, PEANUT combines an
intranuclear part and a preequilibrium part (very similar in the "linear"
and full versions), with a smooth transition around 50 MeV for secondary
nucleons and 30 MeV for primary ones. It included nuclear potential effects
(refraction and reflection), as well as quantal effects such as Pauli
blocking, nucleon-nucleon correlations, fermion antisymmetrisation,
formation zone and coherence length (a new concept introduced by
Ferrari-Sala which generalises to low energy and two body scattering the
formation zone concept). The model featured a sophisticated pion
complex optical potential approach, together with 2 and 3 nucleon
absorption processes and took into account the modifications due to the
nuclear medium on the pion resonant amplitudes. For all elementary
hadron-hadron scatterings (elastic, charge and strangeness exchanges)
extensive use was made of available phase-shift analysis. Particle
production was described in the framework of the isobar model and DPM at
higher energies, using a much extended version of the original HADRIN
code from Leipzig, and the FLUKA DPM model at higher energies.
In 1995, distinct neutron and proton nuclear densities were adopted and
shell model density distributions were introduced for light nuclei.
The initial model extended the energy range of the original "linear" one
from 260 MeV to about 1 GeV in 1994, with the inclusion of pion
interactions. Giant Resonance and Quasideuteron photonuclear reactions
were added in 1994 and improved in 2000. In 1996--1997 the emission of
energetic light fragments (up to alphas) in the GINC stage emission has
been described through the coalescence mechanism.
The upper limit of PEANUT was further increased in 1996 to 1.8 GeV for
nucleons and pions, and to 0.6 GeV for K+/K0; then again one year later
(2.4 GeV for nucleons and 1.6 GeV for pions), and in 2000 (3.5 GeV for both
pions and nucleons). In 1998, PEANUT was extended to K- and K0bar's induced
interactions. In the 2005 version, all nucleon and pion reactions below
5 GeV/c of momentum are treated by PEANUT, while for kaons and hyperons the
upper threshold is around 1.5 GeV (kinetic energy). Since 2005 also
anti-nucleon interactions are treated in the PEANUT framework. It is planned
to progressively extend PEANUT up to the highest energies by incorporating
into its sophisticated nuclear framework the Glauber cascade and DPM part of
the high energy model.
One of the fall-outs of the work done for ICARUS was the introduction
of nucleon decays and neutrino nuclear interactions in 1997 [Cav97], which
prompted improvements in PEANUT, for instance concerning Fermi momentum
and coherence length. Quasielastic neutrino interactions can be dealt with
by PEANUT natively; in 1999, the code was coupled with the NUX
neutrino-nucleon interaction code developed by Andre' Rubbia at ETH Zurich
to produce full online neutrino-nucleus interactions, including resonance
production and deep inelastic scattering. The combined
FLUKA(PEANUT)+NUX model gave outstanding results when compared with NOMAD
data, therefore giving support to all predictions done for ICARUS.
Negative muon capture was also introduced in 1997 due to ICARUS needs. To
much surprise, it turned out to be a key factor in the understanding of the
unexpected background at the nTOF facility during its initial operation
phase in 2001.
18.15.3} Evaporation/Fission and Fermi Break-Up
Evaporation was initially implemented in FLUKA in 1990-1991 by Ferrari and
Sala through an extensively modified version of the original Dresner's model
based on Weisskopf's theory [Dre61]. Relativistic kinematics was substituted
to the original one; fragmentation of small nuclei was also introduced,
although initially only in a rough manner. The mass scale was changed to a
modern one and the atomic masses were updated from a recent compilation.
Improvements included also a more sophisticated treatment of nuclear
level densities, now tabulated both with A and Z dependence and with
the high temperature behaviour suggested by Ignatyuk [Ign75].
A brand new model for gamma production from
nuclear deexcitation was added, with a statistical treatment of E1, E2
and M1 transitions and accounting for yrast line and pairing energy.
This "initial capability" evaporation was used together with the first
stage improved high energy hadron generator and the HILO library for the
very first calculations carried out in 1990 for the LHC detector radiation
environment. Later, in 1991, with the introduction of the "linear"
preequilibrium model, a full model coverage down to 20 MeV was available
and the new neutron cross section library developed together with
ENEA-Bologna [Cuc91] started to be used.
In 1993 the RAL high-energy fission model by Atchison [Atc80],
kindly provided by R.E. Prael as implemented in the LAHET code,
was included after some extensive modifications to remove some
unphysical patches which the presence of a preequilibrium stage had
now made unnecessary. The model was further developed and improved along
the years and little is now left of the original implementation.
Competition between evaporation and fission in
heavy materials was implemented. This development was set off by a
collaboration on energy amplifiers with C. Rubbia's group at CERN.
Eventually, Ferrari joined that group in 1998.
In 1995, a newly developed Fermi Break-up model, with a maximum of 6
bodies in the exit channel, was introduced by Ferrari and Sala
to describe the deexcitation of light nuclei (A =< 17). This
development provided better multiplicities of evaporated neutrons
and distributions of residual nuclei. The deexcitation gamma
generation model was improved and benchmarked in the following year.
A completely new evaporation treatment was developed by Ferrari and Sala
in 1996 and 1997 in substitution of the improved Dresner model. This new
algorithm adopted a sampling scheme for the emitted particle spectra which no
longer made any Maxwellian approximation, included sub-barrier
effects and took the full energy dependence of the nuclear level
densities into account. Gamma competition was introduced too.
These physics improvements allowed a much more accurate description
of the production of residual nuclei. A refinement of this new
package took place in 2000/2001. The production of fragments up to mass 24
has been tentatively included around 2003 and subsequently developed
and benchmarked [Bal04] and is now available in the
distributed version as an option to be activated by the user.
18.16} Radioactivity evolution and radioactive decays
-----------------------------------------------------
FLUKA is capable of making predictions about residual nuclei following
hadronic and electromagnetic showers since late 1994. The accuracy of
these predictions steadily improved along the years, in particular after
the introduction of the new evaporation/fragmentation and the improvements
and extensions of the PEANUT model: versions before end 1996 were unlikely
to give satisfactory results. Of course, all FLUKA versions prior to
1989 were totally unable to formulate predictions on this issue.
Since 1995, an offline code by Ferrari was distributed together with FLUKA,
which allowed to compute offline the time evolution of a radionuclide
inventory computed with FLUKA, for arbitrary irradiation profiles and decay
times. In 2004--2005, this capability has been brought online by Ferrari
and Sala, with an exact analytical implementation (Bateman equations)
of the activity evolution during irradiation and cooling down, for
arbitrary irradiation conditions. Furthermore, the generation and
transport of decay radiation (limited to gamma, beta-, and beta+
emissions for the time being) is now possible. A dedicated database
of decay emissions has been created by Ferrari and Sala, using mostly
informations obtained from NNDC, sometimes supplemented with other data
and checked for consistency.
As a consequence, results for production of residuals, their time evolution
and residual doses due to their decays can now be obtained in the same run,
for an arbitrary number of decay times and for a given, arbitrarily complex,
irradiation profile.
18.17} Biasing
--------------
Variance reduction techniques, a speciality of modern FLUKA, have
been progressively introduced along the years. Transport
biasing under user control is a common feature of low-energy codes,
but in the high energy field biasing has generally been restricted to
built-in weighted sampling in event generators, not tunable by the
user. In addition, Monte Carlo codes are in general either weighted or
analogue, but not both. In the modern FLUKA, the user can decide in which
mode to run the code, and has the possibility to adjust the degree of
biasing by region, particle and energy.
Many different biasing options have been made available. Multiplicity
reduction in high-energy hadron-nucleus interactions was the first one
to be introduced by Fasso` (in 1987), to manage the huge number of
secondaries produced by the 20 TeV proton beams of SSC. Ferrari made
possible for the user to tune it on a region dependent basis. In 1990
Ferrari added also geometry splitting and Russian Roulette for all
particles based on user-defined region importances and several biasing
options for low-energy neutrons, inspired by MORSE, but adapted to the
FLUKA structure.
Region, energy and particle dependent weight windows were introduced
by Fasso` and Ferrari in 1992. In this case the implementation was
different from that of MORSE (two biasing levels instead of three), and
the technique was not applied only to neutrons but to all FLUKA particles.
Decay length biasing was also introduced by Ferrari (useful for instance
to improve statistics of muons or other decay products, or to amplify the
effect of rare short-lived particles surviving at some distance from the
production point). Inelastic length biasing, similar to the previous option
and also implemented by Ferrari, makes possible to modify the interaction
length of some hadrons (and of photons) in one or all materials. It can be
used to force a larger frequency of interactions in a low-density medium,
and it is essential in all shielding calculations for electron accelerators.
Two biasing techniques were implemented by Fasso` and Ferrari, which are
applicable only to low-energy neutrons.
Neutron Non Analogue Absorption (or survival biasing) was derived from
MORSE where it was systematically applied and out of user control. In
FLUKA it was generalised to give full freedom to the user to fix the
ratio between scattering and absorption probability in selected
regions and within a chosen energy range. While it is mandatory in
some problems in order to keep neutron slowing down under control, it
is also possible to switch it off completely to get an analogue
simulation.
Neutron Biased Downscattering, also for low-energy neutrons, gives the
possibility to accelerate or slow down the moderating process in
selected regions. It is an option not easily managed by the average
user, since it requires a good familiarity with neutronics.
Leading particle biasing, which existed already in EGS4, was deeply
modified in 1994 by Fasso` and Ferrari, by tuning it by region, particle,
interaction type and energy. A special treatment was made for positrons,
to account for the penetrating power of annihilation photons.
In 1997, in the framework of his work for ICARUS and CNGS,
Ferrari implemented biasing of the direction of decay neutrinos.
18.18} Scoring
--------------
The stress put on built-in generalised scoring options is another
aspect of FLUKA "philosophy" which differentiates it from many other
programs where users are supposed to write their own ad-hoc scoring
routines for each problem. This characteristics, which was already
typical of the old Ranft codes, has allowed to develop in the modern
FLUKA some rather sophisticated scoring algorithms that would have been
too complex for a generic user to program. For instance the "track-length
apportioning" technique, introduced in 1990 by Fasso` and Ferrari,
used in dose and fluence binning, which computes the exact length of
segment travelled by the particle in each bin of a geometry independent
grid. This technique ensures fast convergence even when the scoring
mesh is much smaller than the charged particle step.
Different kinds of fluence estimators (track-length, collision,
boundary crossing) were implemented in 1990-1992, replacing the
corresponding old ones. The dimension limitations (number of
energy intervals) were removed and replaced by a much larger
flexibility due to dynamical memory allocation. Scoring as a function
of angle with respect to the normal to a surface at the point of
crossing was also introduced. Facilities were made available to score
event by event energy deposition and coincidences or anti-coincidences
between energy deposition signals in different regions, and to study
fluctuations between different particle histories.
The pre-existent option to write a collision file was completely
re-written and adapted to the more extended capabilities of the new
code. In 1991, time gates became applicable to most scoring
facilities, allowing to ignore delayed radiation components such as
multiply scattered low energy neutrons.
In 1994, two new options were added: residual nuclei scoring and
scoring of particle yields as a function of angle with respect to a
fixed direction. In the latter case, several new quantities can be
scored, such as rapidity, various kinematical quantities in the lab
and in the centre-of-mass frame, Feynman-x etc.
In 2005, the possibility to follow on-line the radiation from unstable
residual nuclei has been implemented, together with an exact analytical
calculation (Bateman equations) of activity evolution during irradiation
an cooling down. As a consequence, results for production of residuals
and their effects as a function of time can be performed in the same run.
18.19} Heavy ions
-----------------
Heavy ion transport, energy loss, effective charge and associated
fluctuations, multiple scattering, was developed by Ferrari as early as
1998 largely based on already existing tools in FLUKA.
There was an increasing demand for extending the FLUKA interaction models
to heavy ions, both for basic and applied physics applications (cosmic rays,
hadrotherapy, radiation problems in space). A long standing collaboration has
been going on since 1997 with Prof. L. Pinsky, chair of the Physics Department
at the University of Houston. This collaboration became formal in 2000 with
a NASA Grant covering three years of FLUKA developments in the field of heavy
ion transport and interactions, as well as the development of user friendly
tools based on ROOT for a better management of the code (project FLEUR).
Further support came from ASI, as a grant to a collaborating group in Milan
for hiring a person for one year devoted to these issues.
The DPMJET code has been interfaced to cover the high (> 5 GeV/n) energy range,
and an extensively modified version of the RQMD-2.4 code is used at lower
energies.
At very low energy, below ~0.1 GeV/n, a treatment based on the Boltzmann
Master Equation (BME) has been implemented [Cav96,Cav01,Cer06].
In 2004, a model for electromagnetic dissociation of ions in ion-ion
interactions has been implemented [Bal04].
18.20} DPMJET interface
-----------------------
DPMJET is a high energy hadron-hadron, hadron-nucleus and nucleus-nucleus
interaction model developed by J. Ranft, S. Roesler and R. Engel, capable
to describe interactions from several GeV per nucleon up to the highest
cosmic ray energies. There are strong ties between the FLUKA and the
DPMJET teams (with J. Ranft being author of both) and the collaboration is
going on since the mid 90's. An interface with DPMJET-2.5 was developed by
Toni Empl (Houston), Ferrari and Ranft [Emp02]. The interface allows to treat
arbitrary ion interactions in FLUKA at whichever energy in excess of 5
GeV/n. The excited projectile and target residual leftovers are passed
back to the FLUKA evaporation/fission/break up routines for the final
deexcitation and "low" (in the excited residual rest frame) energy particle
production. As part of the interface work a new fast multiion/multienergy
initialisation scheme has been developed for DPMJET and a new cross section
algorithm has been worked out for runtime calculations based on a fine mesh
of DPMJET runs with various ions and energies.
An interface with the DPMJET-3 [Roe01] has been developed in
collaboration with Stefan Roesler (CERN) and is now available.
18.21} RQMD interfaces
----------------------
A very similar interface has been developed by Francesco Cerutti
(University of Milan and INFN), Toni Empl (University of Houston), Alfredo
Ferrari, Maria Vittoria Garzelli (University of Milan and INFN) and Johannes
Ranft, with the Relativistic Quantum Molecular Dynamics code (RQMD) of
H. Sorge. Also in this case the evaporation and deexcitation of the excited
residuals is performed by FLUKA. Significant intervention on the original code
were necessary to bring under control the energy/momentum balance of each
interaction to allow for a meaningful excitation energy calculation.
This brand new development allows FLUKA to be used for ions from roughly
100 MeV/n up to cosmic ray energies. The results of this modified model can
be found in [Aig05, And04, Fas03]. Work is in progress to develop new original
code to replace this RQMD interface.
18.22} Neutrino interactions
----------------------------
Quasi Elastic neutrino interactions have been implemented in FLUKA in
1997. Between 1998 and 2008, an interface to an external neutrino
generator has been used, although not distributed. This interface was
embedded into the PEANUT model, and allowed interesting studies of
nuclear effects in neutrino interactions.
In 2008, a new generator for neutrino interactions on nucleons and
nuclei has been developed and implemented in FLUKA. The
neutrino-nucleon event generator handles Deep Inelastic Scattering
(NUNDIS, mainly developed by Mattias Lantz) and production of delta
resonances (NUNRES). Hadronisation after DIS is handled by the same
hadronisation model used in hadron-hadron interactions. NUNDIS and
NUNRES are embedded in PEANUT to simulate neutrino-nucleus reactions.
18.23} Code size
----------------
The present FLUKA alone totals about 620,000 lines of Fortran code (28
MBytes of source code). There are also some 90,000 lines (4 MBytes) of
ancillary codes, not part of FLUKA and not distributed, used offline to
generate and/or test the various data files required for running.
Out of all these codes, FLUKA and ancillaries, roughly 1/3 are associated
with PEANUT.
As a term of comparison, the latest release of the previous FLUKA generation,
FLUKA87, contained roughly 30,000 lines (1.2 MBytes), out of which very few
survive in the present code, mostly in the high energy generator and in the
old intermediate energy one.
1********************************************************************************
19} References
********************************************************************************
Aar84 P.A. Aarnio, J. Ranft and G.R. Stevenson
A long writeup of the FLUKA82 program
CERN Divisional Report TIS-RP/106-Rev. (1984)
Aar84a P.A. Aarnio, J. Ranft and G.R. Stevenson
First update of FLUKA82, including particle production with a
multi-chain fragmentation model (EVENTQ)
CERN TIS-RP/129 (1984)
Aar86 P.A. Aarnio, A. Fass\`o, H.-J. Moehring, J. Ranft, G.R. Stevenson
FLUKA86 user's guide
CERN Divisional Report TIS-RP/168 (1986)
Aar87 P.A. Aarnio, J. Lindgren, J. Ranft, A. Fass\`o, G.R. Stevenson
Enhancements to the FLUKA86 program (FLUKA87)
CERN Divisional Report TIS-RP/190 (1987)
Aar93 P.A. Aarnio, A. Fass\`o, A. Ferrari, H.-J. Moehring,
J. Ranft, P.R. Sala, G.R. Stevenson, J.M. Zazula
FLUKA: hadronic benchmarks and applications
Proc. MC93 Int. Conf. on Monte Carlo Simulation in High Energy and
Nuclear Physics, Tallahassee (Florida), 22-26 February 1993.
Ed. by P. Dragovitsch, S.L. Linn, M. Burbank, World
Scientific, Singapore 1994, p. 88-99
Aar93a P.A. Aarnio, A. Fass\`o, A. Ferrari, H.-J. Moehring,
J. Ranft, P.R. Sala, G.R. Stevenson, J.M. Zazula
Electron-photon transport: always so good as we think? Experience
with FLUKA
Proc. MC93 Int. Conf. on Monte Carlo Simulation in High Energy and
Nuclear Physics, Tallahassee (Florida), 22-26 February 1993.
Ed. by P. Dragovitsch, S.L. Linn, M. Burbank, World
Scientific, Singapore 1994, p. 100-110
Agr96 V. Agrawal, T.K. Gaisser, P. Lipari and T. Stanev
Atmospheric neutrino flux above 1 GeV
Phys. Rev. D53, 1314-1323 (1996)
Aig05 H. Aiginger, V. Andersen, F. Ballarini, G. Battistoni, M. Campanella,
M. Carboni, F. Cerutti, A. Empl, W. Enghardt, A. Fass\`o, A. Ferrari,
E. Gadioli, M.V. Garzelli, K.S. Lee, A. Ottolenghi, K. Parodi,
M. Pelliccioni, L. Pinsky, J. Ranft, S. Roesler, P.R. Sala,
D. Scannicchio, G. Smirnov, F. Sommerer, T. Wilson and N. Zapp
The FLUKA code: new developments and application to 1 GeV/n Iron beams
Adv. Space Res. 35, 214-222 (2005)
Alc00 J. Alcaraz et al. (AMS Coll.)
Cosmic protons
Phys. Lett. B490 (2000) 27-35
Alc00a J. Alcaraz et al. (AMS Coll.)
Helium in near Earth orbit
Phys. Lett. B494 (2000) 193-202
Als86 R.G. Alsmiller Jr., J.M. Barnes, J.D. Drischler
Neutron-photon multigroup cross sections for neutron energies
=< 400 MeV (Revision 1)
Nucl. Instr. Meth. Phys. Res. A249, 455-460 (1986)
Als89 F.S. Alsmiller and R.G. Alsmiller, Jr.
Inclusion of correlations in the empirical selection of intranuclear
cascade nucleons from high energy hadron-nucleus collisions
Nucl. Instr. Meth. A278, 713-721 (1989)
Als90 R.G. Alsmiller, Jr., F.S. Alsmiller and O.W. Hermann
The high-energy transport code HETC88 and comparisons with
experimental data
Nucl. Instr. Meth. A295, 337-343 (1990)
And04 V. Andersen, F. Ballarini, G. Battistoni, M. Campanella, M. Carboni,
F. Cerutti, A. Empl, A. Fass\`o, A. Ferrari, E. Gadioli, M.V. Garzelli,
K. Lee, A. Ottolenghi, M. Pelliccioni, L.S. Pinsky, J. Ranft, S. Roesler,
P.R. Sala and T.L. Wilson
The FLUKA code for space applications: recent developments
Adv. Space Res. 34, 1338--1346 (2004)
Ant96 M. Antonelli, G. Battistoni, A. Ferrari, P.R. Sala
Study of radiative muon interactions at 300 GeV
Proc. VI Int. Conf. on Calorimetry in High Energy Physics
(Calor 96), Frascati (Italy), 8-14 June 1996. Ed. A. Antonelli,
S. Bianco, A. Calcaterra, F.L. Fabbri
Frascati Physics Series Vol. VI, p. 561-570 (1997)
Atc80 F. Atchison
Spallation and fission in heavy metal nuclei under medium energy
proton bombardment
Meeting on Targets for neutron beam spallation sources,
Ed. G. Bauer, KFA J\"ulich Germany,
J\"ul-conf-34 (1980)
Bad96 G.D. Badhwar and P.M. O'Neill
Galactic cosmic radiation model and its applications
Adv. Space. Res. 17 no.2, 7-17 (1996)
Bal04 F. Ballarini, G. Battistoni, F. Cerutti, A. Empl, A. Fasso`,
A. Ferrari, E. Gadioli, M.V. Garzelli, A. Ottolenghi, L.S. Pinsky, J. Ranft,
S. Roesler, P.R. Sala and G. Smirnov
Nuclear Models in FLUKA: Present Capabilities, Open Problems, and
Future Improvements
AIP Conference Proceedings 769, 1197-1202 (2005)
Bar56 W.H. Barkas, W. Birnbaum, F.M. Smith
Mass-ratio method applied to the measurement of L-meson masses and the
energy balance in pion decay
Phys. Rev. 101, 778-795 (1956)
Bar63 W.H. Barkas, J.N. Dyer, H.H. Heckman
Resolution of the Sigma^- -mass anomaly
Phys. Rev. Lett. 11, 26-28 (1963) (Erratum 11, 138 (1963))
Bar72 V.S. Barashenkov, V.D. Toneev
Interactions of High Energy Particles and Nuclei with Nuclei
(in Russian)
Moscow, Atomizdat (1972)
Bat00 G. Battistoni, A. Ferrari, P. Lipari, T. Montaruli, P.R. Sala and
T. Rancati
A 3-dimensional calculation of the atmospheric neutrino fluxes
Astropart. Phys. 12, 315-333 (2000)
Bat03 A. Fasso`, A. Ferrari, S. Roesler, J. Ranft, P.R. Sala, G. Battistoni,
M. Campanella, F. Cerutti, L. De Biaggi, E. Gadioli, M.V. Garzelli,
F. Ballarini, A. Ottolenghi, D. Scannicchio, M. Carboni, M. Pelliccioni,
R. Villari, V. Andersen, A. Empl, K. Lee, L. Pinsky, T.N. Wilson and
N. Zapp,
The FLUKA code: Present applications and future developments
Computing in High Energy and Nuclear Physics 2003 Conference (CHEP2003),
La Jolla, CA, USA, March 24-28, 2003, (paper MOMT004),
Conf C0303241 (2003), arXiv:physics/0306162.
Bat03a G. Battistoni, A. Ferrari, T. Montaruli and P. R. Sala
The FLUKA atmospheric neutrino flux calculation
Astropart. Phys. 19, 269-290 (2003)
Bau78 T.H. Bauer, R.D. Spital, D.R. Yennie, F.M. Pipkin
The hadronic properties of the photon in high-energy interactions
Rev. Mod. Phys. 50, 261-436 (1978)
Bet30 H.A. Bethe
Zur Theorie des Durchgangs schneller Korpuskularstrahlen durch
Materie
Ann. Physik 5, 325-400 (1930)
Selected Works of Hans A. Bethe, World Scientific
Singapore 1996, p. 77-154
Bet32 H.A. Bethe
Bremsformel f\"ur Elektronen relativistischer Geschwindigkeit
Z. Phys. 76, 293-299 (1932)
Bet34 H.A. Bethe and W. Heitler
On the stopping of fast particles and on the creation of
positive electrons
Proc. Roy. Soc. A146, 83-112 (1934)
Selected Works of Hans A. Bethe, World Scientific
Singapore-New Jersey-London-Hong Kong 1996, p. 187-218
Bet53 H.A. Bethe
Moliere's theory of multiple scattering
Phys. Rev. 89, 1256-1266 (1953)
Big75 F. Biggs, L.B. Mendelsohn and J.B. Mann
Hartree-Fock Compton profiles for the elements
At. Data Nucl. Data Tables 16, 201-309 (1975)
Bla71 M. Blann
Hybrid Model for Pre-Equilibrium Decay in Nuclear Reactions
Phys. Rev. Lett. 27, 337-340 (1971)
Bla72 M. Blann
Importance of the Nuclear Density Distribution on
Pre-equilibrium Decay
Phys. Rev. Lett. 28, 757-759 (1972)
Bla75 M. Blann
Preequilibrium decay
Ann. Rev. Nucl. Sci. 25, 123-165 (1975)
Bla83a M. Blann and H.K. Vonach
Global test of modified precompound decay models
Phys. Rev. C28, 1475-1492 (1983)
Bla83b M. Blann
Precompound analyses of spectra and yields following nuclear
capture of stopped pi-
Phys. Rev. C28, 1648-1662 (1983)
Blo33 F. Bloch
Zur Bremsung rasch bewegter Teilchen beim Durchgang durch
die Materie
Ann. Physik 16, 287 (1933)
Blo33a F. Bloch
Bremsverm\"ogen von Atomen mit mehreren Elektronen
Z. Phys. 81, 363-376 (1933)
Bir64 J.B. Birks
The theory and practice of scintillation counting
Pergamon Press, Oxford 1964
Boe14 T.T. Boehlen, F. Cerutti, M.P.W. Chin, A. Fasso`, A. Ferrari,
P.G. Ortega, A. Mairani, P.R. Sala, G. Smirnov and V. Vlachoudis
The FLUKA Code: Developments and Challenges for High Energy and
Medical Applications
Nuclear Data Sheets 120, 211-214 (2014)
Cab04 R.A. Caballero-Lopez and H. Moraal
Limitations of the force field equation to describe cosmic ray
modulation
J. Geophys. Res. Space Phys. 109, A01101 (2004)
Cap80 A. Capella, U. Sukhatme, J. Tran Thanh Van
Soft multihadron production from partonic structure and
fragmentation functions
Z. Phys. C3, 329-337 (1980)
Cap80a A. Capella, J. Tran Thanh Van
A new parton model description of soft hadron-nucleus collisions
Phys. Lett. 93B, 146-150 (1980)
Cap94 A. Capella, U. Sukhatme, C.-I. Tan and J. Tran Thanh Van
Dual parton model
Phys. Rep. 236, 225-330 (1994)
Car75 L.L. Carter and E.D. Cashwell
Particle-transport simulation with the Monte Carlo method
ERDA Crit. Rev. Ser., National Technical Information Service,
Springfield 1975
Cav96 M. Cavinato, E. Fabrici, E. Gadioli, E. Gadioli Erba, E. Galbiati
Monte Carlo calculations using the Boltzmann Master Equation theory
of nuclear reactions
Phys. Lett. B382, 1-5 (1996)
Cav97 D. Cavalli, A. Ferrari, P.R. Sala
Simulation of nuclear effects in neutrino interactions
ICARUS-TM-97/18 (1997)
Cav01 M. Cavinato, E. Fabrici, E. Gadioli, E. Gadioli Erba, G. Riva
Monte Carlo calculations of heavy ion cross-sections based on the
Boltzmann Master equation theory
Nucl. Phys. A679, 753-764 (2001)
Cer06 F. Cerutti, G. Battistoni, G. Capezzali, P. Colleoni, A. Ferrari,
E. Gadioli, A. Mairani, A. Pepe,
Low energy nucleus-nucleus reactions: the BME approach and its interface
with FLUKA
Proc. 11th International Conference on Nuclear Reaction Mechanisms,
Varenna (Italy) June 12-16, 2006
Cha91 M.B. Chadwick, P. Oblozinsky, P.E. Hodgson and G. Reffo
Pauli-blocking in the quasideuteron model of photoabsorption
Phys. Rev. C44, 814-823 (1991)
CLIMAX http://ulysses.sr.unh.edu/NeutronMonitor/Misc/neutron2.html
Clo88 P. Cloth, D. Filges, R.D. Neef, G. Sterzenbach, Ch. Reul,
T.W. Armstrong, B.L. Colborn, B. Anders and H. Brueckmann
HERMES, a Monte Carlo program system for beam-materials
interaction studies
Report KFA/J\"ul-2203 (1988)
Col00 G. Collazuol, A. Ferrari, A. Guglielmi, P.R. Sala,
Hadronic models and experimental data for the neutrino
beam production
Nucl. Instr. Meth. Phys. Res. A449, 609-623 (2000)
Cuc91 E. Cuccoli, A. Ferrari, G.C. Panini
A group library from JEF 1.1 for flux calculations in the LHC
machine detectors
JEF-DOC-340 (91) (1991)
Dan75 H. Daniel
Formation of Mesonic Atoms in Condensed Matter
Phys. Rev. Lett. 35, 1649--1651 (1975)
Dre61 L. Dresner
EVAP - A Fortran program for calculating the evaporation of
various particles from excited compound nuclei
Oak Ridge National Laboratory report ORNL-TM-196 (1961)
Emm75 M.B. Emmett
The MORSE Monte Carlo radiation transport system
Oak Ridge National Laboratory report ORNL-4972 (1975)
Revision: ORNL-4972/R1 (1983)
Revision: ORNL-4972/R2 (1984)
Emp02 A. Empl, A. Fasso`, A. Ferrari, J. Ranft and P.R. Sala,
Progress and Applications of FLUKA
Invited talk at the 12th RPSD Topical Meeting, April 14-18, 2002,
Santa Fe, New Mexico, USA,
electronic proceedings, American Nuclear Society ANS Order No. 700293,
ISBN 8-89448-667-5
Eng67 W.W. Engle, Jr.
A User's Manual for ANISN, A One-Dimensional Discrete Ordinate
Transport Code with Anisotropic Scattering
Oak Ridge Report K-1693 (1967)
EPDL97 D.E. Cullen, J.H. Hubbell and L. Kissel
EPDL97: the Evaluated Photon Data Library, '97 Version
UCRL--50400, Vol. 6, Rev. 5 (1997)
Fas78 A. Fasso`, G.R. Stevenson
Air activity in the NAHIF complex
CERN Internal Report HS-RP/IR/78-45 (1978)
Fas87 A. Fasso`
The CERN version of MORSE and its application to
strong-attenuation shielding problems
Proc. Topical Conference on Theory and Practices in Radiation
Protection and Shielding, Knoxville (Tennessee) 22-24 April 1987,
p. 462-471
Fas93 A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala, G.R. Stevenson,
J.M. Zazula
FLUKA92
Proc. Workshop on Simulating Accelerator Radiation
Environments, Santa Fe (New Mexico) 11-15 January 1993,
Los Alamos report LA-12835-C (1994), p. 134-144
Fas93a A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala
FLUKA: present status and future developments
Proc. IV Int. Conf. on Calorimetry in High Energy Physics,
La Biodola (Italy) 21-26 September 1993, Ed. A. Menzione and
A. Scribano, World Scientific, p. 493-502
Fas93b A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala, G.R. Stevenson,
J.M. Zazula
A comparison of FLUKA simulations with measurements of fluence and
dose in calorimeter structures
Nucl. Instr. Meth. Phys. Res. A332, 459-468 (1993)
Fas94 A. Fasso`, A. Ferrari, P.R. Sala
Designing electron accelerator shielding with FLUKA
Proc. of the 8th Int. Conf. on Radiation Shielding, Arlington (Texas)
24-28 April (1994), p. 643-649
Fas95 A. Fasso`, A. Ferrari, J. Ranft and P.R. Sala
FLUKA: performances and applications in the intermediate energy range
Proc. of an AEN/NEA Specialists' Meeting on Shielding Aspects
of Accelerators, Targets and Irradiation Facilities, Arlington (Texas)
28-29 April 1994. OECD Documents, Paris 1995, p. 287-304
Fas97 A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala
An update about FLUKA
Proc. 2nd Workshop on Simulating Accelerator Radiation
Environments, CERN, Geneva (Switzerland), 9-11 October 1995,
Ed. G.R. Stevenson, CERN Report TIS-RP/97-05, p. 158-170
Fas97a A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala
New developments in FLUKA modelling hadronic and EM interactions
Proc. 3rd Workshop on Simulating Accelerator Radiation
Environments, KEK, Tsukuba (Japan) 7-9 May 1997.
Ed. H. Hirayama, KEK Proceedings 97-5 (1997), p. 32-43
Fas98 A. Fasso`, A. Ferrari, P.R. Sala,
Total Giant Resonance photonuclear cross sections for light nuclei:
A database for the FLUKA Monte Carlo transport code
Proc. 3rd Specialists' Meeting on Shielding Aspects of Accelerators,
Targets and Irradiation Facilities (SATIF 3), 12-13 May 1997, Tohoku
University, Sendai (Japan)
OECD-NEA 1998, p. 61
Fas01 A. Fasso`, A. Ferrari, P.R. Sala,
Electron-photon transport in FLUKA: status
Invited talk in the Proceedings of the Monte Carlo 2000 Conference, Lisbon,
October 23-26 2000, A. Kling, F. Barao, M. Nakagawa, L. T'avora,
P. Vaz eds., Springer-Verlag Berlin, p. 159-164 (2001)
Fas01a A. Fasso`, A. Ferrari, J. Ranft, P.R. Sala,
FLUKA: Status and Prospective for Hadronic Applications
Invited talk in the Proceedings of the Monte Carlo 2000 Conference, Lisbon,
October 23-26 2000, A. Kling, F. Barao, M. Nakagawa, L. T'avora,
P. Vaz eds., Springer-Verlag Berlin, p. 955-960 (2001)
Fas01b A. Fasso`, A. Ferrari, P.R. Sala and G. Tsiledakis
Implementation of Xenon capture gammas in FLUKA for TRD background
calculations
CERN Report ALICE-INT-2001-28 (2001)
Fas03 A. Fasso`, A. Ferrari, S. Roesler, P.R. Sala, G. Battistoni, F. Cerutti,
E. Gadioli, M.V. Garzelli, F. Ballarini, A. Ottolenghi, A. Empl
and J. Ranft
The physics models of FLUKA: status and recent developments
Computing in High Energy and Nuclear Physics 2003 Conference (CHEP2003),
La Jolla, CA, USA, March 24--28, 2003, (paper MOMT005),
eConf C0303241 (2003), arXiv:hep-ph/0306267
Fas10 A. Fasso, A. Ferrari, G. Smirnov, F. Sommerer, V. Vlachoudis,
FLUKA Realistic Modeling of Radiation Induced Damage
Proceedings of a Joint International Conference on Supercomputing in
Nuclear Applications and Monte Carlo 2010 (SNA + MC2010), Tokyo, Japan,
October 17-21, 2010
Fen81 I.J. Feng, R.H. Pratt and H.K. Tseng
Positron bremsstrahlung
Phys. Rev. A24, 1358-1363 (1981)
Fer91a A. Ferrari, P.R. Sala, R. Guaraldi, F. Padoani
An improved multiple scattering model for charged particle
transport
Presented at the Int. Conf. on Radiation Physics, Dubrovnik, 1991
Nucl. Instr. Meth. in Phys. Res. B71, 412-426 (1992)
Fer91b A. Ferrari, P.R. Sala, A. Fass\`o, G.R. Stevenson
Can we predict radiation levels in calorimeters?
Proc. 2nd Int. Conference on Calorimetry in
High-Energy Physics, 14-18 October 1991, Capri (Italy)
World Scientific, Singapore 1992, p. 101-116
CERN EAGLE Internal Note CAL-NO-005 (1991)
Fer94 A. Ferrari, P.R. Sala
A new model for hadronic interactions at intermediate
energies for the FLUKA code
Proc. MC93 Int. Conf. on Monte Carlo Simulation in High Energy and
Nuclear Physics, Tallahassee (Florida), 22-26 February 1993.
Ed. by P. Dragovitsch, S.L. Linn, M. Burbank, World
Scientific, Singapore 1994, p. 277-288
Fer95 A. Ferrari, P.R. Sala
Physics of showers induced by accelerator beams
Proc. 1995 "Fr\'ed\'eric Joliot" Summer School in Reactor
Physics, 22-30 August 1995, Cadarache (France).
Ed. CEA, Vol 1, lecture 5b (1996)
Fer96 A. Ferrari, P.R. Sala, J. Ranft, and S. Roesler
The production of residual nuclei in peripheral high energy
nucleus-nucleus interactions
Z. Phys. C71, 75-86 (1996)
Fer96a A. Ferrari, P.R. Sala, J. Ranft, and S. Roesler
Cascade particles, nuclear evaporation, and residual nuclei
in high energy hadron-nucleus interactions"
Z. Phys. C70, 413-426 (1996)
Fer96b A. Ferrari, and P.R. Sala
The Physics of High Energy Reactions
Proc. of the Workshop on Nuclear Reaction Data and Nuclear Reactors
Physics, Design and Safety, International Centre for Theoretical
Physics, Miramare-Trieste (Italy) 15 April-17 May 1996,
Ed. A. Gandini and G. Reffo, World Scientific, p. 424 (1998).
Fer97 A. Ferrari, and P.R. Sala
Intermediate and high energy models in FLUKA: improvements,
benchmarks and applications
Proc. Int. Conf. on Nuclear Data for Science and Technology,
NDST-97, Trieste (Italy), 19-24 May 1997. Ed. G. Reffo, A. Ventura
and C. Grandi (Bologna: Italian Phys. Soc.) Vol. 59, Part I,
p. 247 (1997)
Fer97a A. Ferrari, T. Rancati, and P.R. Sala
FLUKA applications in high energy problems: from LHC to ICARUS and
atmospheric showers
Proc. 3rd Workshop on Simulating Accelerator Radiation Environments
(SARE 3), 7-9 May 1997 KEK, Tsukuba (Japan). Ed. H. Hirayama
KEK Proceedings 97-5 (1997), p. 165-175
Fer98 A. Ferrari, and P.R. Sala
Treating high energy showers
In: Training course on the use of MCNP in Radiation Protection and
Dosimetry, ENEA, Roma (1998), p. 233-264
Fla09 V. Vlachoudis
FLAIR: A Powerful But User Friendly Graphical Interface For FLUKA
Proc. Int. Conf. on Mathematics, Computational Methods & Reactor Physics
(M&C 2009), Saratoga Springs, New York, 2009
Gab89 T.A. Gabriel, J.E. Brau and B.L. Bishop
The Physics of Compensating Calorimetry and the New CALOR89 Code System
Oak Ridge Report ORNL/TM-11060 (1989)
Gai01 T.K. Gaisser, M. Honda, P. Lipari and T. Stanev
Primary spectrum to 1 TeV and beyond
Proc. 27th International Cosmic Ray Conference (ICRC 2001), Hamburg,
Germany, 7-15 Aug. 2001, p. 1643-1646 (2001)
Gei65 J.A. Geibel, J. Ranft
Part VI: Monte Carlo calculation of the nucleon meson cascade
in shielding materials
Nucl. Instr. Meth. 32, 65-69 (1965)
Gle68 L.J. Gleeson and W.I. Axford
Solar Modulation of Galactic Cosmic Rays
Astrophys. J., 154, 1011, 1968
Goe71 K. Goebel, Ed.
Radiation problems encountered in the design of multi-GeV research
facilities:
E. Freytag, J. Ranft, "Hadronic and electromagnetic cascades"
K. Goebel, L. Hoffmann, J. Ranft, G.R. Stevenson, "Estimate of
the hadronic cascade initiated by high-energy particles"
K. Goebel, J. Ranft, G.R. Stevenson, "Induced radioactivity"
J.H.B. Madsen, M.H. Van de Voorde, J. Ranft, G.B. Stapleton,
"Radiation-induced damage to machine components and
radiation heating"
J. Ranft, "The interaction of protons in machine components
and beam loss distributions"
CERN Yellow Report 71-21 (1971)
Goe73 K. Goebel, J. Ranft, J.T. Routti, G.R. Stevenson
Estimation of remanent dose rates from induced radioactivity in
the SPS ring and target areas
CERN LABII-RA/73-5 (1973)
Gub67 W. Guber, J. Nagel, R. Goldstein, P.S. Mettelman,
and M.H. Kalos
A geometric description technique suitable for computer analysis
of both the nuclear and conventional vulnerability of armored
military vehicles
Mathematical Applications Group, Inc. Report MAGI-6701 (1967)
Han79 K. Haenssgen, R. Kirschner, J. Ranft, H. Wetzig
Monte Carlo simulation of inelastic hadron-hadron reactions in
the medium energy range (sqrt{s} <~ 3 GeV). Description
of the model used and of the Monte Carlo code HADRIN
University of Leipzig report KMU-HEP-79-07 (1979)
Han80 K. Haenssgen, R. Kirschner, J. Ranft, H. Wetzig
Monte-Carlo simulation of inelastic hadron nucleus reactions.
Description of the model and computer code NUCRIN
University of Leipzig report KMU-HEP-80-07 (1980)
Han84 K. Haenssgen, J. Ranft
Hadronic event generation for hadron cascade calculations and
detector simulation I. Inelastic hadron nucleon collisions at
energies below 5 GeV
Nucl. Sci. Eng. 88, 537-550 (1984)
Han84a K. Haenssgen, H-J. Moehring, J. Ranft
Hadronic event generation for hadron cascade calculations and
detector simulation II. Inelastic hadron-nucleus collisions at
energies below 5 GeV
Nucl. Sci. Eng. 88, 551-566 (1984)
Han84b K. Haenssgen, S. Ritter
The Monte Carlo code DECAY to simulate the decay of baryon and
meson resonances
University of Leipzig report KMU-HEP-79-14 (1979)
Comp. Phys. Comm. 31, 411-418 (1984)
Han86 K. Haenssgen, J. Ranft
The Monte Carlo code HADRIN to simulate inelastic hadron-nucleon
interactions at laboratory energies below 5 GeV
Comp. Phys. Comm. 39, 37-51 (1986)
Han86a K. Haenssgen, J. Ranft
The Monte Carlo code NUCRIN to simulate inelastic hadron-nucleus
interactions at laboratory energies below 5 GeV
Comp. Phys. Comm. 39, 53-70 (1986)
Han87 K. Haenssgen
Hadronic event generation for hadron cascade calculations and
detector simulation IV. The application of the intranuclear cascade model
to reactions of pions, nucleons, kaons, and their antiparticles
with nuclei below 6 GeV/c
Nucl. Sci. Eng. 95, 135-147 (1987)
Hof75a M. Hoefert, F. Coninckx, J.M. Hanon, Ch. Steinbach
The prediction of radiation levels from induced radioactivity:
discussion of an internal dump target in the PS
CERN Divisional Report DI/HP/185 (1975)
Hof75b M. Hoefert, A. Bonifas
Measurement odf radiation parameters for the prediction of
dose-rates from induced radioactivity
CERN Internal Report HP-75-148 (1975)
ICRP60 International Commission on Radiological Protection, ICRP
Publication 60, Annals of the ICRP 21, 1-3 (1991)
ICRU84 International Commission on Radiation Units and Measurements
Stopping powers for electrons and positrons
ICRU Report 37, Oxford University Press (1984)
Ign75 A.V. Ignatyuk, G.N. Smirenkin and A.S. Tishin
Phenomenological Description of the Energy Dependence of the Level
Density Parameter
Yad. Fiz. 21, 485-490 (1975)
Sov. J. Nucl. Phys. 21, 255-257 (1975)
Ins09 Insoo Jun, Wousik Kim and R. Evans
Electron Nonionizing Energy Loss for Device Applications
IEEE Trans. Nucl. Sci. 56, 3229-3235 (2009)
Jaa73 R. Jaarsma and H. Rief
TIMOC 72 code manual
Ispra report EUR 5016e (1973)
Jam90 F. James
A review of pseudorandom number generators
Comp. Phys. Comm. 60, 329-344 (1990)
Kim86 L. Kim, R.H. Pratt, S.M. Seltzer, M.J. Berger
Ratio of positron to electron bremsstrahlung energy loss: an
approximate scaling law
Phys. Rev. A33, 3002-3009 (1986)
Koc59 H.W. Koch and J.W. Motz
Bremsstrahlung Cross-Section Formulas and Related Data
Rev. Mod. Phys. 314, 920-955 (1959)
Kow87 H. Kowalski, H.-J. Moehring, T. Tymieniecka
High speed Monte Carlo with neutron component - NEUKA
DESY 87-170 (1987)
Lan44 L.D. Landau
On the energy loss of fast particles by ionization (In Russian)
J. Phys. U.S.S.R., 8, 201 (1944)
Collected papers of L.D. Landau, Pergamon Press, Oxford 1965,
p. 417-424
Lan53 L.D. Landau, I.Ya. Pomeranchuk
The limits of applicability of the theory of bremsstrahlung by
electrons and of creation of pairs at large energies (In Russian)
Dokl. Akad. Nauk SSSR 92, 535-536 (1953)
Collected papers of L.D. Landau, Pergamon Press, Oxford 1965,
p. 586-588
Lan53a L.D. Landau, I.Ya. Pomeranchuk
Electron-cascade processes at ultra-high energies (In Russian)
Dokl. Akad. Nauk SSSR 92, 735-738 (1953)
Collected papers of L.D. Landau, Pergamon Press, Oxford 1965,
p. 589-593
Lic79 H. Lichtenstein, M.O. Cohen, H.A. Steinberg,
E.S. Troubetzkoy, M. Beer
The SAM-CE Monte Carlo system for radiation transport and
criticality calculations in complex configurations (Revision 7.0)
RSIC Computer Code Collection CCC-187 (1979)-/Lic79
Lux91 I. Lux and L. Koblinger
Monte Carlo particle transport methods: neutron and photon
calculations
CRC Press, Boca Raton 1991
Mar04 G. Marsaglia and W.W Tsang
The 64-bit universal RNG
Statistics & Probability Letters 66, 183-187 (2004)
Mar87 G. Marsaglia and A. Zaman
Toward a universal random number generator
Florida State University report FSU-SCRI-87-50 (1987)
Mar91 G. Marsaglia and A. Zaman
A new class of random number generators
Ann. Appl. Probab. 1, 462-480 (1991)
Mig56 A.B. Migdal
Bremsstrahlung and pair production in condensed media at high
energies
Phys. Rev. 103, 1811 (1956)
Mig57 A.B. Migdal
Bremsstrahlung and pair production at high energies in condensed
media
Zh. Exp. Teor. Fiz. SSSR 32, 633-646 (1957)
Sov. Phys. JETP 5, 527-536 (1957)
Moh81 H.-J. Moehring, J. Ranft, J. Sandberg
FLUKA81 - A new version of the hadron cascade code
CERN HS-RP/IR/81-55 (1981)
Moh83 H.-J. Moehring
Hadron-nucleus inelastic cross-sections for use in hadron cascade
calculations at high energies
CERN TIS-RP/116 (1983).
Moh83a H.-J. Moehring, J. Ranft
Hadronic event generation for hadron cascade calculations and
detector simulation III. Application of the model to hadron
cascade calculations
Nucl. Sci. Eng. 89, 247-255 (1985)
Moh85 H.-J. Moehring, J. Ranft, S. Ritter
Particle production in high energy nucleus-nucleus collisions in
dual Monte-Carlo multi-chain fragmentation model
Z. Phys. C27, 419-426 (1985)
Moh89 H.-J. Moehring
On the contribution of electroproduction off nuclei to the
generation of energetic hadrons in electromagnetic showers
DESY 89-150 (1989)
Moh92 H.-J. Moehring, J. Ranft
DTUNUC - Sampling of hadron-nucleus and nucleus-nucleus
interactions according to the dual parton model. Version 1.00
University of Leipzig report UL-HEP 92-02 (1992)
Moh92a H.-J. Moehring, J. Ranft, A. Capella, J. Tran Than Van
Strangeness production in hadron-hadron, hadron-nucleus and
nucleus-nucleus collisions in the Dual Parton Model
University of Leipzig report UL-HEP 92-09 (1992)
Moh92b H.-J. Moehring, J. Ranft, C. Merino, C. Pajares
String fusion in the Dual Parton Model and the production of
antihyperons in heavy ion collisions
University of Leipzig report UL-HEP 92-10 (1992)
Mol47 G.Z. Moli\`ere
Theorie der Streuung schneller geladener Teilchen
I - Einzelstreuung am abgeschirmten Coulomb-Feld
Z. Naturforsch. 2a, 133-145 (1947)
Mol48 G.Z. Moli\`ere
Theorie der Streuung schneller geladener Teilchen II - Mehrfach
und Vielfachstreuung
Z. Naturforsch. 3a, 78-97 (1948)
Mol55 G.Z. Moli\`ere
Theorie der Streuung schneller geladener Teilchen IIIc - Die
Vielfachstreuung von Bahnspuren unter Beruecksichtigung der
statistischen Kopplung
Z. Naturforsch. 10a, 177-211 (1955)
Mot29 N.F. Mott
The scattering of fast electrons by atomic nuclei
Proc. R. Soc. London A124, 425-442 (1929)
Nel85 W.R. Nelson, H. Hirayama, D.W.O. Rogers
The EGS4 code system
SLAC-265 (1985)
NJOY R.E. MacFarlane and A.C. Kahler
Methods for Processing ENDF/B-VII with NJOY
Nucl. Data Sheets 111 2739-2890 (2010)
http://http://t2.lanl.gov/codes/
PDG K. Nakamura et al. (Particle Data Group)
Review of particle physics
J. Phys. G37, 075021 (2010)
http://pdg.lbl.gov/
Pel00 M. Pelliccioni
Overview of fluence-to-effective dose and fluence-to-ambient
dose equivalent conversion coefficients for high energy
radiation calculated using the FLUKA code
Radiation Protection Dosimetry 88 (2000) 279-297
Pon73 L.I. Ponomarev
Molecular Structure Effects on Atomic and Nuclear Capture of Mesons
Annual Review of Nuclear Science, 23, 395--430 (1973)
Pra89 R.E. Prael and H. Lichtenstein
User Guide to LCS: the LAHET Code System
Los Alamos Report LA-UR-89-3014 (1989)
Pra98 R.E. Prael, A. Ferrari, R.K. Tripathi, A. Polanski
Comparison of nucleon cross section parameterization methods
for medium and high energies
Proc. 4th Workshop on Simulating Accelerator Radiation
Environments (SARE4), 14-16 September 1998, Knoxville (Tenn.)
Pra98a R.E. Prael, A. Ferrari, R.K. Tripathi, A. Polanski
Plots supplemental to: "Comparison of nucleon cross section
parameterization methods for medium and high energies"
Los Alamos report LA-UR-98-5843 (1998)
Qia87 S. Qian and A. Van Ginneken
Characteristics of inelastic interactions of high energy hadrons
with atomic electrons
Nucl. Instr. Meth. A256, 285-296 (1987)
Ran64 J. Ranft
Monte Carlo calculation of the nucleon-meson cascade in shielding
materials initiated by incoming proton beams with energies
between 10 and 1000 GeV
CERN Yellow Report 64-47 (1964)
Ran66 J. Ranft
Improved Monte-Carlo calculations of the nucleon-meson cascade
in shielding materials
CERN Report MPS/Int. MU/EP 66-8 (1966)
Ran67 J. Ranft
Improved Monte-Carlo calculation of the nucleon-meson cascade in
shielding material I. Description of the method of calculation
Nucl. Instr. Meth. 48, 133-140 (1967)
Ran70a J. Ranft
Monte Carlo calculation of energy deposition by the nucleon-meson
cascade and total-absorption-nuclear-cascade (TANC) counters
Nucl. Instr. Meth. 81, 29-35 (1970)
Ran70b J. Ranft, K. Goebel
Estimation of induced radioactivity around high energy
accelerators from hadronic cascade star densities obtained from
Monte carlo calculations
CERN Internal Report HP-70-92 (1970)
Ran71 J. Ranft
The interaction of protons in machine components and beam loss
distributions
Chap. II in Goe71
Ran72 J. Ranft
Estimation of radiation problems around high energy accelerators
using calculations of the hadronic cascade in matter
Part. Accel. 3, 129-161 (1972)
Ran72a J. Ranft, J.T. Routti
Hadronic cascade calculations of angular distributions of
integrated secondary particle fluxes from external targets and
new empirical formulae describing particle production in
proton-nucleus collisions
Part. Accel. 4, 101-110 (1972)
Ran74 J. Ranft, J.T. Routti
Monte-Carlo programs for calculating three-dimensional
high-energy (50 MeV-500 GeV) hadron cascades in matter
Comp. Phys. Comm. 7, 327-342 (1974)
Ran79 J. Ranft, W.R. Nelson
Monte Carlo calculation of photon, electron and positron
production from primary proton beams
Nucl. Instr. Meth. 167, 443-448 (1979)
Ran80 J. Ranft
Particle production models. Sampling high-energy
multiparticle events from inclusive single particle distributions
In: Computer Techniques in Radiation Transport and
Dosimetry. Ed. W.R. Nelson, T.M. Jenkins, Plenum Press, (1980),
p. 279-310
Ran80a J. Ranft
The FLUKA and KASPRO hadronic cascade codes
In: Computer Techniques in Radiation Transport and
Dosimetry. Ed. W.R. Nelson, T.M. Jenkins, Plenum Press, (1980),
p. 339-372
Ran83 J. Ranft, S. Ritter
Particle production in hadron-nucleus collisions in a multi-chain
fragmentation model
Z. Phys. C20, 347-355 (1983)
Ran83a J. Ranft, S. Ritter
The Monte-Carlo codes NUCEVT and HADEVT to simulate hadron
production in hadron-nucleus and hadron-hadron collisions
CERN Internal Report TIS-RP/IR/83-23 (1983)
Ran85 J. Ranft, S. Ritter
Rapidity ratios, Feynman-x distributions and forward-backward
correlations in hadron-nucleus collisions in a dual Monte-Carlo
multi-chain fragmentation model
Z. Phys. C27, 569-576 (1985)
Ran85a J. Ranft, S. Ritter
Particle production and correlations in hadron-hadron collisions
in the dual Monte-Carlo chain fragmentation model
Z. Phys. C27, 413-418 (1985)
Ran85b J. Ranft, P.A. Aarnio, G.R. Stevenson
FLUKA82
Presented at the Workshop on Shower Simulation for LEP Experiments,
CERN, Geneva (Switzerland) 29-31 January 1985
CERN TIS-RP/156/CF (1985)
Ran87 J. Ranft
Transverse energy distributions in nucleus-nucleus collisions in
the dual Monte-Carlo multi-chain fragmentation model
Phys. Lett. B188, 379-382 (1987)
Ran87a J. Ranft
The diffractive component of particle production in the dual
multistring fragmentation model
Z. Phys. C33, 517-523 (1987)
Ran87b J. Ranft, W.R. Nelson
Hadron cascades induced by electron and photon beams in the GeV
energy range
Nucl. Instr. Meth. A257, 177-184 (1987)
SLAC-PUB-3959 (1986)
Ran88 J. Ranft
Hadron production in hadron-nucleus and nucleus-nucleus collisions
in the dual Monte Carlo multichain fragmentation model
Phys. Rev. D37, 1842-1850 (1988)
Ran88a J. Ranft
Hadron production in hadron-nucleus and nucleus-nucleus collisions
in a dual parton model modified by a formation zone intranuclear cascade
Z. Phys. C43, 439-446 (1988)
Ran94 J. Ranft and S. Roesler
Single diffractive hadron-nucleus interactions within the Dual Parton
Model
Z. Phys. C62, 329-396 (1994)
Ran95 J. Ranft
Dual parton model at cosmic ray energies
Phys. Rev. D51, 64-84 (1995)
Ran97 J. Ranft
33 years of high energy radiation Monte Carlo calculations in
Europe as seen from CERN
Proc. 2nd Workshop on Simulating Accelerator Radiation
Environments (SARE2), CERN, Geneva, 9-11 October 1995
CERN/TIS-RP/97-05 (1997), p. 1
Rib75 R. Ribberfors
Relationship of the relativistic Compton cross section to the momentum
distribution of bound electron states
Phys. Rev. B12, 2067-2074 (1975)
Erratum: Phys. Rev. B13, 950 (1976)
Rit80 S. Ritter, J. Ranft
Simulation of quark jet fragmentation into mesons and baryons on
the basis of a chain decay model
Acta Phys. Pol. B11, 259-279 (1980)
Rit82 S. Ritter
QCD jets in e+e- -annihilation and the transition into hadrons
Z. Phys. C16, 27-38 (1982)
Rit84 S. Ritter
Monte-Carlo code BAMJET to simulate the fragmentation of quark
and diquark jets
University of Leipzig report KMU-HEP 8302 (1983)
Comp. Phys. Comm. 31, 393-400 (1984)
Rit84a S. Ritter
Monte-Carlo code PARJET to simulate e^+e^- -annihilation events
via QCD Jets
Comp. Phys. Comm. 31, 401-409 (1984)
Roe93 S. Roesler, R. Engel and J. Ranft
The single diffractive component in hadron-hadron collisions within
the two-component Dual Parton Model
Z. Phys. C59 481-488 (1993)
Roe01 S. Roesler, R. Engel and J. Ranft
The Monte Carlo event generator DPMJET-III
Proc. Monte Carlo 2000 Conference, Lisbon, October 23-26 2000,
A. Kling, F. Bar~ao, M. Nakagawa, L. T'avora, P. Vaz eds.,
Springer-Verlag Berlin, p. 1033-1038, 2001.
Roe06 S. Roesler and G.R. Stevenson
deq99.f - A FLUKA user-routine converting fluence into
effective dose and ambient dose equivalent
Technical Note CERN-SC-2006-070-RP-TN, EDMS No. 809389 (2006)
Roe11 K. Roeed, M. Brugger and C. Pignard
PTB irradiation tests of the LHC radiation monitor (RadMon)
CERN ATS Note 2011-012, 2011
http://cds.cern.ch/record/1329478?ln=es
Roe12 K. Roeed, M. Brugger, D. Kramer et al.
Method for measuring mixed field radiation levels relevant for SEEs
at the LHC
IEEE Transactions on Nuclear Science, vol. 59, no. 4, pp. 1040-1047,
2012.
San00 T. Sanuki et al.
Precise Measurement of Cosmic-Ray Proton and Helium Spectra with the
BESS Spectrometer
arXiv:astro-ph/0002481 (2000)
Sar90 E. Sartori
Standard Energy Group Structures Of Cross Section Libraries For
Reactor Shielding, Reactor Cell and Fusion Neutronics Applications:
VITAMIN-J, ECCO--33, ECCO--2000 and XMAS
JEF/DOC-315, Revision 3, 1990
Sau31 F. Sauter
Ueber den atomaren Photoeffekt bei grosser Haerte der
anregenden Strahlung
Ann. der Phys. 9, 217-247 (1931)
Ueber den atomaren Photoeffekt in der K-Schale nach der
relativistischen Wellenmechanik Diracs
Ann. der Phys. 9, 454-488 (1931)
Sch74 H. Schoenbacher
Short write-up of standard RA-Group Monte Carlo programs
available on permanent file on the 7600 computer library
CERN Technical Memorandum LABII-RA/TM/74-5 (1974)
Sel85 S.M. Seltzer, M.J. Berger
Bremsstrahlung spectra from electron interactions with screened
nuclei and orbital electrons
Nucl. Instr. Meth. B12, 95-134 (1985)
Sel86 S.M. Seltzer, M.J. Berger
Bremsstrahlung spectra from electrons with kinetic energy
1 keV-10 GeV incident on screened nuclei and orbital electrons
of neutral atoms with Z = 1-100
At. Data Nucl. Data Tab. 35, 345-418 (1986)
She91 Qing-biao Shen
Systematics of intermediate energy proton nonelastic and neutron
total cross section
IAEA Report INDC(CPR)-020, 1991
Sor89 H. Sorge, H. Stoecker and W. Greiner
Poincar\'e invariant Hamiltonian dynamics: Modelling multi-hadronic
interactions in a phase space approach
Ann. Phys. 192, 266-306 (1989)
Sor89a H. Sorge, H. Stoecker and W. Greiner
Relativistic quantum molecular dynamics approach to nuclear
collisions at ultrarelativistic energies
Nucl. Phys. A498, 567c-576 (1989)
Sor95 H. Sorge
Flavor production in Pb(160A GeV) on Pb collisions: Effect of
color ropes and hadronic rescattering
Phys. Rev. C52, 3291-3314 (1995)
Ste82 R.M. Sternheimer, S.M. Seltzer, M.J. Berger
Density effect for the ionization loss of charged particles in
various substances
Phys. Rev. B26, 6067-6076 (1982)
Ste84 R.M. Sternheimer, M.J. Berger, S.M. Seltzer
Density effect for the ionization loss of charged particles in
various substances
At. Data Nucl. Data Tab. 30, 261-271 (1984)
Sum95 G.P. Summers, E.A. Burke, M.A. Xapsos
Displacement damage analogs to ionizing radiation effects
Rad. Meas. 24, 1-8 (1995)
Ter54 M.L. Ter-Mikaelyan
Bremsstrahlung radiation spectrum in a medium
Dokl. Akad. Nauk SSSR 94, 1033 (1954)
Ter72 M.L. Ter-Mikaelyan
High Energy Electromagnetic Processes in Condensed Media
Wiley & Sons, New York 1972
Tho88 R.H. Thomas and G.R. Stevenson
Radiological Safety Aspects of the Operation of Proton Accelerators
IAEA Technical Reports Series No. 283, Vienna 1988
Tsa74 Y.-S. Tsai
Pair production and bremsstrahlung of charged leptons
Rev. Mod. Phys. 46, 815-851 (1974)
Erratum: Rev. Mod. Phys. 49, 421-423 (1977)
Tym90 T. Tymieniecka, H.-J. Moehring
NEUKA86 Manual
ZEUS-Note 90-097 (1990)
Van75 A. Van Ginneken
CASIM, program to simulate hadronic cascades in bulk matter
Fermilab report FN-272 (1975)
Van86 A. Van Ginneken
Energy loss and angular characteristics of high energy
electromagnetic processes
Nucl. Instr. Meth. A251, 21-39 (1986)
Wet81 H. Wetzig, K. Haenssgen, J. Ranft
Monte-Carlo simulation of elastic hadron nucleus reactions with
the computer code NUCREL
University of Leipzig report KMU-HEP 81-07 (1981).
Zan01 M. Zankl and A. Wittmann
The adult male voxel model "Golem" segmented from whole-body CT
patient data
Radiat. Environm. Biophys. 40, 153-162 (2001)
Zaz90 J.M. Zazula
Implementation of a low energy neutron transport module into a
Monte Carlo hadronic shower code and its applications for
accelerator shielding problems
Prog. Nucl. Energy 24, 385-397 (1990)
Zaz91 J.M. Zazula and K. Tesch
Study of the neutron field from a hadronic cascade in iron:
verification of a Monte Carlo calculational model by comparison
with measured data
Nucl. Instr. Meth. A300, 164-178 (1991)
Zie77 J.F. Ziegler, H.H. Andersen
The stopping and ranges of ions in matter
Vol. 1-4, Pergamon Press, New York-Toronto-Oxford-Sydney-
Frankfurt-Paris 1977