Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JTransitTime.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5version=1.0
6script=${0##*/}
7
8# ------------------------------------------------------------------------------------------
9#
10# Utility script to plot transition time spread from JDETECTOR::JPMTAnalogueSignaProcessor.
11#
12# ------------------------------------------------------------------------------------------
13
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20
21source $JPP_DIR/setenv.sh $JPP_DIR
22
23
24set_variable DEBUG 3
25set_variable WORKDIR ${TMPDIR:-/tmp}/
26set_variable DIR $JPP_DIR/examples/JDetector
27set_variable OUTPUT_FILE $WORKDIR/tts%.root
28set_variable NUMBER_OF_ENTRIES 10000000
29set_variable: FORMAT GRAPHICS_FORMAT gif
30set_variable+ BATCH GRAPHICS_BATCH -B
31
32
33if do_usage $*; then
34 usage "$script [output file]"
35fi
36
37case $# in
38 1) set_variable OUTPUT_FILE $1;;
39esac
40
41typeset -A TTS
42
43for OPTION in 1 38 41 67; do
44
45 $DIR/JTransitTime \
46 -o ${OUTPUT_FILE/\%/[${OPTION}]} \
47 -n 0 \
48 -O $OPTION \
49 -n $NUMBER_OF_ENTRIES \
50 -d $DEBUG
51
52 JFit \
53 -f ${OUTPUT_FILE/\%/[${OPTION}]}:pmt \
54 -F "[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2]))" \
55 -@ "p0 = 0.8*GetMaximum" \
56 -@ "p1 = 0.0" \
57 -@ "p2 = 2.0" \
58 -o $WORKDIR/fit.root >& /dev/null
59
60 set_array P2 `JPrintFit -f $WORKDIR/fit.root:pmt -@p2`
61
62 TTS[${OPTION}]=$P2[1]
63
64 JPlot1D \
65 -f ${OUTPUT_FILE/\%/[${OPTION}]}:tts \
66 -f ${OUTPUT_FILE/\%/[${OPTION}]}:pmt \
67 -y "1e-5 1.0" -Y \
68 -> "time [ns]" \
69 -\^ "probability" \
70 -L TR \
71 -T "" \
72 -o TTS_${OPTION}.$FORMAT $BATCH
73done
74
75JPlot1D \
76 -f ${OUTPUT_FILE/\%/[1]}:tts \
77 -f ${OUTPUT_FILE/\%/[38]}:tts \
78 -f ${OUTPUT_FILE/\%/[41]}:tts \
79 -f ${OUTPUT_FILE/\%/[67]}:tts \
80 -y "1e-5 1.0" -Y \
81 -> "time [ns]" \
82 -\^ "probability" \
83 -L TR \
84 -T "" \
85 -o TTS.$FORMAT $BATCH
86
87for key value in ${(@kv)TTS}; do
88 printf "option %3d sigma %6.3f [ns]\n" $key $value
89done