Some Monte Carlo tools for MCNP, MCNPX, PHITS and FLUKA
Project homepage: https://github.com/kbat/mc-tools
- 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.
- 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.
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 ipwhich allows to return to the selected geometry view in subsequent calls of the viewer. Find the detailed tutorial in the wiki section.
- 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
- 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.inpand then execute
fluka2root 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.
fluka2rootuses 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
usbsuw2rootabove. 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
- eventdat2root script to convert the EVENTDAT results into a TTree object.
- plotgeom2root script to convert the PLOTGEOM binary output into a TMultiGraph object.
- 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.
- See also: ACEtk
- 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
- 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 ROOTin 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
hplotrequires the Boost libraries and ROOT to be compiled with at least
ace2rootneeds the PyNE toolkit.
- If the GNU parallel tool is
installed then the FLUKA merge and ROOT converter tools called by
fluka2rootscript 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.
- Get the source code:
git clone https://github.com/kbat/mc-tools.git
- or download and uncompress
- Set the variable MCTOOLS to the folder where you have installed the
export MCTOOLS=/path/to/mc-tools(specify the folder containing README.md)
- Add the
- Add the
$MCTOOLS/binfolder into your
batkov [аt] gmail.com
List of authors: Nicolò Borghi, Kazuyoshi Furutaka, Konstantin Batkov