Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
software/JCalibrate/JHobbit.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Script to run JHobbit and plot results.
10#
11# ------------------------------------------------------------------------------------------
12
13if [ -z $JPP_DIR ]; then
14 echo "Variable JPP_DIR undefined."
15 exit
16fi
17
18source $JPP_DIR/setenv.sh $JPP_DIR
19
20zmodload zsh/mathfunc
21
22set_variable DEBUG 2
23set_variable WORKDIR ./
24set_variable: OPTION CALIBRATION_OPTION module # string
25set_variable: FITRANGE CALIBRATION_FITRANGE -7.5 +5.0
26set_variable: FUNCTION CALIBRATION_FUNCTION Gauss
27set_variable: PALETTE GRAPHICS_PALETTE 57
28set_variable: FORMAT GRAPHICS_FORMAT gif
29set_variable+ BATCH GRAPHICS_BATCH -B
30
31if do_usage $*; then
32 usage "$script <detector file> (input file)+"
33fi
34
35if (( $# < 2 )); then
36 fatal "Wrong number of arguments."
37fi
38
39set_variable DETECTOR $argv[1]
40set_variable INPUT_FILES $argv[2,-1]
41
42JHobbit \
43 -a $DETECTOR \
44 -f${^INPUT_FILES} \
45 -o $WORKDIR/hobbit_${OPTION}.root \
46 -F $FUNCTION \
47 -O L \
48 -T "$FITRANGE" \
49 -R $OPTION \
50 -d $DEBUG
51
52eval `JPrintDetector -a $DETECTOR -O SUMMARY`
53
54if (( ${#STRINGS} <= 15 )); then
55 let "X = 600"
56 let "Y = 600"
57else
58 let "X = 600 + 6 * (${#STRINGS} - 15)"
59 let "Y = 600"
60fi
61
62JPlot1D \
63 -w ${X}x${Y} \
64 -f $WORKDIR/hobbit_${OPTION}.root:hc \
65 -> "index" \
66 -\^ "\chi^{2}/NDF" \
67 -T "" \
68 -o chi2.$FORMAT $BATCH
69
70JPlot2D \
71 -w ${X}x${Y} \
72 -f $WORKDIR/hobbit_${OPTION}.root:detector \
73 -> "string" \
74 -< "floor" \
75 -\^ "#Deltat [ns]" \
76 -T "" \
77 -O COLZ \
78 -p $PALETTE \
79 -o detector.$FORMAT $BATCH
80
81if [[ "$OPTION" == module ]]; then
82
83 typeset -Z 4 STRING
84 typeset -Z 2 FLOOR
85
86 set_variable FIRST_FLOOR 1
87
88 for STRING in $STRINGS[*]; do
89
90 echo -n "Creating graphics for string $STRING.."
91
92 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
93
94 eval MODULE=\${STRING_${(l:4::0::0:)STRING}\[$(($FLOOR))\]:--1}
95
96 JPlot1D \
97 -f $WORKDIR/hobbit_${OPTION}.root:${MODULE}.1D \
98 -> "#Deltat [s]" \
99 -\^ "number of events [a.u.]" \
100 -T "(${STRING},${FLOOR})" \
101 -o ${TMPDIR:-/tmp}/h1_${STRING}_${FLOOR}.$FORMAT $BATCH
102 done
103
104 montage \
105 -tile 6x3 \
106 -geometry +0+0 \
107 ${TMPDIR:-/tmp}/h1_${STRING}_{01..18}.$FORMAT \
108 $WORKDIR/${STRING}.$FORMAT >& /dev/null
109
110 echo " -> $WORKDIR/${STRING}.$FORMAT"
111
112 rm -f ${TMPDIR:-/tmp}/h1_${STRING}_*.$FORMAT
113 done
114fi
115
116if [[ "$OPTION" == string ]]; then
117
118 for STRING in $STRINGS[*]; do
119
120 echo -n "Creating graphics for string $STRING.."
121
122 JPlot1D \
123 -f $WORKDIR/hobbit_${OPTION}.root:\^${STRING}.1D \
124 -> "#Deltat [s]" \
125 -\^ "number of events [a.u.]" \
126 -T "${STRING}" \
127 -o $WORKDIR/${STRING}.$FORMAT $BATCH
128
129 echo " -> $WORKDIR/${STRING}.$FORMAT"
130 done
131
132 typeset -i NX
133 typeset -i NY
134
135 let "NY = sqrt(${#STRINGS}) * 0.75 + 0.25"
136 let "NX = (${#STRINGS} + $NY - 1)/ $NY"
137
138 montage \
139 -tile ${NX}x${NY} \
140 -geometry +0+0 \
141 $WORKDIR/${^STRINGS}.$FORMAT \
142 $WORKDIR/strings.$FORMAT >& /dev/null
143fi