Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JQAQC.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 if [ -z $JPP_DIR ]; then
9  echo "Variable JPP_DIR undefined."
10  exit
11 fi
12 
13 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
14 
15 set_variable DEBUG ${QAQC_DEBUG:-0}
16 set_variable WORKDIR ${WORKDIR:-${TMPDIR:-/tmp}}
17 set_variable ACOUSTICS_WORKDIR ${WORKDIR}
18 set_variable COMPASS_WORKDIR ${WORKDIR}
19 
20 TRIGGER_PARAMETERS=(
21  trigger3DMuon.enabled
22  trigger3DShower.enabled
23  triggerMXShower.enabled
24  writeL0.prescale
25  writeL1.prescale
26  writeL2.prescale
27  writeSN.prescale)
28 
29 TRIGGERS=(`JPrintTriggerBits`)
30 
31 DAQ=(
32  JDAQTimesliceL0
33  JDAQTimesliceL1
34  JDAQTimesliceL2
36  JDAQSummaryslice
37  JDAQEvent)
38 
39 
40 if ( do_usage $* ); then
41  usage \
42  "$script <detector file> (input file)+" \
43  "\nGIT detector run livetime_s UTCMin_s UTCMax_s ${TRIGGER_PARAMETERS[*]}" \
44  " ${DAQ[*]} ${TRIGGERS[*]} in-sync out-sync DAQ WR HRV FIFO PMTs MEAN_Rate_Hz RMS_Rate_Hz Acoustics AHRS"
45 fi
46 
47 if (( $# < 2 )); then
48  fatal "Wrong number of arguments."
49 fi
50 
51 
53 set_array INPUT_FILES $argv[2,-1]
54 
55 
56 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
57 
58 source JAcoustics.sh $DETECTOR_ID
59 
60 CHECK_EXIT_CODE
61 
62 
63 for INPUT_FILE in ${INPUT_FILES[*]}; do
64 
65  set_variable FILE_NAME ${INPUT_FILE##*/}
66  set_variable TURBOT_FILE $WORKDIR/${FILE_NAME/.root/_turbot.root}
67 
68  JTriggerMonitor -v |& awk '/version/ { print $2 }' | read GIT_VERSION
69  CHECK_EXIT_CODE
70 
71  JPrintDAQHeader -f ${INPUT_FILE} -d 0 | read -A DAQ_HEADER
72  CHECK_EXIT_CODE
73 
74  getLivetime -f ${INPUT_FILE} -d 0 | read -A LIVETIME_S
75  CHECK_EXIT_CODE
76 
77  getUTC -f ${INPUT_FILE} -d 0 | read -A UTC_S
78  CHECK_EXIT_CODE
79 
80  JPrintTriggerParameters -f ${INPUT_FILE} -d 0 >& /dev/null
81  CHECK_EXIT_CODE
82 
83  JTriggerMonitor -f ${INPUT_FILE} -d 0 -Q 3 3>&1 >& /dev/null | read -A TRIGGER_MONITOR
84  CHECK_EXIT_CODE
85 
86  JTurbot \
87  -f ${INPUT_FILE} \
88  -a ${DETECTOR} \
89  -o ${TURBOT_FILE} \
90  -d ${DEBUG} \
91  -Q 3 3>&1 >& ${TURBOT_FILE/.root/.log} | read -A TURBOT
92  CHECK_EXIT_CODE
93 
94  JSummaryMonitor -f ${INPUT_FILE} -d 0 -Q 3 3>&1 >& /dev/null | read -A SUMMARY_MONITOR
95  CHECK_EXIT_CODE
96 
97  set_variable RUN $DAQ_HEADER[2]
98 
99  JAcousticsEventBuilder.sh $DETECTOR $RUN >& /dev/null
100 
101  if (( $? == 0 )); then
102 
103  set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
104 
105  JPrintResult -f ${OUTPUT_FILE}:'^ACOUSTICS$' -F GetEntries | read -A NUMBER_OF_ACOUSTICS_EVENTS
106  else
107  NUMBER_OF_ACOUSTICS_EVENTS=(0)
108  fi
109 
110  JAHRS.sh $DETECTOR_ID $RUN >& /dev/null
111  JAHRSCalibration.sh $DETECTOR_ID >& /dev/null
112 
113  set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_ahrs.root
114 
115  JAHRSMonitor \
116  -a ${DETECTOR} \
117  -f ${OUTPUT_FILE} \
118  -c ${WORKDIR}/ahrs_calibration.txt \
119  -q 0.2 \
120  -d ${DEBUG} \
121  -Q 3 3>&1 >& /dev/null | read -A NUMBER_OF_AHRS_EVENTS
122 
123  printf " %32s" ${GIT_VERSION}
124  printf " %8d" ${DAQ_HEADER[1,2]}
125  printf " %9.1f" ${LIVETIME_S[1]}
126  printf " %12.1f" ${UTC_S[*]}
127 
128  for KEY in ${TRIGGER_PARAMETERS[*]}; do
129 
130  JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0 | read VALUE
131 
132  printf " %4d" ${VALUE-0}
133  done
134 
135  for KEY in ${DAQ[*]}; do
136 
137  JPrintTree -f ${INPUT_FILE} |& eval awk \'/${KEY}/ \{ print \$3\; \}\' | read VALUE
138 
139  printf " %8d" ${VALUE-0}
140  done
141 
142  printf " %8d" ${TRIGGER_MONITOR[*]}
143  printf " %2d" ${TURBOT[1,2]}
144  printf " %7.5f" ${SUMMARY_MONITOR[1,4]}
145  printf " %8.1f" ${SUMMARY_MONITOR[5]}
146  printf " %7.0f" ${SUMMARY_MONITOR[6,7]}
147  printf " %4d" ${NUMBER_OF_ACOUSTICS_EVENTS[1]}
148  printf " %8.3f" ${NUMBER_OF_AHRS_EVENTS[1]}
149  printf "\n"
150 
151 done
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
*fatal Wrong number of arguments esac check_input_file $INPUT_FILE for TIMESLICE in JDAQTimeslice JDAQTimesliceL0 JDAQTimesliceL1 JDAQTimesliceL2 JDAQTimesliceSN
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a stream.
Definition: io_ascii.hh:141
set_variable INPUT_FILE
then fatal No sound hydrophone file $HYDROPHONE_TXT fi JGraph f $HYDROPHONE_TXT o $HYDROPHONE_ROOT sort gr k
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:79
then echo
then rm i $OUTPUT_FILE fi let RUN
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
&set_variable OUTPUT_FILE
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:45
double getLivetime(const std::string &file_name)
Get data taking live time.
then JCalibrateToT a
Definition: JTuneHV.sh:108
then display $WORKDIR
Definition: plot-Domino.sh:127
set_variable DETECTOR
do set_variable INPUT_FILE $WORKDIR KM3NeT_
data_type v[N+1][M+1]
Definition: JPolint.hh:740
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
version
Definition: JCalibratePMT.sh:7
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62