Jpp 20.0.0-27-g39925593c-D
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 RANDOMSUMMARYSLICE_DEBUG 1
22set_variable: WORKDIR RANDOMSUMMARYSLICE_WORKDIR ./
23set_variable: BACKGROUND_HZ RANDOMSUMMARYSLICE_BACKGROUND_HZ `getK40Rates`
24set_variable: SEED RANDOMSUMMARYSLICE_SEED 0
25set_variable: NUMBER_OF_SLICES RANDOMSUMMARYSLICE_SLICES 10
26set_variable: RECYCLING RANDOMSUMMARYSLICE_RECYCLING "0 0"
27set_variable: FACTOR RANDOMSUMMARYSLICE_FACTOR 1.0
28set_variable: SAMPLER RANDOMSUMMARYSLICE_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
46#JPrintTree -f $DAQ_FILE -@ "type = JDAQSummaryslice" -k number_of_entries | read N
47
48let "N = 0"
49
50set_variable RUNBYRUN "file=$DAQ_FILE; sampler=${SAMPLER%% *} $(($N / 2))"
51
52set_variable DIR `mktemp -d $WORKDIR/XXXXXX`
53set_variable PIPE $DIR/pipe.dat
54set_variable TRIGGER $DIR/trigger_processor.root
55set_variable HEADER $DIR/header.root
56
57mkfifo $PIPE
58
59if [[ ! -p $PIPE ]]; then
60 fatal "Error opening $PIPE."
61fi
62
63JRandomTimesliceWriter \
64 -a ${DETECTOR} \
65 -o ${HEADER} \
66 -o ${PIPE} \
67 -n ${NUMBER_OF_SLICES} \
68 -P ${PMT_FILE} \
69 -P "QE=${FACTOR}" \
70 -S ${SEED} \
71 -B "$BACKGROUND_HZ" \
72 -N "$RECYCLING" \
73 -r "${RUNBYRUN}" \
74 -d ${DEBUG} \
75 --! &
76
77BG=$!
78
79JTriggerProcessor \
80 -a ${DETECTOR} \
81 -f ${PIPE} \
82 -@ "writeSummary = 1" \
83 -C ${DAQ_TIMESLICE} \
84 -o ${TRIGGER} \
85 -d ${DEBUG} \
86 --!
87
88CHECK_EXIT_CODE
89
90JConvert \
91 -f ${HEADER} \
92 -f ${TRIGGER} \
93 -o ${OUTPUT_FILE} \
94 -m
95
96CHECK_EXIT_CODE
97
98# check exit code background process
99
100wait $BG
101
102STATUS=$?
103
104if (( $STATUS != 0 )); then
105 error "JRandomTimesliceWriter exit status $STATUS"
106 exit $STATUS
107fi
108
109rm -rf ${DIR}