parser.add_option("--metSigMin", dest="metSigMin", default=5, type="int", action="store", help="metSigMin?") parser.add_option("--metMin", dest="metMin", default=80, type="int", action="store", help="metMin?") parser.add_option("--multiIsoWP", dest="multiIsoWP", default="", type="string", action="store", help="multiIsoWP?") (options, args) = parser.parse_args() from StopsDilepton.analysis.SetupHelpers import allChannels from StopsDilepton.analysis.defaultAnalysis import setup, regions, bkgEstimators setup.analysisOutputDir='/afs/hephy.at/data/rschoefbeck01/StopsDilepton/results/test3' setup.parameters['metMin'] = options.metMin setup.parameters['metSigMin'] = options.metSigMin if options.multiIsoWP!="": multiIsoWPs = ['VL', 'L', 'M', 'T', 'VT'] assert options.multiIsoWP in multiIsoWPs, "MultiIsoWP not defined. Use one of %s"%",".join(multiIsoWPs) from StopsDilepton.tools.objectSelection import multiIsoLepString setup.externalCuts.append(multiIsoLepString(options.multiIsoWP, ('l1_index','l2_index'))) setup.prefixes.append('multiIso'+options.multiIsoWP) for e in bkgEstimators: e.initCache(setup.defaultCacheDir()) setup.verbose=True #from multi_estimate import multi_estimate from StopsDilepton.analysis.MCBasedEstimate import MCBasedEstimate from StopsDilepton.samples.cmgTuples_FastSimT2tt_mAODv2_25ns_1l_postProcessed import * signalEstimators = [ MCBasedEstimate(name=s['name'], sample={channel:s for channel in allChannels}, cacheDir=setup.defaultCacheDir() ) for s in signals_T2tt ] #estimate = signals_T2tt[0]['estimator'] #isSignal=True #regions=regions[:1] #bkgEstimators=[]
sample.reduceFiles(to = 1) if not args.noData: data_sample.style = styles.errorStyle( ROOT.kBlack ) lumi_scale = data_sample.lumi/1000 for sample in mc: sample.style = styles.fillStyle( sample.color) from StopsDilepton.tools.user import plot_directory # official PU reweighting weight = lambda data:data.weight from StopsDilepton.tools.objectSelection import multiIsoLepString multiIsoWP = multiIsoLepString('VT','VT', ('l1_index','l2_index')) cuts=[ # ("leadingLepIsTight", "l1_miniRelIso<0.4"), # ("EE", "abs(l1_eta)>1.5&&abs(l2_eta)>1.5"), # ("EB", "(abs(l1_eta)<1.5&&abs(l2_eta)>1.5||abs(l1_eta)>1.5&&abs(l2_eta)<1.5)"), ("BB", "abs(l1_eta)<1.5&&abs(l2_eta)<1.5"), ("multiIsoWP", "l1_index>=0&&l1_index<1000&&l2_index>=0&&l2_index<1000&&"+multiIsoWP), ("njet2", "nJetGood>=2"), ("nbtag1", "nBTag>=1"), # ("nbtag0", "nBTag==0"), ("mll20", "dl_mass>20"), ("met80", "met_pt>80"), ("metSig5", "met_pt/sqrt(ht)>5"), ("dPhiJet0-dPhiJet1", "cos(met_phi-JetGood_phi[0])<cos(0.25)&&cos(met_phi-JetGood_phi[1])<cos(0.25)"), ("lepVeto", "nGoodMuons+nGoodElectrons==2"),
setup.parameters['metMin'] = options.metMin setup.parameters['metSigMin'] = options.metSigMin # Logging import StopsDilepton.tools.logger as logger logger = logger.get_logger(options.logLevel, logFile = None ) import RootTools.core.logger as logger_rt logger_rt = logger_rt.get_logger(options.logLevel, logFile = None ) allRegions = set(defaultRegions + reducedRegionsA + reducedRegionsB + reducedRegionsAB + reducedRegionsNew + reducedRegionsC) if options.multiIsoWP!="": multiIsoWPs = ['VL', 'L', 'M', 'T', 'VT'] wpMu, wpEle=options.multiIsoWP.split(',') from StopsDilepton.tools.objectSelection import multiIsoLepString setup.externalCuts.append(multiIsoLepString(wpMu, wpEle, ('l1_index','l2_index'))) setup.prefixes.append('multiIso'+options.multiIsoWP.replace(',','')) if options.relIso04>0: setup.externalCuts.append("&&".join(["LepGood_relIso04["+ist+"]<"+str(options.relIso04) for ist in ('l1_index','l2_index')])) setup.prefixes.append('relIso04sm'+str(int(100*options.relIso04))) for e in allEstimators: e.initCache(setup.defaultCacheDir()) setup.verbose=True #from multi_estimate import multi_estimate from StopsDilepton.analysis.MCBasedEstimate import MCBasedEstimate from StopsDilepton.samples.cmgTuples_FastSimT2tt_mAODv2_25ns_postProcessed import * from StopsDilepton.samples.cmgTuples_FullSimTTbarDM_mAODv2_25ns_postProcessed import *
from StopsDilepton.tools.helpers import getVarValue, getYieldFromChain maxN = -1 #Define chains for signals and backgrounds samples = [ DY_HT_LO, TTJets_Lep, TTZ, TTXNoZ, singleTop, diBoson, WZZ, QCD_Mu5EMbcToE, TTbarDMJets_pseudoscalar_Mchi1_Mphi10, TTbarDMJets_pseudoscalar_Mchi10_Mphi100 # Sample.fromFiles(name="T2tt_450_0", treeName="Events", isData=False, color=ROOT.kBlack, texName="T2tt(450,0)", files=['/scratch/rschoefbeck/cmgTuples/postProcessed_Fall15_mAODv2/dilep/T2tt/T2tt_450_0.root'], maxN = maxN), # Sample.fromDirectory(name="TTJets_Lep", treeName="Events", isData=False, color=7, texName="t#bar{t} + Jets (lep)", directory=['/scratch/rschoefbeck/cmgTuples/fromTom/postProcessed_Fall15_mAODv2/dilep/TTJets_DiLepton_comb/'], maxN = maxN) ] QCD_Mu5EMbcToE.name = 'QCD' TTbarDMJets_pseudoscalar_Mchi1_Mphi10.name = "10/1" TTbarDMJets_pseudoscalar_Mchi10_Mphi100.name = "100/10" from StopsDilepton.tools.objectSelection import multiIsoLepString multiIsoWPVTVT = multiIsoLepString('VT','VT', ('l1_index','l2_index')) multiIsoWPMT = multiIsoLepString('M','T', ('l1_index','l2_index')) relIso04sm12Cut = "&&".join(["LepGood_relIso04["+ist+"]<0.12" for ist in ('l1_index','l2_index')]) cuts=[ ("==2 leptons", "nGoodMuons+nGoodElectrons==2"), ("opposite sign","isOS==1"), ("m(ll)>20", "dl_mass>20"), ("|m(ll) - mZ|>15 for SF","( (isMuMu==1||isEE==1)&&abs(dl_mass-91.2)>=15 || isEMu==1 )"), (">=2 jets", "(Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id))>=2"), (">=1 b-tags (CSVv2)", "Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id&&JetGood_btagCSV>0.890)>=1"), ("MET>80", "met_pt>80"), ("MET/sqrt(HT)>5", "met_pt/sqrt(Sum$(JetGood_pt*(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id)))>5"), ("dPhi(JetGood_1,2|MET)>0.25", "cos(met_phi-JetGood_phi[0])<cos(0.25)&&cos(met_phi-JetGood_phi[1])<cos(0.25)"), ("MT2(ll) > 140", "dl_mt2ll>140"), # ("looseLeptonVeto", "Sum$(LepGood_pt>15&&LepGood_miniRelIso<0.4)==2"),
sample.reduceFiles(to=1) if not args.noData: data_sample.style = styles.errorStyle(ROOT.kBlack) lumi_scale = data_sample.lumi / 1000 for sample in mc: sample.style = styles.fillStyle(sample.color) from StopsDilepton.tools.user import plot_directory # official PU reweighting weight = lambda data: data.weight from StopsDilepton.tools.objectSelection import multiIsoLepString multiIsoWP = multiIsoLepString('VT', 'VT', ('l1_index')) preselection = [ ("multiIsoWP", "l1_index>=0&&l1_index<1000&&" + multiIsoWP), ("dPhiJet0-dPhiJet1", "cos(met_phi-JetGood_phi[0])<cos(0.25)&&cos(met_phi-JetGood_phi[1])<cos(0.25)" ), ("lepVeto", "nGoodMuons+nGoodElectrons==1"), ("looseLeptonVeto", "Sum$(LepGood_pt>15&&LepGood_miniRelIso<0.4)==1"), ] cuts = [ ("njet2", "nJetGood>=2"), ("nbtag1", "nBTag>=1"), ("nbtag0", "nBTag==0"), ("met80", "met_pt>80"),
from StopsDilepton.tools.helpers import getVarValue, getYieldFromChain maxN = -1 #Define chains for signals and backgrounds samples = [ DY_HT_LO, TTJets_Lep, TTZ, TTXNoZ, singleTop, diBoson, WZZ, QCD_Mu5EMbcToE, TTbarDMJets_pseudoscalar_Mchi1_Mphi10, TTbarDMJets_pseudoscalar_Mchi10_Mphi100 # Sample.fromFiles(name="T2tt_450_0", treeName="Events", isData=False, color=ROOT.kBlack, texName="T2tt(450,0)", files=['/scratch/rschoefbeck/cmgTuples/postProcessed_Fall15_mAODv2/dilep/T2tt/T2tt_450_0.root'], maxN = maxN), # Sample.fromDirectory(name="TTJets_Lep", treeName="Events", isData=False, color=7, texName="t#bar{t} + Jets (lep)", directory=['/scratch/rschoefbeck/cmgTuples/fromTom/postProcessed_Fall15_mAODv2/dilep/TTJets_DiLepton_comb/'], maxN = maxN) ] QCD_Mu5EMbcToE.name = 'QCD' TTbarDMJets_pseudoscalar_Mchi1_Mphi10.name = "10/1" TTbarDMJets_pseudoscalar_Mchi10_Mphi100.name = "100/10" from StopsDilepton.tools.objectSelection import multiIsoLepString multiIsoWPVTVT = multiIsoLepString('VT', 'VT', ('l1_index', 'l2_index')) multiIsoWPMT = multiIsoLepString('M', 'T', ('l1_index', 'l2_index')) relIso04sm12Cut = "&&".join( ["LepGood_relIso04[" + ist + "]<0.12" for ist in ('l1_index', 'l2_index')]) cuts = [ ("==2 leptons", "nGoodMuons+nGoodElectrons==2"), ("opposite sign", "isOS==1"), ("m(ll)>20", "dl_mass>20"), ("|m(ll) - mZ|>15 for SF", "( (isMuMu==1||isEE==1)&&abs(dl_mass-91.2)>=15 || isEMu==1 )"), (">=2 jets", "(Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id))>=2"), (">=1 b-tags (CSVv2)", "Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id&&JetGood_btagCSV>0.890)>=1" ), ("MET>80", "met_pt>80"),
help="multiIsoWP?") (options, args) = parser.parse_args() from StopsDilepton.analysis.SetupHelpers import allChannels from StopsDilepton.analysis.defaultAnalysis import setup, regions, bkgEstimators setup.verbose = False setup.analysisOutputDir = '/afs/hephy.at/data/rschoefbeck01/StopsDilepton/results/test3' setup.parameters['metMin'] = options.metMin setup.parameters['metSigMin'] = options.metSigMin if options.multiIsoWP != "": multiIsoWPs = ['VL', 'L', 'M', 'T', 'VT'] assert options.multiIsoWP in multiIsoWPs, "MultiIsoWP not defined. Use one of %s" % ",".join( multiIsoWPs) from StopsDilepton.tools.objectSelection import multiIsoLepString setup.externalCuts.append( multiIsoLepString(options.multiIsoWP, ('l1_index', 'l2_index'))) setup.prefixes.append('multiIso' + options.multiIsoWP) for e in bkgEstimators: e.initCache(setup.defaultCacheDir()) from StopsDilepton.samples.cmgTuples_FastSimT2tt_mAODv2_25ns_1l_postProcessed import * from StopsDilepton.analysis.MCBasedEstimate import MCBasedEstimate from StopsDilepton.analysis.u_float import u_float from math import sqrt ##https://twiki.cern.ch/twiki/bin/viewauth/CMS/SUSYSignalSystematicsRun2 from StopsDilepton.tools.btagEfficiency import btagWeightNames_FS_1b, btagWeightNames_1b from StopsDilepton.tools.localInfo import releaseLocation71XC from StopsDilepton.tools.cardFileWriter import cardFileWriter limitPrefix = 'flavSplit_almostAllReg'
setup.verbose = False setup.parameters['metMin'] = options.metMin setup.parameters['metSigMin'] = options.metSigMin if options.regions == "defaultRegions": regions = defaultRegions elif options.regions == "reducedRegionsA": regions = reducedRegionsA elif options.regions == "reducedRegionsB": regions = reducedRegionsB elif options.regions == "reducedRegionsAB": regions = reducedRegionsAB else: raise Exception("Unknown regions setup") if options.multiIsoWP != "": multiIsoWPs = ['VL', 'L', 'M', 'T', 'VT'] wpMu, wpEle = options.multiIsoWP.split(',') from StopsDilepton.tools.objectSelection import multiIsoLepString setup.externalCuts.append( multiIsoLepString(wpMu, wpEle, ('l1_index', 'l2_index'))) setup.prefixes.append('multiIso' + options.multiIsoWP.replace(',', '')) if options.relIso04 > 0: setup.externalCuts.append("&&".join([ "LepGood_relIso04[" + ist + "]<" + str(options.relIso04) for ist in ('l1_index', 'l2_index') ])) setup.prefixes.append('relIso04sm' + str(int(100 * options.relIso04))) for e in bkgEstimators: e.initCache(setup.defaultCacheDir()) from StopsDilepton.samples.cmgTuples_FastSimT2tt_mAODv2_25ns_postProcessed import * from StopsDilepton.analysis.MCBasedEstimate import MCBasedEstimate from StopsDilepton.analysis.u_float import u_float
(options, args) = parser.parse_args() from StopsDilepton.analysis.SetupHelpers import allChannels from StopsDilepton.analysis.mcAnalysis import setup, bkgEstimators from StopsDilepton.analysis.regions import defaultRegions, reducedRegionsA, reducedRegionsB, reducedRegionsAB setup.parameters["metMin"] = options.metMin setup.parameters["metSigMin"] = options.metSigMin allRegions = set(defaultRegions + reducedRegionsA + reducedRegionsB + reducedRegionsAB) if options.multiIsoWP != "": multiIsoWPs = ["VL", "L", "M", "T", "VT"] wpMu, wpEle = options.multiIsoWP.split(",") from StopsDilepton.tools.objectSelection import multiIsoLepString setup.externalCuts.append(multiIsoLepString(wpMu, wpEle, ("l1_index", "l2_index"))) setup.prefixes.append("multiIso" + options.multiIsoWP.replace(",", "")) if options.relIso04 > 0: setup.externalCuts.append( "&&".join(["LepGood_relIso04[" + ist + "]<" + str(options.relIso04) for ist in ("l1_index", "l2_index")]) ) setup.prefixes.append("relIso04sm" + str(int(100 * options.relIso04))) for e in bkgEstimators: e.initCache(setup.defaultCacheDir()) setup.verbose = True # from multi_estimate import multi_estimate from StopsDilepton.analysis.MCBasedEstimate import MCBasedEstimate from StopsDilepton.samples.cmgTuples_FastSimT2tt_mAODv2_25ns_postProcessed import *
#Define chains for signals and backgrounds samples = [ # DY_HT_LO, TTJets_Lep, TTZ, TTXNoZ, singleTop, WJetsToLNu_HT, diBoson, triBoson, QCD_Mu5EMbcToE, T2tt_450_0 DY_HT_LO, TTJets_Lep, TTZ, TTXNoZ, singleTop, diBoson, triBoson, QCD_Mu5EMbcToE ] from StopsDilepton.tools.objectSelection import multiIsoLepString multiIsoWP = multiIsoLepString('M', 'T', ('l1_index', 'l2_index')) relIso04sm12Cut = "&&".join( ["LepGood_relIso04[" + ist + "]<0.12" for ist in ('l1_index', 'l2_index')]) cuts = [ ("==2 leptons", "nGoodMuons+nGoodElectrons==2"), ("opposite sign", "isOS==1"), ("m(ll)>20", "dl_mass>20"), ("|m(ll) - mZ|>15 for SF", "( (isMuMu==1||isEE==1)&&abs(dl_mass-91.2)>=15 || isEMu==1 )"), (">=2 jets", "(Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id))>=2"), (">=1 b-tags (CSVv2)", "Sum$(JetGood_pt>30&&abs(JetGood_eta)<2.4&&JetGood_id&&JetGood_btagCSV>0.890)>=1" ), ("MET>80", "met_pt>80"), ("MET/sqrt(HT)>5",