Jpp
JSlewingK40.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 # ------------------------------------------------------------------------------------------
10 #
11 # Utility script to test JSlewingK40.
12 #
13 # ------------------------------------------------------------------------------------------
14 
15 
16 if [ -z $JPP_DIR ]; then
17  echo "Variable JPP_DIR undefined."
18  exit
19 fi
20 
21 
22 source $JPP_DIR/setenv.sh $JPP_DIR
23 
24 
25 set_variable DEBUG 2
26 set_variable WORKDIR .
27 
28 if ( do_usage $* ); then
29  usage "$script [working directory]"
30 fi
31 
32 case $# in
33  1) WORKDIR=$1;;
34 esac
35 
36 
37 set_variable TMAX 3.0
38 set_variable DETECTOR $WORKDIR/detector.detx
39 set_variable BACKGROUND_HZ 5e3 500 50 5 0.5
40 set_variable numberOfSlices 10000
41 set_variable INPUT_FILE $WORKDIR/timeslice.root
42 set_variable OUTPUT_FILE $WORKDIR/slewing\[Monte\ Carlo\].root
43 
44 
45 if (( 1 )); then
46 
47  detectorType=1
48  numberOfLines=1
49  numberOfFloors=1
50 
51  JDetector \
52  -D 1 \
53  -@detectorType=$detectorType \
54  -@numberOfLines=$numberOfLines \
55  -@numberOfFloors=$numberOfFloors \
56  -o $DETECTOR -V V2 \
57  -d $DEBUG
58 
59 fi
60 
61 if (( 1 )); then
62 
63  if [ -f "$WORKDIR/timeslice.root" ]; then
64  rm -i $WORKDIR/timeslice.root
65  fi
66 
67  if [ ! -f "$WORKDIR/timeslice.root" ]; then
68 
69  JRandomTimesliceWriter \
70  -a $DETECTOR \
71  -o $INPUT_FILE \
72  -B "$BACKGROUND_HZ" \
73  -n $numberOfSlices \
74  -P %.slewing=1 \
75  -d $DEBUG --!
76 
77  fi
78 fi
79 
80 
81 if (( 1 )); then
82 
83  echo "Monitoring data."
84  echo "Detector: $DETECTOR"
85 
86  JSlewingK40 \
87  -f $WORKDIR/timeslice.root \
88  -a $DETECTOR \
89  -o $OUTPUT_FILE \
90  -t "20 35" \
91  -d $DEBUG
92 
93 fi
94 
95 if (( 1 )); then
96 
97  JScale1D \
98  -f ${OUTPUT_FILE}:h0 \
99  -f ${OUTPUT_FILE}:h1 \
100  -F "1/GetEntries" \
101  -o $WORKDIR/scale.root --!
102 
103 fi
104 
105 if (( 1 )); then
106 
107  JFit \
108  -f ${WORKDIR}/scale.root:h0 \
109  -o ${WORKDIR}/fit.root \
110  -F "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) + [3]" \
111  -@"p0 = GetMaximum" \
112  -@"p1 = 0.0" \
113  -@"p2 = 0.5*GetRMS" \
114  -@"p3 = GetMinimum" \
115  -d3
116 
117  JPlot1D \
118  -f ${WORKDIR}/fit.root:h0 \
119  -> "#Deltat [ns]" \
120  -\^ "number of hits [au]" \
121  -o resolution.gif
122 
123 fi
124 
125 if (( 1 )); then
126 
127  JPlot1D \
128  -f $WORKDIR/scale.root:h1 \
129  -> "time over threshold [ns]" \
130  -\^ "number of hits [au]" \
131  -o tot.gif
132 
133 fi
134 
135 if (( 1 )); then
136 
137  JFit \
138  -f ${OUTPUT_FILE}:h2 \
139  -o ${WORKDIR}/fit.root \
140  -F "[0]*exp([1]*sqrt(x) + [2]*x) + [3]" \
141  -@"p0 = GetMaximum" \
142  -@"p1 = -0.01" \
143  -@"p2 = -0.05" \
144  -@"p3 = GetMinimum" \
145  -d3
146 
147  JPlot1D \
148  -f ${WORKDIR}/fit.root:h2 \
149  -y "-10 +10" \
150  -> "TOT [ns]" \
151  -\^ "#Deltat [ns]" \
152  -o slewing.gif
153 
154 fi