Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
JAcceptanceTest.sh
Go to the documentation of this file.
1#!/bin/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
71kill_child_processes_at_exit
72
73set_variable NUMBER_OF_PMTS 31
74
75attach getModule -a $DETECTOR_FILE
76
77for STRING in $STRINGS[*]; do
78 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
79
80 GAINS=()
81 RATES=()
82
83 sput $STRING $FLOOR
84 sget MODULE
85
86 for (( PMT = 0; $PMT < $NUMBER_OF_PMTS; PMT += 1 )); do
87
88 set_array PMTparameters $(JPrintPMTParameters -P ${PMT_PARAMETERS_FILE} -p "$MODULE.$PMT" -k "gain")
89 set_variable gain ${PMTparameters[2]}
90
91 set_variable rate $(JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ -F "GetMean")
92
93 if [[ -z $rate ]]; then
94 rate=$DEFAULT_VALUE
95 fi
96 if [[ -z $gain ]]; then
97 gain=$DEFAULT_VALUE
98 fi
99
100 GAINS+=($gain)
101 RATES+=($rate)
102
103 JPlot1D \
104 -f ${OUTPUT_JFIT_TOT}:${MODULE}\.${(l(2)(0))PMT}\.1ToT \
105 -> "ToT [ns]" \
106 -T "${MODULE}:${(l(2)(0))PMT}" \
107 -o ${OUTPUT_DIR}/gain_${(l(2)(0))PMT}.$FORMAT $BATCH
108
109 JPlot1D \
110 -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ \
111 -X \
112 -> "Rate [kHz]" \
113 -T "${MODULE}:${(l(2)(0))PMT}" \
114 -o ${OUTPUT_DIR}/rate_${(l(2)(0))PMT}.$FORMAT $BATCH
115
116 JPlot1D \
117 -f ${OUTPUT_JDA}:time_${MODULE}.${PMT}$ \
118 -> "Frame Index" \
119 -\^ "Rate [kHz]" \
120 -O "hist" \
121 -T "${MODULE}:${(l(2)(0))PMT}" \
122 -o ${OUTPUT_DIR}/time_${(l(2)(0))PMT}.$FORMAT $BATCH
123
124 done
125
126 JSON="{\n\"module\":$MODULE,\n"
127
128 JSON+="\"gains\":["
129 JSON+=$(IFS=, ; echo "${GAINS[*]}")
130 JSON+="],\n"
131
132 JSON+="\"rates\":["
133 JSON+=$(IFS=, ; echo "${RATES[*]}")
134 JSON+="]\n}"
135
136 echo -e ${JSON}
137
138 montage \
139 -tile 6x6 \
140 -geometry +0+0 \
141 ${OUTPUT_DIR}/gain*.$FORMAT \
142 ${OUTPUT_DIR}/${MODULE}_gain.$FORMAT >& /dev/null
143
144 montage \
145 -tile 6x6 \
146 -geometry +0+0 \
147 ${OUTPUT_DIR}/rate*.$FORMAT \
148 ${OUTPUT_DIR}/${MODULE}_rate.$FORMAT >& /dev/null
149
150 montage \
151 -tile 6x6 \
152 -geometry +0+0 \
153 ${OUTPUT_DIR}/time*.$FORMAT \
154 ${OUTPUT_DIR}/${MODULE}_time.$FORMAT >& /dev/null
155 done
156done
157
158rm -f ${OUTPUT_DIR}/gain*.$FORMAT
159rm -f ${OUTPUT_DIR}/rate*.$FORMAT
160rm -f ${OUTPUT_DIR}/time*.$FORMAT
161
162detach
163
164