Beispiel #1
0
    TGJets_ext, TTGJets, TTGJets_ext
]  # X+G
v_jets = [
    WJetsToLNu_LO, DYJetsToLL_M10to50_LO, DYJetsToLL_M50_LO_ext, WWTo2L2Nu
]  # V+jets
tt_1l = [
    TTJets_SingleLeptonFromT, TTJets_SingleLeptonFromT_ext,
    TTJets_SingleLeptonFromTbar, TTJets_SingleLeptonFromTbar_ext
]  # TT 1l
tt_2l = [TTJets_DiLepton, TTJets_DiLepton_ext, TT_pow]  # TT 2l
boson = [WZTo3LNu, WZTo3LNu_amcatnlo] + TriBosons  # multi-boson

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

cropToLumi(rares, 500)
cropToLumi([T_tch_powheg, TBar_tch_powheg], 50)
configureSplittingFromTime(samples_fast, 50, 6)
configureSplittingFromTime(samples_slow, 100, 6)

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]
if runFRMC:
    QCD_Mu5 = [
        QCD_Pt20to30_Mu5, QCD_Pt30to50_Mu5, QCD_Pt50to80_Mu5,
        QCD_Pt80to120_Mu5, QCD_Pt120to170_Mu5, QCD_Pt170to300_Mu5
    ]
    autoAAA(QCDPtEMEnriched + QCDPtbcToE)
    QCDEm, _ = mergeExtensions(
        [q for q in QCDPtEMEnriched + QCDPtbcToE if "toInf" not in q.name])
    selectedComponents = [QCD_Mu15] + QCD_Mu5 + [
        WJetsToLNu_LO, DYJetsToLL_M10to50_LO, DYJetsToLL_M50_LO_ext
    ] + QCDEm
    #selectedComponents = [TTJets_DiLepton]#TTJets_SingleLeptonFromT,TTJets_SingleLeptonFromTbar]
    #selectedComponents = [TBar_tWch_noFullyHad,T_tWch_noFullyHad]
    #TTJets_DiLepton.fineSplitFactor = 2
    #selectedComponents = TT_pow
    cropToLumi(selectedComponents, 1.0)
    time = 5.0
    extra = dict(maxFiles=10)
    configureSplittingFromTime([WJetsToLNu_LO], 20, time, **extra)
    configureSplittingFromTime([DYJetsToLL_M10to50_LO], 10, time, **extra)
    configureSplittingFromTime([DYJetsToLL_M50_LO_ext], 40, time, **extra)
    configureSplittingFromTime([QCD_Mu15] + QCD_Mu5, 40, time, **extra)
    configureSplittingFromTime(QCDEm, 40, time, **extra)
    #configureSplittingFromTime([ QCD_HT100to200, QCD_HT200to300 ],10,time, **extra)
    #configureSplittingFromTime([ QCD_HT300to500, QCD_HT500to700 ],15,time, **extra)
    for c in selectedComponents:
        c.triggers = []
        c.vetoTriggers = []
    #printSummary(selectedComponents)

if runFRMC or runDataQCD:
_fakes = [TTJets_DiLepton,TTJets_SingleLeptonFromT,TTJets_SingleLeptonFromTbar,WWTo2L2Nu]
_ttH = [TTHnobb,TTHnobb_pow]
_TTV = [TTWToLNu,TTZToLLNuNu_LO,TTLLJets_m1to10]
_convs = [TTGJets,TGJets,WGToLNuG,ZGTo2LG]
_singleTop = [TToLeptons_sch_amcatnlo,TToLeptons_tch_amcatnlo,T_tWch,TBar_tWch]
_diboson = [WZTo3LNu,ZZTo4L]
_other = [tZq_ll,TTTT,WpWpJJ,WWDouble,WZZ] # WWZ ZZZ

#selectedComponents = _Wjets_DY + _fakes + _ttH + _TTV + _convs + _singleTop + _diboson + _other
print 'Before cropping to lumi and adjusting the splitting:'
printSummary(selectedComponents)

_fast = [DYJetsToLL_M10to50,WJetsToLNu,TTJets_SingleLeptonFromT,TTJets_SingleLeptonFromTbar,TTGJets,TGJets,WGToLNuG]+_singleTop
_slow = [DYJetsToLL_M50,TTJets_DiLepton,ZGTo2LG,WWTo2L2Nu]+_TTV+_ttH+_diboson+_other

cropToLumi(_convs+_diboson+_other,50)

configureSplittingFromTime(_fast,30,5)
configureSplittingFromTime(_slow,100,5)

print 'After cropping to lumi and adjusting the splitting:'
printSummary(selectedComponents)
# Use the dropLHEweights option if you don't need the per-event LHE weights! It saves a lot of space.


#selectedComponents = SMS_miniAODv2_T1tttt
#susyCounter.SMS_varying_masses = ['genSusyMGluino','genSusyMNeutralino']

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:
Beispiel #4
0
        muCut=lambda mu: mu.pt() > 10 and mu.isLooseMuon(),
        electrons='slimmedElectrons',
        eleCut=lambda ele: ele.pt() > 10,
        minLeptons=2,
    )
    susyCoreSequence.insert(susyCoreSequence.index(jsonAna) + 1, fastSkim)
    susyCoreSequence.insert(susyCoreSequence.index(jsonAna) + 1, fastSkim2)
    susyCoreSequence.remove(lheWeightAna)
    susyCoreSequence.remove(ttHJetMETSkim)
    susyCounter.doLHE = False
    if not runData:
        selectedComponents = [DYJetsToLL_M50_LO]
        #prescaleComponents([DYJetsToLL_M50_LO], 2)
        #configureSplittingFromTime([DYJetsToLL_M50_LO],4,1.5)
        selectedComponents = [WZTo3LNu, ZZTo4L]
        cropToLumi([WZTo3LNu, ZZTo4L], 50)
        #configureSplittingFromTime([WZTo3LNu,ZZTo4L],20,1.5)
    else:
        if True:
            from CMGTools.Production.promptRecoRunRangeFilter import filterComponent
            for c in selectedComponents:
                if "PromptReco" in c.name: filterComponent(c, 1)
        if analysis == 'SOS':
            configureSplittingFromTime(selectedComponents, 10, 2)

if removeJetReCalibration:
    jetAna.recalibrateJets = False
    jetAnaScaleUp.recalibrateJets = False
    jetAnaScaleDown.recalibrateJets = False

if getHeppyOption("noLepSkim", False):
Beispiel #5
0
selectedComponents = [TTLep_pow_ext]
#selectedComponents = SMS_miniAODv2_T1tttt
#susyCounter.SMS_varying_masses = ['genSusyMGluino','genSusyMNeutralino']

if analysis == 'susy':
    samples_2l = [
        DYJetsToLL_M10to50, DYJetsToLL_M50, WWTo2L2Nu, ZZTo2L2Q, WZTo3LNu,
        TTWToLNu, TTZToLLNuNu, TTJets_DiLepton, TTHnobb_mWCutfix_ext1
    ]
    samples_1l = [
        WJetsToLNu, TTJets_SingleLeptonFromT, TTJets_SingleLeptonFromTbar,
        TBarToLeptons_tch_powheg, TToLeptons_sch_amcatnlo, TBar_tWch, T_tWch
    ]
    selectedComponents = samples_1l + samples_2l
    cropToLumi(selectedComponents, 2)
    configureSplittingFromTime(samples_1l, 50, 3)
    configureSplittingFromTime(samples_2l, 100, 3)
    printSummary(selectedComponents)

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)
        c.fineSplitFactor = 1