Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
JDetector/plot-PMTParameters.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# parameters and plot ranges
17
18typeset -A Y_RANGE
19
20Y_RANGE+=(EFFICIENCY " 0.0 1.5")
21Y_RANGE+=(QE " 0.0 1.5")
22Y_RANGE+=(gain " 0.0 1.5")
23Y_RANGE+=(gainSpread " 0.0 1.0")
24Y_RANGE+=(riseTime_ns " 0.0 15.0")
25Y_RANGE+=(TTS_ns "-5.0 +5.0")
26Y_RANGE+=(threshold " 0.0 1.0")
27Y_RANGE+=(slope " 0.0 15.0")
28Y_RANGE+=(saturation " 0.0 250.0")
29Y_RANGE+=(slewing " 0.0 1.5")
30
31set_variable DEBUG 2
32set_variable WORKDIR `pwd`
33set_variable OUTPUT_FILE $WORKDIR/pmt_parameters.root
34set_variable DIR $JPP_DIR/examples/JDetector/
35set_variable: FORMAT GRAPHICS_FORMAT gif
36set_variable+ BATCH GRAPHICS_BATCH -B
37
38if do_usage $*; then
39 usage "$script <detector file> <PMT parameters file> [parameter+]"\
40 "\nThe list of optional parameters includes: ${(k)Y_RANGE}."
41fi
42
43if (( $# < 2 )); then
44 fatal "Wrong number of parameters."
45fi
46
47set_variable DETECTOR $argv[1]
48set_variable INPUT_FILE $argv[2]
49
50if (( $# > 2 )); then
51 KEYS=($argv[3,-1])
52else
53 KEYS=(${(k)Y_RANGE})
54fi
55
56$DIR/JPlotPMTParameters \
57 -a $DETECTOR \
58 -P $INPUT_FILE \
59 -o $OUTPUT_FILE \
60 -d $DEBUG -A
61
62eval `JPrintDetector -a $DETECTOR -O SUMMARY`
63
64set_variable FIRST_FLOOR 1
65
66kill_child_processes_at_exit
67
68attach getModule -a $DETECTOR
69
70typeset -Z 4 STRING
71typeset -Z 2 FLOOR
72
73for STRING in $STRINGS[*]; do
74
75 echo -n "Creating graphics for string $STRING.."
76
77 MODULES=()
78
79 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
80
81 sput $STRING $FLOOR
82 sget MODULE
83
84 MODULES+=($MODULE)
85
86 for KEY in $KEYS[*]; do
87
88 debug "($STRING,$FLOOR) $KEY"
89
90 JPlot1D \
91 -f ${OUTPUT_FILE}:${MODULE}\.${KEY}\$ \
92 -y $Y_RANGE[${KEY}] \
93 -> "PMT" \
94 -\^ "$KEY" \
95 -T "(${STRING},${FLOOR})" \
96 -o ${TMPDIR:-/tmp}/${KEY}_${STRING}_${FLOOR}.$FORMAT $BATCH
97 done
98 done
99
100 for KEY in $KEYS[*]; do
101
102 JPlot1D \
103 -f${OUTPUT_FILE}:${^MODULES}\.${KEY}\$ \
104 -y $Y_RANGE[${KEY}] \
105 -> "PMT" \
106 -\^ "$KEY" \
107 -T "${STRING}" \
108 -o $WORKDIR/${KEY}.1S_${STRING}.$FORMAT $BATCH
109
110 montage \
111 -tile 6x3 \
112 -geometry +0+0 \
113 ${TMPDIR:-/tmp}/${KEY}_${STRING}_{01..18}.$FORMAT \
114 $WORKDIR/${KEY}_${STRING}.$FORMAT >& /dev/null
115 done
116
117 echo " ->" $WORKDIR/${^KEYS}\[.1S\]_${STRING}.$FORMAT
118
119 rm -f ${TMPDIR:-/tmp}/${^KEYS}_${STRING}_*.$FORMAT
120done
121
122detach