Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
footprint.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 FIT ${ACOUSTICS_FIT:-2}
14 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
15 
16 if ( do_usage $* ); then
17  usage "$script <detector file> <Tx> <Ty> (input file)+"
18 fi
19 
20 if (( $# < 4 )); then
21  fatal "Wrong number of arguments."
22 fi
23 
25 set_variable TX $argv[2]
26 set_variable TY $argv[3]
27 set_array INPUT_FILES $argv[4,-1]
28 
29 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
30 
31 source JAcoustics.sh $DETECTOR_ID
32 
33 CHECK_EXIT_CODE
34 
35 set_variable TMPDIR $WORKDIR/.$$
36 mkdir -p $TMPDIR
37 
38 cp \
39  $WORKDIR/tripod.txt \ $TMPDIR/tripod.txt
40 
41 JConvertDetectorFormat \
42  -a $DETECTOR \
43  -o $TMPDIR/detector.detx --!
44 
45 JFootprint.sh \ $TMPDIR/detector.detx \ $TMPDIR/tripod.txt \ $TX \ $TY
46 
47 JKatoomba \
48  -a $TMPDIR/detector.detx \
49  -f "$INPUT_FILES[*]" \
50  -o $TMPDIR/katoomba.root \
51  -T $WORKDIR/tripod.txt \
52  -V $WORKDIR/sound_velocity.txt \
53  -@ $WORKDIR/acoustics_fit_parameters.txt \
54  -@ "stdev = 50" \
55  -@ "mestimator = 1" \
56  -F $FIT \
57  -u \
58  -d $DEBUG --!
59 
60 JParramatta \
61  -f $TMPDIR/katoomba.root \
62  -o $TMPDIR/parramatta.root
63 
64 set_array X `JPrintResult -f $TMPDIR/parramatta.root:% -F "GetMean(1)" -F "0.5*GetRMS(1)"`
65 set_array Y `JPrintResult -f $TMPDIR/parramatta.root:% -F "GetMean(2)" -F "0.5*GetRMS(2)"`
66 
67 let XMIN="$X[1] - 0.5"
68 let XMAX="$X[1] + 0.5"
69 let YMIN="$Y[1] - 0.5"
70 let YMAX="$Y[1] + 0.5"
71 
72 JFit2D \
73  -f $TMPDIR/parramatta.root:% \
74  -o $TMPDIR/fit.root \
75  -F "$FORMULA" \
76  -x "$XMIN $XMAX" \
77  -y "$YMIN $YMAX" \
78  -@ "p0 = GetMaximum" \
79  -@ "p1 = $X[1]" \
80  -@ "p2 = $X[2]" \
81  -@ "p3 = $Y[1]" \
82  -@ "p4 = $Y[2]" \
83  -d $DEBUG --!
84 
85 JPlot2D \
86  -f $TMPDIR/parramatta.root:% \
87  -O COLZ \
88  -\> "Tx [mrad]" \
89  -\< "Ty [mrad]" \
90  -N "X 505" \
91  -N "Y 505" \
92  -T "" \
93  -o footprint.gif
94 
95 set_array CHI2 `JPrintResult -f $TMPDIR/katoomba.root:chi2 -F "GetMean" -F "GetRMS / sqrt(GetEntries)"`
96 set_array TX `JPrintFit -f $TMPDIR/fit.root:% -@ p1`
97 set_array TY `JPrintFit -f $TMPDIR/fit.root:% -@ p3`
98 
99 TX[1]=$(($TX[1]*1.0e-3))
100 TY[1]=$(($TY[1]*1.0e-3))
101 
102 printf "Tx = %9.6f Ty = %9.6f chi2 = %7.3f %7.3f\n" $TX[1] $TY[1] ${CHI2[*]}
103 
104 rm -rf $TMPDIR
105 
TPaveText * p1
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
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
fatal Invalid number of arguments esac let YMIN
Definition: testToT.sh:39
then echo
do set_variable OUTPUT_DIRECTORY $WORKDIR T
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
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
*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 JCalibrateToT a
Definition: JTuneHV.sh:108
then display $WORKDIR
Definition: plot-Domino.sh:127
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
double u[N+1]
Definition: JPolint.hh:739
then usage $script[input file[working directory[option]]] nWhere option can be N
Definition: JMuonPostfit.sh:37
script
Definition: JAcoustics.sh:2
p3
Definition: module-Z:fit.sh:48
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62