Skip to content
Snippets Groups Projects
Commit cef92db4 authored by Johannes Schumann's avatar Johannes Schumann
Browse files

Merge branch 'basic-scripts' into 'master'

Basic scripts

See merge request !24
parents 10ed4271 57c6ebd2
No related branches found
Tags v0.8.1
1 merge request!24Basic scripts
Pipeline #23906 passed
......@@ -30,9 +30,12 @@ ADD . /km3buu
RUN source /opt/rh/devtoolset-10/enable && \
cd /km3buu && \
pip3 install --upgrade pip && \
pip3 install setuptools-scm && \
pip3 install pytest-runner && \
pip3 install -e .
pip3 install -e . && \
pip3 install -e ".[dev]" && \
pip3 install -e ".[extras]"
RUN cd /km3buu/externals/km3net-dataformat/ && \
make
......
......@@ -42,6 +42,7 @@ install:
install-dev:
pip install -e ".[dev]"
pip install -e ".[extras]"
test:
python -m pytest --junitxml=./reports/junit.xml -o junit_suite_name=$(PKGNAME) $(PKGNAME)
......
File moved
docopt
type-docopt
tqdm
File moved
#!/usr/bin/env python
# coding=utf-8
# Filename: runner.py
# Author: Johannes Schumann <jschumann@km3net.de>
"""
Usage:
runner.py fixed --energy=ENERGY --events=EVENTS (--CC|--NC) (--electron|--muon|--tau) --target-a=TARGETA --target-z=TARGETZ (--sphere=RADIUS | --can) [--outdir=OUTDIR] [--km3netfile=OUTFILE]
runner.py range --energy-min=ENERGYMIN --energy-max=ENERGYMAX --events=EVENTS (--CC|--NC) (--electron|--muon|--tau) --target-a=TARGETA --target-z=TARGETZ (--sphere=RADIUS | --can) [--flux=FLUXFILE] [--outdir=OUTDIR] [--km3netfile=OUTFILE]
runner.py (-h | --help)
Options:
-h --help Show this screen.
--energy=ENERGY Neutrino energy [type: float]
--energy-min=ENERGYMIN Neutrino energy [type: float]
--energy-max=ENERGYMAX Neutrino energy [type: float]
--events=EVENTS Number of simulated events [type: int]
--target-a=TARGETA Target nucleons [type: int]
--target-z=TARGETZ Target protons [type: int]
--sphere=RADIUS Radius of the sphere volume in metres [type: float]
--can Use CAN with std. dimensions
--flux=FLUXFILE Flux definition [type: path]
--outdir=OUTDIR Output directory [type: path]
(--CC | --NC) Interaction type
(--electron | --muon | --tau) Neutrino flavor
"""
from type_docopt import docopt
from pathlib import Path
from tempfile import TemporaryDirectory
from os.path import join
from km3buu.jobcard import generate_neutrino_jobcard
from km3buu.ctrl import run_jobcard
from km3buu.geometry import CanVolume, SphericalVolume
from km3buu.output import GiBUUOutput, write_detector_file
def main():
args = docopt(__doc__, types={'path': Path})
events = args["--events"]
energy = args["--energy"] if args["fixed"] else (args["--energy-min"],
args["--energy-max"])
interaction = "CC" if args["--CC"] else "NC"
flavour = "electron" if args["--electron"] else (
"muon" if args["--muon"] else "tau")
target = (args["--target-z"], args["--target-a"])
jc = generate_neutrino_jobcard(events,
interaction,
flavour,
energy,
target,
fluxfile=args["--flux"])
outdir = args["--outdir"] if args["--outdir"] else TemporaryDirectory()
outdirname = outdir if args["--outdir"] else outdir.name
run_jobcard(jc, outdirname)
fobj = GiBUUOutput(outdir)
volume = SphericalVolume(
args["--sphere"]) if args["--sphere"] else CanVolume()
if args["fixed"]:
descriptor = "{0}_{1}_{2}GeV_A{3}Z{4}".format(flavour, interaction,
energy, target[0],
target[1])
else:
descriptor = "{0}_{1}_{2}-{3}GeV_A{4}Z{5}".format(
flavour, interaction, energy[0], energy[1], target[0], target[1])
if args["--km3netfile"]:
outfilename = args["--km3netfile"]
else:
outfilename = "km3buu_" + descriptor + ".root"
if args["--outdir"]:
outfilename = join(args["--outdir"], outfilename)
write_detector_file(fobj, geometry=volume, ofile=outfilename)
if __name__ == '__main__':
main()
......@@ -15,11 +15,11 @@ DESCRIPTION = 'GiBUU tools for KM3NeT'
__author__ = 'Johannes Schumann'
__email__ = 'jschumann@km3net.de'
with open('requirements.txt') as fobj:
REQUIREMENTS = [l.strip() for l in fobj.readlines()]
with open('requirements-dev.txt') as fobj:
DEV_REQUIREMENTS = [l.strip() for l in fobj.readlines()]
def read_requirements(kind):
with open(os.path.join('requirements', kind + '.txt')) as fobj:
requirements = [l.strip() for l in fobj.readlines()]
return requirements
setup(
name=PACKAGE_NAME,
......@@ -35,8 +35,11 @@ setup(
'write_to': '{}/version.txt'.format(PACKAGE_NAME),
'tag_regex': r'^(?P<prefix>v)?(?P<version>[^\+]+)(?P<suffix>.*)?$',
},
install_requires=REQUIREMENTS,
extras_require={'dev': DEV_REQUIREMENTS},
install_requires=read_requirements("install"),
extras_require={
kind: read_requirements(kind)
for kind in ["dev", "extras"]
},
python_requires='>=3.0',
entry_points={'console_scripts': ['km3buu=km3buu.cmd:main']},
classifiers=[
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment