7 doxygen=JDATABASE::JRunQuality
 
    9 if [ -z $JPP_DIR ]; then
 
   10     echo "Variable JPP_DIR undefined."
 
   14 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   16 # Auxiliary script to produce QA/QC data.
 
   18 # The output data are uploaded to the database with a tool that is part of the km3pipe package.
 
   19 # The locally produced data as well as the uploaded data can be viewed with applications/scripts JDataMonitor[.sh] and JDataQuality[.sh].
 
   21 # Note that if the list of values is extended, the include file JRunQuality.hh should accordingly be updated.
 
   25 set_variable:  DEBUG              QAQC_DEBUG    0
 
   26 set_variable:  VERSION            QAQC_VERSION  D_1.0.0
 
   27 set_variable:  WORKDIR            QAQC_WORKDIR  ${TMPDIR:-/tmp}/.$$
 
   31     trigger3DShower.enabled
 
   32     triggerMXShower.enabled
 
   39 TRIGGERS=(`JPrintTriggerBits`)
 
   53     GIT JPP nb_of_meta UUID
 
   54     detector run livetime_s UTCMin_s UTCMax_s
 
   55     ${TRIGGER_PARAMETERS[*]}
 
   59     in_sync out_sync DAQ WR HRV FIFO
 
   60     PMTs MEAN_Rate_Hz RMS_Rate_Hz
 
   61     hrv_fifo_failures duplic_timeslices
 
   68         "$script (input file)+ <QA/QC file>"                                                \
 
   69         "\nAuxiliary script to produce the following QA/QC data:\n"                         \
 
   71         "\nSee also: $JPP_PAGES/ Search \"JRunQuality\""
 
   75     fatal "Wrong number of arguments."
 
   78 set_array      INPUT_FILES        ${argv[1,-2]}
 
   79 set_variable   QAQC_FILE          ${argv[-1]:a}
 
   81 for (( i = 1; $i <= ${#INPUT_FILES}; i += 1 )); do
 
   82     if [[ -f $INPUT_FILES[$i] ]]; then
 
   83         INPUT_FILES[$i]=${INPUT_FILES[$i]:a}
 
   90 set_variable   ACOUSTICS_DEBUG    ${DEBUG}
 
   91 set_variable   COMPASS_DEBUG      ${DEBUG}
 
   92 set_variable   DETECTOR           detector.detx                          # detector used during data taking
 
   97 if [[ ! -s $QAQC_FILE ]]; then
 
   98     echo ${PARAMETERS//\.*/}                                             > $QAQC_FILE
 
  101 for INPUT_FILE in ${INPUT_FILES[*]}; do
 
  103     debug "Processing $INPUT_FILE"
 
  107     JPrintMeta -v |& awk '/version/ { print $2 }'                        | read     GIT_VERSION
 
  109     debug "GIT version $GIT_VERSION"
 
  111     set_array     DAQ_VERSION    `JPrintMeta -f ${INPUT_FILE} -k GIT`
 
  112     debug "DAQ version $DAQ_VERSION[*]"
 
  114     echo ${(s/./)DAQ_VERSION[1]}                                         | read     DAQ_MAJOR DAQ_MINOR DAQ_PATCH
 
  116     if [[ -z $DAQ_VERSION[1] ]]; then
 
  117         JPrintMeta -f ${INPUT_FILE} -k SVN                               | read     DAQ_VERSION
 
  120     getUUID -f ${INPUT_FILE} -d 0                                        | read     UUID
 
  123     set_array     DAQ_HEADER     `JPrintDAQHeader -f ${INPUT_FILE} -d 0`
 
  124     set_variable  DETECTOR_ID    ${DAQ_HEADER[1]}
 
  125     set_variable  RUN            ${DAQ_HEADER[2]}
 
  127     JDetectorDB -D ${DETECTOR_ID} -r ${RUN} -o ${DETECTOR} -d ${DEBUG}   # install detector file as-is for a.o. JTriggerReprocessor
 
  130     if [[ "$DAQ_MAJOR" != [0-9][0-9]* ]] || (( $DAQ_MAJOR <= 12 )); then # Jpp-version dependence
 
  133             -P "-1 -1 set UDP_COUNTER_DISABLE"  \
 
  134             -P "-1 -1 set UDP_TRAILER_DISABLE"  \
 
  139     JAHRSCalibration.sh     ${DETECTOR_ID}                               # install AHRS calibration file
 
  142     set_array     LIVETIME_S     `getLivetime -f ${INPUT_FILE} -d 0`
 
  143     set_array     UTC_S          `getUTC      -f ${INPUT_FILE} -d 0`
 
  145     {{ JTriggerMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4 }     | read -A  TRIGGER_MONITOR } 4>&1
 
  148     set_variable  OUTPUT_FILE   KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_reprocessor.root
 
  150     JTriggerReprocessor \
 
  159     JPrintTree -f ${OUTPUT_FILE} -@ "type = JDAQEvent" -k number_of_entries               | read     TRIGGER_REPROCESSOR
 
  166         -Q 3 3>&1 1>&4 }                                                                  | read -A  TURBOT } 4>&1
 
  169     {{ JSummaryMonitor -f ${INPUT_FILE} -t 50000 -d ${DEBUG} -Q 3 3>&1 1>&4 }             | read -A  SUMMARY_MONITOR } 4>&1
 
  172     JAcousticsTriggerProcessor.sh  ${DETECTOR}  ${RUN}
 
  174     if (( $? == 0 )); then
 
  176         set_variable  OUTPUT_FILE    KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
 
  178         NUMBER_OF_ACOUSTICS_EVENTS=(`JPrintTree -f ${OUTPUT_FILE} -@ "type = JACOUSTICS::JEvent" -k number_of_entries`)
 
  180         NUMBER_OF_ACOUSTICS_EVENTS=(0)
 
  183     JAHRS.sh  ${DETECTOR_ID}  ${RUN}
 
  185     if (( $? == 0 )); then
 
  187         set_variable  OUTPUT_FILE    KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_ahrs.root
 
  192             -c ahrs_calibration.txt             \
 
  195             -Q 3 3>&1 1>&4 }                                             | read -A  AHRS_MONITOR } 4>&1
 
  200     set_variable  OUTPUT_FILE    KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_trigger.root
 
  206         -@ "trigger3DMuon.enabled         =  1"           \
 
  207         -@ "trigger3DMuon.numberOfHits    =  3"           \
 
  208         -@ "trigger3DMuon.numberOfModules =  3"           \
 
  209         -@ "trigger3DMuon.gridAngle_deg   = 10"           \
 
  210         -@ "trigger3DMuon.TMaxExtra_ns    = 500.0e3"      \
 
  211         -@ "TMaxEvent_ns    = 500.0e3"                    \
 
  212         -@ "TMaxLocal_ns    = 20.0"                       \
 
  213         -@ "L2.numberOfHits = 4"                          \
 
  214         -@ "L2.TMaxLocal_ns = 20.0"                       \
 
  215         -@ "L2.ctMin        = 0.0"                        \
 
  225         -Q 3 3>&1 1>&4 }                                                 | read -A  SQUID } 4>&1
 
  232         -Q 3 3>&1 1>&4 }                                                 | read -A  MERMAID } 4>&1
 
  236     printf " %12s"   ${GIT_VERSION}                                      >> $QAQC_FILE
 
  237     printf " %12s"   ${DAQ_VERSION[1]:-\?}                               >> $QAQC_FILE
 
  238     printf " %1d"    ${#DAQ_VERSION}                                     >> $QAQC_FILE
 
  239     printf " %s"     ${UUID:-\?}                                         >> $QAQC_FILE
 
  240     printf " %8d"    ${DAQ_HEADER[1,2]}                                  >> $QAQC_FILE
 
  241     printf " %9.1f"  ${LIVETIME_S[1]}                                    >> $QAQC_FILE
 
  242     printf " %12.1f" ${UTC_S[1,2]}                                       >> $QAQC_FILE
 
  244     for KEY in ${TRIGGER_PARAMETERS[*]}; do
 
  246         JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0                   | read VALUE
 
  248         printf " %4d" ${VALUE:-0}                                        >> $QAQC_FILE
 
  251     for KEY in ${DAQ[*]}; do
 
  253         JPrintTree -f ${INPUT_FILE} -@ "type = $KEY" -k number_of_entries       | read VALUE
 
  255         printf " %8d" ${VALUE:-0}                                        >> $QAQC_FILE
 
  258     printf " %8d"   ${TRIGGER_REPROCESSOR:-0}                            >> $QAQC_FILE
 
  259     printf " %8d"   ${TRIGGER_MONITOR[*]}                                >> $QAQC_FILE
 
  260     printf " %4d"   ${TURBOT[1,2]}                                       >> $QAQC_FILE
 
  261     printf " %7.5f" ${SUMMARY_MONITOR[1,4]}                              >> $QAQC_FILE
 
  262     printf " %8.1f" ${SUMMARY_MONITOR[5]}                                >> $QAQC_FILE
 
  263     printf " %7.0f" ${SUMMARY_MONITOR[6,7]}                              >> $QAQC_FILE
 
  264     printf " %8d"   ${SUMMARY_MONITOR[8]}                                >> $QAQC_FILE
 
  265     printf " %8d"   ${SUMMARY_MONITOR[9]}                                >> $QAQC_FILE
 
  266     printf " %4d"   ${NUMBER_OF_ACOUSTICS_EVENTS[1]}                     >> $QAQC_FILE
 
  267     printf " %5d"   ${AHRS_MONITOR[1]}                                   >> $QAQC_FILE
 
  268     printf " %8.3f" ${AHRS_MONITOR[2]}                                   >> $QAQC_FILE
 
  269     printf " %4d"   ${SQUID[1,2]}                                        >> $QAQC_FILE
 
  270     printf " %8d"   ${MERMAID[1]}                                        >> $QAQC_FILE
 
  271     printf "\n"                                                          >> $QAQC_FILE