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, TTJets] # 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) c.fineSplitFactor = 1
comp.triggers = trigs[:] comp.vetoTriggers = vetoTriggers[:] dataSamples.append(comp) vetoTriggers += trigs[:] selectedComponents = mcSamples + dataSamples if getHeppyOption('selectComponents'): if getHeppyOption('selectComponents')=='MC': selectedComponents = mcSamples elif getHeppyOption('selectComponents')=='DATA': selectedComponents = dataSamples else: selectedComponents = byCompName(selectedComponents, getHeppyOption('selectComponents').split(",")) autoAAA(selectedComponents, quiet=not(getHeppyOption("verboseAAA",False))) if year==2018: configureSplittingFromTime(mcSamples,150 if preprocessor else 10,8) configureSplittingFromTime(dataSamples,50 if preprocessor else 5,8) else: # rerunning deepFlavor can take up to twice the time configureSplittingFromTime(mcSamples,250 if preprocessor else 10,8) # warning: some samples take up to 400 ms per event configureSplittingFromTime(dataSamples,80 if preprocessor else 5,8) configureSplittingFromTime(byCompName(dataSamples,['Single']),50 if preprocessor else 5,8) selectedComponents, _ = mergeExtensions(selectedComponents) # create and set preprocessor if requested if preprocessor: from CMGTools.Production.nanoAODPreprocessor import nanoAODPreprocessor preproc_cfg = {2016: ("mc94X2016","data94X2016"), 2017: ("mc94Xv2","data94Xv2"), 2018: ("mc102X","data102X_ABC","data102X_D")} preproc_cmsswArea = "/afs/cern.ch/user/p/peruzzi/work/cmgtools_tth/CMSSW_10_2_15" preproc_mc = nanoAODPreprocessor(cfg='%s/src/PhysicsTools/NanoAOD/test/%s_NANO.py'%(preproc_cmsswArea,preproc_cfg[year][0]),cmsswArea=preproc_cmsswArea,keepOutput=True)
] + 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" % ( c.name, nfiles, len(c.files), "eoscms" not in c.files[0]) c.files = c.files[:nfiles]
triggerFlagsAna.triggerBits ={ "HT900":triggers_pfht900 } #-------- HOW TO RUN test = 1 if test==1: # test a single component, using a single thread. selectedComponents = [ZprimeToTT_M_2000_20] # for c in selectedComponents: # c.files = c.files[:1] # c.splitFactor = 1 elif test==2: # test a single component, using a single thread. selectedComponents = [TTJets] for c in selectedComponents: c.files = c.files[:1] c.splitFactor = 1 else: # full scale production # split samples in a smarter way from CMGTools.RootTools.samples.configTools import configureSplittingFromTime, printSummary configureSplittingFromTime(selectedComponents, 40, 3) # means 40 ms per event, job to last 3h # print summary of components to process printSummary(selectedComponents) selectedComponents=autoAAA(selectedComponents) config=autoConfig(selectedComponents,sequence)
# selectedComponents = [BulkGravToWWToWlepWhad_narrow_2000] # selectedComponents = [TTJets] selectedComponents = [TTSemi_pow] # selectedComponents = [BulkGravToZZToZhadZinv_narrow_1400] for c in selectedComponents: c.files = c.files[:1] # c.files = ['file:/tmp/bachtis/file.root'] c.splitFactor = 1 elif test == 2: # test a single component, using a single thread. selectedComponents = [TTJets] elif test == 3: selectedComponents = [selectedComponents[0]] for c in selectedComponents: c.files = c.files[:1] c.splitFactor = 1 else: # full scale production # split samples in a smarter way from CMGTools.RootTools.samples.configTools import configureSplittingFromTime, printSummary configureSplittingFromTime(selectedComponents, 16, 6) # means 70 ms per event, job to last 12h # print summary of components to process printSummary(selectedComponents) selectedComponents = runOnFNAL( selectedComponents, "$CMSSW_BASE/src/CMGTools/VVResonances/data/JSON2017.txt") config = autoConfig(selectedComponents, sequence)
selectedComponents = mcSamples elif getHeppyOption('selectComponents') == 'DATA': selectedComponents = dataSamples elif getHeppyOption('selectComponents') == 'HWHSIGNAL': mcSamples = hwhSamples selectedComponents = hwhSamples else: selectedComponents = byCompName( selectedComponents, getHeppyOption('selectComponents').split(",")) autoAAA(selectedComponents, quiet=not (getHeppyOption("verboseAAA", False)), redirectorAAA="xrootd-cms.infn.it") if year == 2018: configureSplittingFromTime( byCompName(mcSamples, ['^(?!(TTJets_Single|T_|TBar_)).*']), 150 if preprocessor else 10, 12) configureSplittingFromTime( byCompName(mcSamples, ['^(TTJets_Single|T_|TBar_).*']), 70 if preprocessor else 10, 12) configureSplittingFromTime(dataSamples, 50 if preprocessor else 5, 12) else: # rerunning deepFlavor can take up to twice the time, some samples take up to 400 ms per event configureSplittingFromTime( byCompName(mcSamples, ['^(?!(TTJets_Single|T_|TBar_)).*']), 300 if preprocessor else 10, 12) configureSplittingFromTime( byCompName(mcSamples, ['^(TTJets_Single|T_|TBar_).*']), 150 if preprocessor else 10, 12) configureSplittingFromTime(dataSamples, 100 if preprocessor else 5, 12) configureSplittingFromTime(byCompName(dataSamples, ['Single']), 50 if preprocessor else 5, 12)
dataSamples = [] vetoTriggers = [] for pd, triggers in DatasetsAndTriggers: for comp in byCompName(allData, [pd]): comp.triggers = triggers[:] comp.vetoTriggers = vetoTriggers[:] dataSamples.append(comp) vetoTriggers += triggers[:] selectedComponents = mcSamples + dataSamples if getHeppyOption('selectComponents'): selectedComponents = byCompName( selectedComponents, getHeppyOption('selectComponents').split(",")) autoAAA(selectedComponents, quiet=not (getHeppyOption("verboseAAA", False))) configureSplittingFromTime(mcSamples, 250 if preprocessor else 10, 10) configureSplittingFromTime(dataSamples, 80 if preprocessor else 10, 10) selectedComponents, _ = mergeExtensions(selectedComponents) # create and set preprocessor if requested if getHeppyOption("nanoPreProcessor"): from CMGTools.Production.nanoAODPreprocessor import nanoAODPreprocessor preproc_cfg = { 2016: ("mc94X2016", "data94X2016"), 2017: ("mc94Xv2", "data94Xv2"), 2018: ("mc102X", "data102X_ABC", "data102X_D") } preproc_cmsswArea = "/afs/cern.ch/user/v/vtavolar/work/SusySOSSW_2_clean/nanoAOD/CMSSW_10_2_15" #MODIFY ACCORDINGLY preproc_mc = nanoAODPreprocessor( cfg='%s/src/PhysicsTools/NanoAOD/test/%s_NANO.py' % (preproc_cmsswArea, preproc_cfg[year][0]),
vetoTriggers = [] for pd, trigs in DatasetsAndTriggers: if not trigs: continue for comp in byCompName(allData, [pd]): comp.triggers = trigs[:] comp.vetoTriggers = vetoTriggers[:] dataSamples.append(comp) vetoTriggers += trigs[:] selectedComponents = mcSamples + dataSamples if getHeppyOption('selectComponents'): selectedComponents = byCompName( selectedComponents, getHeppyOption('selectComponents').split(",")) autoAAA(selectedComponents, quiet=not (getHeppyOption("verboseAAA", False))) configureSplittingFromTime(selectedComponents, 100 if preprocessor else 10, 4) selectedComponents, _ = mergeExtensions(selectedComponents) # create and set preprocessor if requested if preprocessor: from CMGTools.Production.nanoAODPreprocessor import nanoAODPreprocessor preproc_cfg = { 2016: ("mc94X2016", "data94X2016"), 2017: ("mc94Xv2", "data94Xv2"), 2018: ("mc102X", "data102X_ABC", "data102X_D") } preproc_cmsswArea = "/afs/cern.ch/user/p/peruzzi/work/cmgtools_tth/CMSSW_10_2_14" preproc_mc = nanoAODPreprocessor( cfg='%s/src/PhysicsTools/NanoAOD/test/%s_NANO.py' % (preproc_cmsswArea, preproc_cfg[year][0]), cmsswArea=preproc_cmsswArea,
dataSamples = [] vetoTriggers = [] for pd, triggers in DatasetsAndTriggers: for comp in byCompName(allData, [pd]): comp.triggers = triggers[:] comp.vetoTriggers = vetoTriggers[:] dataSamples.append(comp) vetoTriggers += triggers[:] selectedComponents = mcSamples + dataSamples if getHeppyOption('selectComponents'): selectedComponents = byCompName( selectedComponents, getHeppyOption('selectComponents').split(",")) autoAAA(selectedComponents, quiet=not (getHeppyOption("verboseAAA", False))) configureSplittingFromTime(selectedComponents, 100 if preprocessor else 10, 4) selectedComponents, _ = mergeExtensions(selectedComponents) # create and set preprocessor if requested if preprocessor: from CMGTools.Production.nanoAODPreprocessor import nanoAODPreprocessor preproc_cfg = { 2016: ("mc94X2016", "data94X2016"), 2017: ("mc94Xv2", "data94Xv2"), 2018: ("mc102X", "data102X_ABC", "data102X_D") } preproc_cmsswArea = "/afs/cern.ch/user/p/peruzzi/work/cmgtools_tth/CMSSW_10_2_14" preproc_mc = nanoAODPreprocessor( cfg='%s/src/PhysicsTools/NanoAOD/test/%s_NANO.py' % (preproc_cmsswArea, preproc_cfg[year][0]), cmsswArea=preproc_cmsswArea,
isMC = not (runData or runDataJetHT or runDataIsoLep) if runTTJets or runWJets or runZInv or runOtherMC1 or runOtherMC2: selectedComponents = mcSamples elif runFastSim or runPMSSM: selectedComponents = signalSamples elif runData or runDataJetHT or runDataIsoLep: selectedComponents = dataSamples else: selectedComponents = byCompName( selectedComponents, getHeppyOption('selectComponents').split(",")) #autoAAA(selectedComponents, quiet=not(getHeppyOption("verboseAAA",False)), redirectorAAA="xrootd-cms.infn.it") configureSplittingFromTime(mcSamples, 150 if preprocessor else 2, 2) #configureSplittingFromTime(mcSamples, 150 if preprocessor else 8 ,2) configureSplittingFromTime(dataSamples, 100 if preprocessor else 1, 4) #configureSplittingFromTime(dataSamples,100 if preprocessor else 2 ,2) selectedComponents, _ = mergeExtensions(selectedComponents) # create and set preprocessor if requested #if preprocessor: # from CMGTools.Production.nanoAODPreprocessor import nanoAODPreprocessor # preproc_cfg = {2016: ("mc94X2016","data94X2016"), # 2017: ("mc94Xv2","data94Xv2"), # 2018: ("mc102X","data102X_ABC","data102X_D")} #preproc_cmsswArea = "/afs/cern.ch/user/p/peruzzi/work/cmgtools_tth/CMSSW_10_2_16_UL" # preproc_cmsswArea = "/afs/cern.ch/user/d/dchasque/working/test" # preproc_mc = nanoAODPreprocessor(cfg='%s/src/PhysicsTools/NanoAOD/test/%s_NANO.py'%(preproc_cmsswArea,preproc_cfg[year][0]),cmsswArea=preproc_cmsswArea,keepOutput=True)