Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
hydrophone-XY: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 set_variable: QUALITY_FACTOR ACOUSTICS_QUALITYFACTOR 2.0e3
16 
17 if do_usage $*; then
18  usage "$script <string identifier> <detector file> (input file)+"
19 fi
20 
21 if (( ${#} < 3 )); then
22  fatal "Wrong number of arguments."
23 fi
24 
27 set_array INPUT_FILES $argv[3,-1]
28 
29 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
30 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
31 
32 source JAcoustics.sh $DETECTOR_ID
33 
34 CHECK_EXIT_CODE
35 
36 typeset -A TRIPODS
37 
38 get_tripods $WORKDIR/tripod.txt TRIPODS
39 
40 if (( ${#TRIPODS} < 2 )); then
41  fatal "Not enough tripods " ${#TRIPODS}
42 fi
43 
44 if [[ -z "${STRINGS[(r)$STRING]}" ]]; then
45  fatal "Invalid string $STRING; "\
46  "possible values: ${STRINGS[*]}"
47 fi
48 
49 set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
50 set_variable HYDROPHONE_TXT $WORKDIR/hydrophonexy_${STRING}.txt
51 set_array QUANTILES 0.333 0.666
52 set_variable TMPDIR $WORKDIR/.$$
53 mkdir -p $TMPDIR
54 
55 JKatoomba.sh $DETECTOR $INPUT_FILES[*] $TMPDIR/katoomba.root
56 
57 cp hydrophone.txt $TMPDIR/.
58 
59 for (( X = -2.0; $X <= +2.0; X += 0.1 )); do
60  for (( Y = -2.0; $Y <= +2.0; Y += 0.1 )); do
61 
62  JEditHydrophone -f $TMPDIR/hydrophone.txt -S "$STRING set $X $Y 0.0"
63 
64  $JPP_DIR/examples/JAcoustics/JHydrophone \
65  -a $DETECTOR \
66  -f $TMPDIR/katoomba.root \
67  -o $TMPDIR/hydrophone.root \
68  -H $TMPDIR/hydrophone.txt \
69  -T $WORKDIR/tripod.txt \
70  -V $WORKDIR/sound_velocity.txt \
71  -W $WORKDIR/waveform.txt \
72  -Q $QUALITY_FACTOR \
73  -d $DEBUG --!
74 
75  XMEAN=(0.0 0.0)
76  STDEV=(0.0 0.0)
77  TOTAL=0.0
78 
79  for TRIPOD in ${(@k)TRIPODS}; do
80 
81  JPrintQuantiles \
82  -f "$TMPDIR/hydrophone.root:${MODULE}\.${TRIPOD}" \
83  -Q "$QUANTILES[*]" \
84  -d 0 | read -A RESULT
85 
86  if (( ${#RESULT} == ${#QUANTILES} )); then
87 
88  VALUE=$((0.5e3 * ($RESULT[-1] + $RESULT[1]))) # average [ms]
89  TOTAL=$(($TOTAL + 1.0))
90 
91  if (( $TOTAL == 1.0 )); then
92  XMEAN[1]=$VALUE
93  STDEV[1]=0.0
94  else
95  XMEAN[2]=$(($XMEAN[1] + ($VALUE - $XMEAN[1]) / $TOTAL))
96  STDEV[2]=$(($STDEV[1] + ($VALUE - $XMEAN[1]) * ($VALUE - $XMEAN[2])))
97  XMEAN[1]=$XMEAN[2]
98  STDEV[1]=$STDEV[2]
99  fi
100  fi
101  done
102 
103  printf "%7.3f %7.3f %9.5f\n" $X $Y $((sqrt($TOTAL * $STDEV[1] / ($TOTAL * ($TOTAL - 1.0))))) >> $HYDROPHONE_TXT
104  done
105 done
106 
107 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 nIn only modules within the given range of floors are used fi case set_variable RANGE $argv[3]
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DEBUG set_variable WORKDIR if do_usage *then usage for INPUT_FILE in $INPUT_FILES[*]
Q(UTCMax_s-UTCMin_s)-livetime_s
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
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
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
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
&set_variable TRIPOD
then break fi done getCenter read X Y Z let X
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 ${TMPDIR:-/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
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR if do_usage *then usage $script[(input file)+] fi set_variable DEBUG set_variable WORKDIR TMPDIR
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
* usage
then JConvertDetectorFormat a $DETECTOR[1] o
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:73
then XMEAN[1]
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
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 cp
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable HYDROPHONE_TXT $WORKDIR hydrophonexy_
then printf string mean RMS us n $STRING $XMEAN((sqrt($TOTAL *$STDEV[1]/($TOTAL *($TOTAL-1.0))))) fi typeset-Z 4 STRING JOpera1D-f hydrophone.root
set_variable DETECTOR
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:42
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
script
Definition: JAcoustics.sh:2
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
then QUANTILES