Jpp test-rotations-old-533-g2bdbdb559
the software that should make you happy
Loading...
Searching...
No Matches
plot-PMTParameters1D.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
9if [ -z $JPP_DIR ]; then
10 echo "Variable JPP_DIR undefined."
11 exit
12fi
13
14source $JPP_DIR/setenv.sh $JPP_DIR
15
16zmodload zsh/mathfunc
17
18set_variable DEBUG 3
19set_variable WORKDIR `pwd`
20set_variable OUTPUT_FILE $WORKDIR/pmt_parameters.root
21set_variable DIR $JPP_DIR/examples/JDetector/
22set_variable: FORMAT GRAPHICS_FORMAT gif
23set_variable+ BATCH GRAPHICS_BATCH -B
24
25if do_usage $*; then
26 usage "$script <detector file> (PMT parameters file)+"
27fi
28
29if (( $# < 2 )); then
30 fatal "Wrong number of parameters."
31fi
32
33set_variable DETECTOR $argv[1]
34set_array INPUT_FILES $argv[2,-1]
35
36$DIR/JPlotPMTParameters2D \
37 -a $DETECTOR \
38 -P "$INPUT_FILES" \
39 -o $OUTPUT_FILE \
40 -d $DEBUG -A --!
41
42# parameters and plot ranges
43
44typeset -A Y_RANGE
45
46Y_RANGE+=(EFFICIENCY " 0.0 1.5")
47Y_RANGE+=(QE " 0.0 1.5")
48Y_RANGE+=(gain " 0.0 1.5")
49Y_RANGE+=(gainSpread " 0.0 1.0")
50Y_RANGE+=(riseTime_ns " 0.0 15.0")
51Y_RANGE+=(TTS_ns "-5.0 +5.0")
52Y_RANGE+=(threshold " 0.0 1.0")
53Y_RANGE+=(slope " 0.0 15.0")
54Y_RANGE+=(saturation " 0.0 250.0")
55Y_RANGE+=(slewing " 0.0 1.5")
56
57eval `JPrintDetector -a $DETECTOR -O SUMMARY`
58
59set_variable FIRST_FLOOR 1
60
61typeset -Z 4 STRING
62typeset -Z 2 FLOOR
63
64PMT_RANGE="0-30"
65
66for STRING in $STRINGS[*]; do
67
68 for KEY in ${(k)Y_RANGE}; do
69
70 unset HISTOGRAMS
71
72 typeset -a HISTOGRAMS
73
74 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
75
76 eval MODULE=\${STRING_${(l:4::0::0:)STRING}\[$(($FLOOR))\]:--1}
77
78 debug "($STRING,$FLOOR) $KEY"
79
80 HISTOGRAMS+=${OUTPUT_FILE}:${MODULE}\.${KEY}\$
81 done
82
83 let "YMIN = ${PMT_RANGE%%-*} - 0.5"
84 let "YMAX = ${PMT_RANGE##*-} + 0.5"
85
86 JProject2D \
87 -f "${HISTOGRAMS[*]}" \
88 -P X -y "$YMIN $YMAX" \
89 -o ${TMPDIR:-/tmp}/project.root
90
91 JScale1D \
92 -f ${TMPDIR:-/tmp}/project.root:\.\* \
93 -o ${TMPDIR:-/tmp}/scale.root \
94 -F "1.0 / ($YMAX - $YMIN)" \
95 -O "nosw2"
96
97 JPlot1D \
98 -f ${TMPDIR:-/tmp}/scale.root:\.\* \
99 -y $Y_RANGE[${KEY}] \
100 -> "index" \
101 -\^ "<$KEY>" \
102 -G Y \
103 -T "(${STRING})" \
104 -o P_${KEY}_${STRING}.$FORMAT $BATCH
105 done
106done
107
108typeset -i NX
109typeset -i NY
110
111let "NY = sqrt(${#STRINGS}) * 0.75 + 0.25"
112let "NX = (${#STRINGS} + $NY - 1)/ $NY"
113
114for KEY in ${(k)Y_RANGE}; do
115
116 montage \
117 -tile ${NX}x${NY} \
118 -geometry +0+0 \
119 P_${KEY}_${^${(l:4::0::0:)STRINGS}}.$FORMAT \
120 P_${KEY}.$FORMAT #>& /dev/null
121done