Jpp test-rotations-new
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_CDF 0
27set_variable CLEAN 0
28set_variable BACKGROUND
29set_variable WGET
30set_variable RMAX_M 999
31set_variable absorptionLengthFactor 1.0
32set_variable scatteringLengthFactor 1.0
33set_variable: TTS_NS PHYSICS_TTS_NS 2.0
34set_variable EXECUTOR "nohup"
35
36#
37# Method to print usage of script.
38#
39function __usage__()
40{
41 set_variable DEBUG 3
42
43 usage "$script\n"\
44 "-d <debug level> \n"\
45 "-W <working directory PDF and CDF tables> \n"\
46 "-P create PDF tables \n"\
47 "-M merge PDF tables \n"\
48 "-C convert PDF tables to CDF tables \n"\
49 "-c clean PDF tables \n"\
50 "-B parallel running of jobs in background \n"\
51 "-E execute command to be evaluated (standard: nohup, example: echo, using -B as well) \n"\
52 "-w download files from GIT server (e.g. \"http://sftp.km3net.de/data/latest/\") \n"\
53 "-R <maximal distance between muon and PMT> \n"\
54 "Note that the elongated EM shower PDF is created at option -M. \n"\
55 "Script to generate the PDF/CDFs and merge them; \n"\
56 "standard example: JMakePDF.sh -W \${JPP_DATA} -PMCc \n"\
57 "print all necessary programs: JMakePDF.sh -W \${JPP_DATA} -E \"echo\" -PMCB"
58}
59
60#
61# Parse command line options.
62#
63while getopts "d:W:PMCcBE:w:hA:S:R:" option; do
64 case "$option" in
65 d) set_variable DEBUG $OPTARG;;
66 W) set_variable WORKDIR $OPTARG;;
67 P) set_variable MAKE_PDF 1;;
68 M) set_variable MERGE_PDF 1;;
69 C) set_variable MAKE_CDF 1;;
70 c) set_variable CLEAN 1;;
71 B) set_variable BACKGROUND \&;;
72 E) set_variable EXECUTOR $OPTARG;;
73 w) set_variable WGET $OPTARG;;
74 h) __usage__;;
75 A) set_variable absorptionLengthFactor $OPTARG;;
76 S) set_variable scatteringLengthFactor $OPTARG;;
77 R) set_variable RMAX_M $OPTARG;;
78 esac
79done
80
81# check whether script is already running
82
83BUFFER=`get_pid $script`
84BUFFER=${BUFFER/${$}/}
85
86if [[ -n "${BUFFER/ */}" ]]; then
87 notice "${script} already running <${BUFFER}>"
88 exit 0
89fi
90
91check_variable ROOTSYS JPP_DIR WORKDIR
92
93mkdir -p $WORKDIR
94
95if [[ ! -d $WORKDIR ]]; then
96 fatal "Directory $WORKDIR does not exist."
97fi
98
99status "Start $script"
100
101
102if [[ -n $WGET ]]; then
103 cd $WORKDIR
104 (rm -f *.dat) >& /dev/null
105 wget -A dat -r -l 1 -nd -q $WGET
106fi
107
108
109if (( $MAKE_PDF )); then
110
111 check_process JMakePDF JMakePDG pgrep
112
113 if (( 1 )); then
114
115 if [[ ! -f $WORKDIR/J1p.dat ]]; then
116 eval $EXECUTOR JMakePDF -F1 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J1p.dat -d $DEBUG $BACKGROUND
117 fi
118 if [[ ! -f $WORKDIR/J2p.dat ]]; then
119 eval $EXECUTOR JMakePDF -F2 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J2p.dat -d $DEBUG $BACKGROUND
120 fi
121
122 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 \
123 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
124 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 \
125 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 \
126 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 360.0 410.0; do
127
128 if (( $R <= $RMAX_M )); then
129
130 if [[ ! -f $WORKDIR/J3p.dat ]]; then
131 eval $EXECUTOR JMakePDF -F3 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J3p-$R.dat -d $DEBUG $BACKGROUND
132 fi
133 if [[ ! -f $WORKDIR/J4p.dat ]]; then
134 eval $EXECUTOR JMakePDF -F4 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J4p-$R.dat -d $DEBUG $BACKGROUND
135 fi
136 fi
137 done
138
139 if [[ ! -f $WORKDIR/J5p.dat ]]; then
140 eval $EXECUTOR JMakePDF -F5 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J5p.dat -d $DEBUG $BACKGROUND
141 fi
142
143 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 \
144 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
145 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 \
146 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 \
147 170.0 190.0 210.0 230.0 250.0; do
148
149 if (( $R <= $RMAX_M )); then
150
151 if [[ ! -f $WORKDIR/J6p.dat ]]; then
152 eval $EXECUTOR JMakePDF -F6 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J6p-$R.dat -d $DEBUG $BACKGROUND
153 fi
154 fi
155 done
156
157 let "DMAX_M = ${RMAX_M}*1.5"
158
159 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 \
160 120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
161
162 if (( $D <= $DMAX_M )); then
163 if [[ ! -f $WORKDIR/J12p.dat ]]; then
164 eval $EXECUTOR JMakePDG -F12 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J12p-$D.dat -d $DEBUG $BACKGROUND
165 fi
166 fi
167 done
168
169 if [[ ! -f $WORKDIR/J13p.dat ]]; then
170 eval $EXECUTOR JMakePDG -F13 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J13p.dat -d $DEBUG $BACKGROUND
171 fi
172
173 let "DMAX_M = ${RMAX_M}*1.5"
174
175 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 \
176 120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 \
177 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
178
179 if (( $D <= $DMAX_M )); then
180 if [[ ! -f $WORKDIR/J14p.dat ]]; then
181 eval $EXECUTOR JMakePDG -F14 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J14p-$D.dat -d $DEBUG $BACKGROUND
182 fi
183 fi
184 done
185
186 if [[ ! -f $WORKDIR/J23p.dat ]]; then
187 eval $EXECUTOR JMakePD0 -F23 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J23p.dat -d $DEBUG $BACKGROUND
188 fi
189 if [[ ! -f $WORKDIR/J24p.dat ]]; then
190 eval $EXECUTOR JMakePD0 -F24 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J24p.dat -d $DEBUG $BACKGROUND
191 fi
192
193 if [[ "$BACKGROUND" != "" ]]; then
194 wait
195 fi
196 fi
197fi
198
199
200if (( $MERGE_PDF )); then
201
202 check_process JMergePDF pgrep
203
204 if [[ ! -f $WORKDIR/J3p.dat ]]; then
205
206 FILE_LIST=(`echo $WORKDIR/J3p-*.dat`)
207
208 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J3p.dat -d $DEBUG $BACKGROUND
209 fi
210
211 if [[ ! -f $WORKDIR/J4p.dat ]]; then
212
213 FILE_LIST=(`echo $WORKDIR/J4p-*.dat`)
214
215 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J4p.dat -d $DEBUG $BACKGROUND
216 fi
217
218 if [[ ! -f $WORKDIR/J6p.dat ]]; then
219
220 FILE_LIST=(`echo $WORKDIR/J6p-*.dat`)
221
222 eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J6p.dat -d $DEBUG $BACKGROUND
223 fi
224
225 if [[ ! -f $WORKDIR/J12p.dat ]]; then
226
227 FILE_LIST=(`echo $WORKDIR/J12p-*.dat`)
228
229 eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J12p.dat -d $DEBUG $BACKGROUND
230 fi
231
232 if [[ ! -f $WORKDIR/J14p.dat ]]; then
233
234 FILE_LIST=(`echo $WORKDIR/J14p-*.dat`)
235
236 eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J14p.dat -d $DEBUG $BACKGROUND
237 fi
238
239 if [[ "$BACKGROUND" != "" ]]; then
240 wait
241 fi
242
243 if [[ ! -f $WORKDIR/J113p.dat ]]; then
244
245 eval $EXECUTOR JMakePDE -F $WORKDIR/J%p.dat -o $WORKDIR/J113p.dat -T $TTS_NS -d $DEBUG $BACKGROUND
246 fi
247
248 if [[ "$BACKGROUND" != "" ]]; then
249 wait
250 fi
251fi
252
253
254if (( $MAKE_CDF )); then
255
256 check_process JMakeCDF JMakeCDG pgrep
257
258 if [[ ! -f $WORKDIR/I1p.dat ]]; then
259 eval $EXECUTOR JMakeCDF -f $WORKDIR/J1p.dat -e 1e-5 -o $WORKDIR/I1p.dat -d $DEBUG $BACKGROUND
260 fi
261 if [[ ! -f $WORKDIR/I2p.dat ]]; then
262 eval $EXECUTOR JMakeCDF -f $WORKDIR/J2p.dat -e 1e-4 -o $WORKDIR/I2p.dat -d $DEBUG $BACKGROUND
263 fi
264 if [[ ! -f $WORKDIR/I5p.dat ]]; then
265 eval $EXECUTOR JMakeCDF -f $WORKDIR/J5p.dat -e 1e-5 -o $WORKDIR/I5p.dat -d $DEBUG $BACKGROUND
266 fi
267 if [[ ! -f $WORKDIR/I6p.dat ]]; then
268 eval $EXECUTOR JMakeCDF -f $WORKDIR/J6p.dat -e 1e-5 -o $WORKDIR/I6p.dat -d $DEBUG $BACKGROUND
269 fi
270 if [[ ! -f $WORKDIR/I12p.dat ]]; then
271 eval $EXECUTOR JMakeCDG -f $WORKDIR/J12p.dat -e 1e-5 -o $WORKDIR/I12p.dat -d $DEBUG $BACKGROUND
272 fi
273 if [[ ! -f $WORKDIR/I13p.dat ]]; then
274 eval $EXECUTOR JMakeCDG -f $WORKDIR/J13p.dat -e 1e-5 -o $WORKDIR/I13p.dat -d $DEBUG $BACKGROUND
275 fi
276 if [[ ! -f $WORKDIR/I14p.dat ]]; then
277 eval $EXECUTOR JMakeCDG -f $WORKDIR/J14p.dat -e 1e-5 -o $WORKDIR/I14p.dat -d $DEBUG $BACKGROUND
278 fi
279
280 if [[ "$BACKGROUND" != "" ]]; then
281 wait
282 fi
283fi
284
285if (( $CLEAN )); then
286 if ( rm -f $WORKDIR/J*p-*.dat ); then; fi
287fi
288
289status "End $script"