8 # ------------------------------------------------------------------------------------------
 
   10 #                            Utility script to run JDataWriter and JEventGenerator.
 
   12 # ------------------------------------------------------------------------------------------
 
   15 if [ -z $JPP_DIR ]; then
 
   16     echo "Variable JPP_DIR undefined."
 
   21 source $JPP_DIR/setenv.sh $JPP_DIR
 
   25 set_variable   WORKDIR        $JPP_DATA                        
 
   26 set_variable   DETECTOR       $JPP_DATA/km3net_reference.detx  
 
   27 set_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;;
 
   41 set_variable  INPUT_FILE     $WORKDIR/trigger_processor.root
 
   43 set_variable  MESSAGE_SERVER localhost
 
   44 set_variable  MESSAGE_LOGGER localhost
 
   48 set_variable  RUN_1     1001
 
   49 set_variable  RUN_2     1002
 
   50 set_variable  TIMEOUT_S 10
 
   51 set_variable  RUNTIME_S 20
 
   53 set_variable  DWRITER_HOST $HOSTNAME
 
   55 print_variable MESSAGE_SERVER MESSAGE_SERVER TIMEOUT_S RUNTIME_S
 
   58 if [[ ! -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          \
 
   83 if [[ ! -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
 
  125 while (( $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.
 
  139 if [[ ! -f ev_configure.txt ]]; then
 
  141 cat>ev_configure.txt<<EOF
 
  142 datawriter     = $DWRITER_HOST;
 
  143 inputFile      = $INPUT_FILE;
 
  144 eventRate_Hz   = 100.0;
 
  151 if [[ ! -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.
 
  157 process  JEventGenerator  $HOSTNAME  ssh  \$HOST\$  "JEventGenerator  -u \$NAME\$  -H \$SERVER\$  -M \$LOGGER\$  -d $DEBUG  </dev/null >&/dev/null &";
 
  158 process  JDataWriter      $HOSTNAME  ssh  \$HOST\$  "JDataWriter      -u \$NAME\$  -H \$SERVER\$  -M \$LOGGER\$  -d $DEBUG  </dev/null >&/dev/null &";
 
  162 event ev_init      { RC_CMD }
 
  167 while (( $RUN <= $RUN_2 )); do
 
  172     RC_EVT %<ev_configure.txt>%
 
  173     RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
 
  176 event ev_start     { RC_CMD $RUN }
 
  180 event ev_pause     { RC_CMD }
 
  181 event ev_stop      { RC_CMD }
 
  189 event ev_reset     { RC_CMD }
 
  190 event ev_off       { RC_CMD }
 
  198     JLigier.sh $MESSAGE_SERVER continue
 
  205     JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
 
  225     JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER