Jpp  18.2.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
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  if [[ ! -f pmt.datx ]]; then
100  JConvertDetectorFormat -a $DETECTOR -o pmt.datx
101  fi
102  JDetachPMTs -a $DETECTOR -o $DETECTOR
103 }
104 
105 
106 # -----------------------------------------------------------------------------------------------------
107 # Backup files in given directory.
108 #
109 # \param 1 directory
110 # -----------------------------------------------------------------------------------------------------
111 function backup()
112 {
113  debug "Backup intermediate results to $1"
114 
115  mkdir -p $1
116 
117  cp -p {tripod.txt,transmitter.txt,hydrophone.txt} $1
118 
119  JAttachPMTs -a $DETECTOR -f pmt.datx -o $1/detector.datx
120 }
121 
122 
123 # -----------------------------------------------------------------------------------------------------
124 # Remove temporary directory and restore input files in working directory.
125 #
126 # -----------------------------------------------------------------------------------------------------
127 function clean()
128 {
129  JAttachPMTs -a $DETECTOR -f pmt.datx -o $DETECTOR
130 
131  rm -rf $TMPDIR >& /dev/null
132 
133  rm -f {acoustics_fit_parameters,acoustics_trigger_parameters}.txt
134 
135  JAcoustics.sh $DETECTOR_ID
136 }
137 
138 
139 # -----------------------------------------------------------------------------------------------------
140 # Fix strings.
141 #
142 # \param 1-N identifiers
143 # -----------------------------------------------------------------------------------------------------
144 function fixStrings()
145 {
146  typeset -a BUFFER
147 
148  BUFFER=(`echo $*`)
149 
150  if (( ${#BUFFER} > 0 )); then
151  STRINGS=(${STRINGS:|BUFFER})
152  TRANSMITTERS=(${TRANSMITTERS:|BUFFER})
153  HYDROPHONES=(${HYDROPHONES:|BUFFER})
154  fi
155 }
156 
157 
158 # -----------------------------------------------------------------------------------------------------
159 # Fix tripods.
160 #
161 # \param 1-N identifiers
162 # -----------------------------------------------------------------------------------------------------
163 function fixTripods()
164 {
165  typeset -a BUFFER
166 
167  BUFFER=(`echo $*`)
168 
169  if (( ${#BUFFER} > 0 )); then
170  for ID in $BUFFER[*]; do
171  unset "TRIPODS[${ID}]"
172  done
173  fi
174 }
175 
176 
177 # -----------------------------------------------------------------------------------------------------
178 # Evaluate current chi2.
179 #
180 # \param 1 variable containing chi2 value on return
181 # \param 2 option
182 # -----------------------------------------------------------------------------------------------------
183 function getChi2()
184 {
185  if (( $JOBS == 0 )); then
186 
187  rm -f $TMPDIR/katoomba.root >& /dev/null
188 
189  JKatoomba \
190  -a $DETECTOR \
191  -f "$INPUT_FILES[*]" \
192  -o $TMPDIR/katoomba.root \
193  -T tripod.txt \
194  -Y transmitter.txt \
195  -V sound_velocity.txt \
196  -M mechanics.txt \
197  -@ $TMPDIR/acoustics_fit_parameters.txt \
198  -! disable.txt \
199  ${HYDROPHONE+-H hydrophone.txt} \
200  -d 0 >& $TMPDIR/job.log
201 
202  if (( $? != 0 )); then
203  fatal "non-zero exit code, see $TMPDIR/job.log"
204  fi
205 
206  set_variable RESULT $($JPP_DIR/examples/JAcoustics/JPrintChi2 -f $TMPDIR/katoomba.root -p $PRECISION)
207 
208  else
209 
210  if (( $2 == 0 )); then
211 
212  # step wise improvement of the chi2
213 
214  {{ JFremantle \
215  -a $DETECTOR \
216  -f "$INPUT_FILES[*]" \
217  -T tripod.txt \
218  -Y transmitter.txt \
219  -V sound_velocity.txt \
220  -M mechanics.txt \
221  -@ $TMPDIR/acoustics_fit_parameters.txt \
222  -! disable.txt \
223  ${HYDROPHONE+-H hydrophone.txt} \
224  -N $JOBS \
225  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
226 
227  elif (( $2 == 1 )); then
228 
229  # evaluation of the chi2 before the determination of the gradient of the chi2
230 
231  rm -f $TMPDIR/fremantle.jpp >& /dev/null
232 
233  {{ JFremantle \
234  -a $DETECTOR \
235  -f "$INPUT_FILES[*]" \
236  -o $TMPDIR/fremantle.jpp \
237  -T tripod.txt \
238  -Y transmitter.txt \
239  -V sound_velocity.txt \
240  -M mechanics.txt \
241  -@ $TMPDIR/acoustics_fit_parameters.txt \
242  -! disable.txt \
243  ${HYDROPHONE+-H hydrophone.txt} \
244  -N $JOBS \
245  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
246 
247  elif (( $2 == 2 )); then
248 
249  # evaluation of the derivative of the chi2 to each fit parameter
250 
251  {{ JPlatypus \
252  -a $DETECTOR \
253  -f $TMPDIR/fremantle.jpp \
254  -T tripod.txt \
255  -Y transmitter.txt \
256  -V sound_velocity.txt \
257  -M mechanics.txt \
258  -@ $TMPDIR/acoustics_fit_parameters.txt \
259  ${HYDROPHONE+-H hydrophone.txt} \
260  -N $JOBS \
261  -d 0 3>&1 1>&4 } | read RESULT } 4>&1 >& $TMPDIR/job.log
262 
263  else
264 
265  fatal "invalid option <$2>"
266  fi
267 
268  if (( $? != 0 )); then
269  fatal "non-zero exit code, see $TMPDIR/job.log"
270  fi
271  fi
272 
273  let "UV = $RESULT"
274 
275  if (( $? != 0 )); then
276  fatal "non-zero exit code let, value <${RESULT}>."
277  fi
278 
279  eval $1=$UV
280 }
281 
282 
283 # -----------------------------------------------------------------------------------------------------
284 # Stage 0.
285 # This stage can be used to determine the (x,y,z) positions of tripods using strings that are fixed.
286 #
287 # \param 1 fit option
288 # \param 2 M-estimator
289 # \param 3 resolution [s]
290 # \param 4 standard deviations
291 # \param 5 step size [m]
292 # \param 6 maximum number of extra steps
293 # -----------------------------------------------------------------------------------------------------
294 function stage_0()
295 {
296  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
297 `egrep Tmax_s acoustics_fit_parameters.txt`
298 Nmin = 3;
299 option = $1;
300 mestimator = $2;
301 sigma_s = $3;
302 stdev = $4;
303 EOF
304 
305  if (( ${#STRINGS} > 0 )); then
306  JEditDetector -a $DETECTOR -o $TMPDIR/detector_0.datx -k "$STRINGS[*]" -q -d 0 >& /dev/null
307  JEditDetector -a $DETECTOR -o $DETECTOR -r "$STRINGS[*]" -q -d 0 >& /dev/null
308  fi
309 
310  PARAMETERS=()
311 
312  for ID in ${(k)TRIPODS}; do
313  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addx %" -d 0 >& /dev/null']=$5
314  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addy %" -d 0 >& /dev/null']=$5
315  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addz %" -d 0 >& /dev/null']=$5
316  done
317 
318  gradient $6 Y
319 
320  printf "detector %6d %8.4f\n" $N $Y
321 
322  if (( ${#STRINGS} > 0 )); then
323  JMergeDetector -a $DETECTOR -a $TMPDIR/detector_0.datx -o $DETECTOR >& /dev/null
324  fi
325 }
326 
327 
328 # -----------------------------------------------------------------------------------------------------
329 # Stage a.
330 # This stage can be used to determine the positions of the strings and tripods.
331 #
332 # \param 1 fit option
333 # \param 2 M-estimator
334 # \param 3 resolution [s]
335 # \param 4 standard deviations
336 # \param 5 step size strings [m]
337 # \param 6 step size tripods [m]
338 # \param 7 maximum number of extra steps
339 # -----------------------------------------------------------------------------------------------------
340 function stage_a()
341 {
342  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
343 `egrep Tmax_s acoustics_fit_parameters.txt`
344 Nmin = 3;
345 option = $1;
346 mestimator = $2;
347 sigma_s = $3;
348 stdev = $4;
349 EOF
350 
351  PARAMETERS=()
352 
353  for STRING in $STRINGS[*]; do
354  PARAMETERS['JMoveDetector -a $DETECTOR -S "$STRING addx %" -d 0 >& /dev/null']=$5
355  PARAMETERS['JMoveDetector -a $DETECTOR -S "$STRING addy %" -d 0 >& /dev/null']=$5
356  PARAMETERS['JMoveDetector -a $DETECTOR -s "$STRING addz %" -d 0 >& /dev/null']=$5
357  done
358 
359  for ID in ${(k)TRIPODS}; do
360  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addx %" -d 0 >& /dev/null']=$6
361  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addy %" -d 0 >& /dev/null']=$6
362  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addz %" -d 0 >& /dev/null']=$6
363  done
364 
365  for STRING in ${HYDROPHONES:|TRANSMITTERS}; do
366  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))
367  done
368 
369  for STRING in $TRANSMITTERS[*]; do
370 
371  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
372 
373  PARAMETERS['JMoveDetector -a $DETECTOR -M "$MODULE addz %" -d 0 >& /dev/null']=$5
374  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))
375  done
376 
377  gradient $7 Y
378 
379  printf "detector %6d %8.4f\n" $N $Y
380 }
381 
382 
383 # -----------------------------------------------------------------------------------------------------
384 # Stage b.
385 # This stage can be used to determine the stretching and z-positions of individual strings.
386 #
387 # \param 1 fit option
388 # \param 2 M-estimator
389 # \param 3 resolution [s]
390 # \param 4 standard deviations
391 # \param 5 step size stretching [unit]
392 # \param 6 step size z-position [m]
393 # \param 7 maximum number of extra steps
394 # -----------------------------------------------------------------------------------------------------
395 function stage_b()
396 {
397  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
398 `egrep Tmax_s acoustics_fit_parameters.txt`
399 Nmin = 3;
400 option = $1;
401 mestimator = $2;
402 sigma_s = $3;
403 stdev = $4;
404 EOF
405 
406  for STRING in $STRINGS[*]; do
407 
408  JEditDetector -a $DETECTOR -o $TMPDIR/detector_1.datx -r "$STRING" -q -d 0 >& /dev/null
409  JEditDetector -a $DETECTOR -o $DETECTOR -k "$STRING" -q -d 0 >& /dev/null
410 
411  PARAMETERS=()
412 
413  PARAMETERS['JMoveDetector -a $DETECTOR -s "$STRING mul %" -d 0 >& /dev/null; JMoveDetector -a $DETECTOR -s "$STRING subz \$\(\(% * $CAN_ZMAX_M\)\)" -d 0 >& /dev/null']=$5
414  PARAMETERS['JMoveDetector -a $DETECTOR -s "$STRING addz %" -d 0 >& /dev/null']=$6
415 
416  gradient $7 Y
417 
418  printf "string %04d %6d %8.4f\n" $STRING $N $Y
419 
420  JMergeDetector -a $DETECTOR -a $TMPDIR/detector_1.datx -o $DETECTOR >& /dev/null
421  done
422 }
423 
424 
425 # -----------------------------------------------------------------------------------------------------
426 # Stage c.
427 # This stage can be used to determine the z-positions of the modules.
428 #
429 # \param 1 fit option
430 # \param 2 M-estimator
431 # \param 3 resolution [s]
432 # \param 4 standard deviations
433 # \param 5 step size [m]
434 # \param 6 maximum number of extra steps
435 # -----------------------------------------------------------------------------------------------------
436 function stage_c()
437 {
438  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
439 `egrep Tmax_s acoustics_fit_parameters.txt`
440 Nmin = 3;
441 option = $1;
442 mestimator = $2;
443 sigma_s = $3;
444 stdev = $4;
445 EOF
446 
447  PARAMETERS=()
448 
449  for STRING in $STRINGS[*]; do
450 
451  for (( FLOOR = 1; $FLOOR <= 18; FLOOR += 1 )); do
452 
453  set_variable MODULE `getModule -a $DETECTOR -L "$STRING $FLOOR"`
454 
455  PARAMETERS['JMoveDetector -a $DETECTOR -M "$MODULE addz %" -d 0 >& /dev/null']=$5
456  done
457  done
458 
459  gradient $6 Y
460 
461  printf "detector %6d %8.4f\n" $N $Y
462 }
463 
464 
465 # -----------------------------------------------------------------------------------------------------
466 # Stage d.
467 # This stage can be used to determine the z-positions of the anchors
468 #
469 # \param 1 fit option
470 # \param 2 M-estimator
471 # \param 3 resolution [s]
472 # \param 4 standard deviations
473 # \param 5 step size [m]
474 # \param 6 maximum number of extra steps
475 # -----------------------------------------------------------------------------------------------------
476 function stage_d()
477 {
478  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
479 `egrep Tmax_s acoustics_fit_parameters.txt`
480 Nmin = 3;
481 option = $1;
482 mestimator = $2;
483 sigma_s = $3;
484 stdev = $4;
485 EOF
486 
487  PARAMETERS=()
488 
489  for STRING in $STRINGS[*]; do
490 
491  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
492 
493  PARAMETERS['JMoveDetector -a $DETECTOR -M "$MODULE addz %" -d 0 >& /dev/null']=$5
494  done
495 
496  gradient $6 Y
497 
498  printf "detector %6d %8.4f\n" $N $Y
499 }
500 
501 
502 # -----------------------------------------------------------------------------------------------------
503 # Stage D.
504 # This stage can be used to determine the rotations of the strings and z-positions of the anchors
505 # including the response of hydrophones.
506 # It includes a determination of the positions of the strings and tripods.
507 #
508 # \param 1 fit option
509 # \param 2 M-estimator
510 # \param 3 resolution [s]
511 # \param 4 standard deviations
512 # \param 5 step size strings [m]
513 # \param 6 step size tripods [m]
514 # \param 7 maximum number of extra steps
515 # -----------------------------------------------------------------------------------------------------
516 function stage_D()
517 {
518  cat>$TMPDIR/acoustics_fit_parameters.txt<<EOF
519 `egrep Tmax_s acoustics_fit_parameters.txt`
520 Nmin = 3;
521 option = $1;
522 mestimator = $2;
523 sigma_s = $3;
524 stdev = $4;
525 EOF
526 
528 
529  PARAMETERS=()
530 
531  for STRING in $STRINGS[*]; do
532 
533  set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
534 
535  PARAMETERS['JMoveDetector -a $DETECTOR -S "$STRING addx %" -d 0 >& /dev/null']=$5
536  PARAMETERS['JMoveDetector -a $DETECTOR -S "$STRING addy %" -d 0 >& /dev/null']=$5
537  PARAMETERS['JMoveDetector -a $DETECTOR -s "$STRING addz %" -d 0 >& /dev/null']=$5
538  PARAMETERS['JMoveDetector -a $DETECTOR -M "$MODULE addz %" -d 0 >& /dev/null']=$5
539 
540  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))
541  done
542 
543  for ID in ${(k)TRIPODS}; do
544  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addx %" -d 0 >& /dev/null']=$6
545  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addy %" -d 0 >& /dev/null']=$6
546  PARAMETERS['JMoveTripod -f tripod.txt -T "$ID addz %" -d 0 >& /dev/null']=$6
547  done
548 
549  gradient $7 Y
550 
551  printf "detector %6d %8.4f\n" $N $Y
552 }
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
then ls $DIR egrep
Definition: getArchive.sh:75
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:83
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
then usage $script(input file)+< QA/QC file >" "\nAuxiliary script to produce the following QA/QC data then fatal Wrong number of arguments fi set_array INPUT_FILES $argv[1,-2] set_variable QAQC_FILE $argv[-1] mkdir p $WORKDIR set_variable ACOUSTICS_DEBUG
Definition: JQAQC.sh:80
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 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
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 Missing detector file $DETECTOR fi eval JPrintDetector a $DETECTOR O IDENTIFIER for KEY in tripod hydrophone transmitter
then rm
Definition: sftpput.zsh:30
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:113
case $OPTION in clean clean
do set_variable OUTPUT_DIRECTORY $WORKDIR T
* usage
skip elif((BINFRAC< 1.0))
then usage $script< directory A >< directoryB > nIn each directory
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:40
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 fatal Wrong number of arguments fi JConvertDetectorFormat a o
then cp
possible values
do set_variable DETECTOR_TXT $WORKDIR detector
then echo
Definition: JQAQC.sh:90
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