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