Jpp  19.1.0
the software that should make you happy
JDetector/plot-PMTParameters.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 #
4 # \author mdejong
5 #
6 version=1.0
7 script=${0##*/}
8 
9 if [ -z $JPP_DIR ]; then
10  echo "Variable JPP_DIR undefined."
11  exit
12 fi
13 
14 source $JPP_DIR/setenv.sh $JPP_DIR
15 
16 # parameters and plot ranges
17 
18 typeset -A Y_RANGE
19 
20 Y_RANGE+=(EFFICIENCY " 0.0 1.5")
21 Y_RANGE+=(QE " 0.0 1.5")
22 Y_RANGE+=(gain " 0.0 1.5")
23 Y_RANGE+=(gainSpread " 0.0 1.0")
24 Y_RANGE+=(riseTime_ns " 0.0 15.0")
25 Y_RANGE+=(TTS_ns "-5.0 +5.0")
26 Y_RANGE+=(threshold " 0.0 1.0")
27 Y_RANGE+=(slope " 0.0 15.0")
28 Y_RANGE+=(saturation " 0.0 250.0")
29 Y_RANGE+=(slewing " 0.0 1.5")
30 
31 set_variable DEBUG 2
32 set_variable WORKDIR `pwd`
33 set_variable OUTPUT_FILE $WORKDIR/pmt_parameters.root
34 set_variable DIR $JPP_DIR/examples/JDetector/
35 set_variable: FORMAT GRAPHICS_FORMAT gif
36 set_variable+ BATCH GRAPHICS_BATCH -B
37 
38 if do_usage $*; then
39  usage "$script <detector file> <PMT parameters file> [parameter+]"\
40  "\nThe list of optional parameters includes: ${(k)Y_RANGE}."
41 fi
42 
43 if (( $# < 2 )); then
44  fatal "Wrong number of parameters."
45 fi
46 
47 set_variable DETECTOR $argv[1]
48 set_variable INPUT_FILE $argv[2]
49 
50 if (( $# > 2 )); then
51  KEYS=($argv[3,-1])
52 else
53  KEYS=(${(k)Y_RANGE})
54 fi
55 
56 $DIR/JPlotPMTParameters \
57  -a $DETECTOR \
58  -P $INPUT_FILE \
59  -o $OUTPUT_FILE \
60  -d $DEBUG -A
61 
62 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
63 
64 set_variable FIRST_FLOOR 1
65 
66 kill_child_processes_at_exit
67 
68 attach getModule -a $DETECTOR
69 
70 typeset -Z 4 STRING
71 typeset -Z 2 FLOOR
72 
73 for 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
120 done
121 
122 detach