8 # ------------------------------------------------------------------------------------------
 
   10 #                  Utility script to plot JTriggerProcessor CPU requirements.
 
   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           ./
 
   26 set_variable  DETECTOR          $JPP_DATA/km3net_reference.detx
 
   27 set_variable  TRIGGER           $JPP_DATA/trigger_parameters_arca.txt
 
   28 set_variable  NUMBER_OF_SLICES  10
 
   29 set_variable  FRAMETIME_MS      100
 
   30 set_variable  RATE_L1_HZ        500
 
   33 if ( do_usage $* ); then
 
   34     usage "$script [detector file [trigger file [working directory]]]"
 
   44 set_variable   PIPE      $WORKDIR/pipe.dat
 
   46 set_variable   CPU_TXT   $WORKDIR/cpu.txt
 
   47 set_variable   CPU_ROOT  $WORKDIR/cpu.root
 
   49 set_variable   RATE_TXT  $WORKDIR/rate.txt
 
   50 set_variable   RATE_ROOT $WORKDIR/rate.root
 
   52 echo "Detector: $DETECTOR"
 
   53 echo "Trigger parameters:"
 
   58     for RATE_L0_HZ in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3; do
 
   60    LOGGER_FILE=$WORKDIR/trigger_${RATE_L0_HZ}.log
 
   65    echo "Generating random background at ${RATE_L0_HZ} Hz."
 
   67    nohup JRandomTimesliceWriter \
 
   70             -B "$RATE_L0_HZ $RATE_L1_HZ"   \
 
   71             -n $NUMBER_OF_SLICES           \
 
   72             -d $DEBUG > /dev/null 2>&1 &
 
   74    echo Processing random data.
 
   82             -d $DEBUG > $LOGGER_FILE 2>&1
 
   92     if [[ -f $CPU_TXT ]]; then
 
   96     for RATE_L0_HZ in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3; do
 
   98    LOGGER_FILE=$WORKDIR/trigger_${RATE_L0_HZ}.log
 
  102    for KEY in "Calibration" "L0" "L1" "L2" "Timeslice router" "Trigger" "Trigger router"; do
 
  104        ELAPSED_TIME=`awk -v key="$KEY" '$0 == key,/CPU/ { if ($3 == "elapsed") print $1 }' $LOGGER_FILE`
 
  106        TOTAL_CPU=$(($TOTAL_CPU + $ELAPSED_TIME / $FRAMETIME_MS))
 
  110    RATE_L0_KHZ=$(($RATE_L0_HZ * 1e-3))
 
  112    echo "$RATE_L0_KHZ $TOTAL_CPU" >> $CPU_TXT
 
  133     if [[ -f $RATE_TXT ]]; then
 
  137     for RATE_L0_HZ in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3; do
 
  139    LOGGER_FILE=$WORKDIR/trigger_${RATE_L0_HZ}.log
 
  141    TRIGGER_RATE_HZ=`awk '/Trigger rate \[Hz\]/ { print $4 }' $LOGGER_FILE`
 
  143    RATE_L0_KHZ=$(($RATE_L0_HZ * 1e-3))
 
  145    echo "$RATE_L0_KHZ $TRIGGER_RATE_HZ" >> $RATE_TXT
 
  158    -\^ "Trigger rate [Hz]"   \