8# ------------------------------------------------------------------------------------------
10# Utility script to run JDataWriter and JEventGenerator.
12# ------------------------------------------------------------------------------------------
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
21source $JPP_DIR/setenv.sh $JPP_DIR
25set_variable WORKDIR $JPP_DATA
26set_variable DETECTOR $JPP_DATA/km3net_reference.detx
27set_variable LOGGER_OUTPUT logger.txt
31 usage "$script [detector file] [logger file [working directory]]]"
35 3) set_variable WORKDIR $3;&
36 2) set_variable LOGGER_OUTPUT $2;&
37 1) set_variable DETECTOR $1;;
41set_variable INPUT_FILE $WORKDIR/trigger_processor.root
43set_variable MESSAGE_SERVER localhost
44set_variable MESSAGE_LOGGER localhost
48set_variable RUN_1 1001
49set_variable RUN_2 1002
50set_variable TIMEOUT_S 10
51set_variable RUNTIME_S 20
53set_variable DWRITER_HOST $HOSTNAME
55print_variable MESSAGE_SERVER MESSAGE_SERVER TIMEOUT_S RUNTIME_S
58if [[ ! -f $DETECTOR ]]; then
65 heightOfFirstFloor=100
67 echo "Creating detector $DETECTOR, with parameters:"
71 -@detectorType=$detectorType \
72 -@numberOfLines=$numberOfLines \
73 -@numberOfFloors=$numberOfFloors \
74 -@floorDistance_m=$floorDistance_m \
75 -@lineDistance_m=$lineDistance_m \
76 -z $heightOfFirstFloor \
77 -f footprint_extended.txt \
83if [[ ! -f $INPUT_FILE ]]; then
89 echo "Generating random background."
90 echo "Singles rate: $singlesRate [Hz]."
91 echo "Doubles rate: $doublesRate [Hz]."
93 PIPE=${TMPDIR:-/tmp}/pipe.dat
98 nohup JRandomTimesliceWriter \
101 -B "$singlesRate $doublesRate" \
103 -d1 > timeslice.log 2>&1 &
105 echo Processing random data.
110 -@trigger3DShower.enabled=1 \
111 -@trigger3DMuon.enabled=1 \
113 -d1 > trigger.log 2>&1
125while (( $RUN <= $RUN_2 )); do
127 OUTPUT_FILE=`printf %s/KM3NeT_%08d.root $WORKDIR $RUN`
129 if [[ -f $OUTPUT_FILE ]]; then;
137# Event generation configure data.
139if [[ ! -f ev_configure.txt ]]; then
141cat>ev_configure.txt<<EOF
142datawriter = $DWRITER_HOST;
143inputFile = $INPUT_FILE;
151if [[ ! -f driver.txt ]]; then
155# To avoid unnecessary shell processes, the process I/O is redirected to /dev/null and the ssh command is quoted.
157process JEventGenerator $HOSTNAME ssh \$HOST\$ "JEventGenerator -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
158process JDataWriter $HOSTNAME ssh \$HOST\$ "JDataWriter -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
162event ev_init { RC_CMD }
167while (( $RUN <= $RUN_2 )); do
172 RC_EVT %<ev_configure.txt>%
173 RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
176event ev_start { RC_CMD $RUN }
180event ev_pause { RC_CMD }
181event ev_stop { RC_CMD }
189event ev_reset { RC_CMD }
190event ev_off { RC_CMD }
198 JLigier.sh $MESSAGE_SERVER continue
205 JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
225 JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER