Ejemplo n.º 1
0
single_t = Ts  # single top + tW # MISSING: THQ,THW
convs = [
    TTGJets
]  # X+G # MISSING: WGToLNuG_amcatnlo_ext,WGToLNuG_amcatnlo_ext2,ZGTo2LG_ext,TGJets,TGJets_ext
v_jets = [
    WJetsToLNu_LO, DYJetsToLL_M10to50_LO, DYJetsToLL_M50_LO,
    DYJetsToLL_M50_LO_ext, WWTo2L2Nu
]  # V+jets
tt_1l = [TTSemi_pow]  # TT 1l # MISSING: Madgraph
tt_2l = [TTLep_pow]  # TT 2l # MISSING: Madgraph
boson = [WZTo3LNu_fxfx]  # multi-boson # MISSING: WZTo3LNu_pow, TriBosons

samples_slow = sig_ttv + ttv_lo + rares + convs + boson + tt_2l
samples_fast = single_t + v_jets + tt_1l

cropToLumi(rares, 500)
configureSplittingFromTime(samples_fast, 50, 3)
configureSplittingFromTime(samples_slow, 100, 3)

selectedComponents = samples_slow + samples_fast

if scaleProdToLumi > 0:  # select only a subset of a sample, corresponding to a given luminosity (assuming ~30k events per MiniAOD file, which is ok for central production)
    target_lumi = scaleProdToLumi  # in inverse picobarns
    for c in selectedComponents:
        if not c.isMC: continue
        nfiles = int(min(ceil(target_lumi * c.xSection / 30e3), len(c.files)))
        #if nfiles < 50: nfiles = min(4*nfiles, len(c.files))
        print "For component %s, will want %d/%d files; AAA %s" % (
            c.name, nfiles, len(c.files), "eoscms" not in c.files[0])
        c.files = c.files[:nfiles]
        c.splitFactor = len(c.files)
    filter = cms.bool(False),
)
process.skimNLeps = cms.EDFilter("PATLeptonCountFilter",
    electronSource = cms.InputTag("selectEl"),
    muonSource = cms.InputTag("selectMu"),
    tauSource = cms.InputTag(""),
    countElectrons = cms.bool(True),
    countMuons = cms.bool(True),
    countTaus = cms.bool(False),
    minNumber = cms.uint32(2),
    maxNumber = cms.uint32(999),
)
process.nanoAOD_step.insert(0, cms.Sequence(process.selectEl + process.selectMu + process.skimNLeps))
""")

cropToLumi(byCompName(selectedComponents,["T_","TBar_"]),100.)

# print summary of components to process
if getHeppyOption("justSummary"): 
    printSummary(selectedComponents)
    sys.exit(0)

from CMGTools.TTHAnalysis.tools.nanoAOD.susySOS_modules import *

from PhysicsTools.NanoAODTools.postprocessing.framework.postprocessor import PostProcessor

modules = susySOS_sequence_step1
cut = susySOS_skim_cut
# Switch to Tag and Probe skimming/sequence
if getHeppyOption("TnP"):
    collection = getHeppyOption("TnPCollection", "None")
    cut = cms.string("pt > %g && miniPFIsolation.chargedHadronIso < 0.45*pt && abs(dB('PV3D')) < 8*edB('PV3D')"),
    filter = cms.bool(True),
)
process.nanoAOD_step.insert(0, process.skim1Mu)
""" % (7.5 if "DoubleMuon" in comp.dataset else 4.5))
            elif 'QCD_Pt' in comp.dataset or "EGamma" in comp.dataset or "SingleElectron" in comp.dataset or "DoubleEG" in comp.dataset:
                comp.preprocessor = comp.preprocessor.clone(cfgHasFilter = True, inlineCustomize = """
process.skim1El = cms.EDFilter("PATElectronRefSelector",
    src = cms.InputTag("slimmedElectrons"),
    cut = cms.string("pt > 6 && miniPFIsolation.chargedHadronIso < 0.45*pt && abs(dB('PV3D')) < 8*edB('PV3D')"),
    filter = cms.bool(True),
)
process.nanoAOD_step.insert(0, process.skim1El)
""")
if analysis == "main":
    cropToLumi(byCompName(selectedComponents,["^(?!.*(TTH|TTW|TTZ)).*"]),1000.)
    cropToLumi(byCompName(selectedComponents,["T_","TBar_"]),100.)
    cropToLumi(byCompName(selectedComponents,["DYJetsToLL"]),2.)
if analysis == "frqcd":
    cropToLumi(selectedComponents, 1.0)
    cropToLumi(byCompName(selectedComponents,["QCD"]), 0.3)
    cropToLumi(byCompName(selectedComponents,["QCD_Pt\d+to\d+$"]), 0.1)
    configureSplittingFromTime(selectedComponents, 20, 3, maxFiles=8)
    configureSplittingFromTime(byCompName(selectedComponents, ["EGamma","Single.*Run2017.*","SingleMuon_Run2018.*"]), 10, 4, maxFiles=12) 
    configureSplittingFromTime(byCompName(selectedComponents, ["WJ","TT","DY","QCD_Mu15"]), 60, 3, maxFiles=6) 
    configureSplittingFromTime(byCompName(selectedComponents, [r"QCD_Pt\d+to\d+$","QCD.*EME"]), 60, 3, maxFiles=6) 


# print summary of components to process
if getHeppyOption("justSummary"): 
    printSummary(selectedComponents)
Ejemplo n.º 4
0
                   ]  #TTJets_DiLepton not yet finished
samples_mainBkgVV = [WWTo2L2Nu, ZZTo2L2Nu]  #[VVTo2L2Nu, VVTo2L2Nu_ext]
samples_fakesBkg = [TTJets_SingleLeptonFromT, TTJets_SingleLeptonFromTbar
                    ] + WJetsToLNuHT
samples_rareBkg = [
    WZTo3LNu_fxfx, WWToLNuQQ, WZTo1L1Nu2Q, ZZTo4L, WWW_4F, WZZ, WWZ_4F, ZZZ,
    T_tch, TBar_tch, T_sch_lep, WWTo2L2Nu_DPS_hpp, TTWToLNu_fxfx,
    TTZToLLNuNu_amc, TTZToLLNuNu_m1to10, TTGJets, TGJets_lep
]  #WZTo3LNu, WZTo1L3Nu, , ZZTo2L2Q, WpWpJJ,  WGToLNuG_amcatnlo_ext, ZGTo2LG_ext, WZTo2L2Q,WGToLNuG, #still missing

samples_mainBkg = [
    DYJetsToLL_M5to50_LO
]  #DYJetsToLL_M50_LO,DYJetsToLL_M50_LO_ext,DYJetsToLL_M10to50_LO]

cropToLumi([
    WWW_4F, WZZ, WWZ_4F, ZZZ, WWToLNuQQ, WZTo1L1Nu2Q, TTWToLNu_fxfx,
    TTZToLLNuNu_amc, TTZToLLNuNu_m1to10
], 200)
configureSplittingFromTime(samples_fakesBkg, 50, 3)
configureSplittingFromTime(samples_mainBkg, 50, 3)
configureSplittingFromTime(samples_rareBkg, 100, 3)

selectedComponents = WJetsToLNuHT  #samples_mainBkg#samples_fakesBkg#samples_rareBkg + samples_mainBkg + samples_mainBkgVV
#selectedComponents = WJetsToLNuHT

if scaleProdToLumi > 0:  # select only a subset of a sample, corresponding to a given luminosity (assuming ~30k events per MiniAOD file, which is ok for central production)
    target_lumi = scaleProdToLumi  # in inverse picobarns
    for c in selectedComponents:
        if not c.isMC: continue
        nfiles = int(min(ceil(target_lumi * c.xSection / 30e3), len(c.files)))
        #if nfiles < 50: nfiles = min(4*nfiles, len(c.files))
        print "For component %s, will want %d/%d files; AAA %s" % (
    filter = cms.bool(True),
)
process.nanoAOD_step.insert(0, process.skim1Mu)
""" % (7.5 if "DoubleMuon" in comp.dataset else 4.5))
            elif 'QCD_Pt' in comp.dataset:
                comp.preprocessor._cfgHasFilter = True
                comp.preprocessor._inlineCustomize = ("""
process.skim1El = cms.EDFilter("PATElectronRefSelector",
    src = cms.InputTag("slimmedElectrons"),
    cut = cms.string("pt > 6 && miniPFIsolation.chargedHadronIso < 0.45*pt && abs(dB('PV3D')) < 8*edB('PV3D')"),
    filter = cms.bool(True),
)
process.nanoAOD_step.insert(0, process.skim1El)
""")
if analysis == "frqcd":
    cropToLumi(selectedComponents, 1.0)
    cropToLumi(byCompName(selectedComponents, ["QCD"]), 0.3)
    cropToLumi(byCompName(selectedComponents, ["QCD_Pt\d+to\d+$"]), 0.1)
    configureSplittingFromTime(selectedComponents, 10, 3, maxFiles=8)
    configureSplittingFromTime(
        byCompName(selectedComponents,
                   ["EGamma", "Single.*Run2017.*", "SingleMuon_Run2018.*"]),
        10,
        4,
        maxFiles=12)
    configureSplittingFromTime(byCompName(selectedComponents,
                                          ["WJ", "TT", "DY"]),
                               60,
                               3,
                               maxFiles=6)
    configureSplittingFromTime(byCompName(selectedComponents,