Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JAcceptanceTest.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2
3version=1.0
4script=${0##*/}
5
6
7if [ -z $JPP_DIR ]; then
8 echo "Variable JPP_DIR undefined."
9 exit
10fi
11
12source $JPP_DIR/setenv.sh $JPP_DIR
13
14set_variable DEFAULT_VALUE \"NULL\"
15set_variable: FORMAT GRAPHICS_FORMAT gif
16set_variable+ BATCH GRAPHICS_BATCH -B
17
18if do_usage $*; then
19 usage "$script <daq file> <detector file> <output directory>"
20fi
21
22if (( $# != 3)); then
23 fatal "Wrong number of arguments."
24fi
25
26set_variable OUTPUT_DIR $argv[3]
27set_variable DETECTOR_FILE $argv[2]
28set_variable DAQ_FILE $argv[1]
29
30set_variable OUTPUT_JC_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JC_TOT.root
31set_variable OUTPUT_JMERGE_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JMerge_TOT.root
32set_variable OUTPUT_JFIT_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JFit_TOT.root
33set_variable PMT_PARAMETERS_FILE ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_TOT.txt
34set_variable OUTPUT_JDA ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JDA.root
35
36
37set_variable SELECTOR JDAQTimesliceL0
38
39JCalibrateToT \
40 -a ${DETECTOR_FILE} \
41 -C ${SELECTOR} \
42 -O filter \
43 -f ${DAQ_FILE} \
44 -o ${OUTPUT_JC_TOT} \
45 --!
46
47JMergeCalibrateToT \
48 -f ${OUTPUT_JC_TOT} \
49 -o ${OUTPUT_JMERGE_TOT} \
50 --!
51
52JFitToT \
53 -P ${PMT_PARAMETERS_FILE} \
54 -a ${DETECTOR_FILE} \
55 -f ${OUTPUT_JMERGE_TOT} \
56 -o ${OUTPUT_JFIT_TOT} \
57 -x "0.0 -1.0" \
58 -w \
59 --!
60
61JDomAnalyser \
62 -f ${DAQ_FILE} \
63 -o ${OUTPUT_JDA} \
64 -C ${SELECTOR} \
65 --!
66
67#---- loop over DOMs and for each print the gains (for copying into DIA interface)
68
69eval `JPrintDetector -a $DETECTOR_FILE -O SUMMARY`
70
71
72set_variable NUMBER_OF_PMTS 31
73
74
75for STRING in $STRINGS[*]; do
76 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
77
78 GAINS=()
79 RATES=()
80
81 eval MODULE=\${STRING_${(l:4::0::0:)STRING}\[$(($FLOOR))\]:--1}
82
83 for (( PMT = 0; $PMT < $NUMBER_OF_PMTS; PMT += 1 )); do
84
85 set_array PMTparameters $(JPrintPMTParameters -P ${PMT_PARAMETERS_FILE} -p "$MODULE.$PMT" -k "gain")
86 set_variable gain ${PMTparameters[2]}
87
88 set_variable rate $(JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ -F "GetMean")
89
90 if [[ -z $rate ]]; then
91 rate=$DEFAULT_VALUE
92 fi
93 if [[ -z $gain ]]; then
94 gain=$DEFAULT_VALUE
95 fi
96
97 GAINS+=($gain)
98 RATES+=($rate)
99
100 JPlot1D \
101 -f ${OUTPUT_JFIT_TOT}:${MODULE}\.${(l(2)(0))PMT}\.1ToT \
102 -> "ToT [ns]" \
103 -T "${MODULE}:${(l(2)(0))PMT}" \
104 -o ${OUTPUT_DIR}/gain_${(l(2)(0))PMT}.$FORMAT $BATCH
105
106 JPlot1D \
107 -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ \
108 -X \
109 -> "Rate [kHz]" \
110 -T "${MODULE}:${(l(2)(0))PMT}" \
111 -o ${OUTPUT_DIR}/rate_${(l(2)(0))PMT}.$FORMAT $BATCH
112
113 JPlot1D \
114 -f ${OUTPUT_JDA}:time_${MODULE}.${PMT}$ \
115 -> "Frame Index" \
116 -\^ "Rate [kHz]" \
117 -O "hist" \
118 -T "${MODULE}:${(l(2)(0))PMT}" \
119 -o ${OUTPUT_DIR}/time_${(l(2)(0))PMT}.$FORMAT $BATCH
120
121 done
122
123 JSON="{\n\"module\":$MODULE,\n"
124
125 JSON+="\"gains\":["
126 JSON+=$(IFS=, ; echo "${GAINS[*]}")
127 JSON+="],\n"
128
129 JSON+="\"rates\":["
130 JSON+=$(IFS=, ; echo "${RATES[*]}")
131 JSON+="]\n}"
132
133 echo -e ${JSON}
134
135 montage \
136 -tile 6x6 \
137 -geometry +0+0 \
138 ${OUTPUT_DIR}/gain*.$FORMAT \
139 ${OUTPUT_DIR}/${MODULE}_gain.$FORMAT >& /dev/null
140
141 montage \
142 -tile 6x6 \
143 -geometry +0+0 \
144 ${OUTPUT_DIR}/rate*.$FORMAT \
145 ${OUTPUT_DIR}/${MODULE}_rate.$FORMAT >& /dev/null
146
147 montage \
148 -tile 6x6 \
149 -geometry +0+0 \
150 ${OUTPUT_DIR}/time*.$FORMAT \
151 ${OUTPUT_DIR}/${MODULE}_time.$FORMAT >& /dev/null
152 done
153done
154
155rm -f ${OUTPUT_DIR}/gain*.$FORMAT
156rm -f ${OUTPUT_DIR}/rate*.$FORMAT
157rm -f ${OUTPUT_DIR}/time*.$FORMAT
158
159
160