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:
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):
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