Jpp  master_rocky-43-ge265d140c
the software that should make you happy
examples/JAcoustics/JKatoomba.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 DIR $JPP_DIR/examples/JAcoustics/
14 set_variable WORKDIR ./
15 set_variable: DEBUG ACOUSTICS_DEBUG 2
16 set_variable+ HYDROPHONE ACOUSTICS_HYDROPHONE -H hydrophone.txt
17 set_variable+ TRANSMITTER ACOUSTICS_TRANSMITTER -Y transmitter.txt
18 set_variable: SIGMA_S ACOUSTICS_SIGMA_S 50.0E-6
19 set_variable: NUMBER_OF_EVENTS ACOUSTICS_NUMBER_OF_EVENTS 1000
20 set_variable: FORMAT GRAPHICS_FORMAT gif
21 set_variable+ BATCH GRAPHICS_BATCH -B
22 
23 if do_usage $*; then
24  usage "$script <detector file> <tripod file>"
25 fi
26 
27 if (( $# != 2 )); then
28  fatal "Wrong number of arguments."
29 fi
30 
31 set_variable DETECTOR $argv[1]
32 set_variable TRIPOD $argv[2]
33 
34 if [[ ! -f $DETECTOR ]]; then
35  fatal "No file $DETECTOR."
36 fi
37 
38 if [[ ! -f $TRIPOD ]]; then
39  fatal "No file $TRIPOD."
40 fi
41 
42 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
43 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
44 
45 if (( 1 )); then
46 
47  JDrawDetector2D \
48  -a $DETECTOR \
49  -T $TRIPOD \
50  -L TL \
51  -o footprint.$FORMAT $BATCH
52 fi
53 
54 if ( ! reuse_file $WORKDIR/katoomba.root ); then
55 
56  $DIR/JKatoomba \
57  -a $DETECTOR \
58  -o $WORKDIR/katoomba.root \
59  -T $TRIPOD \
60  ${TRANSMITTER} \
61  -n $NUMBER_OF_EVENTS \
62  -@ acoustics_fit_parameters.txt \
63  -@ "sigma_s = $SIGMA_S;" \
64  -M mechanics.txt \
65  ${HYDROPHONE} \
66  -S 12345678 \
67  -d $DEBUG --!
68 fi
69 
70 if (( 1 )); then
71 
72  rm -f $WORKDIR/strings.txt
73 
74  for STRING in ${STRINGS[*]}; do
75 
76  RESULT=(`JPrintResult -f "$WORKDIR/katoomba.root:string\[$STRING\]" -F "GetRMS(1)" -F "GetRMS(2)"`)
77 
78  printf "%4d %9.5f %9.5f [mrad]\n" $STRING $RESULT[*]
79 
80  printf "%9.5f\n" $((sqrt($RESULT[1]*$RESULT[2] + $RESULT[1]*$RESULT[2]))) >> $WORKDIR/strings.txt
81  done
82 
83  $JPP_DIR/examples/JGizmo/JHistogram1D \
84  -x "50 0 +2.5" \
85  -f $WORKDIR/strings.txt \
86  -o $WORKDIR/strings.root
87 
88  JPlot1D \
89  -f $WORKDIR/strings.root:\.\* \
90  -> "#sigma_{T} [mrad]" \
91  -\^ "number of strings" \
92  -T "" \
93  -o strings.$FORMAT $BATCH
94 
95  rm -f $WORKDIR/strings.{txt,root}
96 fi
97 
98 if (( 1 )); then
99 
100  JPlot1D \
101  -f "$WORKDIR/katoomba.root:cpu" \
102  -> "cpu [ms]" \
103  -\^ "number of events [a.u.]" \
104  -T "$FIT" \
105  -o cpu.$FORMAT $BATCH
106 
107  JPlot1D \
108  -f "$WORKDIR/katoomba.root:chi2" \
109  -x "0 2" \
110  -> "chi2/NDF" \
111  -\^ "number of events [a.u.]" \
112  -s 110 \
113  -T "$FIT" \
114  -o chi2.$FORMAT $BATCH
115 fi
116 
117 if (( 1 )); then
118 
119  source JAcousticsToolkit.sh
120 
121  typeset -A EMITTERS
122 
123  get_tripods+ tripod.txt EMITTERS
124  get_transmitters+ transmitter.txt EMITTERS
125 
126  for EMITTER in % ${(@k)EMITTERS}; do
127 
128  JPlot1D \
129  -f "$WORKDIR/katoomba.root:emitter\[${EMITTER}\]" \
130  -> "#Deltat [s]" \
131  -\^ "number of events [a.u.]" \
132  -N "X 505" \
133  -s 111010 \
134  -T "[$EMITTER]" \
135  -o TX${EMITTER}.$FORMAT $BATCH
136  done
137 fi
138 
139 if (( 1 )); then
140 
141  JEllipse \
142  -o $WORKDIR/ellipse.root \
143  -p "0.0 0.0 1.0" \
144  -@ "line.color = 2" \
145  -@ "line.width = 2"
146 
147  for STRING in % $STRINGS[*]; do
148 
149  JPlot2D \
150  -f "$WORKDIR/katoomba.root:string\[${STRING}\]" \
151  -f $WORKDIR/ellipse.root:\.\* \
152  -O COLZ \
153  -> "#DeltaTx [mrad]" \
154  -< "#DeltaTy [mrad]" \
155  -N "X 505" \
156  -N "Y 505" \
157  -p 57 \
158  -s 101010 \
159  -T "[$STRING]" \
160  -o RX${STRING}.$FORMAT $BATCH
161  done
162 fi