Jpp 20.0.0-195-g190c9e876
the software that should make you happy
Loading...
Searching...
No Matches
JRandomSummarysliceRunByRun.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5version=1.0
6script=${0##*/}
7
8# ------------------------------------------------------------------------------------------
9#
10# Script to jointly run JRandomTimesliceWriter and JTriggerProcessor in run-by-run mode.
11#
12# ------------------------------------------------------------------------------------------
13
14if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
16 exit
17fi
18
19source $JPP_DIR/setenv.sh $JPP_DIR
20
21set_variable: DEBUG SUMMARYSLICE_DEBUG 1
22set_variable: WORKDIR SUMMARYSLICE_WORKDIR ./
23set_variable: BACKGROUND_HZ SUMMARYSLICE_BACKGROUND_HZ 0.0
24set_variable: SEED SUMMARYSLICE_SEED 0
25set_variable: NUMBER_OF_SLICES SUMMARYSLICE_SLICES 100
26set_variable: RECYCLING SUMMARYSLICE_RECYCLING "0 0"
27set_variable: FACTOR SUMMARYSLICE_FACTOR 1.0
28set_variable: SAMPLER SUMMARYSLICE_SAMPLER "1000 0"
29
30set_variable DAQ_TIMESLICE JDAQTimesliceL0
31
32if do_usage $*; then
33 usage "$script <detector file> <output file> <DAQ file> <PMT parameters file>"\
34 "\nAuxiliary script to produce random event data."
35fi
36
37if (( $# == 4 )); then
38 set_variable DETECTOR $1
39 set_variable OUTPUT_FILE $2
40 set_variable DAQ_FILE $3
41 set_variable PMT_FILE $4
42else
43 fatal "Wrong number of arguments."
44fi
45
46set_variable RUNBYRUN "file=$DAQ_FILE; sampler=$SAMPLER"
47
48set_variable DIR `mktemp -d $WORKDIR/XXXXXX`
49set_variable PIPE $DIR/pipe.dat
50set_variable TRIGGER $DIR/trigger_processor.root
51set_variable HEADER $DIR/header.root
52
53mkfifo $PIPE
54
55if [[ ! -p $PIPE ]]; then
56 fatal "Error opening $PIPE."
57fi
58
59JRandomTimesliceWriter \
60 -a ${DETECTOR} \
61 -o ${HEADER} \
62 -o ${PIPE} \
63 -n ${NUMBER_OF_SLICES} \
64 -P ${PMT_FILE} \
65 -P "QE=${FACTOR}" \
66 -S ${SEED} \
67 -B "$BACKGROUND_HZ" \
68 -N "$RECYCLING" \
69 -r "${RUNBYRUN}" \
70 -d ${DEBUG} \
71 --! &
72
73BG=$!
74
75JTriggerProcessor \
76 -a ${DETECTOR} \
77 -f ${PIPE} \
78 -@ "writeSummary = 1" \
79 -C ${DAQ_TIMESLICE} \
80 -o ${TRIGGER} \
81 -d ${DEBUG} \
82 --!
83
84CHECK_EXIT_CODE
85
86JConvert \
87 -f ${HEADER} \
88 -f ${TRIGGER} \
89 -o ${OUTPUT_FILE} \
90 -m
91
92CHECK_EXIT_CODE
93
94# check exit code background process
95
96wait $BG
97
98STATUS=$?
99
100if (( $STATUS != 0 )); then
101 error "JRandomTimesliceWriter exit status $STATUS"
102 exit $STATUS
103fi
104
105rm -rf ${DIR}