This is a collection of tools to distribute calculations for UHECR propagation on a cluster and to collect and analyze the output. Developed mainly for use with the PriNCe code.
These tools were developed for and used mainly in Heinze et al., Astrophys.J. 873 (2019)
The majority of the code consists of pure Python modules.
Dependencies (list might be incomplete):
- PriNCe propagation code
- python-3.7 or later
- numpy
- scipy
- matplotlib
- iminuit
- jupyter notebook or jupyter lab (optional, but needed for the plotting example)
- Cluster running on Univa grid engine (for other clusters adjust
analyzer.cluster.template_submit
and all calls toqsub
inanalyzer.cluster
)
Adjust the paths and configs in example_create_project.py
, then run as:
python example_create_project.py -c # create job folder and files
python example_create_project.py -s # submit all jobs
to check finished jobs:
python example_create_project.py -m #check missing job files
python example_create_project.py -m -s # resubmit missing jobs
to collect the project after all jobs are finished:
python example_create_project.py --collect
See cluster.PropagationProject.run_terminal()
To recompute only the fitting (and not the numerical propagation) see python example_recompute_fit.py
. Call this file as:
python example_recompute_fit.py --fit -[options]
The fit resutls are collected in collected.hdf5
. This files contains the results in multi-dimensional numpy arrays, with dimensions corresponding to the shape of config['paramlist']
. Utility functions for evalution are contained in analyzer-plotter.py
. See example_evaluate.ipynb
for example plots.
If you are using this code in your work, please cite:
A new view on Auger data and cosmogenic neutrinos in light of different nuclear disintegration and air-shower models
J. Heinze, A. Fedynitch, D. Boncioli and W. Winter
Astrophys.J. 873 (2019) no.1, 88
Jonas Heinze
Copyright (c) 2020, Jonas Heinze All rights reserved.
licensed under BSD 3-Clause License (see LICENSE.md)