1 |
guiducci |
1.2 |
|
2 |
|
|
if [ $# -lt 1 ]; then
|
3 |
|
|
dataset="/SingleMu/Run2012B-PromptReco-v1/RECO"
|
4 |
|
|
else
|
5 |
|
|
dataset=$1
|
6 |
|
|
fi
|
7 |
|
|
if [ $# -lt 2 ]; then
|
8 |
|
|
castor=DTDPG/2012/DTNtuple/SingleMu
|
9 |
|
|
jobid=dt
|
10 |
|
|
else
|
11 |
|
|
castor=DTDPG/2012/DTNtuple_UncT0/SingleMu
|
12 |
|
|
jobid=du
|
13 |
|
|
fi
|
14 |
|
|
|
15 |
guiducci |
1.1 |
# get all runs with > 1k events from DBS
|
16 |
guiducci |
1.2 |
dbs --search --query "find run,sum(file.numevents) where dataset=$dataset" | grep -v Using | grep -v run | awk '{ if ($2 >= 1000) print $1 }' > runlist.txt
|
17 |
guiducci |
1.1 |
# get runs with running job
|
18 |
guiducci |
1.2 |
bjobs | grep -v JOBID | awk '{print $7}' | grep $jobid | sed 's/^..//' > runningjobslist.txt
|
19 |
guiducci |
1.1 |
# get runs with ntuple already created
|
20 |
guiducci |
1.2 |
rfdir /castor/cern.ch/user/g/guiducci/$castor/ | awk '{print $9}' | sed 's/^............//;s/.\{5\}$//' > donejobslist.txt
|
21 |
guiducci |
1.1 |
# generate list of runs still to process
|
22 |
|
|
L=`cat runningjobslist.txt | wc -l`
|
23 |
|
|
echo $L
|
24 |
|
|
if [[ $L -eq 0 ]]; then
|
25 |
|
|
cat runlist.txt > filt1.txt
|
26 |
|
|
else
|
27 |
|
|
awk 'NR==FNR{_[$1];next}!($1 in _)' runningjobslist.txt runlist.txt > filt1.txt
|
28 |
|
|
fi
|
29 |
|
|
awk 'NR==FNR{_[$1];next}!($1 in _)' donejobslist.txt filt1.txt > runstodo.txt
|
30 |
|
|
# submit jobs
|
31 |
guiducci |
1.2 |
if [ $# -lt 2 ]; then
|
32 |
|
|
cat runstodo.txt | while read A; do ./buildRunJob.sh $A $dataset; done
|
33 |
|
|
else
|
34 |
|
|
cat runstodo.txt | while read A; do ./buildRunJob.sh $A $dataset c; done
|
35 |
|
|
fi
|
36 |
|
|
|
37 |
guiducci |
1.1 |
# clean up
|
38 |
|
|
rm runlist.txt
|
39 |
|
|
rm runningjobslist.txt
|
40 |
|
|
rm donejobslist.txt
|
41 |
|
|
rm filt1.txt
|
42 |
|
|
rm runstodo.txt
|