7# ------------------------------------------------------------------------------------------
9# Utility script to compare two detectors and to create graphics output.
11# ------------------------------------------------------------------------------------------
13if [ -z $JPP_DIR ]; then
14 echo "Variable JPP_DIR undefined."
18source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
20set_variable WORKDIR ${TMPDIR:-/tmp}
22set_variable: TIME PRECISION_TIME 0.01 # [ns]
23set_variable: ANGLE PRECISION_ANGLE 0.01 # [deg]
24set_variable: POSITION PRECISION_POSITION 0.01 # [m]
25set_variable: ORIENTATION PRECISION_ORIENTATION 0.01 # [rad]
26set_variable: FORMAT GRAPHICS_FORMAT gif
27set_variable+ BATCH GRAPHICS_BATCH -B
30 usage "$script <detector file> <detector file> [<lower floor>-<upper floor>]"\
31 "\nIf the range of floors is specified, the first detector file is aligned to the second before the comparison."\
32 "\nIn this, only modules within the given range of floors are used."
36 3) set_variable RANGE $argv[3];&
37 2) set_array DETECTOR $argv[1] $argv[2];;
38 *) fatal "Wrong number of arguments."
41if [[ "$RANGE" == [0-9]*"-"[0-9]* ]]; then
43 JConvertDetectorFormat \
45 -o ${TMPDIR:-/tmp}/detector.datx \
48 echo "" > ${TMPDIR:-/tmp}/tripod.txt
51 -a ${TMPDIR:-/tmp}/detector.datx \
54 -r "${RANGE%%-*} ${RANGE##*-}" \
55 -T ${TMPDIR:-/tmp}/tripod.txt \
58 DETECTOR[1]=${TMPDIR:-/tmp}/detector.datx
60 rm -f ${TMPDIR:-/tmp}/tripod.txt
68 -p "position = $POSITION" \
69 -p "orientation = $ORIENTATION" \
70 -o $WORKDIR/detector.root \
75HISTOGRAMS[X2]="#Deltax [m]"
76HISTOGRAMS[Y2]="#Deltay [m]"
77HISTOGRAMS[Z2]="#Deltaz [m]"
78HISTOGRAMS[T2]="#Deltat [ns]"
79HISTOGRAMS[RMS]="RMS [ns]"
80HISTOGRAMS[R2]="angle [rad]"
82eval `JPrintDetector -a $DETECTOR[1] -O SUMMARY`
84if (( ${#STRINGS} <= 15 )); then
88 let "X = 600 + 6 * (${#STRINGS} - 15)"
92for KEY VALUE in ${(@kv)HISTOGRAMS}; do
96 -f $WORKDIR/detector.root:${KEY} \
102 -o ${KEY}.$FORMAT $BATCH
108 for (( i = 1; $i <= ${#STRINGS}; ++i )); do
110 set_variable STRING $STRINGS[$i]
112 echo "Processing string $STRING $KEY"
114 let "XMIN = $i - 1 - 0.5"
115 let "XMAX = $i - 1 + 0.5"
118 -f $WORKDIR/detector.root:${KEY}2 \
121 -o ${TMPDIR:-/tmp}/py_\[${STRING}\].root \
126 -f${TMPDIR:-/tmp}/py_\[${^STRINGS}\].root:\.\* \
128 -\^ "#Delta${(L)KEY} [m]" \
135 -o ${KEY}1.$FORMAT --! $BATCH