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