Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JGraph2D.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5version=1.0
6script=${0##*/}
7
8# ------------------------------------------------------------------------------------------
9#
10# Utility script to test JGraph2D, JFit2D and JPlot2D.
11#
12# ------------------------------------------------------------------------------------------
13
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20
21source $JPP_DIR/setenv.sh $JPP_DIR
22
23zmodload zsh/mathfunc
24
25set_variable DEBUG 2
26set_variable WORKDIR ${TMPDIR:-/tmp}/
27
28if do_usage $*; then
29 usage "$script [working directory]"
30fi
31
32case $# in
33 1) set_variable WORKDIR $1;;
34esac
35
36
37set_variable GRAPH_TXT graph.txt
38set_variable GRAPH_ROOT graph.root
39
40
41let "TOP = 100.0"
42let "X0 = 0.0"
43let "Y0 = 0.0"
44let "SIGMA = 1.0"
45
46function f2()
47{
48 let "X = $1"
49 let "Y = $2"
50
51 echo $(( $TOP * exp(-0.5*(($X - $X0)/$SIGMA)**2) * exp(-0.5*(($Y - $Y0)/$SIGMA)**2) ))
52}
53
54rm -f $WORKDIR/$GRAPH_TXT >& /dev/null
55
56for (( X = -3.0; $X <= +3.5; X += 1.0 )); do
57 for (( Y = -3.0; $Y <= +3.5; Y += 1.0 )); do
58
59 let "U = `f2 $X $Y`"
60 let "V = `$JPP_DIR/examples/JMath/getPoisson -e $U`"
61
62 printf "%7.3f %7.3f %7.3f\n" $X $Y $V >> $WORKDIR/$GRAPH_TXT
63 done
64done
65
66echo "Data points:"
67cat $WORKDIR/$GRAPH_TXT
68
69JGraph2D \
70 -f $WORKDIR/$GRAPH_TXT \
71 -o $WORKDIR/$GRAPH_ROOT
72
73set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
74
75JFit2D \
76 -f $WORKDIR/${GRAPH_ROOT}:${GRAPH_TXT} \
77 -o $WORKDIR/fit.root \
78 -F "$FORMULA" \
79 -@ "p0 = $TOP;" \
80 -@ "p1 = 0.0;" \
81 -@ "p2 = $SIGMA;" \
82 -@ "p3 = 0.0;" \
83 -@ "p4 = $SIGMA;" \
84 -O LL
85
86JPlot2D \
87 -f $WORKDIR/fit.root:${GRAPH_TXT} \
88 -O COLZ \