Jpp - 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 
12 set_variable WORKDIR ${ACOUSTICS_WORKDIR:-./}
13 set_variable BACKGROUND ${ACOUSTICS_BACKGROUND:+-B}
14 set_variable FORMULA "[0] + [1] * log(1.0 + 0.5*(x-[2])*(x-[2])/([3]*[3]))"
15 
16 if ( do_usage $* ); then
17  usage "$script [<tripod file>]"
18 fi
19 
20 if (( $# > 1 )); then
21  fatal "Wrong number of arguments."
22 fi
23 
24 source JAcoustics.sh --
25 
26 CHECK_EXIT_CODE
27 
28 set_variable TRIPOD3Z_TXT $WORKDIR/tripod3z.txt
29 
30 if [[ ! -f $TRIPOD3Z_TXT ]] then
31  fatal "No detector data file $TRIPOD3Z_TXT."
32 fi
33 
34 sort -gr -k 4,4 $TRIPOD3Z_TXT | tail -1 | read X Y Z CHI2 RMS
35 
36 printf "optimum %7.3f %7.3f %7.3f %7.3f %7.3f\n" $X $Y $Z $CHI2 $RMS
37 
38 awk '$1 ~ /^#/ { for (i = 2; i <= NF; ++i ) { printf " %s", $i }}' $TRIPOD3Z_TXT | read A B C
39 
40 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
41 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
42 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
43 
44 for TRIPOD in $A $B $C; do
45 
46  set_variable TRIPOD_TXT $WORKDIR/tripod3z_${TRIPOD}.txt
47  set_variable TRIPOD_ROOT $WORKDIR/tripod3z_${TRIPOD}.root
48 
49  JGraph \
50  -f $TRIPOD_TXT \
51  -o $TRIPOD_ROOT
52 
53  sort -gr -k 2,2 $WORKDIR/tripod3z_${TRIPOD}.txt | tail -1 | read X Y EY
54 
55  JFit \
56  -f ${TRIPOD_ROOT}:\.\* \
57  -o $WORKDIR/fit.root \
58  -F "$FORMULA" \
59  -@ "p0 = $Y" \
60  -@ "p1 = 1.0" \
61  -@ "p2 = $X" \
62  -@ "p3 = 4.0" \
63  -d $DEBUG
64 
65  set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
66 
67  printf "nominal %2d %7.3f %7.3f\n" $TRIPOD 0.0 `JPrintFit -f $WORKDIR/fit.root:\.\* -x " 0.0 "`
68  printf "optimal %2d %7.3f %7.3f\n" $TRIPOD $P2[1] `JPrintFit -f $WORKDIR/fit.root:\.\* -x "$P2[1]"`
69 
70  if (( $# == 1 )); then
71  JEditTripod -f $argv[1] -T "$TRIPOD add 0.0 0.0 $P2[1]"
72  fi
73 
74 
75  mv $WORKDIR/fit.root $TRIPOD_ROOT
76 
77  sort -gr -k 1,1 $WORKDIR/tripod3z_${TRIPOD}.txt | tail -1 | read XMIN Y EY
78  sort -g -k 1,1 $WORKDIR/tripod3z_${TRIPOD}.txt | tail -1 | read XMAX Y EY
79 
80  let XMIN="$XMIN - 0.05"
81  let XMAX="$XMAX + 0.05"
82 
83  JPlot1D \
84  -f $TRIPOD_ROOT:\.\* \
85  -x "$XMIN $XMAX" \
86  -\> "#Deltaz [m]" \
87  -\^ "#chi^{2}/NDF" \
88  -T "[$TRIPOD]" \
89  -o $WORKDIR/tripod3z_${TRIPOD}.gif $BACKGROUND
90 
91  rm -f $WORKDIR/tripod3z_${TRIPOD}.txt
92  rm -f $WORKDIR/tripod3z_${TRIPOD}.root
93 
94 done
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a stream.
Definition: io_ascii.hh:141
then fatal No sound hydrophone file $HYDROPHONE_TXT fi JGraph f $HYDROPHONE_TXT o $HYDROPHONE_ROOT sort gr k
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:79
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.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTOR_TXT $WORKDIR $DETECTOR_TXT tail read X Y Z RMS let XMIN
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable ACOUSTICS_DEBUG
Definition: JAcoustics.sh:17
p2
Definition: module-Z:fit.sh:48
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:45
then display $WORKDIR
Definition: plot-Domino.sh:127
data_type v[N+1][M+1]
Definition: JPolint.hh:740
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:38
script
Definition: JAcoustics.sh:2
then fatal Invalid tripod $TRIPOD
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62