7 # ------------------------------------------------------------------------------------------
 
    9 #                            Utility script to run JDataWriter and JEventGenerator.
 
   11 # ------------------------------------------------------------------------------------------
 
   14 if [ -z $JPP_DIR ]; then
 
   15     echo "Variable JPP_DIR undefined."
 
   19 source $JPP_DIR/setenv.sh $JPP_DIR
 
   22 set_variable  WORKDIR           /tmp/
 
   23 set_variable  DETECTOR          $JPP_DATA/km3net_reference.detx
 
   24 set_variable  LOGGER_OUTPUT     logger.txt
 
   25 set_variable  HOST              `get_ip_address`
 
   27 if ( do_usage $* ); then
 
   28     usage "$script [detector file [logger file [working directory]]]"
 
   32     3) set_variable WORKDIR       $3;&
 
   33     2) set_variable LOGGER_OUTPUT $2;&
 
   34     1) set_variable DETECTOR      $1;;
 
   37 set_variable INPUT_FILE      $WORKDIR/trigger_processor.root
 
   38 set_variable MESSAGE_SERVER  localhost
 
   39 set_variable MESSAGE_LOGGER  localhost
 
   41 set_variable RUN_1           1001
 
   42 set_variable RUN_2           1002
 
   43 set_variable TIMEOUT_S       10
 
   44 set_variable RUNTIME_S       20
 
   45 set_variable DETECTOR_ID     1000
 
   46 set_variable DWRITER_HOST    $HOST
 
   49 if [[ ! -f $DETECTOR ]]; then
 
   50     JDetector.sh $DETECTOR
 
   53 if ( ! reuse_file $INPUT_FILE ); then
 
   55     set_variable singlesRate     0e3
 
   56     set_variable doublesRate     2e3
 
   57     set_variable numberOfSlices  10
 
   59     echo "Generating random background."
 
   60     echo "Singles rate:  $singlesRate [Hz]."
 
   61     echo "Doubles rate:  $doublesRate [Hz]."
 
   68     nohup JRandomTimesliceWriter \
 
   71    -B "$singlesRate $doublesRate" \
 
   73    -d1 > timeslice.log 2>&1 &
 
   75     echo Processing random data.
 
   80    -@trigger3DShower.enabled=1    \
 
   81    -@trigger3DMuon.enabled=1      \
 
   83    -d1 > trigger.log 2>&1
 
   95 while (( $RUN <= $RUN_2 )); do
 
   97     OUTPUT_FILE=`printf %s/KM3NeT_%08d_%08d.root $WORKDIR $DETECTOR_ID $RUN`
 
   99     if [[ -f $OUTPUT_FILE ]]; then
 
  107 # Event generation configure data.
 
  109 if [[ ! -f ev_configure.txt ]]; then
 
  111 cat>ev_configure.txt<<EOF
 
  112 datawriter     = $DWRITER_HOST;
 
  113 inputFile      = $INPUT_FILE;
 
  114 eventRate_Hz   = 100.0;
 
  121 if [[ ! -f driver.txt ]]; then
 
  125 # To avoid unnecessary shell processes, the process I/O is redirected to /dev/null and the ssh command is quoted.
 
  127 process  JEventGenerator  $HOST  ssh  \$HOST\$  "$JPP_BIN/JEventGenerator  -u \$NAME\$  -H \$SERVER\$  -M \$LOGGER\$  -d $DEBUG  </dev/null >&/dev/null &";
 
  128 process  JDataWriter      $HOST  ssh  \$HOST\$  "$JPP_BIN/JDataWriter      -u \$NAME\$  -H \$SERVER\$  -M \$LOGGER\$  -d $DEBUG  </dev/null >&/dev/null &";
 
  132 event ev_init      { RC_CMD }
 
  137 while (( $RUN <= $RUN_2 )); do
 
  142     RC_EVT %<ev_configure.txt>%
 
  143     RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
 
  146 event ev_start     { RC_CMD $RUN $DETECTOR_ID }
 
  150 event ev_pause     { RC_CMD }
 
  151 event ev_stop      { RC_CMD }
 
  159 event ev_reset     { RC_CMD }
 
  160 event ev_off       { RC_CMD }
 
  168     JLigier.sh $MESSAGE_SERVER continue
 
  175     JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
 
  195     JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER