mc-tools
Some Monte Carlo tools for MCNP, MCNPX, PHITS and FLUKA
Project homepage: https://github.com/kbat/mc-tools
MСNР
- Emacs syntax highlighting script for MCNP.
- An implementation of application programming interface (API) to
read data from mctal files. It allows to convert mctal
files into any format. Known issue: tallies with perturbation
records are not supported.
- mctal2root script converts mctal to ROOT format. The tallies are saved as THnSparse histograms. The same script can convert mctal to XML format via TXMLFile.
- mctal2txt script shows an example how to convert an mctal file into an easily parsable ASCII file.
- WSSA file converters.
- ssw2txt: converts WSSA phase space files into plain text. The comments in the script explain how to derive additional information (like particle type and surface crossed) from the WSSA records.
- ssw2root: converts WSSA phase space files into a ROOT ntuple. The list of aliases defined in the tree can be printed by the TTree::GetListOfAliases()::Print() method. In particular, this list shows how to get particle type and surface number. This macro gives several simple examples how to analyse SSW files with ROOT.
- vol.py:
a tool to facilitate input of volume/importance/probability values
for all cells in geometry. To be used with cards like area, vol, imp, pd, dxc etc.
For example, in order to set the volume of cell 5 to 3.14, cell 7 to 2.71 in a geometry of 10 cells total, run
python $MCTOOLS/mctools/mcnp/vol.py -card vol -ntotal 10 -values "5 3.14 7 2.71" -default j
. This generates the required data card:vol 4j 3.1 j 2.7 3j
. - mcnpview: a wrapper around
mcnp ip
which allows to return to the selected geometry view in subsequent calls of the viewer. Find the detailed tutorial in the wiki section.
PHITS
- Emacs syntax highlighting script for PHITS.
- ANGEL to ROOT converter (converts the PHITS output into ROOT). Most of the tallies are supported with PHITS 2, but it does not really work with PHITS 3.
- A script rotate3dshow.py which allows to animate the output of the t-3dshow tally. It runs PHITS to generate many images, so one can get a rotating video of geometry setup. Example: snowman.gif (should be viewed with an image viewer which supports GIF animation). A simplified version of this script with a detailed manual can be downloaded from the PHITS website: http://phits.jaea.go.jp/examples.html
FLUKA
- Emacs syntax highlighting script for FLUKA.
- fluka2root tool to convert the FLUKA binary output into a ROOT file. To understand how it works, run the standard example
$FLUTIL/rfluka -N0 -M3 $FLUPRO/exmixed.inp
and then executefluka2root exmixed.inp
. It creates a single ROOT file out of all FLUKA-produced data files converted into the ROOT histograms or trees.- A more detailed tutorial is available in the wiki section.
- Internally,
fluka2root
uses the following convertes which can be called individually:- usbsuw2root script to convert the USRBIN results into a TH3F histogram. Note that this tool does not directly convert the files produced by the USRBIN card, but these files must first be averaged by the $FLUTIL/usbsuw program. The resulting averaged file can be converted into ROOT by usbsuw2root. The $FLUTIL/usbsuw call is done automatically if the fluka2root general converter is used.
- usxsuw2root script to convert the USRBDX results into a TH2F histogram. + see the comments for the previous item.
- usrsuw2root script to convertert the
RESNUCLEI results into a TH2F histogram and TGraphError + see the comments for
usbsuw2root
above. Known bug: isomer data is not saved into the ROOT file. - ustsuw2root script to convert the USRTRACK results into a TH1F histogram. + see the comments for
usbsuw2root
above. - eventdat2root script to convert the EVENTDAT results into a TTree object.
- plotgeom2root script to convert the PLOTGEOM binary output into a TMultiGraph object.
Generic tools
- A Python module to calculate atomic fractions of isotopes in a mixture for the given volume fractions of materials. Some examples can be found in mixtures.py.
- ace2root, a converter from ACE (a compact ENDF) to ROOT formats. It loops through all available cross-sections in an ACE file and saves them as TGraph objects. We use this simple script to visualise ENDF cross sections. Requires the PyNE toolkit to be installed.
- hplot, an advanced TH3 histogram plotter. We use it to visualise data maps and superimpose them with Monte Carlo geometry. A detailed manual can be generted with the
-h
argument.
Requirements
- The ROOT-related scripts (file names end with
*2root
), require ROOT to be compiled with Python 3 support.- In order to check whether the Python
support in ROOT is set up correctly, say
import ROOT
in the Python 3 shell. You should not see any error messages.
- In order to check whether the Python
support in ROOT is set up correctly, say
hplot
requires the Boost libraries and ROOT to be compiled with at leastC++17
standard.ace2root
needs the PyNE toolkit.- If the GNU parallel tool is
installed then the FLUKA merge and ROOT converter tools called by
the
fluka2root
script will use all available cores which makes them run faster. - Linux and MacOS are supported. We have never tried to use these tools on Windows.
Installation
- Get the source code:
- either
git clone https://github.com/kbat/mc-tools.git
- or download and uncompress
https://github.com/kbat/mc-tools/archive/master.zip
- either
- Set the variable MCTOOLS to the folder where you have installed the
code:
export MCTOOLS=/path/to/mc-tools
(specify the folder containing README.md) - Add the
$MCTOOLS
folder into$PYTHONPATH
:export PYTHONPATH=$MCTOOLS:$PYTHONPATH
- Add the
$MCTOOLS/bin
folder into your$PATH
:export PATH=$MCTOOLS/bin:$PATH
Contacts
e-mail: batkov [аt] gmail.com
List of authors: Nicolò Borghi, Kazuyoshi Furutaka, Konstantin Batkov