Jpp  debug
the software that should make you happy
JMonitorHV.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 if [ -z $JPP_DIR ]; then
5  echo "Variable JPP_DIR undefined."
6  exit
7 fi
8 
9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10 
11 set_variable: DEBUG DATABASE_DEBUG 1
12 set_variable: WORKDIR DATABASE_WORKDIR ./
13 set_variable: FORMAT GRAPHICS_FORMAT gif
14 set_variable+ BATCH GRAPHICS_BATCH -B
15 set_variable DIR $JPP_DIR/examples/JDB/
16 set_variable YMIN -1400 # V
17 set_variable YMAX -700 # V
18 set_variable POSITION ".*"
19 #set_variable POSITION 22
20 
21 if do_usage $*; then
22  usage "$script (input file)+"\
23  "Auxiliary script to monitor HV for a set of data taking files."
24 fi
25 
26 if (( $# < 1 )); then
27  fatal "Wrong number of arguments."
28 fi
29 
30 set_array INPUT_FILES $argv[1,-1]
31 
32 JCookie.sh
33 
34 typeset -Z 4 STRING
35 typeset -Z 2 FLOOR
36 if [[ "$POSITION" != ".*" ]]; then
37  typeset -Z 2 POSITION
38 fi
39 
40 RUNS=()
41 
42 for INPUT_FILE in $INPUT_FILES[*]; do
43 
44  echo "Processing $INPUT_FILE"
45 
46  JPrintDAQHeader -f $INPUT_FILE | read DETECTOR_ID RUN FRAME_INDEX UTC
47  getUTC -f $INPUT_FILE | read -A UTC
48 
49  RUNS+=($RUN)
50 
51  set_variable DETECTOR $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}.detx
52 
53  if ( ! reuse_file $DETECTOR ); then
54  JDetectorDB -D $DETECTOR_ID -r $RUN -o $DETECTOR
55  fi
56 
57  eval `JPrintDetector -a $DETECTOR -O SUMMARY`
58 
59  let "X = 0.5*($UTC[1] + $UTC[2])"
60 
61  JText \
62  -p "$X $(($YMAX - 0.05*($YMAX - $YMIN))) $RUN" \
63  -@ "align = 22" \
64  -@ "size = 20" \
65  -o ${TMPDIR:-/tmp}/text_${RUN}.root
66 
67  for (( i = 1; $i <= 2; ++i )); do
68  JLine \
69  -p "$UTC[${i}] $YMIN $UTC[${i}] $YMAX" \
70  -@ "width = 2" \
71  -o ${TMPDIR:-/tmp}/utc${i}_${RUN}.root
72  done
73 done
74 
75 
76 if ( ! reuse_file $WORKDIR/hv_${RUNS[1]}-${RUNS[-1]}.root ); then
77 
78  $DIR/JCheckHV \
79  -D $DETECTOR_ID \
80  -R "$RUNS[*]" \
81  -o $WORKDIR/hv_${RUNS[1]}-${RUNS[-1]}.root >& hv.log
82 fi
83 
84 getUTC -f "$INPUT_FILES[*]" | read -A UTC
85 
86 for STRING in $STRINGS; do
87 
88  echo -n "Creating graphics for string $STRING.."
89 
90  for (( FLOOR = 1; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
91 
92  JPlot1D \
93  -w 1200x600 \
94  -f "$WORKDIR/hv_${RUNS[1]}-${RUNS[-1]}.root:G\[${STRING}.${FLOOR}.${POSITION}].hv" \
95  -f${TMPDIR:-/tmp}/utc1_${^RUNS}".root:.*" \
96  -f${TMPDIR:-/tmp}/utc2_${^RUNS}".root:.*" \
97  -f${TMPDIR:-/tmp}/text_${^RUNS}".root:.*" \
98  -x "$(($UTC[1] - 500)) $(($UTC[2] + 500))" \
99  -y "$YMIN $YMAX" \
100  -S 0.5 \
101  -T "${STRING}.${FLOOR}.${POSITION}" \
102  -N "X 505" \
103  -t utc \
104  -o ${TMPDIR:-/tmp}/hv_${STRING}_${FLOOR}.$FORMAT $BATCH
105  done
106 
107  montage \
108  -tile 6x3 \
109  -geometry +0+0 \
110  ${TMPDIR:-/tmp}/hv_${STRING}_*.$FORMAT \
111  $WORKDIR/hv_${RUNS[1]}-${RUNS[-1]}_${STRING}.$FORMAT >& /dev/null
112 
113  echo " -> $WORKDIR/hv_${RUNS[1]}-${RUNS[-1]}_${STRING}.$FORMAT"
114 
115 done
116