def theConfig(Nj, mH, isElectron = False, initFile = [], includeSignal = True): pars = Wjj2DFitterPars() pars.MCDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/ReducedTrees/' # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/Moriond2013/RD_includingDiboson/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/HCP2012METfix/ReducedTrees/" #pars.DataDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/HWWTrees/' pars.DataDirectory = pars.MCDirectory pars.isElectron = isElectron pars.initialParametersFile = initFile pars.backgrounds = ['diboson', 'top', 'WpJ'] pars.includeSignal = includeSignal pars.signals = ['ggH', 'qqH'] pars.yieldConstraints = { 'diboson' : 0.034, 'top' : 0.07 } #pars.yieldConstraints = {} pars.constrainShapes = ['WpJ'] pars.Njets = Nj pars.mHiggs = mH modePars = mu2Pars if isElectron: flavorString = 'el' if Nj == 3: modePars = el3Pars else: modePars = el2Pars else: flavorString = 'mu' if Nj == 3: modePars = mu3Pars else: modePars = mu2Pars pars.cuts = \ '(W_pt>200.)&&(GroomedJet_CA8_pt[0]>200)&&(ggdboostedWevt==1)' +\ '&&(event_metMVA_met>50.)&&(GroomedJet_CA8_deltaphi_METca8jet>2.0)' +\ '&&(GroomedJet_CA8_mass_pr[0]>40)&&(numPFCorJetBTags==0)' +\ '&&(GroomedJet_CA8_tau2tau1[0]<0.53)' #btag veto pars.btagVeto = False # for i in range(0, 6): # pars.cuts += '&&((abs(JetPFCor_Eta[%i])>2.4)||' % i + \ # '(JetPFCor_Pt[%i]<30.)||' % i + \ # '(JetPFCor_bDiscriminatorCSV[%i]<0.679))' % i # veto boosted topology # if mH >= 600: # pars.cuts += '&&(W_pt<200.)' # veto vbf pars.cuts += '&&(vbf_event==0)' # you need a files entry and a models entry for each of the fit # compoents in backgrounds and signals # the files should a list with entries like (filename, Ngen, xsec) pars.dibosonFiles = [ (pars.MCDirectory + 'RD_%s_WW_CMSSW532.root' % (flavorString), 9450414, 57.1097), (pars.MCDirectory + 'RD_%s_WZ_CMSSW532.root' % (flavorString), 10000267, 32.3161), ] pars.dibosonModels = [ modePars[mH][5]['diboson'][0] ] pars.WpJFiles = [ (pars.MCDirectory + 'RD_%s_WJets_madgraph_CMSSW532.root' % (flavorString), 8955318, 1.3*228.9), ] pars.WpJModels = [ modePars[mH][5]['WpJ'][0] ] pars.topFiles = [ (pars.MCDirectory + 'RD_%s_TTbar_CMSSW532.root' % (flavorString), 6893735, 225.197), (pars.MCDirectory + 'RD_%s_STopS_Tbar_CMSSW532.root' % (flavorString), 139974, 1.75776), (pars.MCDirectory + 'RD_%s_STopS_T_CMSSW532.root' % (flavorString), 259960, 3.89394), (pars.MCDirectory + 'RD_%s_STopT_Tbar_CMSSW532.root' % (flavorString), 1935066, 30.0042), (pars.MCDirectory + 'RD_%s_STopT_T_CMSSW532.root' % (flavorString), 3758221, 55.531), (pars.MCDirectory + 'RD_%s_STopTW_Tbar_CMSSW532.root' % (flavorString), 493458, 11.1773), (pars.MCDirectory + 'RD_%s_STopTW_T_CMSSW532.root' % (flavorString), 497657, 11.1773), ] pars.topModels = [ modePars[mH][5]['top'][0] ] ngen = HWWSignalShapes.NgenHiggs(mH, 'ggH') pars.ggHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "ggH", isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.ggHModels = [ modePars[mH][5]['ggH'][0] ] if pars.mHiggs >= 400: pars.ggHInterference = True ngen = HWWSignalShapes.NgenHiggs(mH, 'qqH') pars.qqHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "qqH", isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.qqHModels = [ modePars[mH][5]['qqH'][0] ] pars.dibosonPlotting = {'color' : kAzure+8, 'title' : 'WW+WZ'} pars.WpJPlotting = { 'color' : kRed, 'title' : 'V+jets'} pars.topPlotting = {'color' : kGreen+2, 'title' : 'top'} pars.ggHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % mH} pars.qqHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % mH, 'visible' : True} pars.var = ['GroomedJet_CA8_mass_pr[0]', 'boostedW_lvj_m'] pars.varRanges = {'GroomedJet_CA8_mass_pr[0]': (20, 40., 140., []), 'boostedW_lvj_m': (modePars[mH][4], modePars[mH][2], modePars[mH][3], []) } pars.varTitles = {'GroomedJet_CA8_mass_pr[0]': 'm_{j}', 'boostedW_lvj_m' : 'm_{l#nuj}' } pars.varNames = {'GroomedJet_CA8_mass_pr[0]': 'GroomedJet_CA8_mass_pr', 'boostedW_lvj_m' : 'boostedW_lvj_m' } pars.exclude = {'GroomedJet_CA8_mass_pr[0]' : (70., 100.)} pars.blind = True pars.binData = False # pars.binData = True return customizeElectrons(pars) if isElectron else \ customizeMuons(pars)
def theConfig(**kwargs): # (Nj, mH, isElectron = False, initFile = [], includeSignal = True, # MVACutOverride = None): print 'mjj',kwargs pars = Wjj2DFitterPars() # pars.MCDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/ReducedTrees/' pars.MCDirectory = '/eos/uscms/store/user/lnujj/RDtrees_with_8TeV_MVA/Higgs_22Oct/' if ('xrootd' in kwargs) and kwargs['xrootd']: pars.MCDirectory = 'root://cmseos:1094/' + pars.MCDirectory pars.QCDDirectory = "/uscms_data/d3/ilyao/QCD8TeV/Moriond13/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/Moriond2013/RD_includingDiboson/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/HCP2012METfix/ReducedTrees/" pars.DataDirectory = pars.MCDirectory pars.isElectron = kwargs['isElectron'] if ('initFile' in kwargs): pars.initialParametersFile = list(kwargs['initFile']) else: pars.initialParametersFile = [] pars.backgrounds = ['diboson', 'WpJ', 'top'] if ('includeSignal' in kwargs): pars.includeSignal = kwargs['includeSignal'] else: pars.includeSignal = False pars.signals = ['ggH', 'qqH'] pars.yieldConstraints = { 'diboson' : 0.10, 'top' : 0.07 } #pars.yieldConstraints = {} pars.constrainShapes = ['WpJ'] # if kwargs['mH'] > 200: # pars.constrainShapes = ['WpJ'] pars.Njets = kwargs['Nj'] pars.mHiggs = kwargs['mH'] modePars = mu2Pars if pars.isElectron: flavorString = 'el' if pars.Njets == 3: modePars = el3Pars else: modePars = el2Pars else: flavorString = 'mu' if pars.Njets == 3: modePars = mu3Pars else: modePars = mu2Pars pars.cuts = '(ggdevt==%i)&&(fit_status==0)&&(W_mt>30)' % pars.Njets pars.cuts = '(fit_status==0)&&(W_mt>30)' if ('MVACutOverride' in kwargs) and (kwargs['MVACutOverride'] != None): pars.cuts += '&&(%s>%.3f)' % \ (modePars[pars.mHiggs][0].replace('mu', flavorString), kwargs['MVACutOverride']) else: pars.cuts += '&&(%s>%.3f)' % \ (modePars[pars.mHiggs][0].replace('mu', flavorString), modePars[pars.mHiggs][1]) #btag veto pars.btagVeto = False for i in range(0, 6): pars.cuts += '&&((abs(JetPFCor_Eta[%i])>2.4)||' % i + \ '(JetPFCor_Pt[%i]<30.)||' % i + \ '(JetPFCor_bDiscriminatorCSV[%i]<0.244))' % i # veto boosted topology # if pars.mHiggs >= 600: # pars.cuts += '&&(W_pt<200.)' # veto vbf # pars.cuts += '&&(vbf_event==0)' # you need a files entry and a models entry for each of the fit # compoents in backgrounds and signals # the files should a list with entries like (filename, Ngen, xsec) pars.dibosonFiles = [ (pars.MCDirectory + 'RD_%s_WW_CMSSW532.root' % (flavorString), 9450414, 57.1097), (pars.MCDirectory + 'RD_%s_WZ_CMSSW532.root' % (flavorString), 10000267, 32.3161), ] pars.dibosonModels = [ modePars[pars.mHiggs][5]['diboson'][0] ] wpj_kfactor = 1.16 pars.WpJFiles = [ # (pars.MCDirectory + 'RD_%s_WpJ_CMSSW532.root' % (flavorString), # 18353019+50768992, 36257.2), (pars.MCDirectory + 'RD_%s_ZpJ_CMSSW532.root' % (flavorString), 30209426, 3503.71), # (pars.MCDirectory + 'RD_%s_W1Jets_CMSSW532.root' % (flavorString), # 19871598, 5400.0*wpj_kfactor), (pars.MCDirectory + 'RD_%s_W2Jets_CMSSW532.root' % (flavorString), 33004921, 1750.0*wpj_kfactor), (pars.MCDirectory + 'RD_%s_W3Jets_CMSSW532.root' % (flavorString), 15059503, 519.0*wpj_kfactor), # (pars.MCDirectory + 'RD_%s_W4Jets_CMSSW532.root' % (flavorString), # 12842803, 214.0*wpj_kfactor), (pars.MCDirectory + 'RD_%s_W4Jets_CMSSW532_old.root' % (flavorString), 4369420, 214.0*wpj_kfactor), ] pars.WpJModels = [ modePars[pars.mHiggs][5]['WpJ'][0] ] if (len(modePars[pars.mHiggs][5]['WpJ']) > 2): pars.WpJAuxModels = [ modePars[pars.mHiggs][5]['WpJ'][2] ] pars.topFiles = [ (pars.MCDirectory + 'RD_%s_TTbar_CMSSW532.root' % (flavorString), 6893735, 225.197), (pars.MCDirectory + 'RD_%s_STopS_Tbar_CMSSW532.root' % (flavorString), 139974, 1.75776), (pars.MCDirectory + 'RD_%s_STopS_T_CMSSW532.root' % (flavorString), 259960, 3.89394), (pars.MCDirectory + 'RD_%s_STopT_Tbar_CMSSW532.root' % (flavorString), 1935066, 30.0042), (pars.MCDirectory + 'RD_%s_STopT_T_CMSSW532.root' % (flavorString), 3758221, 55.531), (pars.MCDirectory + 'RD_%s_STopTW_Tbar_CMSSW532.root' % (flavorString), 493458, 11.1773), (pars.MCDirectory + 'RD_%s_STopTW_T_CMSSW532.root' % (flavorString), 497657, 11.1773), ] pars.topModels = [ modePars[pars.mHiggs][5]['top'][0] ] pars.QCDFracOfData = 0.05 pars.QCDFiles = [ (pars.QCDDirectory + 'RDQCD_WenuJets_Isog0p3NoElMVA_19p2invfb.root', 1,1), #The events come from the data sideband ] pars.QCDModels = [27] ngen = HWWSignalShapes.NgenHiggs(pars.mHiggs, 'ggH') pars.ggHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(pars.mHiggs, "ggH", pars.isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.ggHModels = [ modePars[pars.mHiggs][5]['ggH'][0] ] pars.ggHdoSystMult = False if pars.mHiggs >= 400: pars.ggHInterference = True pars.ggHSystMult = 'interf_ggH' ngen = HWWSignalShapes.NgenHiggs(pars.mHiggs, 'qqH') pars.qqHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(pars.mHiggs, "qqH", pars.isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.qqHModels = [ modePars[pars.mHiggs][5]['qqH'][0] ] pars.dibosonPlotting = {'color' : kAzure+8, 'title' : 'WW+WZ'} pars.WpJPlotting = { 'color' : kRed, 'title' : 'V+jets'} pars.topPlotting = {'color' : kGreen+2, 'title' : 'top'} pars.ggHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % pars.mHiggs} pars.qqHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % pars.mHiggs, 'visible' : True} pars.QCDPlotting = {'color' : kGray, 'title':'multijet'} pars.var = ['Mass2j_PFCor', 'fit_mlvjj'] pars.varRanges = {'Mass2j_PFCor': (13, 50., 154., []), 'fit_mlvjj': (modePars[pars.mHiggs][4]*10, modePars[pars.mHiggs][2], modePars[pars.mHiggs][3], []) } pars.plotRanges = {'Mass2j_PFCor': (13, 50., 154., []), 'fit_mlvjj': (modePars[pars.mHiggs][4], modePars[pars.mHiggs][2], modePars[pars.mHiggs][3], []) } pars.varTitles = {'Mass2j_PFCor': 'm_{jj}', 'fit_mlvjj' : 'm_{l#nujj}' } pars.exclude = {'Mass2j_PFCor' : (66., 66.+32.)} pars.doExclude = True pars.blind = True pars.binData = False # pars.binData = True return customizeElectrons(pars) if pars.isElectron else \ customizeMuons(pars)
def theConfig(Nj, mH, isElectron = False, initFile = [], includeSignal = True): pars = Wjj2DFitterPars() pars.MCDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/ReducedTrees/' # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/Moriond2013/RD_includingDiboson/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/HCP2012METfix/ReducedTrees/" pars.DataDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/HWWTrees/' pars.isElectron = isElectron pars.initialParametersFile = initFile pars.backgrounds = ['diboson', 'WpJ', 'top'] pars.includeSignal = includeSignal pars.signals = ['ggH', 'qqH'] pars.yieldConstraints = { 'diboson' : 0.034, 'top' : 0.07 } #pars.yieldConstraints = {} pars.constrainShapes = [] pars.Njets = Nj pars.mHiggs = mH modePars = mu2Pars if isElectron: flavorString = 'el' if Nj == 3: modePars = el3Pars else: modePars = el2Pars else: flavorString = 'mu' if Nj == 3: modePars = mu3Pars else: modePars = mu2Pars pars.cuts = '(ggdevt==%i)&&(fit_status==0)&&(W_mt>30)' % Nj pars.cuts += '&&(%s>%.3f)' % (modePars[mH][0], modePars[mH][1]) # pars.cuts = '(fit_status==0)&&(W_mt>30)' + \ # '&&(%s>%.3f)' % (modePars[mH][0], modePars[mH][1]) #btag veto pars.btagVeto = False # for i in range(0, 6): # pars.cuts += '&&((abs(JetPFCor_Eta[%i])>2.4)||' % i + \ # '(JetPFCor_Pt[%i]<30.)||' % i + \ # '(JetPFCor_bDiscriminatorCSV[%i]<0.679))' % i # veto boosted topology # if mH >= 600: # pars.cuts += '&&(W_pt<200.)' # veto vbf pars.cuts += '&&(vbf_event==0)' # you need a files entry and a models entry for each of the fit # compoents in backgrounds and signals # the files should a list with entries like (filename, Ngen, xsec) pars.dibosonFiles = [ (pars.MCDirectory + 'RD_%s_WW_CMSSW532.root' % (flavorString), 9450414, 57.1097), (pars.MCDirectory + 'RD_%s_WZ_CMSSW532.root' % (flavorString), 10000267, 32.3161), ] pars.dibosonModels = modePars[mH][5]['diboson'] pars.WpJFiles = [ (pars.MCDirectory + 'RD_%s_WpJ_CMSSW532.root' % (flavorString), 18353019+50768992, 36257.2), (pars.MCDirectory + 'RD_%s_ZpJ_CMSSW532.root' % (flavorString), 30209426, 3503.71), ] pars.WpJModels = modePars[mH][5]['WpJ'] pars.topFiles = [ (pars.MCDirectory + 'RD_%s_TTbar_CMSSW532.root' % (flavorString), 6893735, 225.197), (pars.MCDirectory + 'RD_%s_STopS_Tbar_CMSSW532.root' % (flavorString), 139974, 1.75776), (pars.MCDirectory + 'RD_%s_STopS_T_CMSSW532.root' % (flavorString), 259960, 3.89394), (pars.MCDirectory + 'RD_%s_STopT_Tbar_CMSSW532.root' % (flavorString), 1935066, 30.0042), (pars.MCDirectory + 'RD_%s_STopT_T_CMSSW532.root' % (flavorString), 3758221, 55.531), (pars.MCDirectory + 'RD_%s_STopTW_Tbar_CMSSW532.root' % (flavorString), 493458, 11.1773), (pars.MCDirectory + 'RD_%s_STopTW_T_CMSSW532.root' % (flavorString), 497657, 11.1773), ] pars.topModels = modePars[mH][5]['top'] ngen = HWWSignalShapes.NgenHiggs(mH, 'ggH') pars.ggHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "ggH", isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.ggHModels = modePars[mH][5]['ggH'] if pars.mHiggs >= 400: pars.ggHInterference = True ngen = HWWSignalShapes.NgenHiggs(mH, 'qqH') pars.qqHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "qqH", isElectron), ngen[0], ngen[1]*ngen[2]) ] pars.qqHModels = modePars[mH][5]['qqH'] pars.dibosonPlotting = {'color' : kAzure+8, 'title' : 'WW+WZ'} pars.WpJPlotting = { 'color' : kRed, 'title' : 'V+jets'} pars.topPlotting = {'color' : kGreen+2, 'title' : 'top'} pars.ggHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % mH} pars.qqHPlotting = {'color' : kBlue, 'title' : "H(%i) #rightarrow WW" % mH, 'visible' : True} pars.var = ['Mass2j_PFCor', 'fit_mlvjj'] pars.varRanges = {'Mass2j_PFCor': (18, 50., 194., []), 'fit_mlvjj': (modePars[mH][4], modePars[mH][2], modePars[mH][3], []) } pars.varTitles = {'Mass2j_PFCor': 'm_{jj}', 'fit_mlvjj' : 'm_{l#nujj}' } pars.exclude = {} pars.blind = False # pars.v1binEdges = [50, 55.,60.,65.,70.,75.,80.,85.,95., # 105.,115.,125.,135.,150.,165.,180.,200.] # pars.v1nbins = len(pars.v1binEdges)-1 pars.binData = False # pars.binData = True return customizeElectrons(pars) if isElectron else \ customizeMuons(pars)
def theConfig(Nj, mH, isElectron=False, initFile=[], includeSignal=True): pars = Wjj2DFitterPars() pars.MCDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/ReducedTrees/' pars.QCDDirectory = "/uscms_data/d3/ilyao/QCD8TeV/Moriond13/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/Moriond2013/RD_includingDiboson/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/HCP2012METfix/ReducedTrees/" pars.DataDirectory = '/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/HWWTrees/' pars.isElectron = isElectron pars.initialParametersFile = initFile pars.backgrounds = ['diboson', 'WpJ', 'top'] pars.includeSignal = includeSignal pars.signals = ['ggH', 'qqH'] pars.yieldConstraints = {'diboson': 0.034, 'top': 0.07} #pars.yieldConstraints = {} pars.constrainShapes = ['WpJ'] if mH > 200: pars.constrainShapes = ['WpJ'] pars.Njets = Nj pars.mHiggs = mH modePars = mu2Pars if isElectron: flavorString = 'el' if Nj == 3: modePars = el3Pars else: modePars = el2Pars else: flavorString = 'mu' if Nj == 3: modePars = mu3Pars else: modePars = mu2Pars pars.cuts = '(ggdevt==%i)&&(fit_status==0)&&(W_mt>30)' % Nj pars.cuts = '(fit_status==0)&&(W_mt>30)' pars.cuts += '&&(%s>%.3f)' % (modePars[mH][0], modePars[mH][1]) #btag veto pars.btagVeto = False for i in range(0, 6): pars.cuts += '&&((abs(JetPFCor_Eta[%i])>2.4)||' % i + \ '(JetPFCor_Pt[%i]<30.)||' % i + \ '(JetPFCor_bDiscriminatorCSV[%i]<0.244))' % i # veto boosted topology # if mH >= 600: # pars.cuts += '&&(W_pt<200.)' # veto vbf pars.cuts += '&&(vbf_event==0)' # you need a files entry and a models entry for each of the fit # compoents in backgrounds and signals # the files should a list with entries like (filename, Ngen, xsec) pars.dibosonFiles = [ (pars.MCDirectory + 'RD_%s_WW_CMSSW532.root' % (flavorString), 9450414, 57.1097), (pars.MCDirectory + 'RD_%s_WZ_CMSSW532.root' % (flavorString), 10000267, 32.3161), ] pars.dibosonModels = [modePars[mH][5]['diboson'][0]] wpj_kfactor = 1.16 pars.WpJFiles = [ # (pars.MCDirectory + 'RD_%s_WpJ_CMSSW532.root' % (flavorString), # 18353019+50768992, 36257.2), (pars.MCDirectory + 'RD_%s_ZpJ_CMSSW532.root' % (flavorString), 30209426, 3503.71), # (pars.MCDirectory + 'RD_%s_W1Jets_CMSSW532.root' % (flavorString), # 19871598, 5400.0*wpj_kfactor), (pars.MCDirectory + 'RD_%s_W2Jets_CMSSW532.root' % (flavorString), 33004921, 1750.0 * wpj_kfactor), (pars.MCDirectory + 'RD_%s_W3Jets_CMSSW532.root' % (flavorString), 15059503, 519.0 * wpj_kfactor), (pars.MCDirectory + 'RD_%s_W4Jets_CMSSW532.root' % (flavorString), 12842803, 214.0 * wpj_kfactor), ] pars.WpJModels = [modePars[mH][5]['WpJ'][0]] pars.topFiles = [ (pars.MCDirectory + 'RD_%s_TTbar_CMSSW532.root' % (flavorString), 6893735, 225.197), (pars.MCDirectory + 'RD_%s_STopS_Tbar_CMSSW532.root' % (flavorString), 139974, 1.75776), (pars.MCDirectory + 'RD_%s_STopS_T_CMSSW532.root' % (flavorString), 259960, 3.89394), (pars.MCDirectory + 'RD_%s_STopT_Tbar_CMSSW532.root' % (flavorString), 1935066, 30.0042), (pars.MCDirectory + 'RD_%s_STopT_T_CMSSW532.root' % (flavorString), 3758221, 55.531), (pars.MCDirectory + 'RD_%s_STopTW_Tbar_CMSSW532.root' % (flavorString), 493458, 11.1773), (pars.MCDirectory + 'RD_%s_STopTW_T_CMSSW532.root' % (flavorString), 497657, 11.1773), ] pars.topModels = [modePars[mH][5]['top'][0]] pars.QCDFracOfData = 0.05 pars.QCDFiles = [ (pars.QCDDirectory + 'RDQCD_WenuJets_Isog0p3NoElMVA_19p2invfb.root', 1, 1), #The events come from the data sideband ] pars.QCDModels = [27] ngen = HWWSignalShapes.NgenHiggs(mH, 'ggH') pars.ggHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "ggH", isElectron), ngen[0], ngen[1] * ngen[2]) ] pars.ggHModels = [modePars[mH][5]['ggH'][0]] if pars.mHiggs >= 400: pars.ggHInterference = True ngen = HWWSignalShapes.NgenHiggs(mH, 'qqH') pars.qqHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "qqH", isElectron), ngen[0], ngen[1] * ngen[2]) ] pars.qqHModels = [modePars[mH][5]['qqH'][0]] pars.dibosonPlotting = {'color': kAzure + 8, 'title': 'WW+WZ'} pars.WpJPlotting = {'color': kRed, 'title': 'V+jets'} pars.topPlotting = {'color': kGreen + 2, 'title': 'top'} pars.ggHPlotting = {'color': kBlue, 'title': "H(%i) #rightarrow WW" % mH} pars.qqHPlotting = { 'color': kBlue, 'title': "H(%i) #rightarrow WW" % mH, 'visible': True } pars.QCDPlotting = {'color': kGray, 'title': 'multijet'} pars.var = ['Mass2j_PFCor', 'fit_mlvjj'] pars.varRanges = { 'Mass2j_PFCor': (12, 50., 146., []), 'fit_mlvjj': (modePars[mH][4] * 10, modePars[mH][2], modePars[mH][3], []) } pars.plotRanges = { 'Mass2j_PFCor': (12, 50., 146., []), 'fit_mlvjj': (modePars[mH][4], modePars[mH][2], modePars[mH][3], []) } pars.varTitles = {'Mass2j_PFCor': 'm_{jj}', 'fit_mlvjj': 'm_{l#nujj}'} pars.exclude = {'Mass2j_PFCor': (66., 66. + 32.)} pars.doExclude = True pars.blind = True pars.binData = False # pars.binData = True return customizeElectrons(pars) if isElectron else \ customizeMuons(pars)
def theConfig(Nj, mH, isElectron=False, initFile=[], includeSignal=True): pars = Wjj2DFitterPars() pars.MCDirectory = "/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/ReducedTrees/" pars.QCDDirectory = "/uscms_data/d3/ilyao/QCD8TeV/Moriond13/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/Moriond2013/RD_includingDiboson/" # pars.MCDirectory = "root://cmseos:1094//eos/uscms/store/user/lnujj/HCP2012METfix/ReducedTrees/" pars.DataDirectory = "/uscms_data/d2/andersj/Wjj/2012/data/Moriond2013/HWWTrees/" pars.isElectron = isElectron pars.initialParametersFile = initFile pars.backgrounds = ["diboson", "WpJ", "top"] pars.includeSignal = includeSignal pars.signals = ["ggH", "qqH"] pars.yieldConstraints = {"diboson": 0.034, "top": 0.07} # pars.yieldConstraints = {} pars.constrainShapes = ["WpJ"] if mH > 200: pars.constrainShapes = ["WpJ"] pars.Njets = Nj pars.mHiggs = mH modePars = mu2Pars if isElectron: flavorString = "el" if Nj == 3: modePars = el3Pars else: modePars = el2Pars else: flavorString = "mu" if Nj == 3: modePars = mu3Pars else: modePars = mu2Pars pars.cuts = "(ggdevt==%i)&&(fit_status==0)&&(W_mt>30)" % Nj pars.cuts = "(fit_status==0)&&(W_mt>30)" pars.cuts += "&&(%s>%.3f)" % (modePars[mH][0], modePars[mH][1]) # btag veto pars.btagVeto = False for i in range(0, 6): pars.cuts += ( "&&((abs(JetPFCor_Eta[%i])>2.4)||" % i + "(JetPFCor_Pt[%i]<30.)||" % i + "(JetPFCor_bDiscriminatorCSV[%i]<0.244))" % i ) # veto boosted topology # if mH >= 600: # pars.cuts += '&&(W_pt<200.)' # veto vbf pars.cuts += "&&(vbf_event==0)" # you need a files entry and a models entry for each of the fit # compoents in backgrounds and signals # the files should a list with entries like (filename, Ngen, xsec) pars.dibosonFiles = [ (pars.MCDirectory + "RD_%s_WW_CMSSW532.root" % (flavorString), 9450414, 57.1097), (pars.MCDirectory + "RD_%s_WZ_CMSSW532.root" % (flavorString), 10000267, 32.3161), ] pars.dibosonModels = [modePars[mH][5]["diboson"][0]] wpj_kfactor = 1.16 pars.WpJFiles = [ # (pars.MCDirectory + 'RD_%s_WpJ_CMSSW532.root' % (flavorString), # 18353019+50768992, 36257.2), (pars.MCDirectory + "RD_%s_ZpJ_CMSSW532.root" % (flavorString), 30209426, 3503.71), # (pars.MCDirectory + 'RD_%s_W1Jets_CMSSW532.root' % (flavorString), # 19871598, 5400.0*wpj_kfactor), (pars.MCDirectory + "RD_%s_W2Jets_CMSSW532.root" % (flavorString), 33004921, 1750.0 * wpj_kfactor), (pars.MCDirectory + "RD_%s_W3Jets_CMSSW532.root" % (flavorString), 15059503, 519.0 * wpj_kfactor), (pars.MCDirectory + "RD_%s_W4Jets_CMSSW532.root" % (flavorString), 12842803, 214.0 * wpj_kfactor), ] pars.WpJModels = [modePars[mH][5]["WpJ"][0]] pars.topFiles = [ (pars.MCDirectory + "RD_%s_TTbar_CMSSW532.root" % (flavorString), 6893735, 225.197), (pars.MCDirectory + "RD_%s_STopS_Tbar_CMSSW532.root" % (flavorString), 139974, 1.75776), (pars.MCDirectory + "RD_%s_STopS_T_CMSSW532.root" % (flavorString), 259960, 3.89394), (pars.MCDirectory + "RD_%s_STopT_Tbar_CMSSW532.root" % (flavorString), 1935066, 30.0042), (pars.MCDirectory + "RD_%s_STopT_T_CMSSW532.root" % (flavorString), 3758221, 55.531), (pars.MCDirectory + "RD_%s_STopTW_Tbar_CMSSW532.root" % (flavorString), 493458, 11.1773), (pars.MCDirectory + "RD_%s_STopTW_T_CMSSW532.root" % (flavorString), 497657, 11.1773), ] pars.topModels = [modePars[mH][5]["top"][0]] pars.QCDFracOfData = 0.05 pars.QCDFiles = [ ( pars.QCDDirectory + "RDQCD_WenuJets_Isog0p3NoElMVA_19p2invfb.root", 1, 1, ) # The events come from the data sideband ] pars.QCDModels = [27] ngen = HWWSignalShapes.NgenHiggs(mH, "ggH") pars.ggHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "ggH", isElectron), ngen[0], ngen[1] * ngen[2]) ] pars.ggHModels = [modePars[mH][5]["ggH"][0]] if pars.mHiggs >= 400: pars.ggHInterference = True ngen = HWWSignalShapes.NgenHiggs(mH, "qqH") pars.qqHFiles = [ (pars.MCDirectory + HWWSignalShapes.makeSignalFilename(mH, "qqH", isElectron), ngen[0], ngen[1] * ngen[2]) ] pars.qqHModels = [modePars[mH][5]["qqH"][0]] pars.dibosonPlotting = {"color": kAzure + 8, "title": "WW+WZ"} pars.WpJPlotting = {"color": kRed, "title": "V+jets"} pars.topPlotting = {"color": kGreen + 2, "title": "top"} pars.ggHPlotting = {"color": kBlue, "title": "H(%i) #rightarrow WW" % mH} pars.qqHPlotting = {"color": kBlue, "title": "H(%i) #rightarrow WW" % mH, "visible": True} pars.QCDPlotting = {"color": kGray, "title": "multijet"} pars.var = ["Mass2j_PFCor", "fit_mlvjj"] pars.varRanges = { "Mass2j_PFCor": (12, 50.0, 146.0, []), "fit_mlvjj": (modePars[mH][4] * 10, modePars[mH][2], modePars[mH][3], []), } pars.plotRanges = { "Mass2j_PFCor": (12, 50.0, 146.0, []), "fit_mlvjj": (modePars[mH][4], modePars[mH][2], modePars[mH][3], []), } pars.varTitles = {"Mass2j_PFCor": "m_{jj}", "fit_mlvjj": "m_{l#nujj}"} pars.exclude = {"Mass2j_PFCor": (66.0, 66.0 + 32.0)} pars.doExclude = True pars.blind = True pars.binData = False # pars.binData = True return customizeElectrons(pars) if isElectron else customizeMuons(pars)