Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JCalibrateK40-PMT.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3#
4# \author mdejong
5#
6version=1.0
7script=${0##*/}
8
9# ------------------------------------------------------------------------------------------
10#
11# Utility script to test JCalibrateK40/JFitK40.
12#
13# ------------------------------------------------------------------------------------------
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20source $JPP_DIR/setenv.sh $JPP_DIR
21
22set_variable DIR $JPP_DIR/examples/JCalibrate
23set_variable DEBUG 1
24set_variable WORKDIR ${TMPDIR:-/tmp}/
25set_variable: FORMAT GRAPHICS_FORMAT gif
26set_variable+ BATCH GRAPHICS_BATCH -B
27
28if do_usage $*; then
29 usage "$script [working directory]"
30fi
31
32case $# in
33 1) set_variable WORKDIR $1;;
34esac
35
36set_variable DETECTOR $WORKDIR/detector.detx
37set_variable BACKGROUND_HZ 5e3 500
38set_variable numberOfSlices 6000
39set_variable DAQ_TIMESLICE JDAQTimesliceL1
40
41set_variable detectorType 1
42set_variable numberOfLines 1
43set_variable numberOfFloors 1
44
45JDetector \
46 -D 1 \
47 -@ "detectorType = $detectorType" \
48 -@ "numberOfLines = $numberOfLines" \
49 -@ "numberOfFloors = $numberOfFloors" \
50 -o $DETECTOR \
51 -d $DEBUG
52
53set_variable MODULE `getModule -a $DETECTOR -L "1 1"`
54
55if ( ! reuse_file $WORKDIR/timeslice.root ); then
56
57 JRandomTimesliceWriter \
58 -a $DETECTOR \
59 -o $WORKDIR/timeslice.root \
60 -B "$BACKGROUND_HZ" \
61 -n $numberOfSlices \
62 -d $DEBUG --!
63fi
64
65if ( ! reuse_file $WORKDIR/trigger_processor.root ); then
66
67 JTriggerProcessor \
68 -a $DETECTOR \
69 -f $WORKDIR/timeslice.root \
70 -o $WORKDIR/trigger_processor.root \
71 -C JDAQTimesliceL0 \
72 -@"ctMin=-1.0" \
73 -@"TMaxLocal_ns=25" \
74 -@"writeL1=1" \
75 -d $DEBUG
76fi
77
78if (( 1 )); then
79
80 JCalibrateK40 \
81 -f $WORKDIR/trigger_processor.root \
82 -C $DAQ_TIMESLICE \
83 -a $DETECTOR \
84 -o $WORKDIR/monitor.root \
85 -d $DEBUG
86
87 JMergeCalibrateK40 \
88 -f $WORKDIR/monitor.root \
89 -o $WORKDIR/merge.root \
90 -d $DEBUG
91
92 JFitK40 \
93 -a $DETECTOR \
94 -f $WORKDIR/merge.root \
95 -o $WORKDIR/fit.root \
96 -w \
97 -d $DEBUG
98
99 for (( PMT = 0; PMT < 31; PMT += 1 )); do
100
101 rm -f $WORKDIR/trigger_processor-\[${PMT}\].root
102
103 $DIR/JRemovePMT \
104 -f $WORKDIR/trigger_processor.root \
105 -o $WORKDIR/trigger_processor-\[${PMT}\].root \
106 -P "-1 $PMT" \
107 -d $DEBUG
108
109 JCalibrateK40 \
110 -f $WORKDIR/trigger_processor-\[${PMT}\].root \
111 -C $DAQ_TIMESLICE \
112 -a $DETECTOR \
113 -o $WORKDIR/monitor-\[${PMT}\].root \
114 -d $DEBUG
115
116 JMergeCalibrateK40 \
117 -f $WORKDIR/monitor-\[${PMT}\].root \
118 -o $WORKDIR/merge-\[${PMT}\].root \
119 -d $DEBUG
120
121 JFitK40 \
122 -a $DETECTOR \
123 -f $WORKDIR/merge-\[${PMT}\].root \
124 -o $WORKDIR/fit-\[${PMT}\].root \
125 -w \
126 -d $DEBUG
127 done
128fi
129
130INPUT_FILES=(`ls -U $WORKDIR/fit.root $WORKDIR/fit-\[*\].root`)
131
132JVariance1D \
133 -f "${INPUT_FILES//\.root/.root:${MODULE}.1QE}" \
134 -x "101 -0.1 +0.1" \
135 -F first \
136 -o $WORKDIR/variance.root
137
138JScale1D \
139 -f $WORKDIR/variance.root:h0 \
140 -o $WORKDIR/scale.root \
141 -F "1.0/GetEntries" \
142 -O "nosw2"
143
144JPlot1D \
145 -f $WORKDIR/scale.root:h0 \
146 -y "1.0e-3 1.0" -Y \
147 -> "#DeltaQE" \
148 -\^ "number of PMTs" \
149 -s 1010 \
150 -T "" -o QE-summary.$FORMAT $BATCH
151
152
153JPlot1D \
154 -w 1000x500 \
155 -f $WORKDIR/fit.root:${MODULE}.1QE \
156 -f $WORKDIR/fit-\[0\].root:${MODULE}.1QE \
157 -f $WORKDIR/fit-\[10\].root:${MODULE}.1QE \
158 -f $WORKDIR/fit-\[20\].root:${MODULE}.1QE \
159 -f $WORKDIR/fit-\[30\].root:${MODULE}.1QE \
160 -y "0.7 1.5" \
161 -> "PMT" \
162 -\^ "QE" \
163 -L TR \
164 -T "" \
165 -o QE.$FORMAT $BATCH
166