Jpp  15.0.5
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
acoustics-fit.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 # --------------------------------------------------------------------------------------------
5 #
6 # Steering script for tuning of (x,y,z) positions of the strings and tripods as well as
7 # the (z) positions of the modules.
8 #
9 # --------------------------------------------------------------------------------------------
10 
11 if [ -z $JPP_DIR ]; then
12  echo "Variable JPP_DIR undefined."
13  exit
14 fi
15 
16 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
17 
18 set_variable: DEBUG ACOUSTICS_DEBUG 2
19 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
20 set_variable: FIT ACOUSTICS_FIT 2
21 
22 if do_usage $*; then
23  usage "$script <detector file> <tripod file> <stage> (input file)+"\
24  "\nInput files correspond to the output of JAcousticsEventBuilder[.sh]."\
25  "\nFirst stage is 1 (or A) and last stage is 3."
26 fi
27 
28 if (( $# < 4 )); then
29  fatal "Wrong number of arguments."
30 fi
31 
32 # global variables
33 
35 set_variable TRIPOD_FILE $argv[2]
36 set_variable STAGE $argv[3]
37 set_array INPUT_FILES $argv[4,-1]
38 
39 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
40 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
41 eval `JPrintDetector -a $DETECTOR -O CAN`
42 
43 source JAcoustics.sh $DETECTOR_ID
44 
45 # copy (part of) configuration
46 
47 typeset -A CONFIGURATION
48 
49 for key in Tmax_s; do
50  CONFIGURATION[$key]=`egrep $key acoustics_fit_parameters.txt`
51 done
52 
53 typeset -A TRIPODS
54 
55 get_tripods $TRIPOD_FILE TRIPODS
56 
57 set_variable TMPDIR $WORKDIR/.$$
58 mkdir -p $TMPDIR
59 set_variable OUTPUT_FILE $TMPDIR/katoomba.root
60 
61 typeset -a CHI2 # chi2(old,new)
62 
63 CHI2=(1.0e10 1.0e10)
64 
65 
66 # --------------------------------------------------------------------------------------------
67 # Get center-of-gravity of tripods.
68 #
69 # \return x y z
70 # --------------------------------------------------------------------------------------------
71 function getCenter()
72 {
73  let X_CENTER=0.0
74  let Y_CENTER=0.0
75  let Z_CENTER=0.0
76 
77  for value in "${(@v)TRIPODS}"; do
78 
79  echo $value | read X Y Z
80 
81  let X_CENTER="$X_CENTER + $X"
82  let Y_CENTER="$Y_CENTER + $Y"
83  let Z_CENTER="$Z_CENTER + $Z"
84  done
85 
86  let X_CENTER="$X_CENTER / ${#TRIPODS}"
87  let Y_CENTER="$Y_CENTER / ${#TRIPODS}"
88  let Z_CENTER="$Z_CENTER / ${#TRIPODS}"
89 
90  printf "%12.3f %12.3f %12.3f" $X_CENTER $Y_CENTER $Z_CENTER
91 }
92 
93 
94 # --------------------------------------------------------------------------------------------
95 # Make global fits.
96 #
97 # \return chi2
98 # --------------------------------------------------------------------------------------------
99 function getChi2()
100 {
101  rm -f $OUTPUT_FILE
102 
103  JKatoomba \
104  -a $DETECTOR \
105  -f "$INPUT_FILES[*]" \
106  -o $OUTPUT_FILE \
107  -T $TRIPOD_FILE \
108  -V $WORKDIR/sound_velocity.txt \
109  -M $WORKDIR/mechanics.txt \
110  -@ $WORKDIR/acoustics_fit_parameters.txt \
111  -! $WORKDIR/disable.txt \
112  -F $FIT \
113  -u \
114  -d 0 >& /dev/null
115 
116  JPrintResult -f ${OUTPUT_FILE}:chi2 -F GetMean
117 }
118 
119 
120 # --------------------------------------------------------------------------------------------
121 # Fit given coordinate of string position.
122 #
123 # \param 1 string identifier
124 # \param 2 coordinate (X|Y|Z)
125 # \param 3 step
126 # --------------------------------------------------------------------------------------------
127 function fitPositionOfString()
128 {
129  typeset -A BUFFER
130 
131  BUFFER=(X 0.0 Y 0.0 Z 0.0)
132 
133  BUFFER[$2]=$3
134 
135  CHI2[1]=`getChi2`
136 
137  if [[ "$2" == "Z" ]]; then
138  OPTION=-s # optical modules only
139  else
140  OPTION=-S # all modules
141  fi
142 
143  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
144 
145  JEditDetector -a $DETECTOR $OPTION "$1 add $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
146 
147  CHI2[2]=`getChi2`
148 
149  if (( $CHI2[2] >= $CHI2[1] )); then
150 
151  JEditDetector -a $DETECTOR $OPTION "$1 sub $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
152 
153  break
154  fi
155 
156  CHI2[1]=$CHI2[2]
157  done
158 
159  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
160 
161  JEditDetector -a $DETECTOR $OPTION "$1 sub $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
162 
163  CHI2[2]=`getChi2`
164 
165  if (( $CHI2[2] >= $CHI2[1] )); then
166 
167  JEditDetector -a $DETECTOR $OPTION "$1 add $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
168 
169  break
170  fi
171 
172  CHI2[1]=$CHI2[2]
173  done
174 
175  printf "string %04d %s %6d %7.3f\n" $1 $2 $N $CHI2[1]
176 }
177 
178 
179 # --------------------------------------------------------------------------------------------
180 # Fit stretching of string.
181 #
182 # \param 1 string identifier
183 # \param 2 multiplication factor
184 # --------------------------------------------------------------------------------------------
185 function fitStretchingOfString()
186 {
187  CHI2[1]=`getChi2`
188 
189  let Z="$CAN_ZMAX_M * $2"
190 
191  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
192 
193  JEditDetector -a $DETECTOR -s "$1 mul $2" -s "$1 sub 0.0 0.0 $Z" -o $DETECTOR -d 0 >& /dev/null
194 
195  CHI2[2]=`getChi2`
196 
197  if (( $CHI2[2] >= $CHI2[1] )); then
198 
199  JEditDetector -a $DETECTOR -s "$1 add 0.0 0.0 $Z" -s "$1 div $2" -o $DETECTOR -d 0 >& /dev/null
200 
201  break
202  fi
203 
204  CHI2[1]=$CHI2[2]
205  done
206 
207  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
208 
209  JEditDetector -a $DETECTOR -s "$1 add 0.0 0.0 $Z" -s "$1 div $2" -o $DETECTOR -d 0 >& /dev/null
210 
211  CHI2[2]=`getChi2`
212 
213  if (( $CHI2[2] >= $CHI2[1] )); then
214 
215  JEditDetector -a $DETECTOR -s "$1 mul $2" -s "$1 sub 0.0 0.0 $Z" -o $DETECTOR -d 0 >& /dev/null
216 
217  break
218  fi
219 
220  CHI2[1]=$CHI2[2]
221  done
222 
223  printf "string %04d M %6d %7.3f\n" $1 $N $CHI2[1]
224 }
225 
226 
227 # --------------------------------------------------------------------------------------------
228 # Fit given coordinate of tripod position.
229 #
230 # \param 1 tripod identifier
231 # \param 2 coordinate (X|Y|Z)
232 # \param 3 step
233 # --------------------------------------------------------------------------------------------
234 function fitPositionOfTripod()
235 {
236  typeset -A BUFFER
237 
238  BUFFER=(X 0.0 Y 0.0 Z 0.0)
239 
240  BUFFER[$2]=$3
241 
242  CHI2[1]=`getChi2`
243 
244  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
245 
246  JEditTripod -f $TRIPOD_FILE -T "$1 add $BUFFER[*]" -d 0 >& /dev/null
247 
248  CHI2[2]=`getChi2`
249 
250  if (( $CHI2[2] >= $CHI2[1] )); then
251 
252  JEditTripod -f $TRIPOD_FILE -T "$1 sub $BUFFER[*]" -d 0 >& /dev/null
253 
254  break
255  fi
256 
257  CHI2[1]=$CHI2[2]
258  done
259 
260  for (( ; $N != $NUMBER_OF_ITERATIONS; ++N )); do
261 
262  JEditTripod -f $TRIPOD_FILE -T "$1 sub $BUFFER[*]" -d 0 >& /dev/null
263 
264  CHI2[2]=`getChi2`
265 
266  if (( $CHI2[2] >= $CHI2[1] )); then
267 
268  JEditTripod -f $TRIPOD_FILE -T "$1 add $BUFFER[*]" -d 0 >& /dev/null
269 
270  break
271  fi
272 
273  CHI2[1]=$CHI2[2]
274  done
275 
276  printf "tripod %2d %s %6d %7.3f\n" $1 $2 $N $CHI2[1]
277 }
278 
279 
280 # --------------------------------------------------------------------------------------------
281 # Fit module z-position.
282 #
283 # \param 1 string identifier
284 # \param 2 floor
285 # \param 3 step
286 # --------------------------------------------------------------------------------------------
287 function fitPositionOfModule()
288 {
289  typeset -A BUFFER
290 
291  BUFFER=(X 0.0 Y 0.0 Z $3)
292 
293  set_variable NUMBER_OF_STEPS 10 # limit number of steps
294  set_variable MODULE `getModule -a $DETECTOR -L "$1 $2"`
295 
296  CHI2[1]=`getChi2`
297 
298  for (( i=0 ; $i != $NUMBER_OF_STEPS && $N != $NUMBER_OF_ITERATIONS; ++i, ++N )); do
299 
300  JEditDetector -a $DETECTOR -M "$MODULE add $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
301 
302  CHI2[2]=`getChi2`
303 
304  if (( $CHI2[2] >= $CHI2[1] )); then
305 
306  JEditDetector -a $DETECTOR -M "$MODULE sub $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
307 
308  break
309  fi
310 
311  CHI2[1]=$CHI2[2]
312  done
313 
314  for (( i=0 ; $i != $NUMBER_OF_STEPS && $N != $NUMBER_OF_ITERATIONS; ++i, ++N )); do
315 
316  JEditDetector -a $DETECTOR -M "$MODULE sub $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
317 
318  CHI2[2]=`getChi2`
319 
320  if (( $CHI2[2] >= $CHI2[1] )); then
321 
322  JEditDetector -a $DETECTOR -M "$MODULE add $BUFFER[*]" -o $DETECTOR -d 0 >& /dev/null
323 
324  break
325  fi
326 
327  CHI2[1]=$CHI2[2]
328  done
329 
330  printf "module %04d.%02d %6d %7.3f\n" $1 $2 $N $CHI2[1]
331 }
332 
333 
334 #
335 # Main function.
336 #
337 
338 echo "Processing stage $STAGE"
339 
340 CHI2=(1.0e10 1.0e10)
341 
343 
344 getCenter | read X_CENTER Y_CENTER Z_CENTER
345 
346 case $STAGE in
347 
348  A) # ------------------------------------------------------------------------------------
349 
350  set_variable NUMBER_OF_ITERATIONS 500
351  set_variable EPSILON 5.0E-4
352 
353  cat>acoustics_fit_parameters.txt<<EOF # fix tilt angles of strings
354 $CONFIGURATION[*]
355 Nmin = 3;
356 sigma_s = 250.0e-6;
357 stdev = 10.0;
360 EOF
361 
362  for DX_M in 0.5 0.2; do # fit (x,y,z) positions of strings and tripods
363 
364  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
365 
366  CHI2[3]=$CHI2[1]
367 
368  for STRING in $STRINGS[*]; do
369  fitPositionOfString $STRING X $DX_M
370  fitPositionOfString $STRING Y $DX_M
371  fitPositionOfString $STRING Z $DX_M
372  done
373 
374  for TRIPOD in ${(k)TRIPODS}; do
375  fitPositionOfTripod $TRIPOD X $DX_M
376  fitPositionOfTripod $TRIPOD Y $DX_M
377  fitPositionOfTripod $TRIPOD Z $DX_M
378  done
379 
380  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
381  break
382  fi
383  done
384 
385  getCenter | read X Y Z
386 
387  let X="$X - $X_CENTER"
388  let Y="$Y - $Y_CENTER"
389  let Z="$Z - $Z_CENTER"
390 
391  JEditTripod -f $TRIPOD_FILE -T "-1 sub $X $Y $Z" -d 0 >& /dev/null
392  JEditDetector -a $DETECTOR -S "-1 sub $X $Y $Z" -o $DETECTOR -d 0 >& /dev/null
393 
394  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
395 
396  if (( $N >= $NUMBER_OF_ITERATIONS )); then
397  printf "warning: reached maximum number of iterations %d - converenge %7.3f\n" $N $(($CHI2[3] - $CHI2[1]))
398  fi
399  done
400 
401  set_variable NUMBER_OF_ITERATIONS 1000
402  set_variable EPSILON 5.0E-4
403 
404  for DX_M in 0.1; do # fit (z) positions of modules
405 
406  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
407 
408  CHI2[3]=$CHI2[1]
409 
410  for STRING in $STRINGS[*]; do
411  for (( FLOOR = 1; $FLOOR <= 18; FLOOR += 1 )); do
412  fitPositionOfModule $STRING $FLOOR $DX_M
413  done
414  done
415 
416  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
417  break
418  fi
419  done
420 
421  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
422 
423  if (( $N >= $NUMBER_OF_ITERATIONS )); then
424  printf "warning: reached maximum number of iterations %d - converenge %7.3f\n" $N $(($CHI2[3] - $CHI2[1]))
425  fi
426  done
427  ;;
428 
429  1) # ------------------------------------------------------------------------------------
430 
431  set_variable NUMBER_OF_ITERATIONS 500
432  set_variable EPSILON 5.0E-4
433 
434  cat>acoustics_fit_parameters.txt<<EOF
435 $CONFIGURATION[*]
436 Nmin = 3;
437 sigma_s = 100.0e-6;
438 stdev = 10.0;
439 mestimator = 0;
440 fixStrings = 0;
441 EOF
442 
443  for STRING in $STRINGS[*]; do # fit stretching and (z) position of given string
444 
445  set_variable DETECTOR_TMP /tmp/detector_A.datx
446 
447  JEditDetector -a $DETECTOR -o $DETECTOR_TMP -r $STRING
448  JEditDetector -a $DETECTOR -o $DETECTOR -k $STRING
449 
450  for MUL in 0.005 0.001; do
451 
452  DX_M=0.2
453 
454  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
455 
456  CHI2[3]=$CHI2[1]
457 
458  fitPositionOfString $STRING Z $DX_M
459  fitStretchingOfString $STRING $MUL
460 
461  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
462  break
463  fi
464  done
465 
466  if (( $N >= $NUMBER_OF_ITERATIONS )); then
467  printf "warning: reached maximum number of iterations %d - converenge %7.3f\n" $N $(($CHI2[3] - $CHI2[1]))
468  fi
469  done
470 
471  JMergeDetector -a $DETECTOR -a $DETECTOR_TMP -o $DETECTOR
472 
473  rm -f $DETECTOR_TMP
474 
475  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
476 
477  done
478  ;;
479 
480  2) # ------------------------------------------------------------------------------------
481 
482  set_variable NUMBER_OF_ITERATIONS 500
483  set_variable EPSILON 5.0E-4
484 
485  cat>acoustics_fit_parameters.txt<<EOF
486 $CONFIGURATION[*]
487 Nmin = 3;
488 sigma_s = 100.0e-6;
489 stdev = 10.0;
490 mestimator = 0;
491 fixStrings = 0;
492 EOF
493 
494  for DX_M in 0.2; do # fit (x,y,z) positions of strings and tripods
495 
496  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
497 
498  CHI2[3]=$CHI2[1]
499 
500  for STRING in $STRINGS[*]; do
501  fitPositionOfString $STRING X $DX_M
502  fitPositionOfString $STRING Y $DX_M
503  fitPositionOfString $STRING Z $DX_M
504  done
505 
506  for TRIPOD in ${(k)TRIPODS}; do
507  fitPositionOfTripod $TRIPOD X $DX_M
508  fitPositionOfTripod $TRIPOD Y $DX_M
509  fitPositionOfTripod $TRIPOD Z $DX_M
510  done
511 
512  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
513  break
514  fi
515  done
516 
517  getCenter | read X Y Z
518 
519  let X="$X - $X_CENTER"
520  let Y="$Y - $Y_CENTER"
521  let Z="$Z - $Z_CENTER"
522 
523  JEditTripod -f $TRIPOD_FILE -T "-1 sub $X $Y $Z" -d 0 >& /dev/null
524  JEditDetector -a $DETECTOR -S "-1 sub $X $Y $Z" -o $DETECTOR -d 0 >& /dev/null
525 
526  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
527 
528  if (( $N >= $NUMBER_OF_ITERATIONS )); then
529  warning "reached maximum number of iterations $N - converenge $(($CHI2[3] - $CHI2[1]))"
530  fi
531  done
532 
533  set_variable NUMBER_OF_ITERATIONS 1000
534  set_variable EPSILON 5.0E-4
535 
536  for DX_M in 0.10; do # fit (z) positions of modules and (x,y) positions of strings
537 
538  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
539 
540  CHI2[3]=$CHI2[1]
541 
542  for STRING in $STRINGS[*]; do
543 
544  for (( FLOOR = 1; $FLOOR <= 18; FLOOR += 1 )); do
545  fitPositionOfModule $STRING $FLOOR $DX_M
546  done
547 
548  fitPositionOfString $STRING X $DX_M
549  fitPositionOfString $STRING Y $DX_M
550  done
551 
552  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
553  break
554  fi
555  done
556 
557  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
558 
559  if (( $N >= $NUMBER_OF_ITERATIONS )); then
560  warning "reached maximum number of iterations $N - converenge $(($CHI2[3] - $CHI2[1]))"
561  fi
562  done
563  ;;
564 
565  3) # ------------------------------------------------------------------------------------
566 
567  set_variable NUMBER_OF_ITERATIONS 500
568  set_variable EPSILON 5.0E-4
569 
570  cat>acoustics_fit_parameters.txt<<EOF
571 $CONFIGURATION[*]
572 Nmin = 3;
573 sigma_s = 50.0e-6;
574 stdev = 10.0;
575 mestimator = 0;
576 fixStrings = 0;
577 EOF
578 
579  for DX_M in 0.10 0.05; do # fit (x,y,z) positions of strings and tripods
580 
581  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
582 
583  CHI2[3]=$CHI2[1]
584 
585  for STRING in $STRINGS[*]; do
586  fitPositionOfString $STRING X $DX_M
587  fitPositionOfString $STRING Y $DX_M
588  fitPositionOfString $STRING Z $DX_M
589  done
590 
591  for TRIPOD in ${(k)TRIPODS}; do
592  fitPositionOfTripod $TRIPOD X $DX_M
593  fitPositionOfTripod $TRIPOD Y $DX_M
594  fitPositionOfTripod $TRIPOD Z $DX_M
595  done
596 
597  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
598  break
599  fi
600  done
601 
602  getCenter | read X Y Z
603 
604  let X="$X - $X_CENTER"
605  let Y="$Y - $Y_CENTER"
606  let Z="$Z - $Z_CENTER"
607 
608  JEditTripod -f $TRIPOD_FILE -T "-1 sub $X $Y $Z" -d 0 >& /dev/null
609  JEditDetector -a $DETECTOR -S "-1 sub $X $Y $Z" -o $DETECTOR -d 0 >& /dev/null
610 
611  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
612 
613  if (( $N >= $NUMBER_OF_ITERATIONS )); then
614  warning "reached maximum number of iterations $N - converenge $(($CHI2[3] - $CHI2[1]))"
615  fi
616  done
617 
618  set_variable NUMBER_OF_ITERATIONS 1000
619  set_variable EPSILON 5.0E-4
620 
621  for DX_M in 0.05; do # fit (z) positions of modules and (x,y) positions of strings
622 
623  for (( N=0; $N < $NUMBER_OF_ITERATIONS; ++N )); do
624 
625  CHI2[3]=$CHI2[1]
626 
627  for STRING in $STRINGS[*]; do
628 
629  for (( FLOOR = 1; $FLOOR <= 18; FLOOR += 1 )); do
630  fitPositionOfModule $STRING $FLOOR $DX_M
631  done
632 
633  fitPositionOfString $STRING X $DX_M
634  fitPositionOfString $STRING Y $DX_M
635  done
636 
637  if (( $CHI2[3] - $CHI2[1] < $EPSILON )); then
638  break
639  fi
640  done
641 
642  JConvertDetectorFormat -a $DETECTOR -o $DETECTOR -r -d 0 >& /dev/null
643 
644  if (( $N >= $NUMBER_OF_ITERATIONS )); then
645  warning "reached maximum number of iterations $N - converenge $(($CHI2[3] - $CHI2[1]))"
646  fi
647  done
648  ;;
649 
650  *) # ------------------------------------------------------------------------------------
651 
652  fatal "invalid stage $STAGE (possible stages: 1, 2, 3)"
653  ;;
654 esac
655 
656 mkdir -p $WORKDIR/$STAGE
657 
659 cp $TRIPOD_FILE $WORKDIR/$STAGE
660 
661 timer_stop
662 timer_print
663 
664 rm -f acoustics_fit_parameters.txt
665 
666 source JAcoustics.sh $DETECTOR_ID
667 
668 rm -rf $TMPDIR
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison fi case set_variable RANGE $argv[3]
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
do $JPP JMEstimator M
Definition: JMEstimator.sh:37
fixStrings
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
then JMuonPostfit f
then usage $script< detector file >< inputfile > nUtility script to create PDF and CDF of transition time distribution fi case set_variable WORKDIR
Definition: JLegolas.sh:31
stdev
do JCanberra a $DETECTOR f $INPUT_FILE o $WORKDIR canberra[${EMITTER}\] root T $WORKDIR tripod txt V $WORKDIR sound_velocity txt M $WORKDIR mechanics txt E $EMITTER d $DEBUG!done kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR set_variable FIRST_FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:63
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
mestimator
exit
Definition: JPizza.sh:36
data_type r[M+1]
Definition: JPolint.hh:742
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
then usage E
Definition: JMuonPostfit.sh:35
then echo
const int n
Definition: JPolint.hh:660
then timer_start(JRandomTimesliceWriter-a ${DETECTOR}-o ${PIPE}-n ${NUMBER_OF_SLICES}-P ${PMT_FILE}-d ${DEBUG}-S ${SEED}-B"$BACKGROUND_HZ"-N"$RECYCLING"--!&&for((i=0;$i!=10;++i));do;echo 'EOF' > $PIPE;usleep 100000;done &&rm-f $PIPE)&JTimesliceReprocessor-a $
do for((RUN=${RANGE%%-*};$RUN<=${RANGE##*-};RUN+=1))
do CONFIGURATION[$key]
then fatal Invalid string $STRING
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then usage $script< detector specific acoustics-fit script >< option > nAuxiliary script to make scan of pre stretching of detector strings(see JEditDetector)." "\nPossible options
then printf warning
then break fi done getCenter read X Y Z let X
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
set_array INPUT_FILES
sigma_s
do set_variable SIGMA_NS set_variable OUTLIERS set_variable OUTPUT_FILE matrix[${ALPHA_DEG}\deg\] root $JPP JMatrixNZ a $DETECTOR f $INPUT_FILE o $OUTPUT_FILE S
Definition: JMatrixNZ.sh:58
&set_variable OUTPUT_FILE
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then JCalibrateToT a
Definition: JTuneHV.sh:116
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
then display $WORKDIR
Definition: plot-Domino.sh:128
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR $JPP_DATA set_variable MAKE_PDF set_variable MERGE_PDF set_variable MAKE_CDF set_variable CLEAN set_variable BACKGROUND set_variable WGET set_variable RMAX_M set_variable absorptionLengthFactor set_variable scatteringLengthFactor BUFFER
Definition: JMakePDF.sh:36
do((XR=$XL+$DX)) LABEL
then fatal No tripod file $TRIPOD fi source JAcoustics sh CHECK_EXIT_CODE typeset A TRIPODS get_tripods $TRIPOD TRIPODS let X_CENTER
Definition: JFootprint.sh:44
then cp
do set_variable MODULE getModule a $WORKDIR detector_a datx L $STRING JEditDetector a $WORKDIR detector_a datx M $MODULE setz o $WORKDIR detector_a datx JEditDetector a $WORKDIR detector_b datx M $MODULE setz o $WORKDIR detector_b datx done echo Output stored at $WORKDIR detector_a datx and $WORKDIR tripod_a txt JDrawDetector2D a $WORKDIR detector_a datx a $WORKDIR detector_b datx L BL o detector $FORMAT $BATCH JDrawDetector2D T $WORKDIR tripod_a txt T $WORKDIR tripod_b txt L BL o tripod $FORMAT $BATCH JCompareDetector a $WORKDIR detector_a datx b $WORKDIR detector_b datx o $WORKDIR abc root &dev null for KEY in X Y Z
set_variable DETECTOR
double u[N+1]
Definition: JPolint.hh:739
double getChi2(const double P)
Get chi2 corresponding to given probability.
Definition: JFitToolkit.hh:70
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41
then eval awk Processing stage $STAGE
do CHI2[3]
set_variable NUMBER_OF_ITERATIONS set_variable EPSILON cat acoustics_fit_parameters txt<< EOF $CONFIGURATION[*]Nmin=3;sigma_s=100.0e-6;stdev=10.0;mestimator=0;fixStrings=0;EOF for STRING in $STRINGS[*];do#fit stretching and(z) position of given string set_variable DETECTOR_TMP/tmp/detector_A.datx JEditDetector-a $DETECTOR-o $DETECTOR_TMP-r $STRING JEditDetector-a $DETECTOR-o $DETECTOR-k $STRING for MUL in 0.005 0.001;do DX_M=0.2 for((N=0;$N< $NUMBER_OF_ITERATIONS;++N));do CHI2[3]=$CHI2[1] fitPositionOfString $STRING Z $DX_M fitStretchingOfString $STRING $MUL if(($CHI2[3]-$CHI2[1]< $EPSILON));then break fi done if(($N >=$NUMBER_OF_ITERATIONS));then printf"warning: reached maximum number of iterations %d - converenge %7.3f\n"$N $(($CHI2[3]-$CHI2[1])) fi done JMergeDetector-a $DETECTOR-a $DETECTOR_TMP-o $DETECTOR rm-f $DETECTOR_TMP JConvertDetectorFormat-a $DETECTOR-o $DETECTOR-r-d 0 > &dev null done
script
Definition: JAcoustics.sh:2
*fatal Wrong option $OPTION
then warning reached maximum number of iterations $N converenge(($CHI2[3]-$CHI2[1]))" fi done set_variable NUMBER_OF_ITERATIONS 1000 set_variable EPSILON 5.0E-4 for DX_M in 0.10
then fatal Invalid tripod $TRIPOD
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
do if[[!-f $ACOUSTICS_WORKDIR/${KEY}.txt]]
Definition: JAcoustics.sh:39
then usage $script< detector file >< tripodfile >< stage > input file nInput files correspond to the output of JAcousticsEventBuilder[.sh] nFirst stage eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY eval JPrintDetector a $DETECTOR O CAN source JAcoustics sh $DETECTOR_ID typeset A CONFIGURATION for key in Tmax_s
do alias $i