1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#!/bin/bash
# This generates a grid file for the present choice of run_card
#
# Usage: run_genissud [para/serial]
qsub="qsub -N pythia_run -V -q madgraph"
p=0
if [ "$1" != "" ];then
p=$1
fi
if [ ! -e Cards/run_card.dat ]; then
echo "No Cards/run_card.dat found. Quitting..."
exit
fi
e1=`awk '/^[^#].*=.*ebeam1/{print $1}' Cards/run_card.dat`
e2=`awk '/^[^#].*=.*ebeam2/{print $1}' Cards/run_card.dat`
pd=`awk '/^[^#].*=.*pdlabel/{print $1}' Cards/run_card.dat`
lha=`awk '/^[^#].*=.*lhaid/{print $1}' Cards/run_card.dat`
xq=`awk '/^[^#].*=.*xqcut/{print $1}' Cards/run_card.dat`
# Remove ':s from pd
pd=${pd#\'*}
pd=${pd%*\'}
if [[ $xq -gt 2 || $xq -eq 0 ]];then
xq=2
fi
outfile=lib/issudgrid-$e1-$e2-$pd-$xq.dat
if [ "$pd" = "lhapdf" ];then
outfile=lib/issudgrid-$e1-$e2-$pd-$lha-$xq.dat
fi
if [ -e $outfile.gz ];then
echo "File $outfile.gz already exists, no need to regenerate"
exit
fi
if [[ ! -e bin/internal/gensudgrid ]];then
cd Source;make ../bin/internal/gensudgrid;cd ..
fi
echo "Generating $outfile"
main=`pwd`
rm -f myprocid running_jobs
echo $$ >> myprocid
if [ "$p" = "1" ]; then
for i in -2 -1 0 1 2 3 4 5;do
rm -f donegen$i rungen$i waitgen$i gensudgrid$i.log gensudgrid$i.pbs gen$i.log
echo '#!/bin/bash' > gensudgrid$i.pbs
touch waitgen$i
echo "cd $main;rm waitgen$i;touch rungen$i;bin/internal/gensudgrid $i > gensudgrid$i.log;rm rungen$i;touch donegen$i" >> gensudgrid$i.pbs
chmod u+x gensudgrid$i.pbs
$qsub -e gensudgrid$i.err -o gen$i.log gensudgrid$i.pbs >> running_jobs
done
t=`find ./ -name "gensudgrid*.pbs" -maxdepth 1 |wc -l`
r=`find ./ -name "rungen*" -maxdepth 1 |wc -l`
w=`find ./ -name "waitgen*" -maxdepth 1 |wc -l`
d=`find ./ -name "donegen*" -maxdepth 1 |wc -l`
echo "waiting while finishing jobs on cluster"
echo $w $r $d $t
while [[ $d -lt $t ]]; do
sleep 10
t=`find ./ -name "gensudgrid*.pbs" -maxdepth 1 |wc -l`
r=`find ./ -name "rungen*" -maxdepth 1 |wc -l`
w=`find ./ -name "waitgen*" -maxdepth 1 |wc -l`
d=`find ./ -name "donegen*" -maxdepth 1 |wc -l`
echo $w $r $d $t
done
rm -f gensudgrid*.pbs donegen*
else
for i in -2 -1 0 1 2 3 4 5;do
echo "Generating grid for parton number $i"
bin/internal/gensudgrid $i > gensudgrid$i.log
done
fi
for i in -2 -1 0 1 2 3 4 5;do
cat gensudgrid$i.log >> $outfile
gzip $outfile
rm gensudgrid$i.log
done
|