Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JCalibrateK40.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 JCalibrateK40/JFitK40.
12 #
13 # ------------------------------------------------------------------------------------------
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 source $JPP_DIR/setenv.sh $JPP_DIR
21 
24 
25 if ( do_usage $* ); then
26  usage "$script [working directory]"
27 fi
28 
29 case $# in
30  1) WORKDIR=$1;;
31 esac
32 
34 set_variable BACKGROUND_HZ 5e3 440 50 5 0.5
35 set_variable QE 1.0
36 set_variable numberOfSlices 6000
37 
38 
39 if (( 1 )); then
40 
42  set_variable numberOfLines 1
43  set_variable numberOfFloors 1
44 
45  JDetector \
46  -D 1 \
47  -@ "detectorType = $detectorType" \
48  -@ "numberOfLines = $numberOfLines" \
49  -@ "numberOfFloors = $numberOfFloors" \
50  -o $DETECTOR -V V2 \
51  -d $DEBUG
52 
53 fi
54 
55 if (( 1 )); then
56 
57  debug "Generating random background."
58 
59  if ( ! reuse_file $WORKDIR/timeslice.root ); then
60 
61  JRandomTimesliceWriter \
62  -a $DETECTOR \
63  -o $WORKDIR/timeslice.root \
64  -B "$BACKGROUND_HZ" \
65  -n $numberOfSlices \
66  -P "pmt= 101 0 QE=$QE" \
67  -P "pmt= 101 1 QE=$QE" \
68  -P "pmt= 101 2 QE=$QE" \
69  -P "pmt= 101 1 QE=$QE" \
70  -P "pmt= 101 3 QE=$QE" \
71  -P "pmt= 101 4 QE=$QE" \
72  -P "pmt= 101 5 QE=$QE" \
73  -P "pmt= 101 6 QE=$QE" \
74  -P "pmt= 101 7 QE=$QE" \
75  -P "pmt= 101 8 QE=$QE" \
76  -P "pmt= 101 9 QE=$QE" \
77  -P "pmt= 101 10 QE=$QE" \
78  -P "pmt= 101 11 QE=$QE" \
79  -P "pmt= 101 12 QE=$QE" \
80  -P "pmt= 101 11 QE=$QE" \
81  -P "pmt= 101 13 QE=$QE" \
82  -P "pmt= 101 14 QE=$QE" \
83  -P "pmt= 101 15 QE=$QE" \
84  -P "pmt= 101 16 QE=$QE" \
85  -P "pmt= 101 17 QE=$QE" \
86  -P "pmt= 101 18 QE=$QE" \
87  -P "pmt= 101 19 QE=$QE" \
88  -P "pmt= 101 20 QE=$QE" \
89  -P "pmt= 101 21 QE=$QE" \
90  -P "pmt= 101 22 QE=$QE" \
91  -P "pmt= 101 21 QE=$QE" \
92  -P "pmt= 101 23 QE=$QE" \
93  -P "pmt= 101 24 QE=$QE" \
94  -P "pmt= 101 25 QE=$QE" \
95  -P "pmt= 101 26 QE=$QE" \
96  -P "pmt= 101 27 QE=$QE" \
97  -P "pmt= 101 28 QE=$QE" \
98  -P "pmt= 101 29 QE=$QE" \
99  -P "pmt= 101 30 QE=$QE" \
100  -d $DEBUG --!
101 
102  fi
103 fi
104 
105 if (( 1 )); then
106 
107  debug "Processing data."
108 
109  if ( ! reuse_file $WORKDIR/trigger_processor.root ); then
110 
111  JTriggerProcessor \
112  -a $DETECTOR \
113  -f $WORKDIR/timeslice.root \
114  -o $WORKDIR/trigger_processor.root \
115  -@"ctMin=-1.0" \
116  -@"TMaxLocal_ns=50" \
117  -@"writeL1=1" \
118  -d $DEBUG
119 
120  fi
121 fi
122 
123 if (( 1 )); then
124 
125  debug "Monitoring data."
126 
127  JCalibrateK40 \
128  -f $WORKDIR/trigger_processor.root \
129  -C JDAQTimesliceL1 \
130  -a $DETECTOR \
131  -o $WORKDIR/monitor.root \
132  -d $DEBUG
133 
134  debug "Merging data."
135 
136  JMergeCalibrateK40 \
137  -f $WORKDIR/monitor.root \
138  -o $WORKDIR/merge.root \
139  -d $DEBUG
140 
141  debug "Fitting data."
142  debug "Detector: $DETECTOR"
143 
144  JFitK40 \
145  -a $DETECTOR \
146  -f $WORKDIR/merge.root \
147  -o $WORKDIR/fit.root \
148  -w \
149  -d $DEBUG
150 
151 fi
152 
153 if (( 1 )); then
154 
155  debug "Plotting results"
156 
157  JPlot2D \
158  -f $WORKDIR/monitor.root:\.\*2S \
159  -OLEGO \
160  -\> "PMT pair" \
161  -\< "#DeltaT [ns]" \
162  -T "" \
163  -o monitor.gif
164 
165 fi
166 
167 if (( 1 )); then
168 
169  debug "Plotting standard deviations"
170 
171  JPlot2D \
172  -f $WORKDIR/fit.root:\.\*2F \
173  -OLEGO \
174  -\> "PMT pair" \
175  -\< "#DeltaT [ns]" \
176  -z "-3 +3" \
177  -T "standard deviation" \
178  -o stdev.gif
179 
180 fi
181 
182 if (( 1 )); then
183 
184  debug "Plotting results for t0"
185 
186  JPlot1D \
187  -f $WORKDIR/fit.root:\.\*1t0 \
188  -y "-10 +10" \
189  -\> "PMT" \
190  -\^ "#DeltaT [ns]" \
191  -L TR \
192  -T "time calibration" \
193  -o t0.gif
194 
195 fi
196 
197 if (( 1 )); then
198 
199  debug "Plotting results for sigma"
200 
201  JPlot1D \
202  -f $WORKDIR/fit.root:\.\*1sigma \
203  -y "0 5" \
204  -\> "PMT" \
205  -\^ "#sigma [ns]" \
206  -L TR \
207  -T "time resolution" \
208  -o sigma.gif
209 
210 fi
211 
212 
213 if (( 1 )); then
214 
215  debug "Plotting results for QE"
216 
217  JPlot1D \
218  -f $WORKDIR/fit.root:\.\*1QE \
219  -y "0 2" \
220  -\> "PMT" \
221  -\^ "QE" \
222  -L TR \
223  -T "QE" \
224  -o QE.gif
225 
226 fi
set_variable DETECTOR
data_type w[N+1][M+1]
Definition: JPolint.hh:741
do echo Generating $dir eval D
Definition: JDrawLED.sh:50
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
JFitK40_t< TF2 > JFitK40
Type definition for backward compatibility.
Definition: JFitK40.hh:806
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:74
then echo
static const double C
Physics constants.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
int debug
debug level
Definition: JSirene.cc:63
then awk F
* usage
do set_variable SIGMA_NS set_variable OUTLIERS set_variable OUTPUT_FILE matrix[${ALPHA_DEG}\deg\] root $JPP JMatrixNZ a $DETECTOR f $INPUT_FILE o $OUTPUT_FILE S
Definition: JMatrixNZ.sh:56
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:45
then JCalibrateToT a
Definition: JTuneHV.sh:103
alias put_queue eval echo n
Definition: qlib.csh:19
then display $WORKDIR
Definition: plot-Domino.sh:127
static void monitor()
Definition: DataQueue.cc:32
do set_variable DETECTOR_TXT $WORKDIR detector
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:36
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DEBUG set_variable WORKDIR set_variable PIPE $WORKDIR pipe dat set_variable OUTPUT_FILE $WORKDIR timeslice root set_variable DETECTOR $JPP_DATA km3net_reference detx set_variable TRIGGER $JPP_DATA trigger_parameters_arca txt set_variable PMT_FILE $JPP_DATA PMT_parameters txt set_variable BACKGROUND_HZ
version
Definition: JCalibratePMT.sh:7
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:60
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62