Jpp test-rotations-old-533-g2bdbdb559
the software that should make you happy
Loading...
Searching...
No Matches
JMakePDF.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5# utility script to produce PDF and CDF tables.
6script=${0##*/}
7
8
9# ------------------------------------------------------------------------------------------
10#
11# Utility script to produce PDF and CDF tables.
12#
13# ------------------------------------------------------------------------------------------
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
21
22set_variable DEBUG 2
23set_variable WORKDIR $JPP_DATA
24set_variable MAKE_PDF 0
25set_variable MERGE_PDF 0
26set_variable MAKE_ZDF 0
27set_variable MAKE_CDF 0
28set_variable CLEAN 0
29set_variable BACKGROUND
30set_variable WGET
31set_variable RMAX_M 999
32set_variable absorptionLengthFactor 1.0
33set_variable scatteringLengthFactor 1.0
34set_variable: TTS_NS PHYSICS_TTS_NS 2.0
35set_variable EXECUTOR "nohup"
36
37#
38# Method to print usage of script.
39#
40function __usage__()
41{
42 set_variable DEBUG 3
43
44 usage "$script\n"\
45 "-d <debug level> \n"\
46 "-W <working directory PDF and CDF tables> \n"\
47 "-P create PDF tables \n"\
48 "-M merge PDF tables \n"\
49 "-Z create PDF table for elongated shower \n"\
50 "-C convert PDF tables to CDF tables \n"\
51 "-c clean PDF tables \n"\
52 "-B parallel running of jobs in background \n"\
53 "-E execute command to be evaluated (standard: nohup, example: echo, using -B as well) \n"\
54 "-w download files from GIT server (e.g. \"http://sftp.km3net.de/data/latest/\") \n"\
55 "-R <maximal distance between muon and PMT> \n"\
56 "Note that the elongated EM shower PDF is created at option -M. \n"\
57 "Script to generate the PDF/CDFs and merge them; \n"\
58 "standard example: JMakePDF.sh -W \${JPP_DATA} -PMCc \n"\
59 "print all necessary programs: JMakePDF.sh -W \${JPP_DATA} -E \"echo\" -PMCB"
60}
61
62#
63# Parse command line options.
64#
65while getopts "d:W:PMZCcBE:w:hA:S:R:" option; do
66 case "$option" in
67 d) set_variable DEBUG $OPTARG;;
68 W)
69 if [[ -z $OPTARG ]]; then
70 echo "Error: -W option requires an argument."
71 exit 1
72 fi
73 set_variable WORKDIR $OPTARG
74 ;;
75 P) set_variable MAKE_PDF 1;;
76 M) set_variable MERGE_PDF 1;;
77 Z) set_variable MAKE_ZDF 1;;
78 C) set_variable MAKE_CDF 1;;
79 c) set_variable CLEAN 1;;
80 B) set_variable BACKGROUND \&;;
81 E) set_variable EXECUTOR $OPTARG;;
82 w)
83 if [[ -z $OPTARG ]]; then
84 echo "Error: -w option requires an argument."
85 exit 1
86 fi
87 set_variable WGET $OPTARG
88 ;;
89 h) __usage__;;
90 A) set_variable absorptionLengthFactor $OPTARG;;
91 S) set_variable scatteringLengthFactor $OPTARG;;
92 R) set_variable RMAX_M $OPTARG;;
93 esac
94done
95
96# check whether script is already running
97
98BUFFER=`get_pid $script`
99BUFFER=${BUFFER/${$}/}
100
101if [[ -n "${BUFFER/ */}" ]]; then
102 notice "${script} already running <${BUFFER}>"
103 exit 0
104fi
105
106check_variable ROOTSYS JPP_DIR WORKDIR
107
108mkdir -p $WORKDIR
109
110if [[ ! -d $WORKDIR ]]; then
111 fatal "Directory $WORKDIR does not exist."
112fi
113
114status "Start $script"
115
116
117if [[ -n $WGET ]]; then
118 cd $WORKDIR || { echo "Cannot enter directory $WORKDIR"; exit 1; }
119 rm -f *.dat >& /dev/null
120 wget -A dat -r -l 1 -nd -q "$WGET" || { echo "Download failed from $WGET"; exit 1; }
121fi
122
123
124if (( $MAKE_PDF )); then
125
126 check_process JMakePDF JMakePDG pgrep
127
128 if (( 1 )); then
129
130 if [[ ! -f $WORKDIR/J1p.dat ]]; then
131 eval $EXECUTOR JMakePDF -F1 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J1p.dat -d $DEBUG $BACKGROUND
132 fi
133 if [[ ! -f $WORKDIR/J2p.dat ]]; then
134 eval $EXECUTOR JMakePDF -F2 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J2p.dat -d $DEBUG $BACKGROUND
135 fi
136
137 for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
138 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
139 22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
140 55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
141 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 360.0 410.0; do
142
143 if (( $R <= $RMAX_M )); then
144
145 if [[ ! -f $WORKDIR/J3p.dat ]]; then
146 eval $EXECUTOR JMakePDF -F3 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J3p-$R.dat -d $DEBUG $BACKGROUND
147 fi
148 if [[ ! -f $WORKDIR/J4p.dat ]]; then
149 eval $EXECUTOR JMakePDF -F4 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J4p-$R.dat -d $DEBUG $BACKGROUND
150 fi
151 fi
152 done
153
154 if [[ ! -f $WORKDIR/J5p.dat ]]; then
155 eval $EXECUTOR JMakePDF -F5 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J5p.dat -d $DEBUG $BACKGROUND
156 fi
157
158 for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
159 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
160 22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
161 55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
162 170.0 190.0 210.0 230.0 250.0; do
163
164 if (( $R <= $RMAX_M )); then
165
166 if [[ ! -f $WORKDIR/J6p.dat ]]; then
167 eval $EXECUTOR JMakePDF -F6 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J6p-$R.dat -d $DEBUG $BACKGROUND
168 fi
169 fi
170 done
171
172 let "DMAX_M = ${RMAX_M}*1.5"
173
174 for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
175 120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
176
177 if (( $D <= $DMAX_M )); then
178 if [[ ! -f $WORKDIR/J12p.dat ]]; then
179 eval $EXECUTOR JMakePDG -F12 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J12p-$D.dat -d $DEBUG $BACKGROUND
180 fi
181 fi
182 done
183
184 if [[ ! -f $WORKDIR/J13p.dat ]]; then
185 eval $EXECUTOR JMakePDG -F13 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J13p.dat -d $DEBUG $BACKGROUND
186 fi
187
188 let "DMAX_M = ${RMAX_M}*1.5"
189
190 for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
191 120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 \
192 340.0 370.0 400.0 430.0 460.0 490.0 520.0 550.0 600.0 650.0 700.0 750.0 800.0; do
193
194 if (( $D <= $DMAX_M )); then
195 if [[ ! -f $WORKDIR/J14p.dat ]]; then
196 eval $EXECUTOR JMakePDG -F14 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J14p-$D.dat -d $DEBUG $BACKGROUND
197 fi
198 fi
199 done
200
201 if [[ ! -f $WORKDIR/J23p.dat ]]; then
202 eval $EXECUTOR JMakePD0 -F23 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J23p.dat -d $DEBUG $BACKGROUND
203 fi
204 if [[ ! -f $WORKDIR/J24p.dat ]]; then
205 eval $EXECUTOR JMakePD0 -F24 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J24p.dat -d $DEBUG $BACKGROUND
206 fi
207
208 if [[ "$BACKGROUND" != "" ]]; then
209 wait
210 fi
211 fi
212fi
213
214
215if (( $MERGE_PDF )); then
216
217 check_process JMergePDF pgrep
218
219 if [[ ! -f $WORKDIR/J3p.dat ]]; then
220
221 FILE_LIST=(`echo $WORKDIR/J3p-*.dat`)
222
223 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J3p.dat -d $DEBUG $BACKGROUND
224 fi
225
226 if [[ ! -f $WORKDIR/J4p.dat ]]; then
227
228 FILE_LIST=(`echo $WORKDIR/J4p-*.dat`)
229
230 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J4p.dat -d $DEBUG $BACKGROUND
231 fi
232
233 if [[ ! -f $WORKDIR/J6p.dat ]]; then
234
235 FILE_LIST=(`echo $WORKDIR/J6p-*.dat`)
236
237 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J6p.dat -d $DEBUG $BACKGROUND
238 fi
239
240 if [[ ! -f $WORKDIR/J12p.dat ]]; then
241
242 FILE_LIST=(`echo $WORKDIR/J12p-*.dat`)
243
244 eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J12p.dat -d $DEBUG $BACKGROUND
245 fi
246
247 if [[ ! -f $WORKDIR/J14p.dat ]]; then
248
249 FILE_LIST=(`echo $WORKDIR/J14p-*.dat`)
250
251 eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J14p.dat -d $DEBUG $BACKGROUND
252 fi
253
254 if [[ "$BACKGROUND" != "" ]]; then
255 wait
256 fi
257fi
258
259if (( $MAKE_ZDF )); then
260
261 if [[ ! -f $WORKDIR/J113p.dat ]]; then
262
263 eval $EXECUTOR JMakePDE -F $WORKDIR/J%p.dat -o $WORKDIR/J113p.dat -T $TTS_NS -d $DEBUG $BACKGROUND
264 fi
265
266 if [[ "$BACKGROUND" != "" ]]; then
267 wait
268 fi
269fi
270
271if (( $MAKE_CDF )); then
272
273 check_process JMakeCDF JMakeCDG pgrep
274
275 if [[ ! -f $WORKDIR/I1p.dat ]]; then
276 eval $EXECUTOR JMakeCDF -f $WORKDIR/J1p.dat -e 1e-5 -o $WORKDIR/I1p.dat -d $DEBUG $BACKGROUND
277 fi
278 if [[ ! -f $WORKDIR/I2p.dat ]]; then
279 eval $EXECUTOR JMakeCDF -f $WORKDIR/J2p.dat -e 1e-4 -o $WORKDIR/I2p.dat -d $DEBUG $BACKGROUND
280 fi
281 if [[ ! -f $WORKDIR/I5p.dat ]]; then
282 eval $EXECUTOR JMakeCDF -f $WORKDIR/J5p.dat -e 1e-5 -o $WORKDIR/I5p.dat -d $DEBUG $BACKGROUND
283 fi
284 if [[ ! -f $WORKDIR/I6p.dat ]]; then
285 eval $EXECUTOR JMakeCDF -f $WORKDIR/J6p.dat -e 1e-5 -o $WORKDIR/I6p.dat -d $DEBUG $BACKGROUND
286 fi
287 if [[ ! -f $WORKDIR/I12p.dat ]]; then
288 eval $EXECUTOR JMakeCDG -f $WORKDIR/J12p.dat -e 1e-5 -o $WORKDIR/I12p.dat -d $DEBUG $BACKGROUND
289 fi
290 if [[ ! -f $WORKDIR/I13p.dat ]]; then
291 eval $EXECUTOR JMakeCDG -f $WORKDIR/J13p.dat -e 1e-5 -o $WORKDIR/I13p.dat -d $DEBUG $BACKGROUND
292 fi
293 if [[ ! -f $WORKDIR/I14p.dat ]]; then
294 eval $EXECUTOR JMakeCDG -f $WORKDIR/J14p.dat -e 1e-5 -o $WORKDIR/I14p.dat -d $DEBUG $BACKGROUND
295 fi
296
297 if [[ "$BACKGROUND" != "" ]]; then
298 wait
299 fi
300fi
301
302if (( $CLEAN )); then
303 if ( rm -f $WORKDIR/J*p-*.dat ); then; fi
304fi
305
306status "End $script"