Jpp  18.0.0-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
acoustics-fit-toolkit.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 # -----------------------------------------------------------------------------------------------------
5 #
6 # Toolkit for the determination of the fixed parameters in the system, a.k.a. "pre-calibration".
7 # The list of parameters includes (x,y,z) positions of strings and tripods, stretching of strings,
8 # z-positions of the optical modules, orientations of the strings and possibly z-positions of anchors.
9 #
10 # The value of a given parameter is optimised by minimising the average chi2/NDF
11 # of a series of global fits applied to a predefined set of acoustic events.
12 # For each parameter, there exists a designated function.
13 #
14 # There are also steering functions to consistently determine the optimal values for a set of parameters.
15 # In these, the current accuracy of the parameter values is taken into account.
16 # These are therefore referred to as "stages".
17 # The pre-calibration thus consists of a sequence of stages.
18 # For each detector, a complete pre-calibration procedure is implemented in a designated script.
19 #
20 # Mandatory input variables:
21 #
22 # DETECTOR # detector file
23 # INPUT_FILES # list of input files (output of JAcousticsEventBuilder[.sh])
24 #
25 # Optional input variables:
26 #
27 # HYDROPHONE # if defined, use hydrophones in global fit; else do not use hydrophones
28 #
29 # In the following:
30 #
31 # STRINGS corresponds to list of strings to be fitted; this can be changed with function fixStrings.
32 # TRIPODS corresponds to list of tripods to be fitted; this can be changed with function fixTripods.
33 #
34 # TRANSMITTERS corresponds to list of strings which have an emitter on the anchor (maybe empty).
35 # For these strings, the orientations and the z-positions of the anchors will separately be fitted.
36 # This list will also be changed with function fixStrings.
37 # -----------------------------------------------------------------------------------------------------
38 
39 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
40 source $JPP_BIN/gradient.sh
41 
42 set_variable TMPDIR `pwd`/.$$ # temporary directory
43 set_variable: DEBUG ACOUSTICS_DEBUG 3 # debug level
44 set_variable: JOBS ACOUSTICS_JOBS 0 # number of parallel threads
45 
46 if do_usage $*; then
47  usage "Toolkit for pre-calibrations of detectors."\
48  "\nThis script should be sourced by the steering script for a specific detector."\
49  "\nConsult the script '$0' for more details."
50 fi
51 
52 if [[ ! $ZSH_EVAL_CONTEXT =~ :file$ ]]; then
53  echo "This script should be sourced by the steering script for a specific detector."
54  exit
55 fi
56 
57 if [[ `ps -o stat= -p $$` == *"+" ]]; then
58  echo "This script cannot interactively be used."
59  exit
60 fi
61 
62 source JAcousticsToolkit.sh
63 
64 typeset -A TRIPODS # tripods
65 typeset -a CHI2 # chi2 values; index [1] corresponds to best value
66 
67 let "NUMBER_OF_ITERATIONS = 100" # maximal number of iterations
68 let "EPSILON = 5.0E-4" # maximal distance to minimum of chi2
69 let "RADIUS_M = 1.0" # maximal horizontal distance between T-bar and emitter/hydrophone
70 let "PRECISION = 10" # number of decimals of chi2 evaluation
71 
72 
73 # -----------------------------------------------------------------------------------------------------
74 # Initialise.
75 #
76 # Install input files in working directory and create temporary directory TMPDIR.
77 #
78 # -----------------------------------------------------------------------------------------------------
79 function initialise()
80 {
81  eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
82  eval `JPrintDetector -a $DETECTOR -O SUMMARY`
83  eval `JPrintDetector -a $DETECTOR -O CAN`
84 
85  JAcoustics.sh $DETECTOR_ID
86 
87  get_tripods tripod.txt TRIPODS
88 
89  TRANSMITTERS=(`get_strings_with_transmitter transmitter.txt`)
90 
91  if [[ "${HYDROPHONE+YES}" == "YES" ]]; then
92  HYDROPHONES=(`get_strings_with_hydrophone hydrophone.txt`)
93  else
94  HYDROPHONES=()
95  fi
96 
97  mkdir -p $TMPDIR
98 
99  JConvertDetectorFormat -a $DETECTOR -o pmt.datx
100  JDetachPMTs -a $DETECTOR -o $DETECTOR
101 }
102 
103 
104 # -----------------------------------------------------------------------------------------------------
105 # Backup files in given directory.
106 #
107 # \param 1 directory
108 # -----------------------------------------------------------------------------------------------------
109 function backup()
110 {
111  mkdir -p $1
112 
113  cp -p {tripod.txt,transmitter.txt,hydrophone.txt} $1
114 
115  JAttachPMTs -a $DETECTOR -f pmt.datx -o $1/detector.datx
116 }
117 
118 
119 # -----------------------------------------------------------------------------------------------------
120 # Remove temporary directory and restore input files in working directory.
121 #
122 # -----------------------------------------------------------------------------------------------------
123 function clean()
124 {
125  JAttachPMTs -a $DETECTOR -f pmt.datx -o $DETECTOR
126 
127  rm -rf $TMPDIR >& /dev/null
128 
129  rm -f {acoustics_fit_parameters,acoustics_trigger_parameters}.txt
130 
131  JAcoustics.sh $DETECTOR_ID
132 }
133 
134 
135 # -----------------------------------------------------------------------------------------------------
136 # Fix strings.
137 #
138 # \param 1-N identifiers
139 # -----------------------------------------------------------------------------------------------------
140 function fixStrings()
141 {
142  typeset -a BUFFER
143 
144  BUFFER=(`echo $*`)
145 
146  if (( ${#BUFFER} > 0 )); then
147  STRINGS=(${STRINGS:|BUFFER})
148  TRANSMITTERS=(${TRANSMITTERS:|BUFFER})
149  HYDROPHONES=(${HYDROPHONES:|BUFFER})
150  fi
151 }
152 
153 
154 # -----------------------------------------------------------------------------------------------------
155 # Fix tripods.
156 #
157 # \param 1-N identifiers
158 # -----------------------------------------------------------------------------------------------------
159 function fixTripods()
160 {
161  typeset -a BUFFER
162 
163  BUFFER=(`echo $*`)
164 
165  if (( ${#BUFFER} > 0 )); then
166  for ID in $BUFFER[*]; do
167  unset "TRIPODS[${ID}]"
168  done
169  fi
170 }
171 
172 
173 # -----------------------------------------------------------------------------------------------------
174 # Evaluate current chi2.
175 #
176 # \param 1 variable containing chi2 value on return
177 # \param 2 option
178 # -----------------------------------------------------------------------------------------------------
179 function getChi2()
180 {
181  if (( $JOBS == 0 )); then
182 
183  rm -f $TMPDIR/katoomba.root >& /dev/null
184 
185  JKatoomba \
186  -a $DETECTOR \
187  -f "$INPUT_FILES[*]" \
188  -o $TMPDIR/katoomba.root \
189  -T tripod.txt \
190  -Y transmitter.txt \
191  -V sound_velocity.txt \
192  -M mechanics.txt \
193  -@ $TMPDIR/acoustics_fit_parameters.txt \
194  -! disable.txt \
195  ${HYDROPHONE+-H hydrophone.txt} \
196  -u \
197  -d 0 >& $TMPDIR/job.log
198 
199  if (( $? != 0 )); then
200  fatal "non-zero exit code, see $TMPDIR/job.log"
201  fi
202 
203  set_variable RESULT $($JPP_DIR/examples/JAcoustics/JPrintChi2 -f $TMPDIR/katoomba.root -p $PRECISION)
204 
205  else
206 
207  if (( $2 == 0 )); then
208 
209  # step wise improvement of the chi2
210 
211  {{ JFremantle \
212  -a $DETECTOR \
213  -f "$INPUT_FILES[*]" \
214  -T tripod.txt \
215  -Y transmitter.txt \
216  -V sound_velocity.txt \
217  -M mechanics.txt \
218  -@ $TMPDIR/acoustics_fit_parameters.txt \
219  -! disable.txt \
220  ${HYDROPHONE+-H hydrophone.txt} \
221  -u \
222  -N $JOBS \
223  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
224 
225  elif (( $2 == 1 )); then
226 
227  # evaluation of the chi2 before the determination of the gradient of the chi2
228 
229  rm -f $TMPDIR/katoomba.root >& /dev/null
230 
231  {{ JFremantle \
232  -a $DETECTOR \
233  -f "$INPUT_FILES[*]" \
234  -o $TMPDIR/katoomba.root \
235  -T tripod.txt \
236  -Y transmitter.txt \
237  -V sound_velocity.txt \
238  -M mechanics.txt \
239  -@ $TMPDIR/acoustics_fit_parameters.txt \
240  -! disable.txt \
241  ${HYDROPHONE+-H hydrophone.txt} \
242  -u \
243  -N $JOBS \
244  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
245 
246  elif (( $2 == 2 )); then
247 
248  # evaluation of the derivative of the chi2 to each fit parameter
249 
250  {{ JPlatypus \
251  -a $DETECTOR \
252  -f $TMPDIR/katoomba.root \
253  -T tripod.txt \
254  -Y transmitter.txt \
255  -V sound_velocity.txt \
256  -M mechanics.txt \
257  -@ $TMPDIR/acoustics_fit_parameters.txt \
258  ${HYDROPHONE+-H hydrophone.txt} \
259  -N $JOBS \
260  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
261 
262  else
263 
264  fatal "invalid option <$2>"
265  fi
266 
267  if (( $? != 0 )); then
268  fatal "non-zero exit code, see $TMPDIR/job.log"
269  fi
270  fi
271 
272  let "UV = $RESULT"
273 
274  if (( $? != 0 )); then
275  fatal "non-zero exit code let, value <${RESULT}>."
276  fi
277 
278  eval $1=$UV
279 }
280 
281 
282 # -----------------------------------------------------------------------------------------------------
283 # Stage 0.
284 # This stage can be used to determine the (x,y,z) positions of tripods using strings that are fixed.
285 #
286 # \param 1 fit option
287 # \param 2 M-estimator
288 # \param 3 resolution [s]
289 # \param 4 standard deviations
290 # \param 5 step size [m]
291 # \param 6 maximum number of extra steps
292 # -----------------------------------------------------------------------------------------------------
293 function stage_0()
294 {
295  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
296 `egrep Tmax_s acoustics_fit_parameters.txt`
297 Nmin = 3;
298 option = $1;
299 mestimator = $2;
300 sigma_s = $3;
301 stdev = $4;
302 EOF
303 
304  if (( ${#STRINGS} > 0 )); then
305  JEditDetector -a $DETECTOR -o $TMPDIR/detector_0.datx -k "$STRINGS[*]" -q -d 0 >& /dev/null
306  JEditDetector -a $DETECTOR -o $DETECTOR -r "$STRINGS[*]" -q -d 0 >& /dev/null
307  fi
308 
309  PARAMETERS=()
310 
311  for ID in ${(k)TRIPODS}; do
312  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addx %" -o tripod.txt -q -d 0 >& /dev/null']=$5
313  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addy %" -o tripod.txt -q -d 0 >& /dev/null']=$5
314  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addz %" -o tripod.txt -q -d 0 >& /dev/null']=$5
315  done
316 
317  gradient $6 Y
318 
319  printf "detector %6d %8.4f\n" $N $Y
320 
321  if (( ${#STRINGS} > 0 )); then
322  JMergeDetector -a $DETECTOR -a $TMPDIR/detector_0.datx -o $DETECTOR >& /dev/null
323  fi
324 }
325 
326 
327 # -----------------------------------------------------------------------------------------------------
328 # Stage a.
329 # This stage can be used to determine the positions of the strings and tripods.
330 #
331 # \param 1 fit option
332 # \param 2 M-estimator
333 # \param 3 resolution [s]
334 # \param 4 standard deviations
335 # \param 5 step size strings [m]
336 # \param 6 step size tripods [m]
337 # \param 7 maximum number of extra steps
338 # -----------------------------------------------------------------------------------------------------
339 function stage_a()
340 {
341  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
342 `egrep Tmax_s acoustics_fit_parameters.txt`
343 Nmin = 3;
344 option = $1;
345 mestimator = $2;
346 sigma_s = $3;
347 stdev = $4;
348 EOF
349 
350  PARAMETERS=()
351 
352  for STRING in $STRINGS[*]; do
353  PARAMETERS['JEditDetector -a $DETECTOR -S "$STRING addx %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
354  PARAMETERS['JEditDetector -a $DETECTOR -S "$STRING addy %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
355  PARAMETERS['JEditDetector -a $DETECTOR -s "$STRING addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
356  done
357 
358  for ID in ${(k)TRIPODS}; do
359  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addx %" -o tripod.txt -q -d 0 >& /dev/null']=$6
360  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addy %" -o tripod.txt -q -d 0 >& /dev/null']=$6
361  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addz %" -o tripod.txt -q -d 0 >& /dev/null']=$6
362  done
363 
364  for STRING in ${HYDROPHONES:|TRANSMITTERS}; do
365  PARAMETERS['JEditHydrophone -f hydrophone.txt -S "$STRING rot %" -o hydrophone.txt -q -d 0 >& /dev/null; JEditTransmitter -f transmitter.txt -S "$STRING rot %" -o transmitter.txt -q -d 0 >& /dev/null']=$(($5 / $RADIUS_M))
366  done
367 
368  for STRING in $TRANSMITTERS[*]; do
369 
370  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
371 
372  PARAMETERS['JEditDetector -a $DETECTOR -M "$MODULE addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
373  PARAMETERS['JEditHydrophone -f hydrophone.txt -S "$STRING rot %" -o hydrophone.txt -q -d 0 >& /dev/null; JEditTransmitter -f transmitter.txt -S "$STRING rot %" -o transmitter.txt -q -d 0 >& /dev/null']=$(($5 / $RADIUS_M))
374  done
375 
376  gradient $7 Y
377 
378  printf "detector %6d %8.4f\n" $N $Y
379 }
380 
381 
382 # -----------------------------------------------------------------------------------------------------
383 # Stage b.
384 # This stage can be used to determine the stretching and z-positions of individual strings.
385 #
386 # \param 1 fit option
387 # \param 2 M-estimator
388 # \param 3 resolution [s]
389 # \param 4 standard deviations
390 # \param 5 step size stretching [unit]
391 # \param 6 step size z-position [m]
392 # \param 7 maximum number of extra steps
393 # -----------------------------------------------------------------------------------------------------
394 function stage_b()
395 {
396  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
397 `egrep Tmax_s acoustics_fit_parameters.txt`
398 Nmin = 3;
399 option = $1;
400 mestimator = $2;
401 sigma_s = $3;
402 stdev = $4;
403 EOF
404 
405  for STRING in $STRINGS[*]; do
406 
407  JEditDetector -a $DETECTOR -o $TMPDIR/detector_1.datx -r "$STRING" -q -d 0 >& /dev/null
408  JEditDetector -a $DETECTOR -o $DETECTOR -k "$STRING" -q -d 0 >& /dev/null
409 
410  PARAMETERS=()
411 
412  PARAMETERS['JEditDetector -a $DETECTOR -s "$STRING mul %" -o $DETECTOR -q -d 0 >& /dev/null; JEditDetector -a $DETECTOR -s "$STRING subz \$\(\(% * $CAN_ZMAX_M\)\)" -o $DETECTOR -q -d 0 >& /dev/null']=$5
413  PARAMETERS['JEditDetector -a $DETECTOR -s "$STRING addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$6
414 
415  gradient $7 Y
416 
417  printf "string %04d %6d %8.4f\n" $STRING $N $Y
418 
419  JMergeDetector -a $DETECTOR -a $TMPDIR/detector_1.datx -o $DETECTOR >& /dev/null
420  done
421 }
422 
423 
424 # -----------------------------------------------------------------------------------------------------
425 # Stage c.
426 # This stage can be used to determine the z-positions of the modules.
427 #
428 # \param 1 fit option
429 # \param 2 M-estimator
430 # \param 3 resolution [s]
431 # \param 4 standard deviations
432 # \param 5 step size [m]
433 # \param 6 maximum number of extra steps
434 # -----------------------------------------------------------------------------------------------------
435 function stage_c()
436 {
437  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
438 `egrep Tmax_s acoustics_fit_parameters.txt`
439 Nmin = 3;
440 option = $1;
441 mestimator = $2;
442 sigma_s = $3;
443 stdev = $4;
444 EOF
445 
446  PARAMETERS=()
447 
448  for STRING in $STRINGS[*]; do
449 
450  for (( FLOOR = 1; $FLOOR <= 18; FLOOR += 1 )); do
451 
452  set_variable MODULE `getModule -a $DETECTOR -L "$STRING $FLOOR"`
453 
454  PARAMETERS['JEditDetector -a $DETECTOR -M "$MODULE addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
455  done
456  done
457 
458  gradient $6 Y
459 
460  printf "detector %6d %8.4f\n" $N $Y
461 }
462 
463 
464 # -----------------------------------------------------------------------------------------------------
465 # Stage d.
466 # This stage can be used to determine the z-positions of the anchors
467 #
468 # \param 1 fit option
469 # \param 2 M-estimator
470 # \param 3 resolution [s]
471 # \param 4 standard deviations
472 # \param 5 step size [m]
473 # \param 6 maximum number of extra steps
474 # -----------------------------------------------------------------------------------------------------
475 function stage_d()
476 {
477  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
478 `egrep Tmax_s acoustics_fit_parameters.txt`
479 Nmin = 3;
480 option = $1;
481 mestimator = $2;
482 sigma_s = $3;
483 stdev = $4;
484 EOF
485 
486  PARAMETERS=()
487 
488  for STRING in $STRINGS[*]; do
489 
490  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
491 
492  PARAMETERS['JEditDetector -a $DETECTOR -M "$MODULE addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
493  done
494 
495  gradient $6 Y
496 
497  printf "detector %6d %8.4f\n" $N $Y
498 }
499 
500 
501 # -----------------------------------------------------------------------------------------------------
502 # Stage D.
503 # This stage can be used to determine the rotations of the strings and z-positions of the anchors
504 # including the response of hydrophones.
505 # It includes a determination of the positions of the strings and tripods.
506 #
507 # \param 1 fit option
508 # \param 2 M-estimator
509 # \param 3 resolution [s]
510 # \param 4 standard deviations
511 # \param 5 step size strings [m]
512 # \param 6 step size tripods [m]
513 # \param 7 maximum number of extra steps
514 # -----------------------------------------------------------------------------------------------------
515 function stage_D()
516 {
517  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
518 `egrep Tmax_s acoustics_fit_parameters.txt`
519 Nmin = 3;
520 option = $1;
521 mestimator = $2;
522 sigma_s = $3;
523 stdev = $4;
524 EOF
525 
527 
528  PARAMETERS=()
529 
530  for STRING in $STRINGS[*]; do
531 
532  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
533 
534  PARAMETERS['JEditDetector -a $DETECTOR -S "$STRING addx %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
535  PARAMETERS['JEditDetector -a $DETECTOR -S "$STRING addy %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
536  PARAMETERS['JEditDetector -a $DETECTOR -s "$STRING addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
537  PARAMETERS['JEditDetector -a $DETECTOR -M "$MODULE addz %" -o $DETECTOR -q -d 0 >& /dev/null']=$5
538 
539  PARAMETERS['JEditHydrophone -f hydrophone.txt -S "$STRING rot %" -o hydrophone.txt -q -d 0 >& /dev/null; JEditTransmitter -f transmitter.txt -S "$STRING rot %" -o transmitter.txt -q -d 0 >& /dev/null']=$(($5 / $RADIUS_M))
540  done
541 
542  for ID in ${(k)TRIPODS}; do
543  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addx %" -o tripod.txt -q -d 0 >& /dev/null']=$6
544  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addy %" -o tripod.txt -q -d 0 >& /dev/null']=$6
545  PARAMETERS['JEditTripod -f tripod.txt -T "$ID addz %" -o tripod.txt -q -d 0 >& /dev/null']=$6
546  done
547 
548  gradient $7 Y
549 
550  printf "detector %6d %8.4f\n" $N $Y
551 }
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
esac done BUFFER
Definition: JMakePDF.sh:77
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
then JLigier sh continue fi cat
Definition: JDAQDriver.sh:51
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
then fatal Number of tripods
Definition: JFootprint.sh:45
data_type r[M+1]
Definition: JPolint.hh:779
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
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
then echo This script cannot interactively be used exit fi source JAcousticsToolkit sh typeset A TRIPODS typeset a CHI2 let see $TMPDIR job log fi set_variable RESULT($JPP_DIR/examples/JAcoustics/JPrintChi2-f $TMPDIR/katoomba.root-p $PRECISION) else if(($2
then echo
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 H $WORKDIR hydrophone txt E $EMITTER $DISABLE d $DEBUG!done kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:68
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:21
then JCalibrateToT a
Definition: JTuneHV.sh:116
case $OPTION in clean clean
do set_variable OUTPUT_DIRECTORY $WORKDIR T
* usage
skip elif((BINFRAC< 1.0))
set_array INPUT_FILES argv[2,$((START_INDEX_STRING-1))] set_array STRINGS
then $DIR JKatoomba a $DETECTOR o $WORKDIR katoomba root T $TRIPOD n sigma_s
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:36
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
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
static const JPBS_t HYDROPHONE(4, 5)
PBS of hydrophone
then if[[!-f $DETECTOR]] then JDetector sh $DETECTOR fi cat $WORKDIR trigger_parameters txt<< EOFtrigger3DMuon.enabled=1;trigger3DMuon.numberOfHits=5;trigger3DMuon.gridAngle_deg=1;ctMin=0.0;TMaxLocal_ns=15.0;EOF set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY INPUT_FILES=() for((i=1;$i<=$NUMBER_OF_RUNS;++i));do JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_ ${i}.root JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_ ${i}.root $WORKDIR/trigger_efficiency_ ${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt INPUT_FILES+=($WORKDIR/trigger_efficiency_ ${i}.root) done for ANGLE_DEG in $ANGLES_DEG[*];do set_variable SIGMA_NS 3.0 set_variable OUTLIERS 3 set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\deg\].root $JPP_DIR/examples/JReconstruction-f"$INPUT_FILES[*]"-o $OUTPUT_FILE-S ${SIGMA_NS}-A ${ANGLE_DEG}-O ${OUTLIERS}-d ${DEBUG}--!fiif[[$OPTION=="plot"]];then if((0));then for H1 in h0 h1;do JPlot1D-f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}"-y"1 2e3"-Y-L TR-T""-\^"number of events [a.u.]"-> o chi2
Definition: JMatrixNZ.sh:106
then cp
possible values
then echo Creating output directory
Definition: JTuneHV.sh:83
do set_variable DETECTOR_TXT $WORKDIR detector
double u[N+1]
Definition: JPolint.hh:776
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
double getChi2(const double P)
Get chi2 corresponding to given probability.
Definition: JFitToolkit.hh:56
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
script
Definition: JAcoustics.sh:2
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
int debug
debug level
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62