Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
JTransitTime.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to plot transition time spread from JDETECTOR::JPMTAnalogueSignaProcessor.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 
24 set_variable DEBUG 3
25 set_variable WORKDIR ${TMPDIR:-/tmp}/
26 set_variable DIR $JPP_DIR/examples/JDetector
27 set_variable OUTPUT_FILE $WORKDIR/tts%.root
28 set_variable NUMBER_OF_ENTRIES 10000000
29 set_variable: FORMAT GRAPHICS_FORMAT gif
30 set_variable+ BATCH GRAPHICS_BATCH -B
31 
32 
33 if do_usage $*; then
34  usage "$script [output file]"
35 fi
36 
37 case $# in
38  1) set_variable OUTPUT_FILE $1;;
39 esac
40 
41 typeset -A TTS
42 
43 for 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
73 done
74 
75 JPlot1D \
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 
87 for key value in ${(@kv)TTS}; do
88  printf "option %3d sigma %6.3f [ns]\n" $key $value
89 done