Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
module-Z: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 MINIMAL_DZ 0.01
16 set_variable: FORMAT GRAPHICS_FORMAT gif
17 set_variable+ BATCH GRAPHICS_BATCH -B
18 
19 if do_usage $*; then
20  usage "$script <string identifier> <floor[-floor]> [<detector file>]"
21 fi
22 
23 if (( $# < 2 || $# > 3 )); then
24  fatal "Wrong number of arguments."
25 fi
26 
28 set_variable FLOORS $argv[2]
29 
30 for (( FLOOR = ${FLOORS%%-*}; $FLOOR <= ${FLOORS##*-}; FLOOR += 1 )); do
31 
32  typeset -Z 0 STRING
33  typeset -Z 0 FLOOR
34 
35  set_variable MODULE_TXT $WORKDIR/modulez_${STRING}_${FLOOR}.txt
36  set_variable MODULE_ROOT $WORKDIR/modulez_${STRING}_${FLOOR}.root
37  set_variable G1_TXT $WORKDIR/g1.txt
38  set_variable G1_ROOT $WORKDIR/g1.root
39 
40  if [[ ! -f $MODULE_TXT ]] then
41  fatal "No file $MODULE_TXT."
42  fi
43 
44  JGraph \
45  -f $MODULE_TXT \
46  -o $MODULE_ROOT
47 
48  sort -g -k 2,2 $MODULE_TXT | tail -1 | read X ZMAX RMS
49  sort -gr -k 2,2 $MODULE_TXT | tail -1 | read X ZMIN RMS
50 
51  echo $X $ZMIN > $G1_TXT;
52 
53  JGraph \
54  -f $G1_TXT \
55  -o $G1_ROOT
56 
57  awk '
58  BEGIN {
59  XMIN = +1e3
60  XMAX = -1e3
61  }
62  END { print XMIN, XMAX }
63  {
64  if ( $1 < XMIN ) { XMIN = $1 }
65  if ( $1 > XMAX ) { XMAX = $1 }
66  }
67  ' $MODULE_TXT | read XMIN XMAX
68 
69  if (( $X > $XMIN && $X < $XMAX )); then
70 
71  let DZ="0.5*($ZMAX - $ZMIN)"
72 
73  if (( $ZMAX - $ZMIN < $MINIMAL_DZ )); then
74  set_variable OPTION "-= p1 = 0.0; p2 = 0.0; p3 = 1.0"
75  else
77  fi
78 
79  JFit \
80  -f ${MODULE_ROOT}:\.\* \
81  -o $WORKDIR/fit.root \
82  -F "$FORMULA" \
83  -@ "p0 = $ZMIN" \
84  -@ "p1 = $DZ" \
85  -@ "p2 = $X" \
86  -@ "p3 = 0.15" \
87  "$OPTION" \
88  -d $DEBUG
89 
90  set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
91 
92  set_variable X $P2[1]
93 
94  printf "nominal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR 0.0 `JPrintFit -f $WORKDIR/fit.root:\.\* -x "0.0"`
95  printf "optimal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR $X `JPrintFit -f $WORKDIR/fit.root:\.\* -x "$X"`
96 
97  mv $WORKDIR/fit.root $MODULE_ROOT
98 
99  else
100 
101  echo "Optimum value at limit; -> no fit."
102  printf "nominal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR 0.0 `awk -v X=0.0 '{ if ($1 == X) { print $2 }}' $MODULE_TXT`
103  printf "optimal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR $X $ZMIN
104 
105  fi
106 
107  if (( $# == 3 )); then
108 
110 
111  if (( $ZMAX - $ZMIN >= $MINIMAL_DZ )); then
112 
113  set_variable MODULE `getModule -a $DETECTOR -L "$STRING $FLOOR"`
114 
115  JEditDetector -a $DETECTOR -M "$MODULE add 0.0 0.0 $X" -o $DETECTOR
116 
117  else
118  echo "No update of detector $DETECTOR; z-range ($ZMAX-$ZMIN) < $MINIMAL_DZ."
119  fi
120  fi
121 
122  typeset -Z 4 STRING
123  typeset -Z 2 FLOOR
124 
125  JPlot1D \
126  -f ${MODULE_ROOT}:\.\* \
127  -f ${G1_ROOT}:\.\* \
128  -\> "#Deltaz [m]" \
129  -\^ "#chi^{2}/NDF" \
130  -N "X 505" \
131  -T "($STRING,$FLOOR)" \
132  -o $WORKDIR/modulez_${STRING}_${FLOOR}.$FORMAT $BATCH
133 
134  rm -f $MODULE_ROOT $G1_TXT $G1_ROOT
135 
136 done
137 
138 if [[ "$FLOORS" == "1-18" ]]; then
139 
140  echo -n "Creating graphics for string $STRING.."
141 
142  montage \
143  -tile 6x3 \
144  -geometry +0+0 \
145  $WORKDIR/modulez_${STRING}_*.$FORMAT \ $WORKDIR/modulez_${STRING}.$FORMAT >& /dev/null
146 
147  echo " -> $WORKDIR/modulez_${STRING}.$FORMAT"
148 
149  rm -f $WORKDIR/modulez_${STRING}_*.$FORMAT
150 
151 fi
152 
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 usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
do $JPP JMEstimator M
Definition: JMEstimator.sh:37
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 echo
do echo $TRIPODS[${key}] read X Y Z let DZ
Definition: JFootprint.sh:66
const int n
Definition: JPolint.hh:660
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
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 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
do typeset Z STRING typeset Z FLOOR set_variable MODULE_TXT $WORKDIR modulez_
Definition: module-Z:fit.sh:35
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
set_variable DETECTOR
data_type v[N+1][M+1]
Definition: JPolint.hh:740
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
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
Double_t g1(const Double_t x)
Function.
Definition: JQuantiles.cc:25