예제 #1
0
    'dR03mva': 'Loose',
    ##'deepVSj' : 'Loose', # CV: use for datacard production
    'deepVSj': 'Medium',  # CV: use for datacard production
}
hadTau_selection = tau_id + hadTauWP_map[tau_id]

blacklist = []
if use_blacklist:
    blacklist.append('postproc')
    if use_preselected:
        blacklist.append('skimmed_multilepton')

if mode == "default":
    samples = load_samples(era,
                           suffix="preselected" if use_preselected else "")
    samples = load_samples_stitched(samples, era, ['dy_nlo', 'wjets'])
elif mode == "forBDTtraining":
    if use_preselected:
        raise ValueError(
            "Producing Ntuples for BDT training from preselected Ntuples makes no sense!"
        )

    samples = load_samples(era, suffix="BDT")
    samples = load_samples_stitched(samples, era, ['dy_lo'])

    hadTauWP_map_relaxed = {
        'dR03mva': 'VLoose',
        'deepVSj': 'VVVLoose',  # CV: use for BDT training
    }
    if args.tau_id_wp:
        tau_id = args.tau_id[:7]
if lep_mva_wp != 'default' and use_preselected:
    raise RuntimeError(
        "Cannot use skimmed samples with non-default lepton definition")

# Use the arguments
central_or_shifts = []
for systematic_label in systematics_label:
    for central_or_shift in getattr(systematics, systematic_label):
        if central_or_shift not in central_or_shifts:
            central_or_shifts.append(central_or_shift)
lumi = get_lumi(era)
jet_cleaning_by_index = (jet_cleaning == 'by_index')
gen_matching_by_index = (gen_matching == 'by_index')

samples = load_samples(era, suffix="preselected" if use_preselected else "")
samples = load_samples_stitched(samples, era, use_stitched)

for sample_name, sample_info in samples.items():
    if sample_name == 'sum_events':
        continue
    if sample_info["use_it"] == False:
        continue
    if sample_info["type"] == "mc":
        sample_info["triggers"] = ["1mu", "2mu"]
    if re.match("/DY(\d)?Jets", sample_name
                ) or sample_info["process_name_specific"].startswith("DYToLL"):
        sample_info["sample_category"] = "DY"
    elif sample_info["process_name_specific"].startswith(("TTTo", "TTJets")):
        sample_info["sample_category"] = "TTbar"
    elif re.match("/W(\d)?Jets", sample_name):
        sample_info["sample_category"] = "WJets"
예제 #3
0
    for central_or_shift in getattr(systematics, systematic_label):
        if central_or_shift not in central_or_shifts:
            central_or_shifts.append(central_or_shift)
lumi = get_lumi(era)
jet_cleaning_by_index = (jet_cleaning == 'by_index')
gen_matching_by_index = (gen_matching == 'by_index')

if mode == 'default':
    samples = load_samples(era)
elif mode == 'sync':
    samples = load_samples(era, suffix='leptonFR_sync')
else:
    raise ValueError('Invalid mode: %s' % mode)

samples = load_samples_stitched(samples,
                                era,
                                load_dy='dy' in use_stitched,
                                load_wjets='wjets' in use_stitched)
for sample_name, sample_info in samples.items():
    if sample_name == 'sum_events': continue

    if sample_info["type"] == "mc":
        sample_info["triggers"] = ["1e", "1mu", "2e", "2mu"]

    if sample_info["sample_category"] == "QCD":
        sample_info["use_it"] = True
        if sample_info["process_name_specific"].endswith("_Mu5"):
            sample_info["use_it"] = not qcd_inclusive
        elif sample_info["process_name_specific"] == "QCD_Mu15":
            sample_info["use_it"] = qcd_inclusive

    if sample_name.startswith(('/MuonEG/Run', '/Tau/Run')):
예제 #4
0
            central_or_shifts.append(central_or_shift)

do_sync = mode.startswith('sync')
lumi = get_lumi(era)

if mode == "default":
    samples = load_samples(era,
                           suffix="preselected" if use_preselected else "")
elif mode == "forBDTtraining":
    if use_preselected:
        raise ValueError(
            "Producing Ntuples for BDT training from preselected Ntuples makes no sense!"
        )
    samples = load_samples(era, suffix="BDT")
    samples = load_samples_stitched(samples,
                                    era,
                                    load_dy=True,
                                    load_wjets=True)
elif mode == "sync":
    samples = load_samples(era, suffix="sync")
else:
    raise ValueError("Internal logic error")

evtCategories = None
if mode == "default" and len(central_or_shifts) <= 1:
    evtCategories = [
        "hh_bb2l", "hh_bb2l_resolvedHbb", "hh_bb2l_resolvedHbb_vbf",
        "hh_bb2l_resolvedHbb_nonvbf", "hh_bb2l_boostedHbb", "hh_bb2l_vbf",
        "hh_bb2l_nonvbf", "hh_2bM2l", "hh_2bM2l_resolvedHbb",
        "hh_2bM2l_resolvedHbb_nonvbf", "hh_2bM2l_nonvbf", "hh_1bM1bL2l",
        "hh_1bM1bL2l_resolvedHbb", "hh_1bM1bL2l_resolvedHbb_nonvbf",
        "hh_1bM1bL2l_nonvbf", "hh_1bM2l", "hh_1bM2l_resolvedHbb",
예제 #5
0
  if use_preselected:
    sample_suffix = "preselected_{}".format(sample_suffix)
  samples = load_samples(era, suffix = sample_suffix)
else:
  raise ValueError("Invalid mode: %s" % mode)

if not mode.startswith("sync"):
  for sample_name, sample_info in samples.items():
    if sample_name == 'sum_events':
      continue
    if era == "2018" and sample_info["sample_category"] == "tHq" and sample_info["use_it"]:
      sample_info["skipEvery"] = 3

if use_stitched:
  samples = load_samples_stitched(
    samples, era, load_dy = 'dy' in use_stitched, load_wjets = 'wjets' in use_stitched,
    disable_dy_inclusive = 'dy_noincl' in use_stitched, disable_wjets_inclusive = 'wjets_noincl' in use_stitched,
  )

#--------------------------------------------------------------------------------
# CV: add ttbar MC samples to make a few extra plots for the HIG-19-008 paper
#for sample_name, sample_info in samples.items():
#  if sample_name == 'sum_events':
#    continue
#  if sample_name.startswith(('/TTTo2L2Nu', '/TTToSemiLeptonic')):
#    sample_info["use_it"] = True
#--------------------------------------------------------------------------------

if __name__ == '__main__':
  logging.info(
    "Running the jobs with the following systematic uncertainties enabled: %s" % \
    ', '.join(central_or_shifts)
예제 #6
0
from hhAnalysis.multilepton.samples.hhAnalyzeSamples_2018 import samples_2018
from tthAnalysis.HiggsToTauTau.common import load_samples_stitched

samples_2018 = load_samples_stitched(
    samples_2018, '2018', ['dy_lo', 'wjets'])  # load LO DY and W+jets

for sample_name, sample_info in samples_2018.items():
    if sample_name == 'sum_events':
        continue
    process_name = sample_info["process_name_specific"]
    if process_name.startswith('WZTo3LNu'):
        sample_info["use_it"] = process_name.startswith(
            ('WZTo3LNu_powheg', 'WZTo3LNu_mllmin01'))
    elif process_name.lower().startswith('ttz'):
        sample_info["use_it"] = 'TTZJets_LO' in process_name
    elif process_name.lower().startswith('ttw'):
        sample_info["use_it"] = 'TTWJets_LO' in process_name