-
Notifications
You must be signed in to change notification settings - Fork 116
Expand file tree
/
Copy pathrunBackgroundScripts.sh
More file actions
executable file
·215 lines (184 loc) · 6.62 KB
/
runBackgroundScripts.sh
File metadata and controls
executable file
·215 lines (184 loc) · 6.62 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#!/bin/bash
#bash variables
FILE="";
EXT="auto"; #extensiom for all folders and files created by this script
PROCS="ggh"
CATS="UntaggedTag_0,UntaggedTag_1,UntaggedTag_2,UntaggedTag_3,UntaggedTag_4,VBFTag_0,VBFTag_1,VBFTag_2,VHHadronicTag,VHTightTag,VHLooseTag"
SCALES="HighR9EE,LowR9EE,HighR9EB,LowR9EB"
SMEARS="HighR9EE,LowR9EE,HighR9EB,LowR9EB" #DRY RUN
FTESTONLY=0
PSEUDODATAONLY=0
PSEUDODATADAT=""
SIGFILE=""
BKGPLOTSONLY=0
SEED=0
INTLUMI=1
ISDATA=0
UNBLIND=0
BATCH=""
QUEUE=""
YEAR="2016"
CATOFFSET=0
PLOTDIR=""
usage(){
echo "The script runs background scripts:"
echo "options:"
echo "-h|--help)"
echo "-i|--inputFile)"
echo "-p|--procs ) (default= ggh)"
echo "-f|--flashggCats) (default= UntaggedTag_0,UntaggedTag_1,UntaggedTag_2,UntaggedTag_3,UntaggedTag_4,VBFTag_0,VBFTag_1,VBFTag_2,TTHHadronicTag,TTHLeptonicTag,VHHadronicTag,VHTightTag,VHLooseTag,VHEtTag)"
echo "--ext) (default= auto)"
echo "--catOffset) "
echo "--fTestOnly) "
echo "--pseudoDataOnly) "
echo "--pseudoDataDat)"
echo "--sigFile) "
echo "--bkgPlotsOnly)"
echo "--seed) for pseudodata random number gen seed (default $SEED))"
echo "--intLumi) specified in fb^-{1} (default $INTLUMI)) "
echo "--year) dataset year (default $YEAR)) "
echo "--isData) specified in fb^-{1} (default $DATA)) "
echo "--unblind) specified in fb^-{1} (default $UNBLIND)) "
echo "--batch) which batch system to use (None (''),HTCONDOR,IC) (default '$BATCH')) "
echo "--queue) queue to submit jobs to (specific to batch))"
echo "--pdir) directory where to put the plots)"
}
#------------------------------ parsing
# options may be followed by one colon to indicate they have a required argument
if ! options=$(getopt -u -o hi:p:f: -l help,inputFile:,procs:,flashggCats:,ext:,catOffset:,fTestOnly,pseudoDataOnly,bkgPlotsOnly,pseudoDataDat:,sigFile:,seed:,intLumi:,year:,unblind,isData,batch:,queue:,pdir: -- "$@")
then
# something went wrong, getopt will put out an error message for us
exit 1
fi
set -- $options
while [ $# -gt 0 ]
do
case $1 in
-h|--help) usage; exit 0;;
-i|--inputFile) FILE=$2; shift ;;
-p|--procs) PROCS=$2; shift ;;
-f|--flashggCats) CATS=$2; shift ;;
--ext) EXT=$2; echo "test" ; shift ;;
--catOffset) CATOFFSET=$2; shift ;;
--fTestOnly) FTESTONLY=1; echo "ftest" ;;
--pseudoDataOnly) PSEUDODATAONLY=1;;
--pseudoDataDat) PSEUDODATADAT=$2; shift;;
--sigFile) SIGFILE=$2; shift;;
--bkgPlotsOnly) BKGPLOTSONLY=1;;
--seed) SEED=$2; shift;;
--intLumi) INTLUMI=$2; shift;;
--year) YEAR=$2; shift;;
--isData) ISDATA=1;;
--unblind) UNBLIND=1;;
--batch) BATCH=$2; shift;;
--queue) QUEUE=$2; shift;;
--pdir) PLOTDIR=$2; shift;;
(--) shift; break;;
(-*) usage; echo "$0: error - unrecognized option $1" 1>&2; usage >> /dev/stderr; exit 1;;
(*) break;;
esac
shift
done
OUTDIR="outdir_${EXT}"
if [[ $PLOTDIR == "" ]]; then
PLOTDIR=$OUTDIR
fi
echo "[INFO] outdir is $OUTDIR, plotdir is $PLOTDIR INTLUMI $INTLUMI"
if [ $ISDATA == 1 ]; then
DATAEXT="-Data"
fi
echo "INTLUMI is $INTLUMI, YEAR is $YEAR"
OUTDIR="outdir_${EXT}"
mkdir -p $OUTDIR
mkdir -p $PLOTDIR
if [ $FTESTONLY == 0 -a $PSEUDODATAONLY == 0 -a $BKGPLOTSONLY == 0 ]; then
#IF not particular script specified, run all!
FTESTONLY=1
PSEUDODATAONLY=1
BKGPLOTSONLY=1
fi
if [[ $BATCH == "IC" ]]; then
BATCHQUERY=qstat
QUEUE="hep.q"
echo "[INFO] Batch = $BATCH, using QUEUE = $QUEUE"
fi
if [[ $BATCH == "HTCONDOR" ]]; then
BATCHQUERY=condor_q
if [[ $QUEUE == "" ]]; then
QUEUE=espresso
echo "[INFO] Batch = $BATCH, QUEUE not specified. Using QUEUE = $QUEUE"
fi
else
echo "[INFO] Batch = $BATCH, Using QUEUE = $QUEUE"
fi
####################################################
################## PSEUDODATAONLY ###################
####################################################
if [ $PSEUDODATAONLY == 1 ] && [ $ISDATA == 0 ]; then
mkdir -p $OUTDIR/pseudoData
echo "--------------------------------------"
echo "Running Pseudodata"
echo "--> Create fake data by fitting simulations, throwing toys and adding datasets"
echo "--> generating $INTLUMI fb^{-1} of pseudodata."
echo "--------------------------------------"
echo " ./bin/pseudodataMaker -i $PSEUDODATADAT --pseudodata 1 --plotdir $OUTDIR/pseudoData -f $CATS --seed $SEED --intLumi $INTLUMI "
./bin/pseudodataMaker -i $PSEUDODATADAT --pseudodata 1 --plotdir $OUTDIR/pseudoData -f $CATS --seed $SEED --intLumi $INTLUMI -y $OUTDIR/pseudoData/yields_pseudodata.txt
FILE=$OUTDIR/pseudoData/pseudoWS.root
fi
####################################################
################## F-TEST ###################
####################################################
if [ $FTESTONLY == 1 ]; then
echo "--------------------------------------"
echo "Running Background F-Test"
echo "-->Create background model"
echo "--------------------------------------"
if [ $UNBLIND == 1 ]; then
OPT=" --unblind"
fi
if [ $ISDATA == 0 ]; then
FILE=$OUTDIR/pseudoData/pseudoWS.root
fi
if [ $ISDATA == 1 ]; then
OPT=" --isData 1"
fi
mkdir -p "${PLOTDIR}/bkgfTest${DATAEXT}"
if test -f "/afs/cern.ch/user/g/gpetrucc/php/index.php"; then
cp "/afs/cern.ch/user/g/gpetrucc/php/index.php" "${PLOTDIR}/bkgfTest${DATAEXT}"
elif test -f "/cmshome/dimarcoe/php/index.php"; then
cp "/cmshome/dimarcoe/php/index.php" "${PLOTDIR}/bkgfTest${DATAEXT}"
fi
echo " ./bin/fTest -i $FILE --saveMultiPdf $OUTDIR/CMS-HGG_multipdf_$EXT_$CATS.root -D $OUTDIR/bkgfTest$DATAEXT -f $CATS $OPT --year $YEAR --catOffset $CATOFFSET"
./bin/fTest -i $FILE --saveMultiPdf $OUTDIR/CMS-HGG_multipdf_$EXT_$CATS.root -D $OUTDIR/bkgfTest$DATAEXT -P $PLOTDIR/bkgfTest$DATAEXT -f $CATS $OPT --year $YEAR --catOffset $CATOFFSET
OPT=""
fi
####################################################
################### BKGPLOTS ###################
####################################################
if [ $BKGPLOTSONLY == 1 ]; then
echo "--------------------------------------"
echo "-->Create Background Validation plots"
echo "--------------------------------------"
if [ "$SIGFILE" != "" ]; then
SIG="-s $SIGFILE"
fi
if [ $UNBLIND == 1 ]; then
OPT=" --unblind"
fi
echo "./scripts/subBkgPlots.py -b CMS-HGG_multipdf_$EXT.root -d $OUTDIR/bkgPlots$DATAEXT -S 13 --isMultiPdf --useBinnedData --doBands --massStep 1 $SIG -L 100 -H 180 -f $CATS -l $CATS --intLumi $INTLUMI $OPT --batch $BATCH -q $QUEUE --year $YEAR"
./scripts/subBkgPlots.py -b CMS-HGG_multipdf_$EXT.root -d $OUTDIR/bkgPlots$DATAEXT -S 13 --isMultiPdf --useBinnedData --doBands --massStep 1 $SIG -L 100 -H 180 -f $CATS -l $CATS --intLumi $INTLUMI $OPT --batch $BATCH -q $QUEUE --year $YEAR
# FIX THIS FOR CONDOR:
#continueLoop=1
#while (($continueLoop==1))
#do
# sleep 10
# $BATCHQUERY
# $BATCHQUERY >qstat_out.txt
# ((number=`cat qstat_out.txt | wc -l `))
# echo $number
# if (($number==0)) ; then
# ((continueLoop=0))
# fi
#done
OPT=""
fi