Jpp test-rotations-old-533-g2bdbdb559
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 -E "0.0 1.0" \
49 -T "$FITRANGE" \
50 -R $OPTION \
51 -d $DEBUG --!
52
53eval `JPrintDetector -a $DETECTOR -O SUMMARY`
54
55if (( ${#STRINGS} <= 15 )); then
56 let "X = 600"
57 let "Y = 600"
58else
59 let "X = 600 + 6 * (${#STRINGS} - 15)"
60 let "Y = 600"
61fi
62
63JPlot1D \
64 -w ${X}x${Y} \
65 -f $WORKDIR/hobbit_${OPTION}.root:hc \
66 -> "index" \
67 -\^ "\chi^{2}/NDF" \
68 -T "" \
69 -o chi2.$FORMAT $BATCH
70
71JPlot2D \
72 -w ${X}x${Y} \
73 -f $WORKDIR/hobbit_${OPTION}.root:detector \
74 -> "string" \
75 -< "floor" \
76 -\^ "#Deltat [ns]" \
77 -T "" \
78 -O COLZ \
79 -p $PALETTE \
80 -o detector.$FORMAT $BATCH
81
82if [[ "$OPTION" == module ]]; then
83
84 typeset -Z 4 STRING
85 typeset -Z 2 FLOOR
86
87 set_variable FIRST_FLOOR 1
88
89 for STRING in $STRINGS[*]; do
90
91 echo -n "Creating graphics for string $STRING.."
92
93 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
94
95 eval MODULE=\${STRING_${(l:4::0::0:)STRING}\[$(($FLOOR))\]:--1}
96
97 JPlot1D \
98 -f $WORKDIR/hobbit_${OPTION}.root:${MODULE}.1D \
99 -> "#Deltat [s]" \
100 -\^ "number of events [a.u.]" \
101 -T "${STRING}.${FLOOR}" \
102 -o ${TMPDIR:-/tmp}/h1_${STRING}_${FLOOR}.$FORMAT $BATCH
103 done
104
105 montage \
106 -tile 6x3 \
107 -geometry +0+0 \
108 ${TMPDIR:-/tmp}/h1_${STRING}_{01..18}.$FORMAT \
109 $WORKDIR/${STRING}.$FORMAT >& /dev/null
110
111 echo " -> $WORKDIR/${STRING}.$FORMAT"
112
113 rm -f ${TMPDIR:-/tmp}/h1_${STRING}_*.$FORMAT
114 done
115fi
116
117if [[ "$OPTION" == string ]]; then
118
119 for STRING in $STRINGS[*]; do
120
121 echo -n "Creating graphics for string $STRING.."
122
123 JPlot1D \
124 -f $WORKDIR/hobbit_${OPTION}.root:\^${STRING}.1D \
125 -> "#Deltat [s]" \
126 -\^ "number of events [a.u.]" \
127 -T "${STRING}" \
128 -o $WORKDIR/${STRING}.$FORMAT $BATCH
129
130 echo " -> $WORKDIR/${STRING}.$FORMAT"
131 done
132
133 typeset -i NX
134 typeset -i NY
135
136 let "NY = sqrt(${#STRINGS}) * 0.75 + 0.25"
137 let "NX = (${#STRINGS} + $NY - 1)/ $NY"
138
139 montage \
140 -tile ${NX}x${NY} \
141 -geometry +0+0 \
142 $WORKDIR/${^STRINGS}.$FORMAT \
143 $WORKDIR/strings.$FORMAT >& /dev/null
144fi