1 *====================================================================* * * * * * * * * * FFFFF L U U K K AAA 222 000 000 888 * * F L U U K K A A 2 2 0 0 0 0 8 8 * * F L U U K K A A 2 0 0 0 0 8 8 * * FFFF L U U KK AAAAA === 2 0 0 0 0 888 * * F L U U K K A A 2 0 0 0 0 8 8 * * F L U U K K A A 2 0 0 0 0 8 8 * * F LLLLL UUU K K A A 22222 000 000 888 * * * * http://www.fluka.org * * * * Copyright (c) 1989-2008 by INFN and CERN * * * * All rights reserved * * Main authors: A.Fasso`, A.Ferrari, J.Ranft, P.R.Sala * * Contributing authors: G.Battistoni, F.Cerutti, T.Empl, * * M.V.Garzelli, M.Lantz, A.Mairani, * * V.Patera, S.Roesler, G.Smirnov, * * F.Sommerer, V.Vlachoudis * * * * 2008 version of the FLUKA code by : * * * * Alberto Fasso` - SLAC * * fasso@slac.stanford.edu * * * * Alfredo Ferrari & Paola Sala - CERN/INFN Milan * * Alfredo.Ferrari@cern.ch, Paola.Sala@mi.infn.it * * Alfredo.Ferrari@mi.infn.it, Paola.Sala@cern.ch * * * * Johannes Ranft - Siegen University * * Johannes.Ranft@cern.ch * * * *====================================================================* 1 26 September 2008 Present (active) authors (since FLUKA89): A. Fasso`, Stanford Linear Accelerator Center, 2575 Sand Hill Road, Menlo Park, CA 94025, USA A. Ferrari, The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland J. Ranft, Universitaet Gesamthochschule Siegen, Fachbereich Physik, D-57068 Siegen, Germany P. R. Sala, Istituto Nazionale di Fisica Nucleare, via Celoria 16, 20133 Milano, Italy Present contributing authors: G. Battistoni, Istituto Nazionale di Fisica Nucleare, via Celoria 16, 20133 Milano, Italy F. Cerutti, The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland A. Empl, Houston University, Texas, USA M. V. Garzelli, Universita' degli Studi di Milano, Physics Department via Celoria 16, 20133 Milano, Italy M. Lantz, Istituto Nazionale di Fisica Nucleare, via Celoria 16, 20133 Milano, Italy A. Mairani, Heidelberger Ionenstrahl-Therapie (HIT), Heidelberg, Germany V. Patera, Universita' La Sapienza, Roma, and INFN Frascati, Italy S. Roesler, The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland G. Smirnov, The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland F. Sommerer, The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland V. Vlachoudis The European Organization for Nuclear Research, 1211 Geneva 23, Switzerland Other authors who contributed 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 FLUKA User license, as established by the FLUKA Coordination Committee Copyright statement and license conditions Copyright Italian National Institute for Nuclear Physics (INFN) and European Organization for Nuclear Research (CERN) ("the FLUKA copyright holders"), 1989-2008. All rights not expressly granted under this license are reserved. This software results from work performed by Alberto Fasso`, Alfredo Ferrari, Johannes Ranft and Paola Sala. INFN and CERN are the exclusive source of distribution of the code, bug fixes and documentation of the FLUKA software. Each official version of FLUKA is identified by a numbering scheme specifying major and minor releases. The FLUKA Coordination Committee or its delegates are able to grant any of the permissions noted in this License Agreement as requiring a specific consent. Any such consent may only be granted in writing. Installation, use, reproduction, display of the FLUKA software ("FLUKA"), in source and binary forms, are permitted free of charge on a non-exclusive basis for internal scientific, non-commercial and non-weapon-related use by non-profit organizations only. Any exercise of these rights is subject to the following conditions: 1. Insertion of the FLUKA code, in whole or in part, into other codes, or its translation into any other computer language are possible only after obtaining prior written permission. Modifications of the FLUKA code are permitted for use by the licensee only, unless authorized in written. 2. FLUKA is non-transferable, non-sub-licensable and may not be distributed in any way, without express written consent, whether in original or modified form. Site-wise or collaboration-wise conditions can be agreed with the FLUKA Coordination Committee. 3. Notwithstanding the above, the licensee may modify and sub-license FLUKA User Routines to third parties in so far as their purpose is limited to the adaptation of input and output interfaces of FLUKA and their modification does not circumvent, replace, add to or modify any of the functions of FLUKA, or extract specific isolated results from any of the individual internal physics models embedded within FLUKA. 4. The licensee shall forthwith license all its modifications of FLUKA to the FLUKA copyright holders, at no cost and with no limitation of use. The licensee acknowledges that the FLUKA copyright holders may insert such modifications into future releases of FLUKA, subject to appropriate acknowledgment of the licensee's contribution. 5. Any publication by the licensee with respect to FLUKA or results obtained from it shall explicitly acknowledge FLUKA by quoting its set of references and the FLUKA copyright holders. The licensee shall not without prior written permission publish documents or results based on a modified form of FLUKA, unless the modification exclusively concerns User Routines for the adaptation of its input and output interfaces which comply with the same restrictions, as defined in section 3) as those which apply to sub-licensing. Any publication of documents or results shall be based only on official FLUKA versions as obtained from the FLUKA website (http://www.fluka.org) or from any authorized mirror. Publication here implies any legal publication to any third party, whether verbal, electronic, visual, in writing or otherwise. 6. The licensee shall ensure that the FLUKA references, copyright statement and license conditions are not altered or removed from FLUKA. Any integration of any portion of FLUKA, in modified or in unmodified form, into any other software package must preserve the internal copyright notices in those portions of FLUKA that have been employed, and must reproduce such notices within any additional global notices included along or embedded within the software into which FLUKA has been integrated. Any portion of FLUKA so integrated, whether modified or unmodified shall continue to be subject to these license conditions. 7. Nothing in this license shall be construed as to grant any rights in any of the FLUKA versions since 1989. In addition, users are not permitted to circumvent any protection in prior distributions of FLUKA that provided for a preset expiration date of the code 8. Versions or parts of the FLUKA source code, entrusted to individuals or groups prior to the enactment of the CERN-INFN Collaboration Agreement, which are listed in Chapter 5 of Annex 1 of the EP-AB-INFN Scientific Agreement (19-02-2003), together with the agreed conditions of use, are subject to this License Agreement in addition to any other restrictions on the scope of use that may have been part of the initial use grant. 9. Commercial use of FLUKA, outside the scope of this license, must be negotiated with the copyright holders 10. DISCLAIMER THIS SOFTWARE 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 THE SOFTWARE AND MODIFICATIONS THEREOF, WILL NOT INFRINGE ANY PATENT, COPYRIGHT, TRADE SECRET OR OTHER PROPRIETARY RIGHT. 11. LIMITATION OF LIABILITY THE FLUKA COPYRIGHT HOLDERS AND THE AUTHORS SHALL HAVE NO LIABILITY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE 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 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. REQUESTS MADE BY THE FLUKA AUTHORS TO ALL USERS All licensees are requested to report as soon as practical to the Authors any errors or bugs found in any portion of FLUKA and its accompanying documentation. All licensees are requested to forward copies of all comparisons that they may make between FLUKA results and data or other codes as soon as practical. The Authors agree to keep any such communications confidential unless otherwise notified by the contributing user. The Authors reserve the right of publishing any benchmarking and/or comparisons of the distinct separate performance of the individual internal models that are embedded into FLUKA, whether the comparisons are with data or with other codes. The Authors would also like to convey a general willingness to conduct any such benchmarking efforts either upon request or in collaboration with interested parties. In case of doubt please contact the Authors. Users should exclusively download FLUKA from the official FLUKA website (http://www.fluka.org) or one of the authorized mirror sites. Users are invited to regularly update their FLUKA version to profit for improvements and bug fixes. Users are invited to use reasonably updated versions of the code for publications. Publications of results based on those FLUKA versions that are declared unsupported and obsolete on the official FLUKA website shall be avoided. Users should address any request of consent to one member of the FLUKA Coordinating Committee, which at present is composed as follows: Giuseppe Battistoni Giuseppe.Battistoni@mi.infn.it (chairman) Michael Doser Michael.Doser@cern.ch Roberto Losito Roberto.Losito@cern.ch Johannes Ranft Johannes.Ranft@cern.ch Paola Sala Paola.Sala@mi.infn.it In accordance with the User License, the use of the FLUKA code must be acknowledged explicitly by quoting the following set of references: - A. Fasso`, A. Ferrari, J. Ranft, and P.R. Sala, "FLUKA: a multi-particle transport code", CERN-2005-10 (2005), INFN/TC_05/11, SLAC-R-773 - G. Battistoni, S. Muraro, P.R. Sala, F. Cerutti, A. Ferrari, S. Roesler, A. Fasso`, J. Ranft, "The FLUKA code: Description and benchmarking", Proceedings of the Hadronic Shower Simulation Workshop 2006, Fermilab 6--8 September 2006, M. Albrow, R. Raja eds., AIP Conference Proceeding 896, 31-49, (2007) 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. Note: 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 For questions/clarifications/problems about the license or in general the use of FLUKA please contact the chairman of the joint INFN/CERN FLUKA Coordination Committee: Prof. Giuseppe Battistoni INFN - Via Celoria 16 I-20133 Milano (Italy) Giuseppe.Battistoni@mi.infn.it or one of the Authors. 1 FLUKA2008 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 17}). 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. 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@cern.ch 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} Examples on the material/compound definitions 16} History of FLUKA 17} 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 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). 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: H"anssgen K. 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: antinucleons according to resonance model, pi-minus, K-minus and mu-minus by the preequilibrium-cascade model. 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, with special initialisation procedure. * Between 0.1 and 5 GeV per nucleon: modified RQMD 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] * 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). * Shell and other low-energy corrections derived from Ziegler [Zie77] * Density effect according to Sternheimer [Ste84]. * 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) * 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 libraries (P5 Legendre angular expansion, 260 or 72 neutron energy groups), containing more than 200 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 or 72 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 (only above rho mass energy 770 MeV) via virtual photon spectrum and Vector Meson Dominance Model [Moh89]. (The treatment of the latter effect has not been checked with the latest versions, however). * 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. * Compton effect with account for atomic bonds through use of inelastic Hartree-Fock form factors. * Photoelectric effect with actual photoelectron angular distribution [Sau31], detailed interaction on six K and L single sub-shells, optional emission of fluorescence photons and approximate treatment of Auger electrons. * 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 1 keV. 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 mimimum recommended energy for PRIMARY photons is about 5 to 10 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 new 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). * Possibility to use body and region names instead of numbers. * Possibility of using body combinations inside nested parentheses. * 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 cut-off. * 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 (high-Z materials) photons 1 keV-1000 TeV 7 keV-1000 TeV heavy ions 10 MeV/n-10000 TeV/n 100 MeV/n-10000 TeV/n (*) 10 PeV with the DPMJET interface 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). 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 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. * Track-length fluence 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 estimators 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 16}. 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. 16}. 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 and proton 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. The recent addition of the simulation of heavy ion interactions allows also for applications to hadrotherapy. 1******************************************************************************** 2} A FLUKA beginner's guide ******************************************************************************** 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.1} Installing FLUKA --------------------- A full description of the installation procedure is given in Chapter 3}. The FLUKA package for LINUX and UNIX platforms is distributed as a tar file which can be downloaded from the FLUKA Website http://www.fluka.org or other authorised mirror site. The user must prepare a directory where the tar file has to be expanded. Let us suppose that the gzipped tar file, called fluka2006.1-linuxAA.tar.gz, has been downloaded in a given directory and that it must be expanded in a new subdirectory called fluka (but any other name is valid). A possible way to proceed is the following: mkdir fluka cd fluka tar zxvf ../fluka2006.1-linuxAA.tar.gz An alternative way to expand the tar file is: gunzip -dc ../fluka2006.1-linuxAA.tar.gz | tar xvf At this stage, the user must define an environmental variable FLUPRO pointing to the directory where the distribution tar file has been opened. This directory is made available as follows: Bash shell: use the export command C or tc shell: use the setenv command ... ... cd fluka cd fluka export FLUPRO=$PWD setenv FLUPRO $PWD Of course the definition of FLUPRO can be placed once for ever in the login script. 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/. See details in Chapter 3}. The user must produce the default FLUKA executable, to be located in the $FLUPRO directory, by means of the $FLUPRO/flutil/lfluka script: ... cd $FLUPRO $FLUPRO/flutil/lfluka -m fluka The default executable is called flukahp. 2.2} Building a FLUKA input --------------------------- 2.2.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 cut-offs, 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.2.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.2.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.2.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 DEFAULT value, the NEW-DEFAults set of FLUKA parameters is loaded. 2.2.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 particle energy (or momentum) is defined by option BEAM, and their starting position and direction by option BEAMPOSit. 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). 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 cordinates: 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.2.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 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 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.2.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 mass, density, name and a material identification number > 2. The material number can be chosen by the user, with the restriction that all lower numbers must also be defined (but not necessarily used). Number 1 is reserved for blackhole and 2 for ideal vacuum. There are 25 predefined materials; but each of the numbers from 3 to 25 can be redefined freely, overriding the default definition. However, a predefined material can only be redefined using the same name by assigning to it a number equal to the original one. 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. 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 material number (atomic number and atomic mass having no meaning in this case). 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 9.0122 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" specifying 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 and mass number, 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 effetcs 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.2.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 not assigned a material, 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.2.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 cut-off 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.2.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 estimators 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.2.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.2.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 a Note 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.2.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 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 9.0122 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 9.0122 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.2.14} 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.2.15} Accessing results ------------------------- 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 estimator file name: Type the input file: For each estimator 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 ... .... 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. 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.2.16} 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.2.17} 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 cut-offs (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 cut-offs for each particle are listed in a table on standard output ("Particle transport thresholds"). 2.2.18} 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. 1******************************************************************************** 3} Installation ******************************************************************************** The FLUKA package for LINUX and UNIX platforms is distributed as a tar file which can be downloaded from the FLUKA Website www.fluka.org. The release of the FLUKA source code will be available under the licence reported at the beginning of this volume. For most applications 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, linking and running 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. In principle, FLUKA can be installed on any computer platform where a Fortran compiler is available. However, at present only the following are supported (see the FLUKA website http://www.fluka.org for more information). * DEC computers running Digital UNIX > 4.0 * Intel PCs running LINUX: - RedHat 7.3 (compiler gcc-2.96) - RedHat 9.0 (compiler gcc-3.2.2) - Fedora It is suggested that the user define an environmental variable FLUPRO pointing to the directory where the distribution tar file has been opened. 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 machines consists of 29 files (*): bamjmvax.for blockmvax.for comlatmvax.for decaymvax.for dedxmvax.for dumvax.for elsmvax.for emfmvax.for eventqmvax.for eventvmvax.for evffrmvax.for fluoxmvax.for geolatmvax.for kaskadmvax.for lowneumvax.for mainmvax.for mathmvax.for neutrimvax.for noptmvax.for opphmvax.for outputmvax.for pemfmvax.for pgmvax.for preclmvax.for preeqmvax.for pripromvax.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 rqmdmvax (*) 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 may need up to 12 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 nine unformatted files and three of the remaining auxiliary files require no modification by the user. They are generally kept in the main FLUKA directory. 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_72.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 e6r1nds3.fyi, jef2.fyi, jendl3.fyi, xnloan.dat Fission nuclide yields and neutron multiplicities 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 FLUKA2008 version, there are 31 modules: BAMJM : new hadronisation package (strongly improved version of the original BAMJET [Rit84]) BLOCKM : block data routines 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 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. 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 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) 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) 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) 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 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 USIMBS : user-defined importance biasing USREIN : event initialisation USREOU : post-event output USRGLO : user global settings 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 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 (*) -6 Alpha --- 3-HELIUM (*) -5 Helium-3 TRITON (*) -4 Triton --- DEUTERON (*) -3 Deuteron --- HEAVYION (*) -2 Generic heavy ion (see command HI-PROPE) OPTIPHOT -1 Optical Photon --- RAY (**) 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 4112 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 --- --- (*) 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 EVENTYPE), 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). (**) 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. (***) Only leptonic decays of tau's are implemented for the time being. 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 (****) UNB-EMEN 230 Unbiased electromagnetic energy (of electrons, positrons or photons) (****) X-MOMENT 231 X component of momentum transfer Y-MOMENT 232 Y component of momentum transfer Z-MOMENT 233 Z component of momentum transfer ACTIVITY 234 Activity per unit volume ACTOMASS 235 Activity per unit mass SI1MEVNE 236 Silicon 1 MeV-equivalent flux HADGT20M 237 Hadrons with energy > 20 MeV DOSE-EQ 240 Dose Equivalent (pSv/primary) (****) "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). (*****) "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.2} Pre-defined materials -------------------------- Materials can be easily defined by option MATERIAL by assigning a density, a name, a code number, and, in the case of single elements, an atomic and a mass number. 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 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 (for instance re-assigning code numbers), 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 one of the pre-defined materials is re-defined using the same name, its number must be equal to that of the pre-defined material (unless the input is explicitly number-based). List of pre-defined FLUKA materials ----------------------------------- Fluka name Fluka number Common name A Z Density 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 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 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 estimators 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 from 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. Physical units -------------- Physical units consistently used in FLUKA input and output are: distance cm (and derived units cm2, cm3 for areas and volumes) energy GeV Exceptions: eV is used for average ionisation potential input by option MAT-PROP g/(MeV cm2) are used for Birks coefficients input by option TCQUENCH. 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 kV/cm time s (option TCQUENCH) or ns (option TIME-CUT) activity Bq LET keV/(micrometer g/cm3) 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 2 types of directives, DEFINITION and CONDITIONAL, and probably will be expanded in the future. The preprocessor is a particularly useful way to include or remove blocks of input cards, allowing a more flexible and easy organization of an input file. One can write the input file around a few directives to allow easier debugging, changing thresholds, 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 10 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. #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 1******************************************************************************** 7} Description of FLUKA input options ********************************************************************************* There are more than 70 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 associate scoring estimators with auxiliary (generalized) particle distributions and dose equivalent conversion factors * Start_Devel_seq BAMJET defines the parameters of the chain hadronization algorithm (for developers only) * End_Devel_seq 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 BME defines some I/O parameters relevant to the heavy ion event generator BME (Boltzmann Master Equation) 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 * Start_Devel_seq DPM-PARA defines the parameters of the Dual Parton Model as implemented in FLUKA (for developers only) * End_Devel_seq DPMJET defines some I/O parameters relevant to the heavy ion event generator DPMJET ELCFIELD sets the tracking conditions for transport in electric fields and possibly defines an homogeneous electric field (not yet implemented) 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 cut-offs 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 EVENTYPE defines the hadron particle production model to be used * Start_Devel_seq EVXTEST calculates hadron production histograms without transport (for developers only) * End_Devel_seq 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) 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 cut-off 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 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) MYRQMD defines some I/O parameters relevant to the new heavy ion event generator RQMD 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 cut-offs for selected particles PHOTONUC activates photon interactions with nuclei 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) 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) RQMD defines some I/O parameters relevant to the heavy ion event generator RQMD SCORE defines the energy deposited or the stars to be scored by region SOURCE tells FLUKA to call a user-defined source routine 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 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 is 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. Both BEAM and BEAMPOS commands can be placed anywhere in the input file, before the START command. 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.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 and atomic and mass number. 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 do a rough temperature re-scaling of thermal neutron cross sections when no cross section set is available at a desired temperature, 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 cut-offs --------------------- Setting energy cut-offs, 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 cut-offs in order to improve performance. The exception concerns the default particle production cut-offs for electrons, positrons and photons, which are dependent on other settings (see EMFCUT below). Transport cut-offs, 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 cut-offs 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 cut-offs, 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 cut-offs 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 cut-offs explicitly for each material. Note also that the same EMFCUT command is used to set both transport and production cut-offs: 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 cut-off 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 cut-offs ------------------- For time-dependent calculations, two time cut-off 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 cut-offs: 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 cut-off 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 EVENTYPE. 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 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 cut-off, 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 cut-offs, 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 field. See also MATERIAL, MGNFIELD WHAT(1) = material index, or material name Default = 1.0 (blackhole or external vacuum) WHAT(2) = lower bound (or name corresponding to it) of the region indices with material index equal or 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 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 in the region(s) defined by WHAT(2), (3), and (4) = 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), SDUM : not used Default (option ASSIGNMAt not requested): all regions are assigned material 1.0 (BLCKHOLE) except region 2.0 which is assumed to be COPPER (FLUKA material 12.0). No magnetic 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 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 name-index correspondence can be found on standard output after a short test run. 3) In practice, option ASSIGNMAt must always be present. (If it is not chosen, all regions are considered to be black holes except region 2 which is assumed to be COPPER). 4) Magnetic field tracking is performed only in regions defined as magnetic field regions by WHAT(5) = 1.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) Example (for an input number-based): *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... MATERIAL 13.0 27.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 estimators with dose equivalent conversion factors and to filter scoring estimators according to auxiliary (generalized) particle distributions. 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 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 select atomic number Z, mass number A and isomeric state M what(2)= -(Z*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) : not used WHAT(4) : lower bound index (or corresponding name) of the indices of the estimator in which the associated scoring is activated (See Note 1) Default = 1.0 WHAT(5) : upper bound index (or corresponding name) of the indices of the estimator in which the associated scoring is activated (See Note 1) Default = WHAT(4) WHAT(6) = step length in assigning indices Default: 1.0 SDUM : For dose equivalent (DOSE-EQ) scoring, the user can provide the energy dependent factors 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: a) Effective dose sets from ICRP74 and Pelliccioni data calculated with ICRP radiation weighting factors Wr EAP74 : Anterior-Posterior irradiation ERT74 : Rotational irradiation geometry EWT74 : WORST possible geometry for the irradiation b) Effective dose sets from ICRP74 and Pelliccioni data calculated with the Pelliccioni radiation weighting factors Wr EAPMP : Anterior-Posterior irradiation ERTMP : Rotational irradiation geometry EWTMP : WORST possible geometry for the irradiation c) Ambient dose equivalent from ICRP74 and Pelliccioni data AMB74 d) Ambient dose equivalent with old "GRS"-conversion factors AMBGS Notes: 1) USRBIN/EVENTBIN estimators are counted together 2) Only the sets EAP74, ERT74, EWT74 and AMB74 are implemented for photons and electrons. 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. 3) Dose conversion coefficients exists 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. 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 ALL-PART -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, profile and statistical weight See also BEAMAXES, BEAMPOS, SOURCE WHAT(1) > 0.0 : average beam momentum in GeV/c < 0.0 : average beam kinetic energy in GeV 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 < 0.0 : |WHAT(3)| is the FWHM of a Gaussian angular distribution > 2000 x PI mrad (i.e. 2 pi rad) : an isotropic distribution is assumed (see Note 8 below) This value is available in COMMON BEAMCM as variable DIVBM. 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. 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)) 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. 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)) 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) : |WHAT(6)| = weight of the beam particles. If 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) This value is available in COMMON BEAMCM as variable BEAWEI. It can be used or modified in subroutine SOURCE if command SOURCE is present in input. Default = 1.0 SDUM = beam particle name. Particle names and numerical codes are listed in the table of FLUKA particle types (see 5}). 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 UNIT ATOMIC MASS, 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 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. If no radioactive isotope evolution or decay is requested, or if a stable isotope is input, nothing will occur, and no particle will be transported. Neutrino interactions are activated by a (A)NEUTRIxx SDUM. Neutrino interactions are forced to occur in 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.] 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. Default = PROTON Default (option BEAM not requested): all the above defaults apply, unless other values are provided by the user by means of a SOURCE subroutine (see 13} and command SOURCE). Notes: 1) 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}). 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. Advice: when a user-written SOURCE is used, set WHAT(1) in BEAM equal to the maximum expected source particle momentum (or energy). 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 3) 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] 4) All FLUKA results are normalised per unit incident particle weight. Thus, setting the starting weight to a fixed value different from 1 has no practical effect. 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})). 5) 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). 6) 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). 7) It is possible to track pseudoparticles by setting SDUM = RAY. See 14} for details. 8) 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. 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, BEAMPOS, POLARIZAti, SOURCE 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 angular divergence, transversal profile and polarisation for a beam of arbitrary direction, either constant as defined by option BEAMPOS, or not necessarily known in advance as provided by a user SOURCE routine. For this purpose, the user can define 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 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 in a direction perpendicular to the * "geometry x" axis, at 45 degrees with respect to both "geometry y" and * "geometry z". 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 0.7071068 0.0 BEAMAXES 1.0 0.0 0.0 0.0 0.7071068 0.7071068 1******************************************************************************** {BEAMPOS} defines the coordinates of the centre of the beam spot (i.e. the point from which transport starts) and the beam direction See also BEAM, BEAMAXES, SOURCE 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. 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. 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 Default (option BEAMPOS not requested): all the above defaults apply (the beam starts 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 BEAMPOS 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 BEAMPOS 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 or muon/photon photonuclear 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 and muons = 2.0 : electrons, positrons and photons = 3.0 : low energy neutrons 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 or muon/photon photonuclear 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 10000.) 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)) 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: reset to default (cancels any previous USER request) = RRPRONLY: multiplicity biasing for primary particles only = 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]. 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. 2) 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). 3) 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. 4) 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! 5) 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 10000., 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. 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******************************************************************************** {BME} Not yet implemented. Prepared for the BME event generator. 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 1000). 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 and mass number, 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 9, see 3}). 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): - 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). - 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 1.0 .0000899 3.0 0.0 0.0 HYDROGEN MATERIAL 6.0 12.0 2.0 4.0 0.0 0.0 CARBON MATERIAL 8.0 16.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 1.0 .0000899 3.0 0.0 0.0 HYDROGEN MATERIAL 6.0 12.0 2.0 6.0 0.0 0.0 CARBON MATERIAL 8.0 16.0 0.00143 8.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 HYDROGEN 1.0 OXYGEN 0.0 0.0 WATER COMPOUND 2.0 CARBON 6.0 HYDROGEN 1.0 5.0 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 39.0983 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 39.0983 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 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 More complex uses of COMPOUND in connection with MATERIAL and LOW-MAT are illustrated by examples in 15}. 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 < 0.0 : reset to default 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. 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. See WARNING in Note 1 below See also DCYTIMES, IRRPROFI, RADDECAY, RESNUCLEi WHAT(1) = cooling time index to be associated with the detector(s) of estimator type defined by SDUM and with number corresponding to WHAT(4)-WHAT(6) (see Note 2 below) Default = 0.0 (no scoring!) 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 ("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 ("...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 detector is associated with any cooling time index Notes: 1) WARNING: when the DCYSCORE option is applied to a detector, all quantities are expressed PER UNIT TIME (in seconds). For instance, the RESNUCLEi estimator will output Bq, dose estimators will provide dose rate, etc. 2) The cooling time index indicated by WHAT(1) must be one of those defined by means of option DCYTIMES. 3) USRBIN and EVENTBIN estimators are counted together (they belong to the same index sequence), and so are USRTRACK and USRCOLL 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 decay times after irradiations at which selected quantities (for instance 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 = scoring at end of irradiation is associated with index 1 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 a maximum of 20 decay times. All decay times are counted from the end of the last irradiation period as defined by the IRRPROFI command. A null decay time activates scoring exactly at the end of irradiation. A negative decay time is admitted: scoring is performed at the chosen time "during irradiation" Example: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 DCYTIMES 10. 30. 3600. 43200. 86400. 172800. DCYTIMES 2592000. 31557600. * Eight different cooling times have been defined, each with an index * corresponding to its input order: cooling time no. 1 is 10 s, no. 2 is 30 s, * and those from no. 3 to 8 are respectively 1 h, 1/2 d, 1 d, 2 d, 30 d, 1 y 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 WHAT(1),....,WHAT(6): not used SDUM = CALORIME : defaults for calorimeter simulations 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 shielding calculations Default: it is not allowed to leave SDUM blank. If the DEFAULT 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 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 - 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_electron) - Heavy particle bremsstrahlung activated with explicit photon production above 300 keV - Muon photonuclear interactions activated with explicit generation of secondaries - 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 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 - Inelastic form factor corrections to Compton scattering activated - Low-energy neutron transport on down to themral energies included, no need for option LOW-NEUT (high energy neutron threshold at 20 MeV) - Fully analogue absorption for low-energy neutrons - Particle transport threshold set at 100 keV, except for 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.03, fraction of the kinetic energy to be lost in a step set at 0.02 (see options DELTARAY, EMFFIX, FLUKAFIX) ICARUS - EMF on - Rayleigh scattering and inelastic form factor corrections to Compton scattering 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 - 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 - 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 - Both explicit and continuous heavy particle bremsstrahlung and pair production inhibited NEW-DEFAults (standard defaults active even if the DEFAULT 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 activated - 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) - Fully analogue absorption for low-energy neutrons - 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 - Heavy fragment transport activated SHIELDINg - Low energy neutron transport on down the 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 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. 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 1 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 1 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 the dp/dx tabulations for the given materials on standard output = 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 8. Notes: 1) 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. 2) 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. 3) 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. 4) 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. 5) Normally, the energy threshold for delta ray production should be higher than the electron energy transport cut-off 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. 6) Note that FLUKA makes sure that the threshold for delta ray production is not set much smaller than the average ionisation potential. 7) 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. 8) 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 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 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 cut-off 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(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) = cut-off 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. If WHAT(1) > 0: [NOT YET IMPLEMENTED!!!] WHAT(2): first detector to be considered for this combination, in coincidence if WHAT(2) is not preceded by a minus sign, in anticoincidence otherwise Default: ignored WHAT(3): second detector to be considered for this combination, in coincidence if WHAT(3) is not preceded by a minus sign, in anticoincidence otherwise Default: ignored WHAT(4): third detector to be considered for this combination, in coincidence if WHAT(4) is not preceded by a minus sign, in anticoincidence otherwise Default: ignored WHAT(5): fourth detector to be considered for this combination, in coincidence if WHAT(5) is not preceded by a minus sign, in anticoincidence otherwise Default: ignored WHAT(6): fifth detector to be considered for this combination, in coincidence if WHAT(6) is not preceded by a minus sign, in anticoincidence otherwise Default: ignored SDUM = combination 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 detectors (with sign). If not preceded by a minus sign, they are considered in coincidence, otherwise in anti-coincidence SDUM = "&" in any position (or in the last field if free format is used) Default (option DETECT not requested): no (anti)coincidence scoring Notes: 1) Output from DETECT is written unformatted on logical unit 17. To recover the output, it is necessary to run a Fortran program containing the following lines: ......................................... CHARACTER*80 RUNTIT, RUNTIM*32, CHNAME*10 INTEGER*4 NCASE, NDET, NBIN, IV(1024) REAL EMIN, EBIN, ECUT ......................................... ......................................... READ(17) RUNTIT, RUNTIM, WEIPRI, NCASE READ(17) NDET, CHNAME, NBIN, EMIN, EBIN, ECUT READ(17) (IV(I), I = 1, NBIN) ......................................... This is the meaning of variables read: RUNTIT: title of the job (as given by input option TITLE) RUNTIM: time of the job (printed also at the beginning of the main output) WEIPRI: total weight of the primary particles NCASE: number of primary particles NDET: detector number CHNAME: detector name (= SDUM of the first DETECT card) NBIN: number of energy bins (presently fixed = 1024) EMIN: minimum total energy (= WHAT(2) of the first DETECT card) EBIN: width of each energy bin ECUT: cutoff energy for the signal (= WHAT(4) of the first DETECT card) The NBIN values IV(I) are the spectrum channels, or energy bins. 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 EVENTYPE), 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. Discarding a particle means that that type of particle will possibly be produced but not transported. 2) 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. 3) 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. 4) 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******************************************************************************** {DPMJET} Defines some I/O parameters relevant to the heavy ion event generator DPMJET Option DPMJET is useful only for development work: generally the user does not need this option - to request activation of DPMJET use the command EVENTYPE See also BME, EVENTYPE, MYRQMD, PHYSICS, RQMD WHAT(1) : format of the required pre-processed Glauber parameters. A complete set of projectile-target combinations for the entire FLUKA energy range is utilised. To revert to the original DPMJET format set this value to 1. See also Note 2 below. Default = 0.0 WHAT(2) : allows to change the logical unit number which is assigned to the DPMJET output. Default = 19.0 WHAT(3) : selects the level of output verbosity for DPMJET. The default corresponds to minimal output. If this value is set to 1.0, initialisation and minor error messages are printed. In addition, one can request information about the DPMJET common block (the internal list of objects considered by DPMJET). If set equal to 2.0 all the available information is output, if set equal to 3.0 only information about final residual nuclei is output, and if set to 4.0 information about all final state objects is written. Default = 0.0 WHAT(4)-WHAT(6) : not used SDUM : not used Default (option DPMJET not given): all the above defaults apply Notes: 1) FLUKA utilises DPMJET and a heavily modified version of a RQMD-2.4 implementation (H. Sorge [Sor89, Sor89a, Sor95]) in order to simulate heavy ion interactions. 2) Glauber parameter sets in the original ASCII format can be generated by running the stand-alone DPMJET program. Only up to 10 different projectile/target combinations can be initialised per run. Parameter sets in excess of the first 10 combinations will be provided by the default mechanism. Examples: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7... DPMJET 0.0 71. 4. * running with the pre-processed, full matrix of Glauber parameter sets * but requesting more verbose output for DPMJET: initialisation related * messages, all error messages and information about final state objects * in the DPMJET common block. * DPMJET is told not to read any specific input options. * All output will be found in file connected to logical unit 71 instead * of 19 (under Linux this file would be named fort.71) 1******************************************************************************** {ELCFIELD} defines an homogenous electric field (not yet fully implemented) 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 kV/cm) WHAT(5) = Ey (y-component of the electric field, in kV/cm) WHAT(6) = Ez (z-component of the electric field, in kV/cm) Note: 1) This option is being implemented, but it is not yet operational. 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 DEFAULT option which switches off electron-photon transport, such as OLD-DEFAults, 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 cut-offs. 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 cut-offs 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. Note, however, that leading particle biasing can also be requested by option EMFCUT (not recommended). 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, in a manner similar to that provided by option EMFCUT. However, Leading Particle Biasing with EMFCUT applies to all electromagnetic effects, while EMF-BIAS can be tuned in detail for each type of electron and photon interactions. 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 option 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: - 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. - 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). 3) Option EMFCUT provides an alternative way to request LPB, but without the possibility to set an energy threshold or to limit biasing to a specified number of generations. 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 cut-offs in selected regions. This command can also request leading particle biasing, but EMF-BIAS must be preferred. 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, EMF-BIAS, BIASING, 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 : ignored Default: equal to the lowest electron transport cut-off in all regions made of this material (see Note 1 below) WHAT(2) > 0.0 : energy threshold for photon production in GeV = 0.0 : ignored Default: equal to the lowest photon transport cut-off in all regions made of this material (see Note 1 below) WHAT(3) = FUDGEM parameter. This parameter takes into account the contribution of atomic electrons to multiple scattering. For production and transport cut-offs larger than 100 keV it must be set = 1.0, while in the keV region it must be set = 0.0 Default: 0.0 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 cut-offs in a material are set equal to the lowest transport cut-offs in the regions with that material. For SDUM = blank: |WHAT(1)| = electron and positron transport energy cut-off in GeV. WHAT(1) > 0.0 : electron and positron cut-off is expressed as total energy (kinetic plus rest mass) < 0.0 : electron and positron transport cut-off is expressed as kinetic energy = 0.0 : ignored This value can be overridden in user routine UBSSET by assigning a value to variable ELECUT. Default: the e+e- transport cut-off is set equal to the production threshold for discrete electron interactions WHAT(2) > 0.0 : photon transport energy cut-off (GeV) = 0.0 : ignored This value can be overridden in the user routine UBSSET by assigning a value to variable GAMCUT. Default: the photon transport cut-off is set equal to threshold for photon production by electron bremsstrahlung WHAT(3) > 0.0 : leading particle biasing is activated for electrons, positrons and photons. Which combination of leading particle biasing is actually set up depends on the bit pattern of WHAT(3) Let WHAT(3) be represented as: 2^0xb0 + 2^1xb1 + 2^2xb2 + 2^3xb3 + 2^4xb4 + 2^5Xb5 + 2^6xb6 + 2^7xb7 + 2^8xb8 + 2^9xb9 where 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 : no leading particle biasing for electrons, positrons and photons = 0.0 : ignored (previous definitions hold, if any; otherwise default, i.e. no leading particle biasing) This value can be overridden in the user UBSSET routine by assigning a value to variable LPEMF. WHAT(4) = lower bound (or corresponding name) of the region indices with electron cut-off equal to |WHAT(1)| and/or photon cut-off equal to WHAT(2) and/or leading particle biasing ("From region WHAT(4)...") Default: = 2.0. WHAT(5) = upper bound (or corresponding name) of the region indices with electron cut-off equal to |WHAT(1)| and/or photon cut-off equal to WHAT(2) and/or leading particle biasing ("...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 not requested): transport cut-offs in a region are set equal to the production cut-offs 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): no leading particle biasing, unless requested by the alternative option EMF-BIAS. Transport cut-offs 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 cut-offs, 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) Transport cut-offs set by EMFCUT override the production thresholds (set with SDUM = PROD-CUT) for discrete interactions, but only if higher than them. If lower, the production thresholds apply, of course. The production thresholds are overridden only for transport purposes, that is, particles with energy higher than production thresholds and lower than transport cut-offs 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 cut-off. 3) If WHAT(3) is set > 0, Leading Particle Biasing (LPB) is applied at photon and/or electron interactions, in a manner similar to that provided by option EMF-BIAS (see the Note 9 to that option for a description of the technique and guidance to its use). However, EMF-BIAS offers more flexibility, since it allows to set also an energy threshold for LPB, and to select a number of generations to which it can be applied. 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 cut-off 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 cut-off 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, MCSTHRES, FLUKAFIX and MULSOPT (see). MCSTHRES and FLUKAFIX concern only heavy charged particles (hadrons and muons), while STEPSIZE applies to ALL charged particles (hadrons, muons and electrons). 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. 26.98 2.6989 3. 0. 0. ALUMINUM MATERIAL 82. 207.20 11.35 4. 0. 0. LEAD MATERIAL 29. 63.546 8.96 12. 0. 0. COPPER MATERIAL 6. 12.000 2.00 26. 0. 0. CARBON MATERIAL 7. 14.000 0.0012 27. 0. 0. NITROGEN MATERIAL 8. 16.000 0.0014 28. 0. 0. OXYGEN MATERIAL 1. 1.000 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. 26.98 2.6989 10. 0. 0. ALUMINUM MATERIAL 82. 207.20 11.35 17. 0. 0. LEAD MATERIAL 29. 63.546 8.96 12. 0. 0. COPPER MATERIAL 6. 12.000 2.00 6. 0. 0. CARBON MATERIAL 7. 14.000 0.0012 7. 0. 0. NITROGEN MATERIAL 8. 16.000 0.0014 8. 0. 0. OXYGEN MATERIAL 1. 1.000 0.0001 3. 0. 1. HYDROGEN MATERIAL 0. 0.0 1.0000 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 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, EM-CASCAde, 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, EM-CASCAde, ICARUS or PRECISIOn. Notes: 1) Selection of EMFFLUO option is only meaningful for a material defined with electron and photon cut-offs 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 having a binding energy > 1 keV 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 cut-off 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 and Compton binding corrections in selected regions. Only meaningful when the EMF option has been requested, explicitly or implicitly via option DEFAULTS. See also EMF WHAT(1) = 1.0 : both Rayleigh scattering and Compton binding corrections are activated 2.0 : only Rayleigh scattering activated 3.0 : only Compton binding corrections are activated 0.0 : ignored < 0.0 : no Rayleigh scattering and no binding corrections for Compton Default: if option DEFAULTS is used with SDUM = NEW-DEFAults or HADROTHErapy, the default is 3.0. If it is not used, or is used with SDUM = CALORIMEtry, EM-CASCAde, ICARUS or PRECISIOn, the default is 1.0. With any other value of SDUM, the default is 0.0. WHAT(2) = lower bound (or corresponding name) of the region indices where Rayleigh scattering and/or Compton binding corrections 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 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 = NEW-DEFAults or HADROTHErapy, binding corrections in Compton scattering are activated, but not Rayleigh scattering. If DEFAULTS is not used, or is used with SDUM = CALORIMEtry, EM-CASCAde, ICARUS or PRECISIOn, both are activated. With any other value of SDUM, binding corrections and Rayleigh scattering are not activated. Note: 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. 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 EMFRAY 1.0 EightReg TwelvReg 4.0 EMFRAY 3.0 NineReg FifteenR 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 Note: 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). Note: 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). 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. The next is an example of a user program to read a binary file written by EVENDAT. 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******************************************************************************** {EVENTYPE} defines the hadronic particle production model to be used See also EVXTEST FLUKA is designed to work with different particle production models. The SDUM parameter of option EVENTYPE is used to indicate the desired hadronic event generator. However, only one generator (EVAP) is available at present in the standard FLUKA version. This option is intended only for code development and should not be requested by the normal user, except to activate heavy recoil transport (see WHAT(3)) and/or ion-ion interactions (see SDUM = DPMJET)). The meaning of WHAT(1),...,WHAT(6) depends on the model chosen WHAT(1), WHAT(2) : reserved for program development WHAT(3) =< -1.0: resets the default (no ion transport at all) -1.0 < WHAT(3) < 1.0: ignored = 1.0 : approximated transport of ions and recoils (dE/dx only) = 2.0 : all heavy recoils and ions are transported with energy loss and multiple scattering, without nuclear interactions if SDUM = blank or = EVAP, with nuclear interactions if SDUM = DPMJET 3.0 =< WHAT(3) =< 6.0: heavy recoils up to |particle id| = WHAT(3) are transported with energy loss and multiple scattering, but no nuclear interactions (3=d,4=t,5=3-He,6=4-He) Default = 1.0 if option DEFAULTS is not used, or is used with SDUM = CALORIMEtry, EET/TRANsmut, ICARUS, NEW-DEFAults, PRECISIOn or SHIELDINg. With any other value of SDUM in option DEFAULTS, ions are not transported. WHAT(4)...(6) : reserved for program development SDUM = EVAP : DPM model + PEANUT + evaporation/fission + gamma de-excitation = DPMJET : same as EVAP, plus heavy ion nuclear interactions (provided the DPMJET library has been linked). The value of WHAT(3) defaults to 2.0) Default : EVAP Default (option EVENTYPE not given): defaults are as explained for WHAT(3) above. Note: Option EVENTYPE is mainly for development purposes and should not be used for routine work except (temporarily) to request transport of heavy recoils. See option DEFAULTS in order to set up suitable defaults for different classes of problems. If heavy ion nuclear interactions are requested, the user must link FLUKA with the DPMJET library, which is provided together with the normal FLUKA distribution. Example 1: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... EVENTYPE 0. 0. 2. 0. 0. 0.EVAP * In this example, the user requests transport of heavy ions without * nuclear interactions Example 2: EVENTYPE 0. 0. 2. 0. 0. 0.DPMJET * The user requests transport of heavy ions with nuclear interactions Example 3: EVENTYPE 0. 0. 5. 0. 0. 0.EVAP * The user requests transport of deuterons, tritons and 3He, but not * of alphas and heavier ions. * Start_Devel_seq 1******************************************************************************** {EVXTEST} !!! IMPLEMENTED ONLY FOR INTERNAL DEVELOPMENT VERSIONS !!! calculates histograms of particle production in hadron-nucleus collisions using the particle production model selected by the EVENTYPE card. (No transport is done). This option is intended only for code development and should not be requested by the normal user. See also EVENTYPE WHAT(1) = number of events to be simulated WHAT(2) = projectile particle number (see numbering scheme in 5}) WHAT(3) = projectile momentum in GeV/c WHAT(4) = index or name of target material (as from list in 5}, or defined by a MATERIAL card) WHAT(5)=< 0.0 : cascade nucleons and excitation energy are included > 0.0 : cascade nucleons and excitation energy are excluded = -1. : evaporation is performed (included by default) = -2. : gamma deexcitation is performed (included by default) [the last 2 options work only if evaporation has not been deactivated (see option EVENTYPE)] Default = 0.0 (cascade nucleons and excitation energy are included) WHAT(6) <> 0.0: diffractive events are excluded = 0.0 : diffractive events are included [this option works only if EVAP (improved quark model with EVAP5 evaporation model) has not been deactivated (see option EVENTYPE)] Default = 0.0 (diffractive events are included) SDUM : = PRINT : tables of information on particles and resonances, their reaction and decay channels, etc. are printed Default: tables are not printed Default (option EVXTEST not given): no event generator testing Note: EVXTEST is intended for code development only and should normally not be requested by the general user. It cannot be applied to PEANUT (pre-equilibrium), for which a standalone code is available to test the generator. Example: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... EVENTYPE 11. 0. 0. 0. 0. 0. EVAP MATERIAL 79. 196.967 1. 26. 0. 0. GOLD EVXTEST 1000. 8. 750. 26. -2. 1. * In this example, the first card requests standard EVAP level densities * with Cook pairing energies and high energy fission; the second card * defines a material Gold with index 26 (note that density has been * set = 1. because anyway it does not affect EVXTEST, which acts on single * nuclei); and the last card requests 1000 events produced by 750 GeV * neutrons on gold nuclei, disregarding diffractive events but performing * gamma de-excitation after evaporation * End_Devel_seq 1******************************************************************************** {EXPTRANS} !!! NOT IMPLEMENTED YET !!! requests an exponential transformation ("path stretching") WHAT(1) >= 0.0 : WHAT(2) to WHAT(5) are used to input a parameter defining the exponential transformation in various regions < 0.0 : WHAT(2) to WHAT(5) are used to define the particles to which the exponential transformation must be applied Default = 0.0 For WHAT(1) >= 0.0 : WHAT(2) = exponential transformation parameter ETA ( 0 =< |ETA| < 1 ) This value can be overridden in the user routine UBSSET (argument EXPTR in the calling list, see 13}) Default = 0.0 WHAT(3) = lower bound (or corresponding name) of the region indices with exponential transformation parameter ETA = WHAT(2) ("From region WHAT(3)...") Default = 2.0. WHAT(4) = upper bound of (or corresponding name) the region indices with exponential transformation parameter equal to WHAT(2) ("...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 For WHAT(1) < 0 : WHAT(2) = lower bound (or corresponding name) of the particle indices to which exponential transformation is to be applied ("From particle WHAT(2)...") Default = 1.0. WHAT(3) = upper bound (or corresponding name) of the particle indices to which exponential transformation is to be applied ("...to particle WHAT(3)...") Default : = WHAT(2) if WHAT(2) > 0.0, otherwise = 40.0 (low-energy neutrons) WHAT(4) = step length in assigning indices. ("...in steps of WHAT(4)"). Default: 1.0 WHAT(5), WHAT(6), SDUM : not used Default (option EXPTRANS not given): no exponential transformation Example (number based): *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... EXPTRANS 1. 0.8 10. 18. 8. 0. EXPTRANS -1. 7. 8. 0. 0. 0. * Exponential transformation is requested for photons (particle no. 7) * and neutrons (particle 8), in regions 10 and 18 with an ETA parameter * equal to 0.8 The same example, name-based: EXPTRANS 1. 0.8 tenthReg eighteen 8. 0. EXPTRANS -1. PHOTON NEUTRON 0. 0. 0. 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 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 Note: Usually there is no need for changing the default value of 10% (0.1) for WHAT(1) 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 controlled by WHAT(3), usually about one hundredth of the input value. The "epsilon" parameter controls the accuracy of the multiple scattering algorithm by limiting the step. In most cases the length of the step is practically limited anyway by the hadron interaction length, so the "epsilon" default value is of little importance and does not need to be changed. However, in some problems of large dimensions, especially when transporting muons, a small value of epsilon can slow down the calculations without necessity. In such cases, WHAT(2) can be safely set = 1000.0 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 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. 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. 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), '/' (slash), '\' (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 Notes: Different separators may be used on the same line. 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. Zero values must be given explicitly or as empty places between two non-blank separators as explained above. 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. 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. If FREE has been issued, from then on constants must be written without any blank imbedded (e.g. 5.3 E-5 is not allowed, but must be written 5.3E-5 or 5.30E-5) 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) 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: * 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+ * can be given in free format in any of the following equivalent ways: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... FREE BEAM 2. 0.0 0.0 -1.0E-2 -0.02 1.0 PION+ *...equivalent to: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... FREE BEAM, 2.,0.0 , 0.0, -1.0E-2; -0.02 1.0 /PION+ ! 2 GeV/c momentum? * (note the possibility to insert comments at the end of the line) *...and also to: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... FREE BEAM : 20. ,, , -1.0E-2\ -0.02 1.0 PION+ etc... 1******************************************************************************** {GEOBEGIN} starts the geometry description See also GEOEND, PLOTGEOM WHAT(1) : not used WHAT(2) : used to set the accuracy parameter - reserved for program development 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(3) /= 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) * Start_Devel_seq 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 * End_Devel_seq * Start_Prod_seq * WHAT(6) : not used * End_Prod_seq 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. Note: 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 CG output is essentially an echo of the input, and gives in addition some information on storage allocation of body and region data. It is recommended to check on it that the geometry description has been correctly reproduced, 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 3}), unless reporting has been de-activated by setting WHAT(1)<>0. 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. Since these facilities could not be made readily available in other geometries previously used in FLUKA, the latter have been removed from the code. Combinatorial Geometry is thus the only geometrical package available at present. Information on how to set up Combinatorial Geometry input is given in 8} End of geometry information must end with a GEOEND card (see). The same card can also be used to activate a geometry debugger. Option PLOTGEOM allows to draw sections of the geometry on planes specified by the user. Only one GEOBEGIN card is allowed. Example 1: * CG Input follows, output is printed as part om 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 om 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 Default = 20.0 WHAT(2) = Number of mesh intervals in the y-direction between Y_min and Y_max Default = 20.0 WHAT(3) = Number of mesh intervals in the z-direction between Z_min and Z_max Default = 20.0 WHAT(4,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. Note: 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, the actual region used for those multiple defined points being unpredictable. 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. 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. 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 you can scan as many areas as you wish with different meshes of the SAME geometry, simply changing the mesh parameters each time. 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 Note: GLOBAL declarations, if present, must precede any executable option WHAT(1) = maximum number of regions (must be =< 10000) 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 below) when computing physical steps: < 0 --> always use DNEAR when computing the tentative length of particle steps (it can cause non reproducibility of the random number sequence when starting from different histories, but it does not affect physics) > 0 --> do not use DNEAR when computing the tentative length of particle steps (full reproducibility of the random number sequence starting from different histories, some penalty in CPU) = 0 --> (default) use DNEAR when computing the tentative length of particle steps only when random seed reproducibility is assured (full reproducibility of the random number sequence within the same geometry package, possible non reproducibilities among different geometry packages describing 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)) 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): not used SDUM: not used Notes: 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. The "hard" limit of 10000 regions represents the maximum that can be obtained without recompiling the program. 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. 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. 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. 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 for the rules governing separators. 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 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 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. Note 1: The energy loss fluctuation algorithm is fully compatible with the DELTARAY option. Note 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******************************************************************************** {IRRPROFI}le defines an irradiation profile for radioactive decay calculations See also DCYTIMES, DCYSCORE, RADDECAY 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 Note: Several cards can be combined up to a maximum of 20 irradiation intervals. 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 Example: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 IRRPROFILE 1800. 1.5E12 250. 3.E10 4500. 4.2E12 * The profile defined consists of 1800 s of irradiation at an intensity of * 1.5E12 particles/s, followed by 250 s at low intensity (3.E10 particles/s), * and then a third 4500 s interval at 4.2E12 particles/s 1******************************************************************************** {LAM-BIAS} Used to bias the decay length of unstable particles, the inelastic nuclear interaction length of hadrons, photons 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 below): WHAT(1) = U (x-direction cosine) of decay direction biasing Default: 0.0 WHAT(2) = V (y-direction cosine) of decay direction biasing Default: 0.0) WHAT(3) = W (z-direction cosine) of 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 below). = 0.0: a user provided routine (UDCDRL, see 13}) is 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) = not used WHAT(6) = not used for SDUM = DCDRBIAS: WHAT(1) > 0.0: decay direction biasing is activated = 0.0: ignored < 0.0: decay direction biasing is switched off WHAT(2) = not used 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 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 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, 46 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 or inelastic interaction or decay direction biasing Note: Option LAM-BIAS can be used for three different kinds of biasing: 1) biasing of the particle decay length (or life), 2) biasing of the direction of the decay secondaries, and 3) biasing of the inelastic hadronic interaction length. 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. The laboratory decay length corresponding to the selected mean decay life is obtained by multiplication by BETA*GAMMA*c. 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. 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. 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. Note that biasing of the hadronic inelastic interaction length can be applied also to photons (provided option PHOTONUC is also requested) and muons (provided option MU-PHOTON is also requested); actually, it is often a good idea to do this in order to increase the probability of photon nuclear interaction. 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. 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. 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. 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 cut-off during low-energy neutron transport on a region by region basis See also PART-THR, LOW-NEUT WHAT(1) > 0.0 : group cut-off (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 cut-off) 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 cut-off 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 cut-off 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. Note: the groups are numbered in DECREASING energy order (see 10} for a detailed description). Setting a group cut-off 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 cut-off is applied. 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). 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. In some programs like 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. 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. 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. 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-NEUT, LOW-BIAS 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 Note: 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 !!!! P A R T I C U L A R L Y F O R H Y D R O G E N A - T E D M A T E R I A L S !!!! The groups are numbered in DECREASING energy order (see 10} for a detailed description). 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) = compound material if > 0. This applies only to pre-mixed low-energy neutron compound materials, which could possibly be available in the future; at the moment however, none is yet available. (It would be allowed anyway only if the corresponding FLUKA material is also a compound). Default: compound if the FLUKA material is a compound, otherwise not. WHAT(6) = atomic or molecular density (in atoms/(10**-24 cm3), or number of atoms contained in a 1-cm long cylinder with base 1 barn. To be used ONLY if referring to a pre-mixed compound data set (see COMPOUND and note to WHAT(5) above) Note that no such data set has been made available yet. 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: 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. 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: 1) the low-energy neutron material desired is unique or is listed before any other material with the same name in list 10} and 2) that name is the same as one in the FLUKA list (see 5}) or as given by a MATERIAL option and 3) there is only one FLUKA material associated with that low-energy neutron material On the other hand, the option IS REQUIRED in any one of the following cases: 1) 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 2) The FLUKA name is different from the name of the low-energy neutron material or 3) 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. If WHAT(5) is set > 0.0 because a pre-mixed compound low-energy neutron material is used, average cross sections are used (as for instance in the MORSE code). Otherwise, if each of the FLUKA elemental components has been associated with one of the elemental low-energy neutron components and the composition of the compound has been defined by a COMPOUND option, low-energy neutron interactions will take place randomly with each individual component, with the appropriate probability. It is however possible to have in the same run detailed individual interactions at high energies and average compound interactions for low-energy neutrons. But NOT THE OTHER WAY AROUND! See 15} for a complex example showing the use of MATERIAL, COMPOUND and LOW-MAT. Example (number based): *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... MATERIAL 6. 12.011 2.000 6. 0.0 0. CARBON MATERIAL 6. 12.011 1.700 15. 0.0 0. GRAPHITE MATERIAL 6. 12.011 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. 12.011 2.000 6. 0.0 0. CARBON MATERIAL 6. 12.011 1.700 15. 0.0 0. GRAPHITE MATERIAL 6. 12.011 3.520 16. 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 See also LOW-MAT, LOW-BIAS 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 3.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 = 1.0 Default = 31.0 WHAT(6) = i0 + 10 * i1: i0 = 1: available pointwise cross sections used (see Note below) and explicit and correlated 6-Li(n,gamma)7-Li, 10-B(n,t gamma)4-He, 40-Ar(n,gamma)41-Ar, x-Xe(n,gamma)x+1-Xe and 113-Cd(n,gamma)114-Cd photon cascade requested = 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 is present with SDUM = CALORIMEtry, ICARUS, NEUTRONS or PRECISIOn, in which case the default is 1.0 (pointwise cross sections are used 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, 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 the note below. Notes: Evaporation option is mandatory by default or explicitly (see EVENTYPE) if LOW-NEUT is requested (by default or explicitly). If low-energy neutrons are not transported (because of the chosen DEFAULTS, or because a DEFAULTS card is absent), the energy of neutrons below threshold (default or set by PART-THR) is deposited on the spot. This is true also for evaporation neutrons. If there is no interest in low-energy neutron transport, but that feature is implicit in the DEFAULTS option chosen, it is suggested to use LOW-BIAS with a group cutoff WHAT(1) = 1.0. 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. By default, for the 1-H(n,gamma)2-H reaction the actual photon energy of 2.226 MeV is used. It is possible to do the same with the capture gammas in 6-Li, 10-B, 40-Ar, x-Xe and 113-Cd, by setting WHAT(6) = 1.0 or 11.0. Pointwise neutron transport is available, by setting WHAT(6) = 1.0 or 11.0, for the following nuclides: 1-H (above 10 keV), 6-Li (all reactions), 10-B (only for the reaction 10-B(n,t gamma)4-He). Recoil protons are always transported explicitly, and so is the proton from the 14-N(n,p) reaction, for which a pointwise treatment is always applied 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} Here are the settings for transport of low-energy neutrons corresponding to available DEFAULTS options: CALORIMEtry, ICARUS, NEUTRONS, PRECISIOn: low-energy neutrons are transported, using pointwise cross section when available EET/TRANsmut, HADROTHErapy, NEW-DEFAults, SHIELDINg: low-energy neutrons are transported using always multigroup cross sections Any other SDUM value, or DEFAULTS missing: no low-energy neutron transport 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 cross sections will be used where available, and * only one neutron per low-energy fission will be emitted, with an adjusted * weight. 1******************************************************************************** {MATERIAL} defines a single-element material or (coupled to a COMPOUND card) a compound See also COMPOUND, MAT-PROP, LOW-MAT WHAT(1) = atomic number (meaningful only when NOT coupled to a COMPOUND card; otherwise set = 0.) No default. WHAT(2) = atomic weight (meaningful only when NOT coupled to a COMPOUND card; otherwise set = 0.) Default: computed according to the natural composition of an element with atomic number WHAT(1) if not coupled to a COMPOUND card, no default otherwise. 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 Default = NMAT + 1 (NMAT is the current number of defined materials. 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: set = 0 unless a specific individual isotope is desired. If not zero a nucleus of the given mass number is used by the EVAP generator for inelastic collisions, else the natural isotopic composition of the WHAT(1) element is used. For isotopic composition other than natural or single isotope, see COMPOUND SDUM = name of the material Default: COPPER, FLUKA material 12 Default (option MATERIAL not given): standard pre-defined material numbers are used (see list in 5}). Notes: MATERIAL cards can be used in couple with COMPOUND cards in order to define compounds, mixtures or isotopic compositions. See COMPOUND for input instructions. 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) Material number 2 is always Vacuum (of zero absorption cross section) and it can not be redefined. Although the material number can be omitted, it is not recommended to do so if the input is number-based. On the contrary, it may be convenient to omit it in name-based inputs, but only if the material name has not already been used, explicitely (by another MATERIAL card) or implicitely (predefined material, see list 5}). If the number of the material has been omitted, it is recommended to use only its name in COMPOUND and ASSIGNMAt commands. In an explicitely number-based input (declared as such by WHAT(4) = 4.0 in command GLOBAL) it is allowed to redefine a material name overriding a number already assigned (either by default, see list 5}, or by a previous MATERIAL card), or by using a new number. But in a name-based input, whether defined as such by default or explicitely (by WHAT(4) = 1.0 in command GLOBAL), a material name can be redefined only by explicitly setting the material number in WHAT(4) of the MATERIAL card, and that number must be identical to that previously assigned. 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 the next available number 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. 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. See 15} for examples of use of MATERIAL, COMPOUND and LOW-MAT. 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. Example: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... MATERIAL 1. 1.0079 8.988E-5 3. 0.0 1. HYDROGEN LOW-MAT HYDROGEN 1. 11. 296. 0.0 0. HYDROGEN MATERIAL 6. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 6. 12.011 2.0 26. 0.0 0. GRAPHITE LOW-MAT CARBON 6. -3. 296. 0.0 0. GRAPHITE MATERIAL 41. 92.9064 8.57 27. 0.0 0. NIOBIUM MATERIAL 48. 112.411 8.650 28. 0.0 0. CADMIUM MATERIAL 24. 51.996 7.19 29. 0.0 0. CHROMIUM MATERIAL 27. 58.93320 8.90 30. 0.0 0. COBALT * Several cases are illustrated: * Hydrogen, pre-defined as material 3, is re-defined with the same number, but * 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, and is assigned a number corresponding to the first * free slot (26.0). * Niobium, Cadmium, Chromium and Cobalt are added to the list, and are assigned * further consecutive numbers. 1******************************************************************************** {MAT-PROP} Provides extra information about materials See also MATERIAL, STERNHEIme * can supply extra information about gaseous materials and materials with fictitious or effective density. * can be used to override the default average ionisation potential. * allows a rough rescaling of thermal neutron cross sections if the actual material temperature is different from the one of the low energy neutron cross section data set. * allows to set a flag to call the user routine USRMED every time a particle is going to be transported in the selected material(s) For SDUM whatever except LOWNTEMP, USERDIRE: 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). = 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 = LOWNTEMP: WHAT(1) = Temperature ratio (T_actual/T_xsec) with respect to the nominal one. The nominal temperature T_xsec (given by WHAT(3), see below) is the temperature for which the neutron cross sections of the FLUKA material(s) concerned have been prepared (see the Table in 10}). See Notes below for more details and limitations. = 0.0 : ignored < 0.0 : a possible previously given value is restored to default = 1.0 Default = 1.0 WHAT(2) = Number of (thermal) groups to which the temperature ratio has to be applied. It must be <= N_th, where N_th is the number of thermal groups in the cross section library. If WHAT(2) < N_th, the last WHAT(2) groups are affected (see the LOW-NEUT option for setting the number of thermal groups). = 0.0 : ignored < 0.0 : a possible previously given value is restored to default = 0.0 Default = 0.0 (i.e., no correction, the whole command is ignored). WHAT(3) = Nominal temperature (K) of the indicated FLUKA materials = 0.0 : ignored < 0.0 : a possible previously given value is restored to default (3rd identifier, see below) Default = the temperature given as 3rd identifier of the associated low energy neutron data set (see LOW-MAT and the cross section description in 10}) WHAT(4) = lower bound of the indices of materials, or corresponding name, in which the temperature rescaling 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 temperature rescaling 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. For SDUM = USERDIREctive WHAT(1) = 0.0 : ignored > 0.0 : a call to the user routine USRMED will be performed at run time every time a particle is going to be transported in the selected materials (spot depositions ARE anyway performed) < 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. /= LOWNTEMP, USERDIREctive): When issuing a MATERIAL definition the gas pressure is set to 1 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 to option STERNHEIme). If WHAT(1) is set to a value > 0.0, the transport of hadrons 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. 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. SDUM = LOWNTEMP: The temperature ratio is used to rescale the thermal group velocities, absorption probabilities, gamma generation probabilities, fission probabilities and kermas. For absorption, fission and gamma generation a 1/v dependence of the corresponding cross sections is implicitly assumed: IF THIS IS NOT THE CASE THE WHOLE PROCEDURE IS MEANINGLESS. No modification is made to the elastic cross section and hence to the downscattering matrix: THIS CAN BE A VERY BAD APPROXIMATION, ESPECIALLY FOR LIGHT MATERIALS. No modification is applied for possible Doppler broadening effects on resonances for thermal and epithermal neutrons: again, this can be a bad approximation. The total cross section is rescaled according to the modified absorption and fission cross sections. At present, temperature rescaling can be done only for the 72-group neutron cross section library. The temperature ratio is used to rescale the thermal group(s) velocities, absorption probabilities, gamma generation prob- abilities, fission probabilities and kermas. For absorption, fission and gamma generation it is implicitly assumed a 1/v dependence of the corresponding cross section(s): if this is not the case all the procedure is crazy. No modification is made to the elastic cross section and hence to the downscat- tering matrix: this can be a very bad approximation, mostly for light materials. No modification is applied for possible Doppler broadening effects on resonances for thermal and epithermal neutrons: again this can be a bad approxim- ation. The total cross section is rescaled according to the modified absorption and fission ones. Cross section rescaling is applied to the FLUKA materials at run time, that is if for example two 10-B materials are def- ined and both point to the same cross section data set, a possible temperature rescaling will affect only the FLUKA material indicated by MAT-PROP, while the other one will be unaffected, although they share the same low energy neutron cross section data set. Velocity setting is applied for compounds INDEPENDENT from cross section rescaling, that is, a (nominal) temperature input for a compound is fully meaningful and will be used for velocity computation. However cross section rescaling is applied on single constituents (of course!) and therefore... !!!!! IMPORTANT WARNING !!!! ...it cannot be used for compounds unless the corresponding neutron cross section data sets is a pre-mixed one. Other- wise a new compound must be created with new elemental constituents and the correction must be invoked for each constituent. SDUM = USERDIREctive: 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. 1.00794 8.3748E-5 3. 0.0 1. HYDROGEN MATERIAL 6. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 14. 28.0855 2.33 14. 0.0 0. SILICON MATERIAL 22. 47.88 4.54 11. 0.0 0. TITANIUM MATERIAL 33. 74.9216 5.73 12. 0.0 0. ARSENIC MATERIAL 82. 207.2 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. 1.00794 8.3748E-5 3. 0.0 1. HYDROGEN MATERIAL 6. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 14. 28.0855 2.33 14. 0.0 0. SILICON MATERIAL 22. 47.88 4.54 11. 0.0 0. TITANIUM MATERIAL 33. 74.9216 5.73 12. 0.0 0. ARSENIC MATERIAL 82. 207.2 11.35 17. 0.0 0. LEAD MATERIAL 0. 0. 6.22 18. 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 15. 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: * Lung tissue with ICRP composition and Sternheimer parameters *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... MATERIAL 1. 1.00794 8.3748E-5 3. 0.0 1. HYDROGEN MATERIAL 6. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 7. 14.00674 0.0011653 7. 0.0 0. NITROGEN MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 12. 24.305 1.74 9. 0.0 0. MAGNESIU MATERIAL 11. 22.98977 0.971 10. 0.0 0. SODIUM MATERIAL 26. 55.847 7.874 11. 0.0 0. IRON MATERIAL 16. 32.066 2.0 12. 0.0 0. SULFUR MATERIAL 17. 35.4527 2.9947E-3 13 0.0 0. CHLORINE MATERIAL 19. 39.0983 0.862 14. 0.0 0. POTASSIU MATERIAL 15. 30.97376 2.2 16. 0.0 0. PHOSPHO MATERIAL 30. 65.39 7.133 17. 0.0 0. ZINC MATERIAL 20. 40.078 1.55 21. 0.0 0. CALCIUM * Local density of lung is 1.05 g/cm3 MATERIAL 0.0 0.0 1.05 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 * Average density of lung is 1.05*0.286 = 0.3 g/cm3. Average ionisation * potential is 75.3 eV (At. Data Nucl. Data Tab. 30, 261 (1984)) MAT-PROP 0.0 0.286 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. 1.00794 8.3748E-5 3. 0.0 1. HYDROGEN MATERIAL 6. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 7. 14.00674 0.0011653 7. 0.0 0. NITROGEN MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 12. 24.305 1.74 9. 0.0 0. MAGNESIU MATERIAL 11. 22.98977 0.971 10. 0.0 0. SODIUM MATERIAL 26. 55.847 7.874 11. 0.0 0. IRON MATERIAL 16. 32.066 2.0 12. 0.0 0. SULFUR MATERIAL 17. 35.4527 2.9947E-3 13 0.0 0. CHLORINE MATERIAL 19. 39.0983 0.862 14. 0.0 0. POTASSIU MATERIAL 15. 30.97376 2.2 16. 0.0 0. PHOSPHO MATERIAL 30. 65.39 7.133 17. 0.0 0. ZINC MATERIAL 20. 40.078 1.55 21. 0.0 0. CALCIUM MATERIAL 0.0 0.0 1.05 18. 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 0.286 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. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 7. 14.00674 0.0011653 7. 0.0 0. NITROGEN MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 18. 39.948 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 10. 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. 12.011 2.265 6. 0.0 0. CARBON MATERIAL 7. 14.00674 0.0011653 7. 0.0 0. NITROGEN MATERIAL 8. 15.9994 0.001429 8. 0.0 0. OXYGEN MATERIAL 18. 39.948 1.662E-3 20. 0.0 0. ARGON MATERIAL 0.0 0.0 0.001205 10. 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 11. 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 AIR STERNHEI 10.5961 1.7418 4.2759 0.10914 3.3994 0. AIR2 Example 4 (name based): * The total and capture cross sections of Au have a good 1/v dependence in the * thermal region. Here we assume Gold to be at a temperature of 300K, while * the cross sections in the 72-group ENEA library are at 293K. *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... LOW-NEUT 72.0 22.0 0.0196 0. 1.0 0. MATERIAL 79.0 196.9665 19.32 15. 0.0 0. * (300/293 = 1.02389). The ENEA library has only 1 thermal group. MAT-PROP 1.02389 1.0 293. 15. 0.0 0. LOWNTEMP The same example, name based: *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... LOW-NEUT 72.0 22.0 0.0196 0. 1.0 0. MATERIAL 79.0 196.9665 19.32 15. 0.0 0. GOLD MAT-PROP 1.02389 1.0 293. GOLD 0.0 0. LOWNTEMP 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 secondaries 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. Notes: The MCSTHRES option is not often used, 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). WHAT(1) < 0.0 with |WHAT(1)| not much smaller than primary energy should generally be avoided. The reason is twofold: i) tracking accuracy would be spoiled for no substantial gain in speed, and ii) FLUKA tracking without MCS does not take into account the variation of nuclear interaction cross section with energy. 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). 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). In pure electromagnetic or low-energy neutron problems, MCSTHRES does not need to be given and has no effect. 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 ASSIGNMA, STEPSIZE WHAT(1) = largest angle in degrees that a charged particle is allowed to travel in a single step Default = 57 (but a maximum of 30 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 note below) SDUM : not used 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. Note: 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}. Note that the argument list of subroutine MAGFLD is ( X, Y, Z, BTX, BTY, BTZ, B, NREG, IDISC ) where BTX, BTY, BTZ are the DIRECTION COSINES of the magnetic field at point X, Y, Z (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. 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. The maximum error on the boundary iteration, WHAT(2), must be compatible with the minimum linear dimension of any region. 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. (The max. step size is not yet implemented). 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 Reg20th 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 FLUKA and EMF 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, 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 this 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)-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 are activated. = -3.0: nuclear finite size effects (form factors) are considered but not the spin-relativistic effects WHAT(2) >= 3.0: multiple scattering for hadrons and muons is completely suppressed 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 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 on atomic electrons switched on (for the moment only for charged hadrons and muons) FANO-OFF: Fano correction for inelastic interactions on atomic electrons is switched off MLSH-ON : Moliere screening angle on for hadrons and muons MLSH-OFF: Moliere screening angle for hadrons and muons as modified by Berger & Seltzer for electrons Default: Fano correction on, original Moliere screening angle for hadrons on Default (option MULSOPT not given): no MCS optimisation For SDUM=GLOBAL/GLOBEMF/GLOBHAD: (GLOBEMF restricts the input value use to the EM part, GLOBHAD to the hadron and muon part) WHAT(1) : controls the minimum MCS step size used by the boundary approach algorithm for electron/positrons and charged heavy particles (in the multiple scattering routine) 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 Moliere 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. 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). 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 step is too short: see WHAT(4) above) > 0: number of single scatterings to be performed when crossing a boundary = 0: ignored < 0: resets the default Default: 1 Note: 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. 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}). 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. 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). 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 muon nuclear interactions: = -1.0 : resets to default (muon nuclear interactions are not simulated) = 0.0 : ignored = 1.0 : full simulation of muon nuclear interactions and production of secondary hadrons = 2.0 : muon nuclear interactions are simulated but no secondary hadron is produced; the energy lost by the muon is deposited at the point of interaction Default = 0.0 (ignored) WHAT(2) = ratio of longitudinal to transverse virtual photon cross section Warning: for code development only, do not change! If changed the new value is applied to ALL materials. Default = 0.25. WHAT(3) = fraction of rho-like interactions ( must be < 1). Warning: for code development only, do not change! If changed the new value is applied to ALL materials. Default = 0.75. 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 SDUM : not used Default (option MUPHOTON not given): muon nuclear interactions are not simulated Notes: Other high-energy interactions of muons with nuclei (pair production, bremsstrahlung) are controlled by option PAIRBREM, which applies also to charged hadrons. 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******************************************************************************** {MYRQMD} Not yet implemented. prepared for new QMD generator 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' = READONLY : the file is opened with status 'OLD' and (only on VAX VMS/OpenVMS) in mode 'READONLY' = 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. In this case the I/O files must be pre-connected via ASSIGN on VAX VMS/OpenVMS (see 3}). On UNIX and Linux, the rfluka script provided with the FLUKA code creates the necessary symbolic links. On some UNIX systems (e.g. HPUX-9), OPEN MUST be given in any case for the data files. Note: 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. . On VAX VMS/OpenVMS, all the three possibilities are available: pre-connection, OPEN option and automatic opening with a default name of the form FORxxx.DAT. - 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. 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 neutron cross section file OPEN -9. READONLY neuxsc_72.bin * 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 = TR-RADIA: switches on Transition Radiation production and defines its energy range WHAT(1) = minimum TRD photon emission energy WHAT(2) = maximum TRD photon emission energy WHAT(3) : not used WHAT(4-6): assignment to materials, see below SDUM = TR-RADIA 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 deposited energy going into i-th scintillation photon emission =< -100: forces to use a user routine (NOT YET IMPLEMENTED) >= -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 deposited energy going into i-th scintillation photon emission =< -100: forces to use a user routine (NOT YET IMPLEMENTED) >= -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 deposited energy going into i-th scintillation photon emission =< -100: forces to use a user routine (NOT YET IMPLEMENTED) >= -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 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 Note: 1) The optional user routines concerning optical photons are: i) RFRNDX: to specify a refraction index as a function of wavelength, frequency or energy. Activated by setting WHAT(1) < -99 when SDUM = blank. ii) 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. iii) DFFCFF: to specify a diffusion coefficient as a function of wavelength, frequency or energy. Activated by setting WHAT(3) < -99 when SDUM = blank. iv) RFLCTV: to specify the reflectivity of a material. This can be activated with SDUM = METAL and WHAT(3) < -99 v) OPHBDX: to set optical properties of a boundary surface. The call is activated with SDUM = SPEC-BDX vi) FRGHNS: to set a possible degree of surface roughness, in order to have both diffusive and specular reflectivity from a given material surface (NOT YET IMPLEMENTED) vii) 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 centreed 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 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