5 # Auxiliary script to produce QA/QC data for operations (near-real-time) monitoring.
 
    7 # The data is stored int he <qaqc file> and can be viewed with the script JOperationsRunMonitor.sh.
 
   11 if [ -z $JPP_DIR ]; then
 
   12     echo "Variable JPP_DIR undefined."
 
   16 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   18 set_variable:  DEBUG       QAQC_DEBUG           0
 
   19 set_variable:  WORKDIR     QAQC_WORKDIR         ${TMPDIR:-/tmp}/.$$
 
   22     usage "$script <detector file> (run file(s))+ <qaqc file> [working directory]"
 
   26     4)  set_variable WORKDIR     $4;&
 
   27     3)  set_variable DETECTOR    $1;
 
   28         set_array    INPUT_FILES $2;
 
   29         set_variable QAQC_FILE   $3;;
 
   30     *)  fatal "Wrong number of arguments."
 
   35     trigger3DShower.enabled
 
   36     triggerMXShower.enabled
 
   43 TRIGGERS=(`JPrintTriggerBits`)
 
   57     GIT detector run livetime_s UTCMin_s UTCMax_s
 
   58     ${TRIGGER_PARAMETERS[*]}
 
   62     in-sync out-sync DAQ WR HRV FIFO
 
   63     PMTs MEAN_Rate_Hz RMS_Rate_Hz
 
   68 if [[ ! -s $QAQC_FILE ]]; then
 
   69     echo $PARAMETERS[*]                                                  >  $QAQC_FILE
 
   72 for INPUT_FILE in ${INPUT_FILES[*]}; do
 
   74     # check presence of trigger parameters
 
   76     JPrintTriggerParameters -f ${INPUT_FILE} -d 0
 
   81     JTriggerMonitor -v |& awk '/version/ { print $2 }'            | read     GIT_VERSION
 
   84     JPrintDAQHeader -f ${INPUT_FILE} -d 0                         | read -A  DAQ_HEADER
 
   89     set_variable  DETECTOR_ID    ${DAQ_HEADER[1]}
 
   90     set_variable  RUN            ${DAQ_HEADER[2]}
 
   92     JDetectorDB -D ${DETECTOR_ID} -r ${RUN} -o ${DETECTOR}               # install detector file as-is for JTriggerReprocessor
 
   98     getLivetime     -f ${INPUT_FILE} -d 0                         | read -A  LIVETIME_S
 
  101     getUTC          -f ${INPUT_FILE} -d 0                         | read -A  UTC_S
 
  104     { JTriggerMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4            | read -A  TRIGGER_MONITOR } 4>&1
 
  107     set_variable  OUTPUT_FILE    ${WORKDIR}/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_trigger.root
 
  109     JTriggerReprocessor \
 
  118     JPrintTree -f ${OUTPUT_FILE} -@ "type = JDAQEvent" -k number_of_entries  | read     TRIGGER_REPROCESSOR
 
  125         -Q 3 3>&1 1>&4                                                   | read -A  TURBOT } 4>&1
 
  128     { JSummaryMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4        | read -A  SUMMARY_MONITOR } 4>&1
 
  131     set_variable  RUN            $DAQ_HEADER[2]
 
  135     printf " %32s"   ${GIT_VERSION}                                      >> $QAQC_FILE
 
  136     printf " %8d"    ${DAQ_HEADER[1,2]}                                  >> $QAQC_FILE
 
  137     printf " %9.1f"  ${LIVETIME_S[1]}                                    >> $QAQC_FILE
 
  138     printf " %12.1f" ${UTC_S[*]}                                         >> $QAQC_FILE
 
  140     for KEY in ${TRIGGER_PARAMETERS[*]}; do
 
  142         JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0                   | read VALUE
 
  144         printf " %4d" ${VALUE-0}                                         >> $QAQC_FILE
 
  147     for KEY in ${DAQ[*]}; do
 
  149         JPrintTree -f ${INPUT_FILE} -@ "type = $KEY" -k number_of_entries       | read VALUE
 
  151         printf " %8d" ${VALUE-0}                                         >> $QAQC_FILE
 
  154     printf " %8d"   ${TRIGGER_REPROCESSOR:-0}                            >> $QAQC_FILE
 
  155     printf " %8d"   ${TRIGGER_MONITOR[*]}                                >> $QAQC_FILE
 
  156     printf " %4d"   ${TURBOT[1,2]}                                       >> $QAQC_FILE
 
  157     printf " %7.5f" ${SUMMARY_MONITOR[1,4]}                              >> $QAQC_FILE
 
  158     printf " %8.1f" ${SUMMARY_MONITOR[5]}                                >> $QAQC_FILE
 
  159     printf " %7.0f" ${SUMMARY_MONITOR[6,7]}                              >> $QAQC_FILE
 
  160     printf "\n"                                                          >> $QAQC_FILE