dirs[pd + '_' + totalRunName] = [] for r in listOfRuns: dirs[pd + '_' + totalRunName].extend(dirs[pd + '_' + r]) for pd in ['DoubleMuon']: merge(pd, 'Run2016BCD', ['Run2016B_ver2', 'Run2016C', 'Run2016D']) merge(pd, 'Run2016BCDEFG', ['Run2016BCD', 'Run2016E', 'Run2016F', 'Run2016G']) merge(pd, 'Run2016', ['Run2016BCDEFG', 'Run2016H']) for key in dirs: dirs[key] = [ os.path.join( data_directory, postProcessing_directory, dir) for dir in dirs[key]] def getSample(pd, runName, lumi): sample = Sample.fromDirectory(name=(pd + '_' + runName), treeName="Events", texName=(pd + ' (' + runName + ')'), directory=dirs[pd + '_' + runName]) sample.lumi = lumi return sample DoubleMuon_Run2016 = getSample('DoubleMuon', 'Run2016', (35.9)*1000) allSamples_Data25ns = [] allSamples_Data25ns += [DoubleMuon_Run2016] Run2016 = Sample.combine("Run2016", [DoubleMuon_Run2016], texName = "Data") Run2016.lumi = (35.9)*1000 for s in allSamples_Data25ns: s.color = ROOT.kBlack s.isData = True
dirs = {} for (run, version) in [('B', '_ver2'), ('C', ''), ('D', ''), ('E', ''), ('F', ''), ('G', ''), ('H', '')]: runTag = 'Run2016' + run + '_05Feb2018' + version for pd in allSamples: dirs[pd + "_Run2016" + run + version] = [pd + "_" + runTag] for pd in allSamples: merge(pd, 'Run2016BCD', ['Run2016B_ver2', 'Run2016C', 'Run2016D'], dirs) merge(pd, 'Run2016BCDEFG', ['Run2016BCD', 'Run2016E', 'Run2016F', 'Run2016G'], dirs) merge(pd, 'Run2016', ['Run2016BCDEFG', 'Run2016H'], dirs) for key in dirs: dirs[key] = [ os.path.join(data_directory, postprocessing_datadirectory2016, dir) for dir in dirs[key] ] allSamples_Data25ns = [] for pd in allSamples: vars()[pd + '_Run2016'] = getSample(pd, 'Run2016', lumi * 1000, dirs) allSamples_Data25ns += [vars()[pd + '_Run2016']] Run2016 = Sample.combine("Run2016", allSamples_Data25ns, texName="Data") Run2016.lumi = lumi * 1000 for s in allSamples_Data25ns: s.color = ROOT.kBlack s.isData = True
texName=(pd + ' (' + runName + ')'), directory=dirs[pd + '_' + runName]) sample.lumi = lumi return sample DoubleEG_Run2017 = getSample('DoubleEG', 'Run2017', 41. * 1000) DoubleMuon_Run2017 = getSample('DoubleMuon', 'Run2017', 41. * 1000) SingleElectron_Run2017 = getSample('SingleElectron', 'Run2017', 41. * 1000) SingleMuon_Run2017 = getSample('SingleMuon', 'Run2017', 41. * 1000) MuonEG_Run2017 = getSample('MuonEG', 'Run2017', 41. * 1000) allSamples_Data25ns_2017 = [] allSamples_Data25ns_2017 += [ SingleMuon_Run2017, SingleElectron_Run2017, MuonEG_Run2017, DoubleEG_Run2017, DoubleMuon_Run2017 ] Run2017 = Sample.combine("Run2017", [ SingleMuon_Run2017, SingleElectron_Run2017, MuonEG_Run2017, DoubleEG_Run2017, DoubleMuon_Run2017 ], texName="Data 2017") Run2017.lumi = 41. * 1000 Run2017.color = ROOT.kBlack Run2017.isData = True for s in allSamples_Data25ns_2017: s.color = ROOT.kBlack s.isData = True
MuonEG_Run2018D = getSample('MuonEG', 'Run2018D', ((31.93) * 1000)) SingleMuon_Run2018D = getSample('SingleMuon', 'Run2018D', ((31.93) * 1000)) allSamples_Data25ns += [ MuonEG_Run2018D, EGamma_Run2018D, DoubleMuon_Run2018D, SingleMuon_Run2018D ] EGamma_Run2018 = getSample('EGamma', 'Run2018', ((59.97) * 1000)) DoubleMuon_Run2018 = getSample('DoubleMuon', 'Run2018', ((59.97) * 1000)) MuonEG_Run2018 = getSample('MuonEG', 'Run2018', ((59.97) * 1000)) SingleMuon_Run2018 = getSample('SingleMuon', 'Run2018', ((59.97) * 1000)) allSamples_Data25ns += [ MuonEG_Run2018, EGamma_Run2018, DoubleMuon_Run2018, SingleMuon_Run2018 ] Run2018A = Sample.combine("Run2018A", [ MuonEG_Run2018A, EGamma_Run2018A, DoubleMuon_Run2018A, SingleMuon_Run2018A ], texName="Run2018") Run2018A.lumi = (14.00) * 1000 allSamples_Data25ns.append(Run2018A) Run2018B = Sample.combine("Run2018B", [ MuonEG_Run2018B, EGamma_Run2018B, DoubleMuon_Run2018B, SingleMuon_Run2018B ], texName="Run2018B") Run2018B.lumi = (7.10) * 1000 allSamples_Data25ns.append(Run2018B) Run2018C = Sample.combine("Run2018C", [ MuonEG_Run2018C, EGamma_Run2018C, DoubleMuon_Run2018C, SingleMuon_Run2018C ], texName="Run2018C")
SingleElectron_Run2017B = getSample('SingleElectron', 'Run2017B', (4.823) * 1000) SingleElectron_Run2017CDE = getSample('SingleElectron', 'Run2017CDE', (9.664 + 4.252 + 9.278) * 1000) SingleElectron_Run2017BCDE = getSample('SingleElectron', 'Run2017BCDE', (4.823 + 9.664 + 4.252 + 9.278) * 1000) SingleElectron_Run2017F = getSample('SingleElectron', 'Run2017F', (13.540) * 1000) allSamples_Data25ns += [ SingleElectron_Run2017, SingleElectron_Run2017B, SingleElectron_Run2017CDE, SingleElectron_Run2017BCDE, SingleElectron_Run2017F ] Run2017 = Sample.combine("Run2017", [ MuonEG_Run2017, DoubleEG_Run2017, DoubleMuon_Run2017, SingleMuon_Run2017, SingleMuon_Run2017 ], texName="Run2017") Run2017.lumi = (41.5) * 1000 Run2017B = Sample.combine("Run2017B", [ MuonEG_Run2017B, DoubleEG_Run2017B, DoubleMuon_Run2017B, SingleElectron_Run2017B, SingleMuon_Run2017B ], texName="Run2017B") Run2017B.lumi = (4.823) * 1000 Run2017CDE = Sample.combine("Run2017CDE", [ MuonEG_Run2017CDE, DoubleEG_Run2017CDE, DoubleMuon_Run2017CDE, SingleElectron_Run2017CDE, SingleMuon_Run2017CDE ], texName="Run2017CDE") Run2017CDE.lumi = (9.664 + 4.252 + 9.278) * 1000
'DoubleMuon', 'Run2016', (5.744 + 2.573 + 4.248 + 4.009 + 3.101 + 7.540 + 8.329 + 0.210) * 1000) SingleElectron_Run2016 = getSample( 'SingleElectron', 'Run2016', (5.744 + 2.573 + 4.248 + 4.009 + 3.101 + 7.540 + 8.329 + 0.210) * 1000) SingleMuon_Run2016 = getSample( 'SingleMuon', 'Run2016', (5.744 + 2.573 + 4.248 + 4.009 + 3.101 + 7.540 + 8.329 + 0.210) * 1000) MuonEG_Run2016 = getSample( 'MuonEG', 'Run2016', (5.744 + 2.573 + 4.248 + 4.009 + 3.101 + 7.540 + 8.329 + 0.210) * 1000) allSamples_Data25ns = [] #allSamples_Data25ns += [SingleElectron_Run2016] allSamples_Data25ns += [ SingleMuon_Run2016, SingleElectron_Run2016, MuonEG_Run2016, DoubleEG_Run2016, DoubleMuon_Run2016 ] Run2016 = Sample.combine("Run2016", [ SingleMuon_Run2016, SingleElectron_Run2016, MuonEG_Run2016, DoubleEG_Run2016, DoubleMuon_Run2016 ], texName="Data") Run2016.lumi = (5.744 + 2.573 + 4.248 + 4.009 + 3.101 + 7.540 + 8.329 + 0.210) * 1000 for s in allSamples_Data25ns + [Run2016]: s.color = ROOT.kBlack s.isData = True
SingleElectron_Run2016GH, SingleMuon_Run2016GH ] DoubleEG_Run2016 = getSample('DoubleEG', 'Run2016', (35.9) * 1000) DoubleMuon_Run2016 = getSample('DoubleMuon', 'Run2016', (35.9) * 1000) SingleElectron_Run2016 = getSample('SingleElectron', 'Run2016', (35.9) * 1000) SingleMuon_Run2016 = getSample('SingleMuon', 'Run2016', (35.9) * 1000) MuonEG_Run2016 = getSample('MuonEG', 'Run2016', (35.9) * 1000) allSamples_Data25ns += [ MuonEG_Run2016, DoubleEG_Run2016, DoubleMuon_Run2016, SingleElectron_Run2016, SingleMuon_Run2016 ] Run2016 = Sample.combine("Run2016", [ MuonEG_Run2016, DoubleEG_Run2016, DoubleMuon_Run2016, SingleElectron_Run2016, SingleMuon_Run2016 ], texName="Run2016") Run2016.lumi = (35.9) * 1000 allSamples_Data25ns.append(Run2016) Run2016BCD = Sample.combine("Run2016BCD", [ MuonEG_Run2016BCD, DoubleEG_Run2016BCD, DoubleMuon_Run2016BCD, SingleElectron_Run2016BCD, SingleMuon_Run2016BCD ], texName="Run2016BCD") Run2016BCD.lumi = (35.9) * 1000 allSamples_Data25ns.append(Run2016BCD) Run2016EF = Sample.combine("Run2016EF", [ MuonEG_Run2016EF, DoubleEG_Run2016EF, DoubleMuon_Run2016EF,
redirector=redirector, fromDPM=fromDPM) vars()[pd + '_Run2017F'] = getDataSample(pd, 'Run2017F', lumi * 1000, dirs, redirector=redirector, fromDPM=fromDPM) allSamples_Data25ns += [vars()[pd + '_Run2017']] allSamplesB_Data25ns += [vars()[pd + '_Run2017B']] allSamplesC_Data25ns += [vars()[pd + '_Run2017C']] allSamplesD_Data25ns += [vars()[pd + '_Run2017D']] allSamplesE_Data25ns += [vars()[pd + '_Run2017E']] allSamplesF_Data25ns += [vars()[pd + '_Run2017F']] Run2017 = Sample.combine("Run2017", allSamples_Data25ns, texName="Data") Run2017.lumi = lumi * 1000 Run2017B = Sample.combine("Run2017B", allSamplesB_Data25ns, texName="Data") Run2017B.lumi = lumi * 1000 Run2017C = Sample.combine("Run2017C", allSamplesC_Data25ns, texName="Data") Run2017C.lumi = lumi * 1000 Run2017D = Sample.combine("Run2017D", allSamplesD_Data25ns, texName="Data") Run2017D.lumi = lumi * 1000 Run2017E = Sample.combine("Run2017E", allSamplesE_Data25ns, texName="Data") Run2017E.lumi = lumi * 1000 Run2017F = Sample.combine("Run2017F", allSamplesF_Data25ns, texName="Data")
for pd in ['DoubleMuon']: merge(pd, 'Run2018', ['Run2018A', 'Run2018B', 'Run2018C', 'Run2018D']) for key in dirs: dirs[key] = [ os.path.join(data_directory, postProcessing_directory, dir) for dir in dirs[key] ] def getSample(pd, runName, lumi): sample = Sample.fromDirectory(name=(pd + '_' + runName), treeName="Events", texName=(pd + ' (' + runName + ')'), directory=dirs[pd + '_' + runName]) sample.lumi = lumi return sample DoubleMuon_Run2018 = getSample('DoubleMuon', 'Run2018', (59.97) * 1000) allSamples_Data25ns = [] allSamples_Data25ns += [DoubleMuon_Run2018] Run2018 = Sample.combine("Run2018", [DoubleMuon_Run2018], texName="Data") Run2018.lumi = (59.97) * 1000 for s in allSamples_Data25ns: s.color = ROOT.kBlack s.isData = True
SMS_T2tt_mStop_400to1200 = Sample.nanoAODfromDAS( "SMS_T2tt_mStop_400to1200", "/SMS-T2tt_mStop-400to1200_TuneCP2_13TeV-madgraphMLM-pythia8/dspitzba-crab_RunIIFall17MiniAODv2-PUFall17Fast_94X_mc2017_realistic_v15-v1_legacy_nano_v3-eac24e9939368177973140c118f0ff9f/USER", dbFile=dbFile, redirector=redirector, instance="phys03", overwrite=ov, xSection=1) SUSY = [ SMS_T2tt_mStop_400to1200, ] ## combined samples (needed for proper PUProfileCache) DYJetsToLL_M50_LO_comb = Sample.combine( "DYJetsToLL_M50_LO_comb", [DYJetsToLL_M50_LO, DYJetsToLL_M50_LO_ext1]) if hasattr(DYJetsToLL_M50_LO_comb, 'nEvents'): DYJetsToLL_M50_LO_comb.nEvents = DYJetsToLL_M50_LO.nEvents + DYJetsToLL_M50_LO_ext1.nEvents TTW_LO_comb = Sample.combine("TTW_LO_comb", [TTW_LO, TTW_LO_ext1]) if hasattr(TTW_LO_comb, 'nEvents'): TTW_LO_comb.nEvents = TTW_LO.nEvents + TTW_LO_ext1.nEvents WJetsToLNu_comb = Sample.combine("WJetsToLNu_comb", [WJetsToLNu, WJetsToLNu_ext1]) if hasattr(WJetsToLNu_comb, 'nEvents'): WJetsToLNu_comb.nEvents = WJetsToLNu.nEvents + WJetsToLNu_ext1.nEvents combinedSamples = [ DYJetsToLL_M50_LO_comb, TTW_LO_comb,
sample = Sample.fromDirectory(name=(pd + '_' + runName), treeName="Events", texName=(pd + ' (' + runName + ')'), directory=dirs[pd + '_' + runName]) sample.lumi = lumi return sample DoubleMuon_Run2017 = getSample('DoubleMuon', 'Run2017', (41.53) * 1000) DoubleMuon_Run2017F = getSample('DoubleMuon', 'Run2017F', (13.5) * 1000) DoubleMuon_Run2017BCDE = getSample('DoubleMuon', 'Run2017BCDE', (28.0) * 1000) allSamples_Data25ns = [] allSamples_Data25ns += [ DoubleMuon_Run2017, DoubleMuon_Run2017F, DoubleMuon_Run2017BCDE ] Run2017 = Sample.combine("Run2017", [DoubleMuon_Run2017], texName="Data") Run2017.lumi = (41.53) * 1000 Run2017F = Sample.combine("Run2017F", [DoubleMuon_Run2017F], texName="Data") Run2017F.lumi = (13.50) * 1000 Run2017BCDE = Sample.combine("Run2017BCDE", [DoubleMuon_Run2017BCDE], texName="Data") Run2017BCDE.lumi = (28.0) * 1000 for s in allSamples_Data25ns: s.color = ROOT.kBlack s.isData = True