Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
software/JDataWriter/JDataWriter.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Utility script to run JDataWriter and JEventGenerator.
10#
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 3
22set_variable WORKDIR ${TMPDIR:-/tmp}/
23set_variable DETECTOR $JPP_DATA/km3net_reference.detx
24set_variable LOGGER_OUTPUT logger.txt
25set_variable HOST `get_ip_address`
26
27if do_usage $*; then
28 usage "$script [detector file [logger file [working directory]]]"
29fi
30
31case $# in
32 3) set_variable WORKDIR $3;&
33 2) set_variable LOGGER_OUTPUT $2;&
34 1) set_variable DETECTOR $1;;
35esac
36
37set_variable INPUT_FILE $WORKDIR/trigger_processor.root
38set_variable MESSAGE_SERVER localhost
39set_variable MESSAGE_LOGGER localhost
40set_variable DEBUG 3
41set_variable RUN_1 1001
42set_variable RUN_2 1002
43set_variable TIMEOUT_S 10
44set_variable RUNTIME_S 20
45set_variable DETECTOR_ID 1000
46set_variable DWRITER_HOST $HOST
47
48
49if [[ ! -f $DETECTOR ]]; then
50 JDetector.sh $DETECTOR
51fi
52
53if ( ! reuse_file $INPUT_FILE ); then
54
55 set_variable singlesRate 0e3
56 set_variable doublesRate 2e3
57 set_variable numberOfSlices 10
58
59 echo "Generating random background."
60 echo "Singles rate: $singlesRate [Hz]."
61 echo "Doubles rate: $doublesRate [Hz]."
62
63 PIPE=${TMPDIR:-/tmp}/pipe.dat
64
65 rm -f $PIPE
66 mkfifo $PIPE
67
68 nohup JRandomTimesliceWriter \
69 -a $DETECTOR \
70 -o $PIPE \
71 -B "$singlesRate $doublesRate" \
72 -n $numberOfSlices \
73 -d1 > timeslice.log 2>&1 &
74
75 echo Processing random data.
76
77 JTriggerProcessor \
78 -a $DETECTOR \
79 -f $PIPE \
80 -@trigger3DShower.enabled=1 \
81 -@trigger3DMuon.enabled=1 \
82 -o $INPUT_FILE \
83 -d1 > trigger.log 2>&1
84
85 rm -f $PIPE
86
87 JPrintTree \
88 -f $INPUT_FILE
89
90fi
91
92
93let RUN=RUN_1
94
95while (( $RUN <= $RUN_2 )); do
96
97 OUTPUT_FILE=`printf %s/KM3NeT_%08d_%08d.root $WORKDIR $DETECTOR_ID $RUN`
98
99 if [[ -f $OUTPUT_FILE ]]; then
100 rm -i $OUTPUT_FILE
101 fi
102
103 let RUN=$RUN+1
104done
105
106
107# Event generation configure data.
108
109if [[ ! -f ev_configure.txt ]]; then
110
111cat>ev_configure.txt<<EOF
112datawriter = $DWRITER_HOST;
113inputFile = $INPUT_FILE;
114eventRate_Hz = 100.0;
115EOF
116
117fi
118
119# Driver input.
120
121if [[ ! -f driver.txt ]]; then
122
123cat>driver.txt<<EOF
124
125process JEventGenerator $HOST csh -c '(setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && (JEventGenerator -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -u \$NAME\$ </dev/null >&/dev/null &))';
126process JDataWriter $HOST csh -c '(setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && (JDataWriter -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -u \$NAME\$ </dev/null >&/dev/null &))';
127
128enter
129
130event ev_init { RC_CMD }
131EOF
132
133let RUN=RUN_1
134
135while (( $RUN <= $RUN_2 )); do
136
137cat>>driver.txt<<EOF
138
139event ev_configure {
140 RC_EVT %<ev_configure.txt>%
141 RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
142}
143
144event ev_start { RC_CMD $RUN $DETECTOR_ID }
145
146sleep $RUNTIME_S
147
148event ev_pause { RC_CMD }
149event ev_stop { RC_CMD }
150EOF
151
152let RUN=$RUN+1
153done
154
155cat>>driver.txt<<EOF
156
157event ev_reset { RC_CMD }
158event ev_off { RC_CMD }
159EOF
160
161fi
162
163
164if (( 1 )); then
165
166 JLigier.sh $MESSAGE_SERVER continue
167
168fi
169
170
171if (( 1 )); then
172
173 JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
174
175fi
176
177
178if (( 1 )); then
179
180 JDAQDriver \
181 -H $MESSAGE_SERVER \
182 -M $MESSAGE_LOGGER \
183 -t $TIMEOUT_S \
184 -f driver.txt \
185 -d $DEBUG \
186 -c
187
188fi
189
190
191if (( 1 )); then
192
193 JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER
194
195fi