Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
module-Z:run.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 
14 if do_usage $*; then
15  usage "$script <string identifier> <floor[-floor]> <detector file> (input file)+"
16 fi
17 
18 if (( $# < 4 )); then
19  fatal "Wrong number of arguments."
20 fi
21 
22 set_variable STRING $argv[1]
23 set_variable FLOORS $argv[2]
24 set_variable DETECTOR $argv[3]
25 set_array INPUT_FILES $argv[4,-1]
26 
27 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
28 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
29 
30 JAcoustics.sh $DETECTOR_ID
31 
32 CHECK_EXIT_CODE
33 
34 if [[ -z "${STRINGS[(r)$STRING]}" ]]; then
35  fatal "Invalid string $STRING; "\
36  "possible values: ${STRINGS[*]}"
37 fi
38 
39 if (( ${FLOORS%%-*} < $FIRST_FLOOR || ${FLOORS##*-} > $LAST_FLOOR )); then
40  fatal "Invalid floor $FLOORS; "\
41  "possible values: $FIRST_FLOOR-$LAST_FLOOR"
42 fi
43 
44 set_variable TMPDIR $WORKDIR/.$$
45 mkdir -p $TMPDIR
46 
47 for (( FLOOR = ${FLOORS%%-*}; $FLOOR <= ${FLOORS##*-}; FLOOR += 1 )); do
48 
49  set_variable MODULE `getModule -a $DETECTOR -L "$STRING $FLOOR"`
50  set_variable MODULE_TXT $WORKDIR/modulez_${STRING}_${FLOOR}.txt
51 
52  for (( Z = -1.0; $Z <= +1.0; Z += 0.05 )); do
53 
54  JEditDetector \
55  -a $DETECTOR \
56  -k "$STRING" \
57  -M "$MODULE add 0.0 0.0 $Z" \
58  -o $TMPDIR/detector.detx
59 
60  rm -f $TMPDIR/katoomba.root
61 
62  JKatoomba \
63  -a $TMPDIR/detector.detx \
64  -f "$INPUT_FILES[*]" \
65  -o $TMPDIR/katoomba.root \
66  -T $WORKDIR/tripod.txt \
67  -V $WORKDIR/sound_velocity.txt \
68  -M $WORKDIR/mechanics.txt \
69  -@ $WORKDIR/acoustics_fit_parameters.txt \
70  -! $WORKDIR/disable.txt \
71  -d $DEBUG --!
72 
73  if (( `JPrintResult -f $TMPDIR/katoomba.root:chi2 -F "GetSumOfWeights"` > 1.0 )); then
74 
75  set_array RESULT `JPrintResult -f $TMPDIR/katoomba.root:chi2 -F "GetMean" -F "GetRMS / sqrt(GetSumOfWeights)"`
76 
77  printf "%7.3f %7.3f %7.3f\n" $Z $RESULT[*] >> $MODULE_TXT
78  else
79  error "No result."
80  fi
81  done
82 done
83 
84 rm -rf $TMPDIR
85