Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
tripod-3Z: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] * log(1.0 + 0.5*(x-[2])*(x-[2])/([3]*[3]))"
14 set_variable FORMULA "[0] + [1] * ((x-[2])*(x-[2])/([3]*[3]))"
15 set_variable: FORMAT GRAPHICS_FORMAT gif
16 set_variable+ BATCH GRAPHICS_BATCH -B
17 
18 if do_usage $*; then
19  usage "$script [<tripod file>]"
20 fi
21 
22 if (( $# > 1 )); then
23  fatal "Wrong number of arguments."
24 fi
25 
26 source JAcoustics.sh --
27 
28 CHECK_EXIT_CODE
29 
30 set_variable TRIPOD3Z_TXT $WORKDIR/tripod3z.txt
31 
32 if [[ ! -f $TRIPOD3Z_TXT ]] then
33  fatal "No detector data file $TRIPOD3Z_TXT."
34 fi
35 
36 grep -v '^#' $TRIPOD3Z_TXT | sort -gr -k 4,4 | tail -1 | read X Y Z CHI2 RMS
37 
38 printf "optimum %7.3f %7.3f %7.3f %7.3f %7.3f\n" $X $Y $Z $CHI2 $RMS
39 
40 awk '$1 ~ /^#/ { for (i = 2; i <= NF; ++i ) { printf " %s", $i }}' $TRIPOD3Z_TXT | read A B C
41 
42 awk -v Y=$Y -v Z=$Z '$1 !~ /^#/ { if ( $2 == Y && $3 == Z ) { printf "%7.3f %7.3f %7.3f\n", $1, $4, $5 } }' $TRIPOD3Z_TXT >! $WORKDIR/tripod3z_${A}.txt
43 awk -v X=$X -v Z=$Z '$1 !~ /^#/ { if ( $1 == X && $3 == Z ) { printf "%7.3f %7.3f %7.3f\n", $2, $4, $5 } }' $TRIPOD3Z_TXT >! $WORKDIR/tripod3z_${B}.txt
44 awk -v X=$X -v Y=$Y '$1 !~ /^#/ { if ( $1 == X && $2 == Y ) { printf "%7.3f %7.3f %7.3f\n", $3, $4, $5 } }' $TRIPOD3Z_TXT >! $WORKDIR/tripod3z_${C}.txt
45 
46 for TRIPOD in $A $B $C; do
47 
49  set_variable TRIPOD_ROOT $WORKDIR/tripod3z_${TRIPOD}.root
50  set_variable G1_TXT $WORKDIR/g1.txt
51  set_variable G1_ROOT $WORKDIR/g1.root
52 
53  JGraph \
54  -f $TRIPOD_TXT \
55  -o $TRIPOD_ROOT
56 
57  sort -gr -k 2,2 $WORKDIR/tripod3z_${TRIPOD}.txt | tail -1 | read X Y RMS
58 
59  echo $X $Y > $G1_TXT
60 
61  JGraph \
62  -f $G1_TXT \
63  -o $G1_ROOT
64 
65  awk '
66  BEGIN {
67  XMIN = +1e3
68  XMAX = -1e3
69  }
70  END { print XMIN, XMAX }
71  {
72  if ( $1 < XMIN ) { XMIN = $1 }
73  if ( $1 > XMAX ) { XMAX = $1 }
74  }
75  ' $TRIPOD_TXT | read XMIN XMAX
76 
77  if (( $X > $XMIN && $X < $XMAX )); then
78 
79  JFit \
80  -f ${TRIPOD_ROOT}:\.\* \
81  -o $WORKDIR/fit.root \
82  -F "$FORMULA" \
83  -@ "p0 = $Y" \
84  -@ "p1 = 1.0" \
85  -@ "p2 = $X" \
86  -@ "p3 = 4.0" \
87  -d $DEBUG
88 
89  set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
90 
91  set_variable X $P2[1]
92 
93  printf "nominal %2d %7.3f %7.3f\n" $TRIPOD 0.0 `JPrintFit -f $WORKDIR/fit.root:\.\* -x "0.0"`
94  printf "optimal %2d %7.3f %7.3f\n" $TRIPOD $X `JPrintFit -f $WORKDIR/fit.root:\.\* -x "$X"`
95 
96  mv $WORKDIR/fit.root $TRIPOD_ROOT
97 
98  else
99 
100  echo "Optimum value at limit; -> no fit."
101  printf "nominal %2d %7.3f %7.3f\n" $TRIPOD 0.0 `awk -v X=0.0 '{ if ($1 == X) { print $2 }}' $TRIPOD_TXT`
102  printf "optimal %2d %7.3f %7.3f\n" $TRIPOD $X $Y
103 
104  fi
105 
106  if (( $# == 1 )); then
107  JEditTripod -f $argv[1] -T "$TRIPOD add 0.0 0.0 $X"
108  fi
109 
110  JPlot1D \
111  -f ${TRIPOD_ROOT}:\.\* \
112  -f ${G1_ROOT}:\.\* \
113  -\> "#Deltaz [m]" \
114  -\^ "#chi^{2}/NDF" \
115  -T "[$TRIPOD]" \
116  -o $WORKDIR/tripod3z_${TRIPOD}.$FORMAT $BATCH
117 
118  rm -f $TRIPOD_TXT $TRIPOD_ROOT $G1_TXT $G1_ROOT
119 
120 done
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.
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
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
then echo
do set_variable TRIPOD_TXT $WORKDIR tripod3z_
static const double C
Physics constants.
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
&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 &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
then awk F
* usage
then JConvertDetectorFormat a $DETECTOR[1] o
&set_variable FORMULA
p2
Definition: module-Z:fit.sh:74
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
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 let XMIN
data_type v[N+1][M+1]
Definition: JPolint.hh:740
do unset TRIPODS[${ID}] done fi set_variable TMPDIR $WORKDIR mkdir p $TMPDIR set_variable OUTPUT_FILE $TMPDIR katoomba root typeset a CHI2 CHI2
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
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
then fatal Invalid tripod $TRIPOD
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