Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
plot-PMTParameters2D.sh
Go to the documentation of this file.
1#!/bin/zsh
2#
3#
4# \author mdejong
5#
6version=1.0
7script=${0##*/}
8
9if [ -z $JPP_DIR ]; then
10 echo "Variable JPP_DIR undefined."
11 exit
12fi
13
14source $JPP_DIR/setenv.sh $JPP_DIR
15
16
17set_variable DEBUG 3
18set_variable WORKDIR `pwd`
19set_variable OUTPUT_FILE $WORKDIR/pmt_parameters.root
20set_variable DIR $JPP_DIR/examples/JDetector/
21set_variable: FORMAT GRAPHICS_FORMAT gif
22set_variable+ BATCH GRAPHICS_BATCH -B
23
24if do_usage $*; then
25 usage "$script <detector file> (PMT parameters file)+"
26fi
27
28if (( $# < 2 )); then
29 fatal "Wrong number of parameters."
30fi
31
32set_variable DETECTOR $argv[1]
33set_array INPUT_FILES $argv[2,-1]
34
35$DIR/JPlotPMTParameters2D \
36 -a $DETECTOR \
37 -P "$INPUT_FILES" \
38 -o $OUTPUT_FILE \
39 -d $DEBUG -A --!
40
41# parameters and plot ranges
42
43typeset -A Y_RANGE
44
45Y_RANGE+=(EFFICIENCY " 0.0 1.5")
46Y_RANGE+=(QE " 0.0 1.5")
47Y_RANGE+=(gain " 0.0 1.5")
48Y_RANGE+=(gainSpread " 0.0 1.0")
49Y_RANGE+=(riseTime_ns " 0.0 15.0")
50Y_RANGE+=(TTS_ns "-5.0 +5.0")
51Y_RANGE+=(threshold " 0.0 1.0")
52Y_RANGE+=(slope " 0.0 15.0")
53Y_RANGE+=(saturation " 0.0 250.0")
54Y_RANGE+=(slewing " 0.0 1.5")
55
56eval `JPrintDetector -a $DETECTOR -O SUMMARY`
57
58set_variable FIRST_FLOOR 1
59
60kill_child_processes_at_exit
61
62attach getModule -a $DETECTOR
63
64typeset -Z 4 STRING
65typeset -Z 2 FLOOR
66
67typeset -A PMT_RANGE
68
69PMT_RANGE[-]="0-30"
70PMT_RANGE[A]="0-0"
71PMT_RANGE[B]="1-6"
72PMT_RANGE[C]="7-12"
73PMT_RANGE[D]="13-18"
74PMT_RANGE[E]="19-24"
75PMT_RANGE[F]="25-30"
76
77for STRING in $STRINGS[*]; do
78
79 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
80
81 sput $STRING $FLOOR
82 sget MODULE
83
84 for KEY in ${(k)Y_RANGE}; do
85
86 debug "($STRING,$FLOOR) $KEY"
87
88 JPlot2D \
89 -f ${OUTPUT_FILE}:${MODULE}\.${KEY}\$ \
90 -z $Y_RANGE[${KEY}] \
91 -O COLZ \
92 -> "index" \
93 -< "PMT" \
94 -\^ "$KEY" \
95 -T "(${STRING},${FLOOR})" \
96 -o ${TMPDIR:-/tmp}/${KEY}_${STRING}_${FLOOR}.$FORMAT $BATCH
97
98 for RING RANGE in ${(@kv)PMT_RANGE[*]}; do
99
100 let "YMIN = ${RANGE%%-*} - 0.5"
101 let "YMAX = ${RANGE##*-} + 0.5"
102
103 JProject2D \
104 -f ${OUTPUT_FILE}:${MODULE}\.${KEY}\$ \
105 -P X -y "$YMIN $YMAX" \
106 -o ${TMPDIR:-/tmp}/project.root
107
108 JScale1D \
109 -f ${TMPDIR:-/tmp}/project.root:\.\* \
110 -o ${TMPDIR:-/tmp}/scale\[$RING\].root \
111 -F "1.0 / ($YMAX - $YMIN)" \
112 -O "nosw2"
113 done
114
115 set_array ABC `ls -f ${TMPDIR:-/tmp}/scale\[-\].root ${TMPDIR:-/tmp}/scale\[[A-Z]\].root`
116
117 JPlot1D \
118 -f${^ABC}:\.\* \
119 -y $Y_RANGE[${KEY}] \
120 -> "index" \
121 -\^ "<$KEY>" \
122 -L BL \
123 -T "(${STRING},${FLOOR})" \
124 -o ${TMPDIR:-/tmp}/P_${KEY}_${STRING}_${FLOOR}.$FORMAT $BATCH
125 done
126 done
127
128 for KEY in ${(k)Y_RANGE}; do
129
130 montage \
131 -tile 6x3 \
132 -geometry +0+0 \
133 ${TMPDIR:-/tmp}/${KEY}_${STRING}_{01..18}.$FORMAT \
134 $WORKDIR/${KEY}_${STRING}.$FORMAT >& /dev/null
135 done
136
137 for KEY in ${(k)Y_RANGE}; do
138
139 montage \
140 -tile 6x3 \
141 -geometry +0+0 \
142 ${TMPDIR:-/tmp}/P_${KEY}_${STRING}_{01..18}.$FORMAT \
143 $WORKDIR/P_${KEY}_${STRING}.$FORMAT >& /dev/null
144 done
145done
146
147detach