From 598909e2e384c7f3243b5756381e7f833fd4106c Mon Sep 17 00:00:00 2001 From: Whitney Armstrong <warmstrong@anl.gov> Date: Mon, 16 Aug 2021 05:53:39 +0000 Subject: [PATCH] Resolve "view14 is storing 2 GB of artifacts" --- .gitlab-ci.yml | 9 +- bin/generate_prim_file | 156 +++++++++++++++++++++++++++++++++ bin/make_dawn_views | 90 +++---------------- scripts/view11/.DAWN_1.history | 31 +++++++ scripts/view12/.DAWN_1.history | 31 +++++++ scripts/view12/generate_eps | 11 --- scripts/view13/generate_eps | 2 +- scripts/view14/.DAWN_1.history | 31 +++++++ scripts/view14/generate_eps | 16 ---- scripts/view15/.DAWN_1.history | 31 +++++++ scripts/view2/.DAWN_1.history | 2 +- scripts/view5/.DAWN_1.history | 31 +++++++ scripts/view6/.DAWN_1.history | 31 +++++++ views/generate_prim_files.yml | 38 ++++++++ views/view1.yml | 19 ++-- views/view11.yml | 34 +++++-- views/view12.yml | 5 +- views/view13.yml | 5 +- views/view14.yml | 5 +- views/view15.yml | 5 +- views/view2.yml | 24 +++-- views/view20.yml | 15 +++- views/view3.yml | 17 +++- views/view6.yml | 29 ++++-- views/view7.yml | 17 +++- 25 files changed, 535 insertions(+), 150 deletions(-) create mode 100755 bin/generate_prim_file create mode 100644 scripts/view11/.DAWN_1.history create mode 100644 scripts/view12/.DAWN_1.history create mode 100644 scripts/view14/.DAWN_1.history create mode 100644 scripts/view15/.DAWN_1.history create mode 100644 scripts/view5/.DAWN_1.history create mode 100644 scripts/view6/.DAWN_1.history create mode 100644 views/generate_prim_files.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c11ac339..4571beda 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,6 @@ stages: - build - test - docs - - test - collect - finalize - deploy @@ -77,22 +76,18 @@ build:simple: - mkdir -p build && cd build && cmake ../. -DCMAKE_INSTALL_PREFIX=/usr/local && make -j20 && make install && cd .. - echo "Build successful." + .views: stage: docs before_script: - source .local/bin/env.sh - # - sed -i 's?<support inside?<\!--support inside?' compact/ecal_barrel_hybrid.xml - # - sed -i 's?</support>?</support-->?' compact/ecal_barrel_hybrid.xml - # - sed -i 's?<fiber material?<\!--fiber material?' compact/ecal_barrel_interlayers.xml - # - sed -i 's?</fiber>?</fiber-->?' compact/ecal_barrel_interlayers.xml - # - echo $DETECTOR_PATH - # - cp compact/ecal_barrel_interlayers.xml ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml - env - pip3 install psutil needs: - ["common:detector"] include: + - local: 'views/generate_prim_files.yml' - local: 'views/view1.yml' - local: 'views/view2.yml' - local: 'views/view3.yml' diff --git a/bin/generate_prim_file b/bin/generate_prim_file new file mode 100755 index 00000000..2274f061 --- /dev/null +++ b/bin/generate_prim_file @@ -0,0 +1,156 @@ +#!/usr/local/bin/python + +# same as make_dawn_views but stops at generating the prim file. +# W. Armstrong (ANL), original bash script +# C. Peng (ANL), translate to python and add flexible run time for simulation + +import os +import signal +import subprocess +import argparse +import atexit +import time +from datetime import datetime +import fcntl +import psutil + + +def readline_nonblocking(output): + fd = output.fileno() + fl = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) + try: + return output.readline() + except: + return '' + + +# arguments +parser = argparse.ArgumentParser() + +parser.add_argument('-c', '--compact-file', type=str, dest='compact', + default=os.path.join(os.environ.get('DETECTOR_PATH', '.'), 'athena.xml'), + help='Top level compact file for detectors') + +parser.add_argument('-s', '--skip', type=int, + default=0, + help='Number of events number to skip in the input') + +parser.add_argument('-i', '--input', type=str, + default='scripts/input_data/few_events.hepmc', + help='Input hepmc file') + +parser.add_argument('-o', '--output-dir', type=str, dest='out_dir', + default='sim_output', + help='output directory') + +parser.add_argument('-D', '--detector-only', action='store_true', dest='detector_only', + help='only generate the prim files for the detector geometry') + +parser.add_argument('-t', '--tag', type=str,dest='file_tag', + default='view', + help='Output file tag') + +parser.add_argument('--timeout', type=int, + default=60, + help='Timeout in seconds') + +parser.add_argument('passthrough', nargs='*') + +args = parser.parse_args() + +macro = 'macro/dawn_picture.mac' if args.detector_only else 'macro/dawn_picture2.mac' + +# raise error if cannot create a temporary working dir +# os.makedirs('dawn_view_tmp', exist_ok=False) +os.makedirs(args.out_dir, exist_ok=True) + +# use absolute path so the chdir does not affect them +args.input = os.path.abspath(args.input) +args.out_dir = os.path.abspath(args.out_dir) +args.compact = os.path.abspath(args.compact) +macro = os.path.abspath(macro) + +prim_file = 'g4_0000.prim' +dawn_env = os.environ.copy() +dawn_env['DAWN_BATCH'] = 'a' +# sdir = os.path.dirname(os.path.realpath(__file__)) + +# Using a python warpper such as npsim introduces some problem in managing the subprocess. +# The process1 managed by subprocess will generate another process with proc2_pid = proc1_pid + 1, which will not +# be terminated by terminating or killing the process1. +# In addition, running Geant4 with vis mode will never exit automatically (it waits for input). +# Thus the created process 2 will occupy the system resources. +sim_cmd = ['npsim', '--runType', 'vis', + '--compact', args.compact, + '--inputFiles', args.input, + '--outputFile', 'derp.root', + '--numberOfEvents', '1', + '--skipNEvents', str(args.skip), + '--macroFile', macro] + +start = datetime.now() +elapse = datetime.now() - start +last_update = datetime.now() +finished = False + +# run simulation +print(' '.join(sim_cmd)) +p = subprocess.Popen(args=sim_cmd, env=dawn_env, + stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) +__child_pid = p.pid +while elapse.seconds < args.timeout: + line = readline_nonblocking(p.stdout) + elapse = datetime.now() - start + time_left = args.timeout - elapse.seconds + time_str = '[{:02d}:{:02d}]'.format(elapse.seconds // 60, elapse.seconds % 60) + + if time_left < 10: + print('{} === TIMEOUT ===: Terminating in {:d} seconds'.format(time_str, time_left)) + + if line: + decoded_line = line.decode('utf-8').strip() + print('{} {}'.format(time_str, decoded_line)) + # what we are looking for + if decoded_line == 'File {} is generated.'.format(prim_file): + print('{} === FINISHED ===: Got the prim file, terminating.'.format(time_str)) + finished = True + break + if decoded_line == 'Idle>': + p.stdin.write(b'exit') + break + # do not sleep + continue + + # ended early before file + if p.poll() is not None: + print(p.poll()) + break + + time.sleep(1) + +p.kill() +# use to kill the subprocess generated from the python wrapper +# this is unsafe so maybe more checks required +for proc in psutil.process_iter(): + pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time']) + if pinfo['pid'] == p.pid + 1 and pinfo['name'] == 'python': + print('kill {}, generated from {}'.format(pinfo, p.pid)) + os.kill(pinfo['pid'], signal.SIGTERM) + +line = b'stderr outputs:\n' +while line: + print(line.decode('utf-8'), end='') + line = readline_nonblocking(p.stderr) + +if finished: + print('Simulation finished') +else: + print('Simulation failed') + exit(1) + +# move the prim files (which can be quite large) +# to the local pipeline storage path +os.system('mv g4_0000.prim {}/{}.prim'.format(args.out_dir,args.file_tag)) + + diff --git a/bin/make_dawn_views b/bin/make_dawn_views index 279119e8..671527b5 100755 --- a/bin/make_dawn_views +++ b/bin/make_dawn_views @@ -36,8 +36,8 @@ parser.add_argument('-s', '--skip', type=int, default=0, help='Number of events number to skip in the input') -parser.add_argument('-i', '--input', type=str, - default='scripts/input_data/few_events.hepmc', +parser.add_argument('-i', '--input', type=str, dest='input', + default='sim_output', help='Input hepmc file') parser.add_argument('-o', '--output-dir', type=str, dest='out_dir', @@ -51,7 +51,7 @@ parser.add_argument('-d', '--dawn-dir', type=str, dest='dawn_dir', default='scripts/view1', help='Directory to dawn script dir (with .DAWN files and a generate_eps script)') -parser.add_argument('-t', '--tag', type=str, +parser.add_argument('-t', '--tag', type=str,dest='file_tag', default='view', help='Output file tag') @@ -80,90 +80,20 @@ dawn_env = os.environ.copy() dawn_env['DAWN_BATCH'] = 'a' # sdir = os.path.dirname(os.path.realpath(__file__)) -# Using a python warpper such as npsim introduces some problem in managing the subprocess. -# The process1 managed by subprocess will generate another process with proc2_pid = proc1_pid + 1, which will not -# be terminated by terminating or killing the process1. -# In addition, running Geant4 with vis mode will never exit automatically (it waits for input). -# Thus the created process 2 will occupy the system resources. -sim_cmd = ['npsim', '--runType', 'vis', - '--compact', args.compact, - '--inputFiles', args.input, - '--outputFile', 'derp.root', - '--numberOfEvents', '1', - '--skipNEvents', str(args.skip), - '--macroFile', macro] - -start = datetime.now() -elapse = datetime.now() - start -last_update = datetime.now() -finished = False - -# run simulation -print(' '.join(sim_cmd)) -p = subprocess.Popen(args=sim_cmd, env=dawn_env, - stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) -__child_pid = p.pid -while elapse.seconds < args.timeout: - line = readline_nonblocking(p.stdout) - elapse = datetime.now() - start - time_left = args.timeout - elapse.seconds - time_str = '[{:02d}:{:02d}]'.format(elapse.seconds // 60, elapse.seconds % 60) - - if time_left < 10: - print('{} === TIMEOUT ===: Terminating in {:d} seconds'.format(time_str, time_left)) - - if line: - decoded_line = line.decode('utf-8').strip() - print('{} {}'.format(time_str, decoded_line)) - # what we are looking for - if decoded_line == 'File {} is generated.'.format(prim_file): - print('{} === FINISHED ===: Got the prim file, terminating.'.format(time_str)) - finished = True - break - if decoded_line == 'Idle>': - p.stdin.write(b'exit') - break - # do not sleep - continue - - # ended early before file - if p.poll() is not None: - print(p.poll()) - break - - time.sleep(1) - -p.kill() -# use to kill the subprocess generated from the python wrapper -# this is unsafe so maybe more checks required -for proc in psutil.process_iter(): - pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time']) - if pinfo['pid'] == p.pid + 1 and pinfo['name'] == 'python': - print('kill {}, generated from {}'.format(pinfo, p.pid)) - os.kill(pinfo['pid'], signal.SIGTERM) - -line = b'stderr outputs:\n' -while line: - print(line.decode('utf-8'), end='') - line = readline_nonblocking(p.stderr) - -if finished: - print('Simulation finished') -else: - print('Simulation failed') - exit(1) - # generate DAWN images -prim_file = os.path.abspath(prim_file) +out_dir = os.path.abspath(args.out_dir) +input_file = os.path.abspath(args.input) +#prim_file = '{}/{}.prim'.format(input_dir,args.file_tag) +#prim_file = os.path.abspath(prim_file) owd = os.getcwd() os.chdir(args.dawn_dir) subprocess.run(['pwd']) -subprocess.run(['./generate_eps', '-t', args.tag, '-i', prim_file] + args.passthrough) +subprocess.run(['./generate_eps', '-t', args.file_tag, '-i', input_file] + args.passthrough) subprocess.run(['ls', '-lrth']) # upload the results -os.system('cp *.pdf {}'.format(args.out_dir)) -os.system('cp *.png {}'.format(args.out_dir)) +os.system('cp *.pdf {}'.format(out_dir)) +os.system('cp *.png {}'.format(out_dir)) os.chdir(owd) diff --git a/scripts/view11/.DAWN_1.history b/scripts/view11/.DAWN_1.history new file mode 100644 index 00000000..20c06d60 --- /dev/null +++ b/scripts/view11/.DAWN_1.history @@ -0,0 +1,31 @@ +1.34392e+07 +90 +180 +0 +0 +0 +25000 +2.0 +1 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +19 +71 +0.001 +0.001 +0.001 +3 +71 +0.001 +0 +0 +1 +evince +0 +0 diff --git a/scripts/view12/.DAWN_1.history b/scripts/view12/.DAWN_1.history new file mode 100644 index 00000000..b38cb89f --- /dev/null +++ b/scripts/view12/.DAWN_1.history @@ -0,0 +1,31 @@ +1.34392e+07 +0 +180 +0 +0 +0 +0 +8 +1 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +19 +71 +0.01 +0.01 +0.01 +3 +70 +0.01 +1 +1 +1 +evince +0 +0 diff --git a/scripts/view12/generate_eps b/scripts/view12/generate_eps index 38ebec3c..fd1bcb97 100755 --- a/scripts/view12/generate_eps +++ b/scripts/view12/generate_eps @@ -66,17 +66,6 @@ set -- "${POSITIONAL[@]}" # restore positional parameters echo "view12 produces a series of slightly rotated XY slices a different z locations. Along beamline" -# slice at z = 2m -# note the offset has to change with sign of the direction to cut in the opposite direction. -dawncut 0 0 1 2005 ${INPUT_FILE} ${FILE_TAG}b_temp0.prim -dawncut 0 0 -1 -2000 ${FILE_TAG}b_temp0.prim ${FILE_TAG}b.prim -dawn -d ${FILE_TAG}b.prim -ps2pdf ${FILE_TAG}b.eps ${FILE_TAG}b_full.pdf -gs -o ${FILE_TAG}b.pdf -sDEVICE=pdfwrite \ - -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ - -f ${FILE_TAG}b_full.pdf -pdftoppm ${FILE_TAG}b.pdf ${FILE_TAG}b -png -singlefile -cropbox - original_file_tag="${FILE_TAG}" make_slice(){ diff --git a/scripts/view13/generate_eps b/scripts/view13/generate_eps index be6ce788..27ffee13 100755 --- a/scripts/view13/generate_eps +++ b/scripts/view13/generate_eps @@ -9,7 +9,7 @@ function print_the_help { exit } -FILE_TAG="view2" +FILE_TAG="view13" INPUT_FILE="g4_0000.prim" diff --git a/scripts/view14/.DAWN_1.history b/scripts/view14/.DAWN_1.history new file mode 100644 index 00000000..40b2c0b3 --- /dev/null +++ b/scripts/view14/.DAWN_1.history @@ -0,0 +1,31 @@ +0.0 +72.5 +189.5 +0 +0 +0 +1500 +55 +3 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +25.5 +71 +0.001 +0.001 +0.001 +1 +70 +0.001 +1 +0 +1 +evince +0 +0 diff --git a/scripts/view14/generate_eps b/scripts/view14/generate_eps index dc86760e..0e5286c4 100755 --- a/scripts/view14/generate_eps +++ b/scripts/view14/generate_eps @@ -69,22 +69,6 @@ set -- "${POSITIONAL[@]}" # restore positional parameters # units are mm -echo "view14 produces a series of slightly rotated XY slices a different z locations. Along beamline" - -# slice at z = 2m -# note the offset has to change with sign of the direction to cut in the opposite direction. -dawncut 0 0 1 10005 ${INPUT_FILE} ${FILE_TAG}b_temp0.prim -dawncut 0 0 -1 -1000 ${FILE_TAG}b_temp0.prim ${FILE_TAG}b.prim -dawn -d ${FILE_TAG}b.prim -ps2pdf ${FILE_TAG}b.eps ${FILE_TAG}b_full.pdf -gs -o ${FILE_TAG}b.pdf -sDEVICE=pdfwrite \ - -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ - -f ${FILE_TAG}b_full.pdf -pdftoppm ${FILE_TAG}b.pdf ${FILE_TAG}b -png -singlefile -cropbox - -echo "done ..." - - original_file_tag="${FILE_TAG}" make_slice(){ diff --git a/scripts/view15/.DAWN_1.history b/scripts/view15/.DAWN_1.history new file mode 100644 index 00000000..d6c74628 --- /dev/null +++ b/scripts/view15/.DAWN_1.history @@ -0,0 +1,31 @@ +0.0 +72.5 +189.5 +0 +0 +0 +1500 +50 +3 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +25.5 +71 +0.001 +0.001 +0.001 +1 +70 +0.001 +1 +0 +1 +evince +0 +0 diff --git a/scripts/view2/.DAWN_1.history b/scripts/view2/.DAWN_1.history index 16311bf7..b38cb89f 100644 --- a/scripts/view2/.DAWN_1.history +++ b/scripts/view2/.DAWN_1.history @@ -6,7 +6,7 @@ 0 0 8 -3 +1 0.001 0 1 diff --git a/scripts/view5/.DAWN_1.history b/scripts/view5/.DAWN_1.history new file mode 100644 index 00000000..cb715456 --- /dev/null +++ b/scripts/view5/.DAWN_1.history @@ -0,0 +1,31 @@ +1.34392e+07 +0 +0 +1 +0 +0 +491.1 +1.2 +5 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +19 +71 +0.01 +0.01 +0.01 +3 +70 +0.01 +1 +1 +1 +evince +0 +0 diff --git a/scripts/view6/.DAWN_1.history b/scripts/view6/.DAWN_1.history new file mode 100644 index 00000000..9be90fd2 --- /dev/null +++ b/scripts/view6/.DAWN_1.history @@ -0,0 +1,31 @@ +1.34392e+07 +0 +180 +0 +0 +0 +0 +8.6 +1 +0.001 +0 +1 +1 +1 +0.5 +0.5 +0.5 +19 +71 +0.01 +0.01 +0.01 +3 +70 +0.01 +1 +1 +1 +evince +0 +0 diff --git a/views/generate_prim_files.yml b/views/generate_prim_files.yml new file mode 100644 index 00000000..e511aa23 --- /dev/null +++ b/views/generate_prim_files.yml @@ -0,0 +1,38 @@ +view_prim:detector_only: + extends: .views + stage: test + script: + - ./bin/generate_prim_file -o ${LOCAL_DATA_PATH} -D -t detector_view + - ls -lrth && ls -lrth ${LOCAL_DATA_PATH} + +view_prim:ev001: + extends: .views + stage: test + rules: + - if: '$DETECTOR_EVENT_VIEWS == "ON"' + script: + - ./bin/generate_prim_file -o ${LOCAL_DATA_PATH} -t view_ev001 -s 1 + +view_prim:ev002: + extends: .views + stage: test + rules: + - if: '$DETECTOR_EVENT_VIEWS == "ON"' + script: + - ./bin/generate_prim_file -o ${LOCAL_DATA_PATH} -t view_ev002 -s 2 + +view_prim:ev003: + extends: .views + stage: test + rules: + - if: '$DETECTOR_EVENT_VIEWS == "ON"' + script: + - ./bin/generate_prim_file -o ${LOCAL_DATA_PATH} -t view_ev003 -s 3 + +view_prim:ev004: + extends: .views + stage: test + rules: + - if: '$DETECTOR_EVENT_VIEWS == "ON"' + script: + - ./bin/generate_prim_file -o ${LOCAL_DATA_PATH} -t view_ev004 -s 4 diff --git a/views/view1.yml b/views/view1.yml index cbcdedd7..4d85b5c7 100644 --- a/views/view1.yml +++ b/views/view1.yml @@ -1,24 +1,33 @@ dawn_view_01:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view01 -d scripts/view1 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view01 -d scripts/view1 -D + dawn_view_01:ev001: extends: .views rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' + needs: + - job: view_prim:ev001 + optional: true script: - - ./bin/make_dawn_views -t view01_ev001 -d scripts/view1 -s 1 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view01_ev001 -d scripts/view1 -s 1 + dawn_view_01:ev002: extends: .views rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' + needs: + - job: view_prim:ev002 + optional: true script: - - ./bin/make_dawn_views -t view01_ev002 -d scripts/view1 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view01_ev002 -d scripts/view1 -s 2 view_01: stage: collect - rules: - - if: '$CI_SERVER_HOST == "eicweb.phy.anl.gov"' needs: - job: dawn_view_01:detector optional: false diff --git a/views/view11.yml b/views/view11.yml index ca6905ba..146eef97 100644 --- a/views/view11.yml +++ b/views/view11.yml @@ -1,37 +1,59 @@ dawn_view_11:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view11 -d scripts/view11 -D + dawn_view_11:ev000: rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' extends: .views + needs: + - job: view_prim:ev001 + optional: true script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view11 -d scripts/view11 + dawn_view_11:ev001: rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' extends: .views + needs: + - job: view_prim:ev001 + optional: true script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 -s 1 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view11 -d scripts/view11 -s 1 + dawn_view_11:ev002: rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' extends: .views + needs: + - job: view_prim:ev002 + optional: true script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev003.prim -t view11 -d scripts/view11 -s 2 dawn_view_11:ev003: rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' extends: .views + needs: + - job: view_prim:ev003 + optional: true script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 -s 3 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH} -t view11 -d scripts/view11 -s 3 + dawn_view_11:ev004: rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' extends: .views + needs: + - job: view_prim:ev004 + optional: true script: - - ./bin/make_dawn_views -t view11 -d scripts/view11 -s 4 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH} -t view11 -d scripts/view11 -s 4 view_11: stage: collect diff --git a/views/view12.yml b/views/view12.yml index b3da026a..8b3969c1 100644 --- a/views/view12.yml +++ b/views/view12.yml @@ -1,7 +1,10 @@ dawn_view_12:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view12 -d scripts/view12 -D -- ${SLICE} + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view12 -d scripts/view12 -D -- ${SLICE} - ls -lrth * - ls -lrth images/* parallel: diff --git a/views/view13.yml b/views/view13.yml index 9360140c..658c63b4 100644 --- a/views/view13.yml +++ b/views/view13.yml @@ -1,7 +1,10 @@ dawn_view_13:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view13 -d scripts/view13 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view13 -d scripts/view13 -D view_13: stage: collect diff --git a/views/view14.yml b/views/view14.yml index 77b1651d..8aae5f66 100644 --- a/views/view14.yml +++ b/views/view14.yml @@ -1,7 +1,10 @@ dawn_view_14:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view14 -d scripts/view14 -D -- ${SLICE} + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view14 -d scripts/view14 -D -- ${SLICE} - ls -lrth * - ls -lrth images/* parallel: diff --git a/views/view15.yml b/views/view15.yml index 9d24e940..e1c86125 100644 --- a/views/view15.yml +++ b/views/view15.yml @@ -1,7 +1,10 @@ dawn_view_15:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view15 -d scripts/view15 -D -- ${SLICE} + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view15 -d scripts/view15 -D -- ${SLICE} - ls -lrth * - ls -lrth images/* parallel: diff --git a/views/view2.yml b/views/view2.yml index fafb8adc..f758f7de 100644 --- a/views/view2.yml +++ b/views/view2.yml @@ -1,25 +1,40 @@ dawn_view_02:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view02 -d scripts/view2 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view02 -d scripts/view2 -D + dawn_view_02:ev001: extends: .views rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' + needs: + - job: view_prim:ev001 + optional: true script: - - ./bin/make_dawn_views -t view02_ev001 -d scripts/view2 -s 1 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view02_ev001 -d scripts/view2 -s 1 + dawn_view_02:ev002: extends: .views rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' + needs: + - job: view_prim:ev002 + optional: true script: - - ./bin/make_dawn_views -t view02_ev002 -d scripts/view2 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view02_ev002 -d scripts/view2 -s 2 + dawn_view_02:ev003: extends: .views rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' + needs: + - job: view_prim:ev003 + optional: true script: - - ./bin/make_dawn_views -t view02_ev003 -d scripts/view2 -s 3 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev003.prim -t view02_ev003 -d scripts/view2 -s 3 view_02: stage: collect @@ -32,7 +47,6 @@ view_02: optional: true - job: dawn_view_02:ev003 optional: true - #- ["dawn_view_02:detector", "dawn_view_02:ev001", "dawn_view_02:ev002", "dawn_view_02:ev003"] script: - ls -lrth * - ls -lrth images/* diff --git a/views/view20.yml b/views/view20.yml index 75cdb440..be4107e9 100644 --- a/views/view20.yml +++ b/views/view20.yml @@ -1,22 +1,31 @@ dawn_view_20:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - cp "compact/subsystem_views/calorimeters.xml" "${DETECTOR_PATH}/." - - ./bin/make_dawn_views -c ${DETECTOR_PATH}/calorimeters.xml -t calorimeters_view20 -d scripts/view20 -D + - ./bin/make_dawn_views -c ${DETECTOR_PATH}/calorimeters.xml -i ${LOCAL_DATA_PATH}/detector_view.prim -t calorimeters_view20 -d scripts/view20 -D dawn_view_20:ev001: extends: .views + needs: + - job: view_prim:ev001 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view20_ev001 -d scripts/view20 -s 1 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view20_ev001 -d scripts/view20 -s 1 dawn_view_20:ev002: extends: .views + needs: + - job: view_prim:ev002 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view20_ev002 -d scripts/view20 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view20_ev002 -d scripts/view20 -s 2 view_20: stage: collect diff --git a/views/view3.yml b/views/view3.yml index ea4dd114..6e73b851 100644 --- a/views/view3.yml +++ b/views/view3.yml @@ -1,17 +1,28 @@ dawn_view_03:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view02 -d scripts/view3 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view03 -d scripts/view3 -D + #dawn_view_03:ev001: # extends: .views +# needs: +# - job: view_prim:ev001 +# optional: true # script: -# - ./bin/make_dawn_views -t view02_ev001 -d scripts/view3 -s 1 +# - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view03_ev001 -d scripts/view3 -s 1 + dawn_view_03:ev002: extends: .views + needs: + - job: view_prim:ev002 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view02_ev002 -d scripts/view3 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view03_ev002 -d scripts/view3 -s 2 view_03: stage: collect diff --git a/views/view6.yml b/views/view6.yml index 8d16aa35..8d000939 100644 --- a/views/view6.yml +++ b/views/view6.yml @@ -1,31 +1,50 @@ dawn_view_06:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view06 -d scripts/view6 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view06 -d scripts/view6 -D + dawn_view_06:ev001: extends: .views + needs: + - job: view_prim:ev001 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view06_ev001 -d scripts/view6 -s 1 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view06_ev001 -d scripts/view6 -s 1 + dawn_view_06:ev002: extends: .views + needs: + - job: view_prim:ev002 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view06_ev002 -d scripts/view6 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view06_ev002 -d scripts/view6 -s 2 + dawn_view_06:ev003: extends: .views + needs: + - job: view_prim:ev003 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view06_ev003 -d scripts/view6 -s 3 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev003.prim -t view06_ev003 -d scripts/view6 -s 3 + dawn_view_06:ev004: extends: .views + needs: + - job: view_prim:ev004 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view06_ev004 -d scripts/view6 -s 4 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH} -t view06_ev004 -d scripts/view6 -s 4 view_06: stage: collect diff --git a/views/view7.yml b/views/view7.yml index 740ef72d..55aec2f3 100644 --- a/views/view7.yml +++ b/views/view7.yml @@ -1,19 +1,30 @@ dawn_view_07:detector: extends: .views + needs: + - job: view_prim:detector_only + optional: false script: - - ./bin/make_dawn_views -t view07 -d scripts/view7 -D + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/detector_view.prim -t view07 -d scripts/view7 -D + dawn_view_07:ev002: extends: .views + needs: + - job: view_prim:ev002 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view07_ev002 -d scripts/view7 -s 2 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev001.prim -t view07_ev002 -d scripts/view7 -s 2 + dawn_view_07:ev003: extends: .views + needs: + - job: view_prim:ev003 + optional: true rules: - if: '$DETECTOR_EVENT_VIEWS == "ON"' script: - - ./bin/make_dawn_views -t view07_ev003 -d scripts/view7 -s 3 + - ./bin/make_dawn_views -i ${LOCAL_DATA_PATH}/view_ev002.prim -t view07_ev003 -d scripts/view7 -s 3 view_07: stage: collect -- GitLab