Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
JRandomEvent.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Script to jointly run JRandomTimesliceWriter and JTriggerProcessor.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 if [ -z $JPP_DIR ]; then
15  echo "Variable JPP_DIR undefined."
16  exit
17 fi
18 
19 source $JPP_DIR/setenv.sh $JPP_DIR
20 
21 set_variable: DEBUG RANDOMEVENT_DEBUG 1
22 set_variable: WORKDIR RANDOMEVENT_WORKDIR ./
23 set_variable: BACKGROUND_HZ RANDOMEVENT_BACKGROUND_HZ `getK40Rates`
24 set_variable: SEED RANDOMEVENT_SEED 0
25 set_variable: NUMBER_OF_SLICES RANDOMEVENT_SLICES 10
26 set_variable: RECYCLING RANDOMEVENT_RECYCLING "0 0"
27 set_variable: FACTOR RANDOMEVENT_FACTOR 1.0
28 
29 set_variable DAQ_TIMESLICE JDAQTimesliceL0
30 
31 set_variable OUTPUT_FILE $WORKDIR/trigger_processor.root
32 set_variable DETECTOR $JPP_DATA/km3net_reference.detx
33 set_variable TRIGGER $JPP_DATA/trigger_parameters_arca.txt
34 set_variable PMT_FILE $JPP_DATA/PMT_parameters.txt
35 
36 if do_usage $*; then
37  usage "$script <detector file> <detector file> <output file> <trigger file> <PMT parameters file>"\
38  "\nAuxiliary script to produce random event data."
39 fi
40 
41 if (( $# == 5 )); then
42  set_variable DETECTORA $1
43  set_variable DETECTORB $2
44  set_variable OUTPUT_FILE $3
45  set_variable PARAMETERS $4
46  set_variable PMT_FILE $5
47 else
48  fatal "Wrong number of arguments."
49 fi
50 
51 set_variable DIR `mktemp -d $WORKDIR/XXXXXX`
52 set_variable PIPE $DIR/pipe.dat
53 
54 mkfifo $PIPE
55 
56 if [[ ! -p $PIPE ]]; then
57  fatal "Error opening $PIPE."
58 fi
59 
60 timer_start
61 
62 JRandomTimesliceWriter \
63  -a ${DETECTORA} \
64  -o ${PIPE} \
65  -n ${NUMBER_OF_SLICES} \
66  -P ${PMT_FILE} \
67  -P "QE=${FACTOR}" \
68  -S ${SEED} \
69  -B "$BACKGROUND_HZ" \
70  -N "$RECYCLING" \
71  -d ${DEBUG} \
72  --! &
73 
74 BG=$!
75 
76 JTriggerProcessor \
77  -a ${DETECTORB} \
78  -f ${PIPE} \
79  -@ ${PARAMETERS} \
80  -C ${DAQ_TIMESLICE} \
81  -o ${OUTPUT_FILE} \
82  -d ${DEBUG} \
83  --!
84 
85 CHECK_EXIT_CODE
86 
87 # check exit code background process
88 
89 wait $BG
90 
91 STATUS=$?
92 
93 if (( $STATUS != 0 )); then
94  error "JRandomTimesliceWriter exit status $STATUS"
95  exit $STATUS
96 fi
97 
98 rm -rf ${DIR}
99 
100 timer_stop
101 timer_print
102 
103 JPrintTree \
104  -f ${OUTPUT_FILE}
105 
106 JTriggerMonitor \
107  -f ${OUTPUT_FILE} \
108  -o /dev/null