Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
JAcousticsEventBuilder.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 ACOUSTICS_DEBUG 2
12 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13 set_variable: QUALITY_FACTOR ACOUSTICS_QUALITYFACTOR 2.0e3
14 
15 if do_usage $*; then
16  usage "$script <detector file> (run[-run])+"\
17  "\nAuxiliary script to download acoustic data from database and to process them through the event builder."
18 fi
19 
20 if (( $# > 1 )); then
21  set_variable DETECTOR $argv[1]
22  set_array RUNS $argv[2,-1]
23 else
24  fatal "Wrong number of arguments."
25 fi
26 
27 JCookie.sh
28 
29 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
30 
31 JAcoustics.sh $DETECTOR_ID
32 
33 CHECK_EXIT_CODE
34 
35 let "NUMBER_OF_ERRORS = 0"
36 
37 expand_array RUNS
38 
39 BUFFER=(`JRuns -D $DETECTOR_ID -F RUN`)
40 
41 for RUN in ${RUNS:*BUFFER}; do
42 
43  set_variable INPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_toa.root
44  set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
45 
46  if [[ ! -f $INPUT_FILE ]]; then
47 
48  JToA \
49  -@ "detid = `getDetector -D $DETECTOR_ID`" \
50  -@ "minrun = $RUN" \
51  -@ "maxrun = $RUN" \
52  -@ "QUALITYFACTOR >= $QUALITY_FACTOR" \
53  -o $INPUT_FILE \
54  -d $DEBUG --!
55 
56  if (( $? != 0 )); then
57  let "NUMBER_OF_ERRORS = $NUMBER_OF_ERRORS + 1"
58  fi
59  fi
60 
61  if [[ -f $INPUT_FILE ]] && [[ ! -f $OUTPUT_FILE ]]; then
62 
63  timer_start
64 
65  JAcousticsEventBuilder \
66  -a $DETECTOR \
67  -f $INPUT_FILE \
68  -T $WORKDIR/tripod.txt \
69  -Y $WORKDIR/transmitter.txt \
70  -V $WORKDIR/sound_velocity.txt \
71  -W $WORKDIR/waveform.txt \
72  -@ $WORKDIR/acoustics_trigger_parameters.txt \
73  -H $WORKDIR/hydrophone.txt \
74  -o $OUTPUT_FILE \
75  -d $DEBUG --!
76 
77  if (( $? != 0 )); then
78  let "NUMBER_OF_ERRORS = $NUMBER_OF_ERRORS + 1"
79  fi
80 
81  timer_stop
82  timer_print
83  fi
84 done
85 
86 if (( $NUMBER_OF_ERRORS != 0 )); then
87  error "Number of errors $NUMBER_OF_ERRORS"
88 fi