7# ------------------------------------------------------------------------------------------
 
    9#                            Utility script to run JDataWriter and JEventGenerator.
 
   11# ------------------------------------------------------------------------------------------
 
   14if [ -z $JPP_DIR ]; then
 
   15    echo "Variable JPP_DIR undefined."
 
   19source $JPP_DIR/setenv.sh $JPP_DIR
 
   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`                 
 
   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;;
 
   37set_variable INPUT_FILE      $WORKDIR/trigger_processor.root
 
   38set_variable MESSAGE_SERVER  localhost
 
   39set_variable MESSAGE_LOGGER  localhost
 
   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
 
   49if [[ ! -f $DETECTOR ]]; then
 
   50    JDetector.sh $DETECTOR
 
   53if ( ! 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]."
 
   63    PIPE=${TMPDIR:-/tmp}/pipe.dat
 
   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
 
   95while (( $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.
 
  109if [[ ! -f ev_configure.txt ]]; then
 
  111cat>ev_configure.txt<<EOF
 
  112datawriter     = $DWRITER_HOST;
 
  113inputFile      = $INPUT_FILE;
 
  121if [[ ! -f driver.txt ]]; then
 
  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 &))';
 
  130event ev_init      { RC_CMD }
 
  135while (( $RUN <= $RUN_2 )); do
 
  140    RC_EVT %<ev_configure.txt>%
 
  141    RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
 
  144event ev_start     { RC_CMD $RUN $DETECTOR_ID }
 
  148event ev_pause     { RC_CMD }
 
  149event ev_stop      { RC_CMD }
 
  157event ev_reset     { RC_CMD }
 
  158event ev_off       { RC_CMD }
 
  166    JLigier.sh $MESSAGE_SERVER continue
 
  173    JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
 
  193    JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER