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:fit.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 set_variable: DEBUG ACOUSTICS_DEBUG 2
12 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13 set_variable FORMULA "[0] + [1] * (sqrt(1.0 + 0.5*(x-[2])*(x-[2])/([4]*[4]) + 0.5*(y-[3])*(y-[3])/([5]*[5])) - 1.0)"
14 set_variable: FORMAT GRAPHICS_FORMAT gif
15 set_variable+ BATCH GRAPHICS_BATCH -B
16 
17 if do_usage $*; then
18  usage "$script <string identifier> [<hydrophone file>]"
19 fi
20 
21 if (( $# == 0 || $# > 2 )); then
22  fatal "Wrong number of arguments."
23 fi
24 
26 
28 set_variable HYDROPHONE_ROOT $WORKDIR/hydrophonexy_${STRING}.root
29 set_variable G1_TXT $WORKDIR/g1.txt
30 set_variable G1_ROOT $WORKDIR/g1.root
31 
32 if [[ ! -f $HYDROPHONE_TXT ]] then
33  fatal "No hydrophone data file $HYDROPHONE_TXT."
34 fi
35 
36 JGraph2D \
37  -f $HYDROPHONE_TXT \
38  -o $HYDROPHONE_ROOT
39 
40 sort -gr -k 3,3 $HYDROPHONE_TXT | tail -1 | read X Y Z RMS
41 
42 echo $X $Y > $G1_TXT
43 
44 JGraph \
45  -f $G1_TXT \
46  -o $G1_ROOT
47 
48 awk '
49  BEGIN {
50  XMIN = +1e3
51  XMAX = -1e3
52  YMIN = +1e3
53  YMAX = -1e3
54  }
55  END { print XMIN, XMAX, YMIN, YMAX }
56  $1 !~ /^#/ {
57  if ( $1 < XMIN ) { XMIN = $1 }
58  if ( $1 > XMAX ) { XMAX = $1 }
59  if ( $2 < YMIN ) { YMIN = $2 }
60  if ( $2 > YMAX ) { YMAX = $2 }
61  }
62  ' $HYDROPHONE_TXT | read XMIN XMAX YMIN YMAX
63 
64 if (( $X > $XMIN && $X < $XMAX && $Y > $YMIN && $Y < $YMAX )); then
65 
66  let XMIN="$X - 1.0"
67  let XMAX="$X + 1.0"
68  let YMIN="$Y - 1.0"
69  let YMAX="$Y + 1.0"
70 
71  JFit2D \
72  -f ${HYDROPHONE_ROOT}:\.\* \
73  -o $WORKDIR/fit.root \
74  -F "$FORMULA" \
75  -x "$XMIN $XMAX" \
76  -y "$YMIN $YMAX" \
77  -@ "p0 = $Z" \
78  -@ "p1 = 0.2" \
79  -@ "p2 = $X" \
80  -@ "p3 = $Y" \
81  -@ "p4 = 0.5" \
82  -@ "p5 = 0.5" \
83  -R "p2 = $XMIN $XMAX" \
84  -R "p3 = $YMIN $YMAX" \
85  -d $DEBUG
86 
87  set_array P2 `JPrintFit -f $WORKDIR/fit.root:user -@p2`
88  set_array P3 `JPrintFit -f $WORKDIR/fit.root:user -@p3`
89 
90  set_variable X $P2[1]
91  set_variable Y $P3[1]
92 
93  printf "nominal %4d %7.3f %7.3f %7.3f\n" $STRING 0.0 0.0 `JPrintFit -f $WORKDIR/fit.root:user -x "0.0 0.0"`
94  printf "optimal %4d %7.3f %7.3f %7.3f\n" $STRING $X $Y `JPrintFit -f $WORKDIR/fit.root:user -x "$X $Y"`
95 
96  mv $WORKDIR/fit.root $HYDROPHONE_ROOT
97 
98 else
99 
100  echo "Optimum value at limit; -> no fit."
101  printf "nominal %4d %7.3f %7.3f %7.3f\n" $STRING 0.0 0.0 `awk -v X=0.0 -v Y=0.0 '{ if ($1 == X && $2 == Y) { print $3 }}' $HYDROPHONE_TXT`
102  printf "optimal %4d %7.3f %7.3f %7.3f\n" $STRING $X $Y $Z
103 
104 fi
105 
106 if (( $# == 2 )); then
107 
109 
110  JEditHydrophone -f $HYDROPHONE -S "$STRING set $X $Y 0.0"
111 fi
112 
113 typeset -Z 4 STRING
114 
115 JPlot2D \
116  -f ${HYDROPHONE_ROOT}:\.\* \
117  -f ${G1_ROOT}:\.\* \
118  -\> "#Deltax [m]" \
119  -\< "#Deltay [m]" \
120  -\^ "RMS [ms]" \
121  -N "X 505" \
122  -N "Y 505" \
123  -O CONT3 \
124  -T "[$STRING]" \
125  -o $WORKDIR/hydrophonexy_${STRING}.$FORMAT $BATCH
126 
127 rm -f $HYDROPHONE_ROOT $G1_TXT $G1_ROOT
128 
129 
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
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
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
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
fatal Invalid number of arguments esac let YMIN
Definition: testToT.sh:39
then echo
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 STRING_TXT awk
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then break fi done getCenter read X Y Z let X
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
then awk F
* usage
then JConvertDetectorFormat a $DETECTOR[1] o
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
&set_variable FORMULA
p2
Definition: module-Z:fit.sh:74
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
static const JPBS_t HYDROPHONE(4, 5)
PBS of hydrophone
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
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
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable HYDROPHONE_TXT $WORKDIR hydrophonexy_
then let XMIN
data_type v[N+1][M+1]
Definition: JPolint.hh:740
script
Definition: JAcoustics.sh:2
p3
Definition: module-Z:fit.sh:74
do typeset Z STRING typeset Z FLOOR set_variable MODULE_TXT $WORKDIR $MODULE_TXT tail read X ZMAX RMS sort gr $MODULE_TXT tail read X ZMIN RMS echo $X $ZMIN $G1_TXT
Definition: module-Z:fit.sh:35
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
Double_t g1(const Double_t x)
Function.
Definition: JQuantiles.cc:25