Skip to content

Commit

Permalink
status on 020316
Browse files Browse the repository at this point in the history
  • Loading branch information
Louie committed Mar 2, 2016
1 parent 39f4e43 commit c2b0a7a
Show file tree
Hide file tree
Showing 31 changed files with 1,517 additions and 606 deletions.
11 changes: 11 additions & 0 deletions Background/runBackgroundScripts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,17 @@ OPT=" --unblind"
fi
echo "./scripts/subBkgPlots.py -b CMS-HGG_multipdf_$EXT.root -d $OUTDIR/bkgPlots$DATAEXT -S 13 --isMultiPdf --useBinnedData --doBands --massStep 2 $SIG -L 100 -H 180 -f $CATS -l $CATS --intLumi $INTLUMI $OPT --batch IC -q hepmedium.q #for now"
./scripts/subBkgPlots.py -b CMS-HGG_multipdf_$EXT.root -d $OUTDIR/bkgPlots$DATAEXT -S 13 --isMultiPdf --useBinnedData --doBands --massStep 2 $SIG -L 100 -H 180 -f $CATS -l $CATS --intLumi $INTLUMI $OPT --batch IC -q hepmedium.q #for now
continueLoop=0
while (($continueLoop==0))
do
sleep 10
qstat
qstat >qstat_out.txt
((number= `cat qstat_out.txt | wc -l `))
if (( $number==0)) ; then
((continueLoop=0))
fi
done

OPT=""
fi
Expand Down
2 changes: 1 addition & 1 deletion Background/test/makeBkgPlots.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1048,7 +1048,7 @@ int main(int argc, char* argv[]){
cmslatex->SetNDC();
std::cout << "[INFO] intLumi " << intLumi << std::endl;
//cmslatex->drawlatex(0.2,0.85,form("#splitline{cms preliminary}{#sqrt{s} = %dtev l = %2.3ffb^{-1}}",sqrts,intlumi));
cmslatex->DrawLatex(0.25,0.85,Form("#splitline{}{#sqrt{s} = %dTeV L = %2.3ffb^{-1}}",sqrts,intLumi));
cmslatex->DrawLatex(0.25,0.85,Form("#splitline{}{#sqrt{s} = %dTeV L = %2.1ffb^{-1}}",sqrts,intLumi));
latex->DrawLatex(0.25,0.78,catLabel.c_str());
outWS->import(*lumi,RecycleConflictNodes());

Expand Down
566 changes: 259 additions & 307 deletions Background/test/makeFakeData.cpp

Large diffs are not rendered by default.

315 changes: 206 additions & 109 deletions Datacard/makeParametricModelDatacardFLASHgg.py

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions HggAnalysis_290216.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FILE=/vols/cms04/szenz/ggh_sig_jobs_120_130_62/output_GluGluHToGG_M120_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/ggh_sig_jobs_120_130_62/output_GluGluHToGG_M130_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/ggh_sig_jobs_125_62/output_GluGluHToGG_M125_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_120_130_62/output_ttHJetToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_120_130_62/output_ttHJetToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_125_62/output_ttHJetToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_120_130_62/output_VBFHToGG_M120_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_120_130_62/output_VBFHToGG_M130_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_125_62/output_VBFHToGG_M125_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_120_130_62/output_VHToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_120_130_62/output_VHToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_120_130_62/output_VHToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_120_130_62/output_VHToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root

EXT=HggAnalysis_290216
PROCS=ggh,vbf,tth,wh,zh
CATS=UntaggedTag_0,UntaggedTag_1,UntaggedTag_2,UntaggedTag_3,VBFTag_0,VBFTag_1,TTHHadronicTag,TTHLeptonicTag
OUTDIR=outdir_$EXT
SMEARS="HighR9EE,LowR9EE,HighR9EB,LowR9EB"
SCALES="HighR9EE,LowR9EE,HighR9EB,LowR9EB"
INTLUMI=2.69
DATA=/vols/cms04/szenz/data_jobs_57/DoubleEG.root
FILE125=/vols/cms04/szenz/tth_sig_jobs_125_62/output_ttHJetToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_125_62/output_VBFHToGG_M125_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/ggh_sig_jobs_125_62/output_GluGluHToGG_M125_13TeV_amcatnloFXFX_pythia8.root
FILEEFFACC=/vols/cms02/lc1113/FinalFits_Feb15_2/CMSSW_7_1_5/src/flashggFinalFit/data/samples/290216/output_VBFHToGG_M125_13TeV_amcatnlo_pythia8._reduced.root,/vols/cms04/szenz/ggh_sig_jobs_120_130_62/output_GluGluHToGG_M120_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/ggh_sig_jobs_120_130_62/output_GluGluHToGG_M130_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/ggh_sig_jobs_125_62/output_GluGluHToGG_M125_13TeV_amcatnloFXFX_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_120_130_62/output_ttHJetToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_120_130_62/output_ttHJetToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/tth_sig_jobs_125_62/output_ttHJetToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_120_130_62/output_VBFHToGG_M120_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/vbf_sig_jobs_120_130_62/output_VBFHToGG_M130_13TeV_amcatnlo_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_120_130_62/output_VHToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_120_130_62/output_VHToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/wh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_120_130_62/output_VHToGG_M120_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_120_130_62/output_VHToGG_M130_13TeV_amcatnloFXFX_madspin_pythia8.root,/vols/cms04/szenz/zh_sig_jobs_125_62/output_VHToGG_M125_13TeV_amcatnloFXFX_madspin_pythia8.root
SEED=0
echo "SEED = $SEED"


#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --batch IC --intLumi $INTLUMI --signalOnly
#./makeEffAcc.py $FILEEFFACC Signal/outdir_${EXT}/sigfit/effAccCheck_all.root
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --backgroundOnly --dataFile $DATA --isData --batch IC
#cd Background && ./bin/makeFakeData -b CMS-HGG_multipdf_${EXT}.root -s $CMSSW_BASE/src/flashggFinalFit/Signal/outdir_$EXT/CMS-HGG_sigfit_${EXT}.root -o CMS-HGG_multipdf_${EXT}_FAKE_${SEED}.root --isMultiPdf --useBinnedData -S 13 -f $CATS --seed $SEED && cp CMS-HGG_multipdf_${EXT}_FAKE_${SEED}.root CMS-HGG_multipdf_${EXT}_FAKE.root && cd -
#./runFinalFitsScripts.sh -i $FILE125 -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --datacardOnly --dataFile $DATA --isData --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --dataFile $DATA --isData --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --dataFile $DATA --isFakeData --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --dataFile $DATA --isFakeData --combinePlotsOnly --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --combinePlotsOnly --dataFile $DATA --isFakeData --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --combinePlotsOnly --dataFile $DATA --isData --batch IC

#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --backgroundOnly --pseudoDataDat $samples --batch IC
#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --pseudoDataDat $samples --batch IC

#./yieldsTable.py -w $FILE125 -s Signal/signumbers.txt -u Background/CMS-HGG_multipdf_$EXT.root --factor 1.030651341
##mv Plots/FinalResults/combineJobs13TeV_$EXT Plots/FinalResults/combineJobs13TeV_${EXT}_${SEED}
#cp -r /home/hep/lc1113/public_html/outdir_HggAnalysis_250216/combinePlots /home/hep/lc1113/public_html/outdir_HggAnalysis_250216/combinePlots_$SEED
#cp Background/BkgPlots/*{png,pdf} /home/hep/lc1113/public_html/outdir_HggAnalysis_250216/combinePlots_$SEED/.


#### UNBLINDING ###########

#./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --backgroundOnly --dataFile $DATA --isData --batch IC --unblind
./runFinalFitsScripts.sh -i $FILE -p $PROCS -f $CATS --ext $EXT --intLumi $INTLUMI --combineOnly --combinePlotsOnly --dataFile $DATA --isData --batch IC

55 changes: 50 additions & 5 deletions Plots/FinalResults/combineHarvester.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def getFilesFromDatacard(datacard):
parser.add_option("--S0",default=False,action="store_true",help="Stats only")
parser.add_option("--catsMap",default="")
parser.add_option("--nBins",default=7)
parser.add_option("--mhRange",default=-1)
parser.add_option("--batch",default="LSF",help="Which batch system to use (LSF,IC)")
parser.add_option("--catRanges",default="")
parser.add_option("--prefix",default="./")
Expand Down Expand Up @@ -184,12 +185,17 @@ def getSortedCats():
f = open(opts.datacard)
for l in f.readlines():
if l.startswith('bin'):
print l
els = l.split()[1:]
print els
for el in els:
cats.add(el)
break

myarr = sorted(cats, key=lambda x: (x[:3],int(x.split('cat')[1].split('_')[0])), reverse=True)
print " cats[0] ", cats , " cats[:]"
#myarr = sorted(cats, key=lambda x: (x[:3],int(x.split('cat')[1].split('_')[0])), reverse=True)
#myarr = sorted(cats, key=lambda x: (x[:3],x.split('_')[0]), reverse=True)
myarr=sorted(cats)
print "[INFO] -->categories", myarr
if opts.verbose: print myarr
return myarr
Expand All @@ -201,7 +207,8 @@ def removeRelevantDiscreteNuisances():
for line in card.readlines():
if 'discrete' in line:
for cat in opts.splitChannels:
catString = '_'+cat.split('cat')[1]
#catString = '_'+cat.split('cat')[1]
catString = '_'+cat
if catString in line: newCard.write(line)
else: newCard.write(line)
card.close()
Expand Down Expand Up @@ -231,6 +238,19 @@ def splitCard():
opts.datacard = splitCardName
removeRelevantDiscreteNuisances()


def makeFloatMHCard():
print "LC DEBUG remake datacard opts.mhRange " , opts.mhRange
olddatacard=opts.datacard
opts.datacard=olddatacard.replace(".txt",".mhRange.txt")
f1 = open(olddatacard, "r")
f2 = open(opts.datacard, "w")
for line in f1:
f2.write(line)
f2.write("MH param %.2f %.2f"%(opts.mh, opts.mhRange))
f1.close()
f2.close()

def makeStatOnlyCard():
print "[INFO] making stats-only card"

Expand Down Expand Up @@ -382,7 +402,8 @@ def writeProfileLikelhood():
tempcardstore = opts.datacard
if opts.splitChannels: splitCard()
toysfilestore = opts.toysFile


if ("Stat" in opts.outDir) : makeStatOnlyCard()
# write
for j, mass_set in enumerate(opts.masses_per_job):
file = open('%s/sub_job%d.sh'%(opts.outDir,j),'w')
Expand Down Expand Up @@ -458,19 +479,26 @@ def writeMultiPdfChannelCompatibility():
backupcard = opts.datacard
backupdir = opts.outDir
cats = getSortedCats()
print "[DEBUG] MultiPdfChannelCompatibility cats ", cats
rmindefault = opts.muLow
rmaxdefault = opts.muHigh
print "[DEBUG] MultiPdfChannelCompatibility -- mulow, mu high ", rmindefault ," , ",rmaxdefault
catRanges = strtodict(opts.catRanges)
print "[DEBUG] MultiPdfChannelCompatibility -- catRanges ", catRanges
for cat in cats:
print "[DEBUG] MultiPdfChannelCompatibility -- loop trhoguh cats, now process : ", cat
if cat in catRanges.keys():
if opts.verbose: print " set ranges for cat %s to"%cat, catRanges[cat]
opts.muLow = catRanges[cat][0]
opts.muHigh = catRanges[cat][1]
print "[DEBUG] MultiPdfChannelCompatibility -- mu ranges for cat ", cat , " -- ", opts.muLow, " --> ", opts.muHigh
if opts.verbose: print cat
opts.splitChannels = [cat]
print "[DEBUG] MultiPdfChannelCompatibility -- about to slit card for cat ", cat
splitCard()
opts.outDir += '/'+cat
system('mkdir -p %s'%opts.outDir)
print "[DEBUG] MultiPdfChannelCompatibility -- about to write multidimfit for cat ",cat
opts.method = 'MuScan'
writeMultiDimFit()
opts.datacard = backupcard
Expand Down Expand Up @@ -603,6 +631,11 @@ def writeMultiDimFit(method=None,wsOnly=False):
makeStatOnlyCard()
if method=='MHScanNoGlob':
makeNoGlobCard()
print "DEBUG DEBUG is mh Range >1 ??? opts.mhRange" ,opts.mhRange
if (opts.mhRange>-1):
print "DEBUG DEBUG great, make the correct card from ", opts.datacard
makeFloatMHCard()
print "DEBUG DEBUG great, made the correct card ", opts.datacard
if not opts.skipWorkspace:
datacardname = os.path.basename(opts.datacard).replace('.txt','')
print 'Creating workspace for %s...'%method
Expand Down Expand Up @@ -665,7 +698,8 @@ def writeMultiDimFit(method=None,wsOnly=False):
for i in range(opts.jobs):
file = open('%s/sub_m%1.5g_job%d.sh'%(opts.outDir,getattr(opts,"mh",0.),i),'w')
writePreamble(file)
exec_line = 'combine %s -M MultiDimFit --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerAlgo migrad --algo=grid %s --points=%d --firstPoint=%d --lastPoint=%d -n %sJob%d'%(opts.datacard,combine_args[method],opts.pointsperjob*opts.jobs,i*opts.pointsperjob,(i+1)*opts.pointsperjob-1,method,i)
exec_line = 'combine %s -M MultiDimFit --cminDefaultMinimizerType Minuit2 --cminDefaultMinimizerAlgo migrad --algo=grid %s --points=%d --firstPoint=%d --lastPoint=%d -n %sJob%d'%(opts.datacard,combine_args[method],opts.pointsperjob*opts.jobs,i*opts.pointsperjob,(i+1)*opts.pointsperjob-1,method,i)
if ("FloatMH" in opts.outDir) : exec_line += " --saveSpecifiedNuis MH"
if method in par_ranges.keys(): exec_line+=" --setPhysicsModelParameterRanges %s "%(par_ranges[method])
if getattr(opts,"mh",None): exec_line += ' -m %6.2f'%opts.mh
#if opts.expected: exec_line += ' -t -1 --freezeNuisances=JetVeto_migration0,JetVeto_migration1,pdfindex_UntaggedTag_0_13TeV,pdfindex_UntaggedTag_1_13TeV,pdfindex_UntaggedTag_2_13TeV,pdfindex_UntaggedTag_3_13TeV,pdfindex_VBFTag_0_13TeV,pdfindex_VBFTag_1_13TeV'
Expand Down Expand Up @@ -742,7 +776,18 @@ def configure(config_line):
if option.startswith('pointsperjob='): opts.pointsperjob = int(option.split('=')[1])
if option.startswith('splitChannels='): opts.splitChannels = option.split('=')[1].split(',')
if option.startswith('toysFile='): opts.toysFile = option.split('=')[1]
if option.startswith('mh='): opts.mh = float(option.split('=')[1])
if option.startswith('mh='):
#opts.mh = float(option.split('=')[1])
mhStr = (option.split('=')[1])
print "DEBUG LC mhStr ", mhStr
if (len(mhStr.split(":"))>1):
print "DEBUG LC mhStr.split(:)[0] " , mhStr.split(":")[0]
print "DEBUG LC mhStr.split(:)[1] " , mhStr.split(":")[1]
opts.mh = float(mhStr.split(":")[0])
opts.mhRange = float(mhStr.split(":")[1])
else :
opts.mh = float(option.split('=')[1])

if option.startswith('poix='):
poiopt = option.split('=')[1]
if ',' in poiopt:
Expand Down
Loading

0 comments on commit c2b0a7a

Please sign in to comment.