From cab6f8220b535a196593b1ca3e875d21728029d4 Mon Sep 17 00:00:00 2001 From: apaasch Date: Tue, 6 Jun 2023 15:57:01 +0200 Subject: [PATCH 01/11] Add JMENano for 2018 data --- cmsdb/processes/data.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmsdb/processes/data.py b/cmsdb/processes/data.py index d1dba166..0b861cef 100644 --- a/cmsdb/processes/data.py +++ b/cmsdb/processes/data.py @@ -5,7 +5,7 @@ """ __all__ = [ - "data", "data_e", "data_mu", "data_tau", "data_met", "data_pho", + "data", "data_e", "data_mu", "data_tau", "data_met", "data_pho", "data_dijet", ] from order import Process @@ -57,3 +57,10 @@ is_data=True, label=r"Data $\gamma$", ) + +data_dijet = data.add_process( + name="data_dijet", + id=100, + is_data=True, + label=r"Data $\gamma$", +) From 17f225bd6ac0b997441d3bf9029e28fcaf823891 Mon Sep 17 00:00:00 2001 From: apaasch Date: Tue, 6 Jun 2023 16:40:27 +0200 Subject: [PATCH 02/11] File to read DAS info --- GetDASinfo.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 GetDASinfo.py diff --git a/GetDASinfo.py b/GetDASinfo.py new file mode 100644 index 00000000..a49f0490 --- /dev/null +++ b/GetDASinfo.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +from __future__ import annotations + +import subprocess +import json +from optparse import OptionParser +import law + +def get_das_info(das_string: str, keys_of_interest: tuple | None = None): + + # set default keys of interest + keys_of_interest = keys_of_interest or ( + "name", "dataset_id", "nfiles", "nevents", + ) + + # call dasgoclient command + cmd = f"dasgoclient -query='dataset={das_string}' -json" + code, out, _ = law.util.interruptable_popen( + cmd, + shell=True, + stdout=subprocess.PIPE, + executable="/bin/bash", + ) + + if code != 0: + raise Exception(f"dasgoclient query failed:\n{out}") + + infos = json.loads(out) + # json file from dataset contains 4 dictonaries, containing different infos (ids, files, etc.) + info_of_interest = {'name': das_string} + for info in infos: + dataset_info = info["dataset"][0] + + # check that all keys of interest are there + # if not set(keys_of_interest).issubset(dataset_info.keys()): + # continue + + if "dataset_info" in info["das"]["services"][0]: + info_of_interest["dataset_id"] = dataset_info.get("dataset_id", "") + elif "filesummaries" in info["das"]["services"][0]: + info_of_interest["nfiles"] = dataset_info.get("nfiles", "") + info_of_interest["nevents"] = dataset_info.get("nevents", "") + + print(json.dumps(info_of_interest, indent=4)) + + +if __name__ == "__main__": + parser = OptionParser() + parser.add_option('-d', '--dataset', dest='dataset', help='das name') + (options,args) = parser.parse_args() + + get_das_info(options.dataset) From dbe40bbbb58da255c0ab58e2373af6c5b02917d3 Mon Sep 17 00:00:00 2001 From: apaasch Date: Tue, 6 Jun 2023 16:42:20 +0200 Subject: [PATCH 03/11] Add usage info --- GetDASinfo.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GetDASinfo.py b/GetDASinfo.py index a49f0490..e93818c0 100644 --- a/GetDASinfo.py +++ b/GetDASinfo.py @@ -1,5 +1,8 @@ # coding: utf-8 +# USAGE: python GetDASinfo.py -d das_string +# e.g. /JetHT/Run2018C-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD + from __future__ import annotations import subprocess From 3d5c5dc73c5ffde10683cb222250214ced3a7de2 Mon Sep 17 00:00:00 2001 From: apaasch Date: Wed, 7 Jun 2023 14:56:03 +0200 Subject: [PATCH 04/11] Add multiple arguments --- GetDASinfo.py | 86 +++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/GetDASinfo.py b/GetDASinfo.py index e93818c0..91d026bc 100644 --- a/GetDASinfo.py +++ b/GetDASinfo.py @@ -7,50 +7,54 @@ import subprocess import json -from optparse import OptionParser +from argparse import ArgumentParser import law -def get_das_info(das_string: str, keys_of_interest: tuple | None = None): - - # set default keys of interest - keys_of_interest = keys_of_interest or ( - "name", "dataset_id", "nfiles", "nevents", - ) - - # call dasgoclient command - cmd = f"dasgoclient -query='dataset={das_string}' -json" - code, out, _ = law.util.interruptable_popen( - cmd, - shell=True, - stdout=subprocess.PIPE, - executable="/bin/bash", - ) - - if code != 0: - raise Exception(f"dasgoclient query failed:\n{out}") - - infos = json.loads(out) - # json file from dataset contains 4 dictonaries, containing different infos (ids, files, etc.) - info_of_interest = {'name': das_string} - for info in infos: - dataset_info = info["dataset"][0] - - # check that all keys of interest are there - # if not set(keys_of_interest).issubset(dataset_info.keys()): - # continue +# def get_das_info(das_string: str, keys_of_interest: tuple | None = None): +def get_das_info(das_strings: list[str], keys_of_interest: tuple | None = None): + for das_string in das_strings: + # set default keys of interest + keys_of_interest = keys_of_interest or ( + "name", "dataset_id", "nfiles", "nevents", + ) + + # call dasgoclient command + cmd = f"dasgoclient -query='dataset={das_string}' -json" + code, out, _ = law.util.interruptable_popen( + cmd, + shell=True, + stdout=subprocess.PIPE, + executable="/bin/bash", + ) + + if code != 0: + raise Exception(f"dasgoclient query failed:\n{out}") + + infos = json.loads(out) + # json file from dataset contains 4 dictonaries, containing different infos (ids, files, etc.) + info_of_interest = {'name': das_string} + for info in infos: + dataset_info = info["dataset"][0] - if "dataset_info" in info["das"]["services"][0]: - info_of_interest["dataset_id"] = dataset_info.get("dataset_id", "") - elif "filesummaries" in info["das"]["services"][0]: - info_of_interest["nfiles"] = dataset_info.get("nfiles", "") - info_of_interest["nevents"] = dataset_info.get("nevents", "") - - print(json.dumps(info_of_interest, indent=4)) + # check that all keys of interest are there + # if not set(keys_of_interest).issubset(dataset_info.keys()): + # continue + + if "dataset_info" in info["das"]["services"][0]: + info_of_interest["dataset_id"] = dataset_info.get("dataset_id", "") + elif "filesummaries" in info["das"]["services"][0]: + info_of_interest["nfiles"] = dataset_info.get("nfiles", "") + info_of_interest["nevents"] = dataset_info.get("nevents", "") + + print(json.dumps(info_of_interest, indent=4)) if __name__ == "__main__": - parser = OptionParser() - parser.add_option('-d', '--dataset', dest='dataset', help='das name') - (options,args) = parser.parse_args() - - get_das_info(options.dataset) + parser = ArgumentParser() + # parser.add_option('-d', '--dataset', dest='dataset', nargs='+', help='das name') + parser.add_argument('-d', '--dataset', dest='dataset', nargs='+', help='das name') + # (options,args) = parser.parse_args() + args = parser.parse_args() + + # get_das_info(options.dataset) + get_das_info(args.dataset) From f10360c0518a51ef094da0beb2b4e1f5d1fa697c Mon Sep 17 00:00:00 2001 From: apaasch Date: Wed, 7 Jun 2023 15:26:23 +0200 Subject: [PATCH 05/11] Add wildcard --- GetDASinfo.py | 77 +++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 33 deletions(-) diff --git a/GetDASinfo.py b/GetDASinfo.py index 91d026bc..fc3be3d4 100644 --- a/GetDASinfo.py +++ b/GetDASinfo.py @@ -10,7 +10,6 @@ from argparse import ArgumentParser import law -# def get_das_info(das_string: str, keys_of_interest: tuple | None = None): def get_das_info(das_strings: list[str], keys_of_interest: tuple | None = None): for das_string in das_strings: # set default keys of interest @@ -18,43 +17,55 @@ def get_das_info(das_strings: list[str], keys_of_interest: tuple | None = None): "name", "dataset_id", "nfiles", "nevents", ) - # call dasgoclient command - cmd = f"dasgoclient -query='dataset={das_string}' -json" - code, out, _ = law.util.interruptable_popen( - cmd, - shell=True, - stdout=subprocess.PIPE, - executable="/bin/bash", - ) + wildcard = "*" in das_string + datasets = [] + if not wildcard: + # keep consisting structure + datasets.append(das_string) + else: + # using a wildcard leads to a different structer in json format + cmd = f"dasgoclient -query='dataset={das_string}' -json" + code, out, _ = law.util.interruptable_popen( + cmd, + shell=True, + stdout=subprocess.PIPE, + executable="/bin/bash", + ) + if code != 0: + raise Exception(f"dasgoclient query failed:\n{out}") + infos = json.loads(out) + for info in infos: + dataset_name = info.get('dataset',[])[0].get('name',"") + # print(dataset_name) # keep for debugging purpose + datasets.append(dataset_name) - if code != 0: - raise Exception(f"dasgoclient query failed:\n{out}") - - infos = json.loads(out) - # json file from dataset contains 4 dictonaries, containing different infos (ids, files, etc.) - info_of_interest = {'name': das_string} - for info in infos: - dataset_info = info["dataset"][0] - - # check that all keys of interest are there - # if not set(keys_of_interest).issubset(dataset_info.keys()): - # continue - - if "dataset_info" in info["das"]["services"][0]: - info_of_interest["dataset_id"] = dataset_info.get("dataset_id", "") - elif "filesummaries" in info["das"]["services"][0]: - info_of_interest["nfiles"] = dataset_info.get("nfiles", "") - info_of_interest["nevents"] = dataset_info.get("nevents", "") - - print(json.dumps(info_of_interest, indent=4)) + for dataset in datasets: + # call dasgoclient command + cmd = f"dasgoclient -query='dataset={dataset}' -json" + code, out, _ = law.util.interruptable_popen( + cmd, + shell=True, + stdout=subprocess.PIPE, + executable="/bin/bash", + ) + if code != 0: + raise Exception(f"dasgoclient query failed:\n{out}") + infos = json.loads(out) + info_of_interest = {'name': dataset} + for info in infos: + dataset_info = info["dataset"][0] + # Get json format of single das_string gives multiple dictornaries with different info + # Avoid to print multiple infos twice and ask specificly for the kew of interest + if "dataset_info" in info["das"]["services"][0]: + info_of_interest["dataset_id"] = dataset_info.get("dataset_id", "") + elif "filesummaries" in info["das"]["services"][0]: + info_of_interest["nfiles"] = dataset_info.get("nfiles", "") + info_of_interest["nevents"] = dataset_info.get("nevents", "") + print(json.dumps(info_of_interest, indent=4)) if __name__ == "__main__": parser = ArgumentParser() - # parser.add_option('-d', '--dataset', dest='dataset', nargs='+', help='das name') parser.add_argument('-d', '--dataset', dest='dataset', nargs='+', help='das name') - # (options,args) = parser.parse_args() args = parser.parse_args() - - # get_das_info(options.dataset) get_das_info(args.dataset) From 9d3269b343bbcd61184b755bdb74c42e7b8742fe Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 10:21:22 +0200 Subject: [PATCH 06/11] Add dijet and qcd ht for 2018 --- cmsdb/campaigns/run2_2018_nano_v9/data.py | 73 ++++++++++++++ cmsdb/campaigns/run2_2018_nano_v9/qcd.py | 113 ++++++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100644 cmsdb/campaigns/run2_2018_nano_v9/data.py create mode 100644 cmsdb/campaigns/run2_2018_nano_v9/qcd.py diff --git a/cmsdb/campaigns/run2_2018_nano_v9/data.py b/cmsdb/campaigns/run2_2018_nano_v9/data.py new file mode 100644 index 00000000..4a873dad --- /dev/null +++ b/cmsdb/campaigns/run2_2018_nano_v9/data.py @@ -0,0 +1,73 @@ +# coding: utf-8 + +""" +CMS datasets from the 2017 data-taking campaign +""" + +import cmsdb.processes as procs +from cmsdb.campaigns.run2_2017_nano_v9 import campaign_run2_2017_nano_v9 as cpn + + +# +# DiJet +# + +cpn.add_dataset( + name="data_dijet_a", + id=14260294, # from das + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018A-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=281, + n_events=171484635, + aux={ + "era": "A", + }, +) + +cpn.add_dataset( + name="data_dijet_b", + id=14260659, + is_data=True, + processes=[procs.data_e], + keys=[ + "/JetHT/Run2018B-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=128, + n_events=78255208, + aux={ + "era": "B", + }, +) + +cpn.add_dataset( + name="data_dijet_c", + id=14260590, + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018C-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=138, + n_events=70027804, + aux={ + "era": "C", + }, +) + +cpn.add_dataset( + name="data_dijet_d", + id=14324490, + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018D-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=538, + n_events=356967606, + aux={ + "era": "D", + }, +) diff --git a/cmsdb/campaigns/run2_2018_nano_v9/qcd.py b/cmsdb/campaigns/run2_2018_nano_v9/qcd.py new file mode 100644 index 00000000..504f0f78 --- /dev/null +++ b/cmsdb/campaigns/run2_2018_nano_v9/qcd.py @@ -0,0 +1,113 @@ +# coding: utf-8 + +""" +QCD datasets for the 2017 data-taking campaign +""" + +import cmsdb.processes as procs +from cmsdb.campaigns.run2_2017_nano_v9 import campaign_run2_2017_nano_v9 as cpn + +# +# QCD HT-binned +# + +# HT-binned samples + +cpn.add_dataset( + name="qcd_ht50to100_madgraph", + id=14296686, + processes=[procs.qcd_ht50to100], + keys=[ + "/QCD_HT50to100_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=99, + n_events=38485273, +) + +cpn.add_dataset( + name="qcd_ht100to200_madgraph", + id=14286202, + processes=[procs.qcd_ht100to200], + keys=[ + "/QCD_HT100to200_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=175, + n_events=83416014, +) + +cpn.add_dataset( + name="qcd_ht200to300_madgraph", + id=14288453, + processes=[procs.qcd_ht200to300], + keys=[ + "/QCD_HT200to300_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=104, + n_events=57336623, +) + +cpn.add_dataset( + name="qcd_ht300to500_madgraph", + id=14296771, + processes=[procs.qcd_ht300to500], + keys=[ + "/QCD_HT300to500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=235, + n_events=61491618, +) + +cpn.add_dataset( + name="qcd_ht500to700_madgraph", + id=14293400, + processes=[procs.qcd_ht500to700], + keys=[ + "/QCD_HT500to700_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=106, + n_events=49070152, +) + +cpn.add_dataset( + name="qcd_ht700to1000_madgraph", + id=14275579, + processes=[procs.qcd_ht700to1000], + keys=[ + "/QCD_HT700to1000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=99, + n_events=48220920, +) + +cpn.add_dataset( + name="qcd_ht1000to1500_madgraph", + id=14296761, + processes=[procs.qcd_ht1000to1500], + keys=[ + "/QCD_HT1000to1500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=67, + n_events=14127722, +) + +cpn.add_dataset( + name="qcd_ht1500to2000_madgraph", + id=14300066, + processes=[procs.qcd_ht1500to2000], + keys=[ + "/QCD_HT1500to2000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=27, + n_events=10583770, +) + +cpn.add_dataset( + name="qcd_ht2000_madgraph", + id=14299583, + processes=[procs.qcd_ht2000], + keys=[ + "/QCD_HT2000toInf_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=15, + n_events=5202244, +) \ No newline at end of file From e69620c3c13f9cf709ef98b636800fd44553f860 Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 13:45:31 +0200 Subject: [PATCH 07/11] Reset 2018 campaign --- cmsdb/campaigns/run2_2018_nano_v9/__init__.py | 2 +- cmsdb/campaigns/run2_2018_nano_v9/data.py | 73 ----------- cmsdb/campaigns/run2_2018_nano_v9/qcd.py | 113 ------------------ 3 files changed, 1 insertion(+), 187 deletions(-) delete mode 100644 cmsdb/campaigns/run2_2018_nano_v9/data.py delete mode 100644 cmsdb/campaigns/run2_2018_nano_v9/qcd.py diff --git a/cmsdb/campaigns/run2_2018_nano_v9/__init__.py b/cmsdb/campaigns/run2_2018_nano_v9/__init__.py index a132e8bf..3585f3f4 100644 --- a/cmsdb/campaigns/run2_2018_nano_v9/__init__.py +++ b/cmsdb/campaigns/run2_2018_nano_v9/__init__.py @@ -285,4 +285,4 @@ n_events=139490000, ), ), -) +) \ No newline at end of file diff --git a/cmsdb/campaigns/run2_2018_nano_v9/data.py b/cmsdb/campaigns/run2_2018_nano_v9/data.py deleted file mode 100644 index 4a873dad..00000000 --- a/cmsdb/campaigns/run2_2018_nano_v9/data.py +++ /dev/null @@ -1,73 +0,0 @@ -# coding: utf-8 - -""" -CMS datasets from the 2017 data-taking campaign -""" - -import cmsdb.processes as procs -from cmsdb.campaigns.run2_2017_nano_v9 import campaign_run2_2017_nano_v9 as cpn - - -# -# DiJet -# - -cpn.add_dataset( - name="data_dijet_a", - id=14260294, # from das - is_data=True, - processes=[procs.data_dijet], - keys=[ - "/JetHT/Run2018A-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", - ], - n_files=281, - n_events=171484635, - aux={ - "era": "A", - }, -) - -cpn.add_dataset( - name="data_dijet_b", - id=14260659, - is_data=True, - processes=[procs.data_e], - keys=[ - "/JetHT/Run2018B-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", - ], - n_files=128, - n_events=78255208, - aux={ - "era": "B", - }, -) - -cpn.add_dataset( - name="data_dijet_c", - id=14260590, - is_data=True, - processes=[procs.data_dijet], - keys=[ - "/JetHT/Run2018C-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", - ], - n_files=138, - n_events=70027804, - aux={ - "era": "C", - }, -) - -cpn.add_dataset( - name="data_dijet_d", - id=14324490, - is_data=True, - processes=[procs.data_dijet], - keys=[ - "/JetHT/Run2018D-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", - ], - n_files=538, - n_events=356967606, - aux={ - "era": "D", - }, -) diff --git a/cmsdb/campaigns/run2_2018_nano_v9/qcd.py b/cmsdb/campaigns/run2_2018_nano_v9/qcd.py deleted file mode 100644 index 504f0f78..00000000 --- a/cmsdb/campaigns/run2_2018_nano_v9/qcd.py +++ /dev/null @@ -1,113 +0,0 @@ -# coding: utf-8 - -""" -QCD datasets for the 2017 data-taking campaign -""" - -import cmsdb.processes as procs -from cmsdb.campaigns.run2_2017_nano_v9 import campaign_run2_2017_nano_v9 as cpn - -# -# QCD HT-binned -# - -# HT-binned samples - -cpn.add_dataset( - name="qcd_ht50to100_madgraph", - id=14296686, - processes=[procs.qcd_ht50to100], - keys=[ - "/QCD_HT50to100_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=99, - n_events=38485273, -) - -cpn.add_dataset( - name="qcd_ht100to200_madgraph", - id=14286202, - processes=[procs.qcd_ht100to200], - keys=[ - "/QCD_HT100to200_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=175, - n_events=83416014, -) - -cpn.add_dataset( - name="qcd_ht200to300_madgraph", - id=14288453, - processes=[procs.qcd_ht200to300], - keys=[ - "/QCD_HT200to300_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=104, - n_events=57336623, -) - -cpn.add_dataset( - name="qcd_ht300to500_madgraph", - id=14296771, - processes=[procs.qcd_ht300to500], - keys=[ - "/QCD_HT300to500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=235, - n_events=61491618, -) - -cpn.add_dataset( - name="qcd_ht500to700_madgraph", - id=14293400, - processes=[procs.qcd_ht500to700], - keys=[ - "/QCD_HT500to700_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=106, - n_events=49070152, -) - -cpn.add_dataset( - name="qcd_ht700to1000_madgraph", - id=14275579, - processes=[procs.qcd_ht700to1000], - keys=[ - "/QCD_HT700to1000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=99, - n_events=48220920, -) - -cpn.add_dataset( - name="qcd_ht1000to1500_madgraph", - id=14296761, - processes=[procs.qcd_ht1000to1500], - keys=[ - "/QCD_HT1000to1500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=67, - n_events=14127722, -) - -cpn.add_dataset( - name="qcd_ht1500to2000_madgraph", - id=14300066, - processes=[procs.qcd_ht1500to2000], - keys=[ - "/QCD_HT1500to2000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=27, - n_events=10583770, -) - -cpn.add_dataset( - name="qcd_ht2000_madgraph", - id=14299583, - processes=[procs.qcd_ht2000], - keys=[ - "/QCD_HT2000toInf_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa - ], - n_files=15, - n_events=5202244, -) \ No newline at end of file From 654cad7b0088964452f6ef37f27ba902722f8a01 Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 13:45:47 +0200 Subject: [PATCH 08/11] Add JMEnano campaign --- .../run2_2018_JMEnano_v9/__init__.py | 32 +++++ cmsdb/campaigns/run2_2018_JMEnano_v9/data.py | 73 +++++++++++ cmsdb/campaigns/run2_2018_JMEnano_v9/qcd.py | 113 ++++++++++++++++++ cmsdb/processes/data.py | 6 +- 4 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 cmsdb/campaigns/run2_2018_JMEnano_v9/__init__.py create mode 100644 cmsdb/campaigns/run2_2018_JMEnano_v9/data.py create mode 100644 cmsdb/campaigns/run2_2018_JMEnano_v9/qcd.py diff --git a/cmsdb/campaigns/run2_2018_JMEnano_v9/__init__.py b/cmsdb/campaigns/run2_2018_JMEnano_v9/__init__.py new file mode 100644 index 00000000..1d2351c1 --- /dev/null +++ b/cmsdb/campaigns/run2_2018_JMEnano_v9/__init__.py @@ -0,0 +1,32 @@ +# coding: utf-8 + +""" +Common, analysis independent definition of the 2018 data-taking campaign +with datasets at NanoAOD tier in version 9. +See https://python-order.readthedocs.io/en/latest/quickstart.html#analysis-campaign-and-config. + +Dataset ids are identical to those in DAS (https://cmsweb.cern.ch/das). +""" + +from order import Campaign + + +# +# campaign +# + +campaign_run2_2018_JMEnano_v9 = Campaign( + name="run2_2018_JMEnano_v9", + id=220181, + ecm=13, + bx=25, + aux={ + "year": 2018, + "tier": "NanoAOD", + "version": "9" + }, +) + +# trailing imports to load datasets +import cmsdb.campaigns.run2_2018_JMEnano_v9.data +import cmsdb.campaigns.run2_2018_JMEnano_v9.qcd diff --git a/cmsdb/campaigns/run2_2018_JMEnano_v9/data.py b/cmsdb/campaigns/run2_2018_JMEnano_v9/data.py new file mode 100644 index 00000000..9b915ad5 --- /dev/null +++ b/cmsdb/campaigns/run2_2018_JMEnano_v9/data.py @@ -0,0 +1,73 @@ +# coding: utf-8 + +""" +CMS datasets from the 2017 data-taking campaign +""" + +import cmsdb.processes as procs +from cmsdb.campaigns.run2_2018_JMEnano_v9 import campaign_run2_2018_JMEnano_v9 as cpn + + +# +# DiJet +# + +cpn.add_dataset( + name="data_jetht_a", + id=14260294, # from das + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018A-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=281, + n_events=171484635, + aux={ + "era": "A", + }, +) + +cpn.add_dataset( + name="data_jetht_b", + id=14260659, + is_data=True, + processes=[procs.data_e], + keys=[ + "/JetHT/Run2018B-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=128, + n_events=78255208, + aux={ + "era": "B", + }, +) + +cpn.add_dataset( + name="data_jetht_c", + id=14260590, + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018C-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=138, + n_events=70027804, + aux={ + "era": "C", + }, +) + +cpn.add_dataset( + name="data_jetht_d", + id=14324490, + is_data=True, + processes=[procs.data_dijet], + keys=[ + "/JetHT/Run2018D-UL2018_MiniAODv2_JMENanoAODv9-v1/NANOAOD", + ], + n_files=538, + n_events=356967606, + aux={ + "era": "D", + }, +) diff --git a/cmsdb/campaigns/run2_2018_JMEnano_v9/qcd.py b/cmsdb/campaigns/run2_2018_JMEnano_v9/qcd.py new file mode 100644 index 00000000..12c467a2 --- /dev/null +++ b/cmsdb/campaigns/run2_2018_JMEnano_v9/qcd.py @@ -0,0 +1,113 @@ +# coding: utf-8 + +""" +QCD datasets for the 2017 data-taking campaign +""" + +import cmsdb.processes as procs +from cmsdb.campaigns.run2_2018_JMEnano_v9 import campaign_run2_2018_JMEnano_v9 as cpn + +# +# QCD HT-binned +# + +# HT-binned samples + +cpn.add_dataset( + name="qcd_ht50to100_madgraph", + id=14296686, + processes=[procs.qcd_ht50to100], + keys=[ + "/QCD_HT50to100_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=99, + n_events=38485273, +) + +cpn.add_dataset( + name="qcd_ht100to200_madgraph", + id=14286202, + processes=[procs.qcd_ht100to200], + keys=[ + "/QCD_HT100to200_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=175, + n_events=83416014, +) + +cpn.add_dataset( + name="qcd_ht200to300_madgraph", + id=14288453, + processes=[procs.qcd_ht200to300], + keys=[ + "/QCD_HT200to300_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=104, + n_events=57336623, +) + +cpn.add_dataset( + name="qcd_ht300to500_madgraph", + id=14296771, + processes=[procs.qcd_ht300to500], + keys=[ + "/QCD_HT300to500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=235, + n_events=61491618, +) + +cpn.add_dataset( + name="qcd_ht500to700_madgraph", + id=14293400, + processes=[procs.qcd_ht500to700], + keys=[ + "/QCD_HT500to700_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=106, + n_events=49070152, +) + +cpn.add_dataset( + name="qcd_ht700to1000_madgraph", + id=14275579, + processes=[procs.qcd_ht700to1000], + keys=[ + "/QCD_HT700to1000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=99, + n_events=48220920, +) + +cpn.add_dataset( + name="qcd_ht1000to1500_madgraph", + id=14296761, + processes=[procs.qcd_ht1000to1500], + keys=[ + "/QCD_HT1000to1500_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=67, + n_events=14127722, +) + +cpn.add_dataset( + name="qcd_ht1500to2000_madgraph", + id=14300066, + processes=[procs.qcd_ht1500to2000], + keys=[ + "/QCD_HT1500to2000_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=27, + n_events=10583770, +) + +cpn.add_dataset( + name="qcd_ht2000_madgraph", + id=14299583, + processes=[procs.qcd_ht2000], + keys=[ + "/QCD_HT2000toInf_TuneCP5_PSWeights_13TeV-madgraph-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM", # noqa + ], + n_files=15, + n_events=5202244, +) \ No newline at end of file diff --git a/cmsdb/processes/data.py b/cmsdb/processes/data.py index 0b861cef..3cf6eb84 100644 --- a/cmsdb/processes/data.py +++ b/cmsdb/processes/data.py @@ -5,7 +5,7 @@ """ __all__ = [ - "data", "data_e", "data_mu", "data_tau", "data_met", "data_pho", "data_dijet", + "data", "data_e", "data_mu", "data_tau", "data_met", "data_pho", "data_jetht", ] from order import Process @@ -59,8 +59,8 @@ ) data_dijet = data.add_process( - name="data_dijet", + name="data_jetht", id=100, is_data=True, - label=r"Data $\gamma$", + label=r"Data JetHT", ) From 70ac82664fbb5dc77419abb3634e3348a92c1fff Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 13:53:17 +0200 Subject: [PATCH 09/11] fix data_jetht --- cmsdb/processes/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmsdb/processes/data.py b/cmsdb/processes/data.py index 3cf6eb84..053d7db7 100644 --- a/cmsdb/processes/data.py +++ b/cmsdb/processes/data.py @@ -58,7 +58,7 @@ label=r"Data $\gamma$", ) -data_dijet = data.add_process( +data_jetht = data.add_process( name="data_jetht", id=100, is_data=True, From 05c6166632e305651cb406e6d5ea74167d798ca9 Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 14:05:33 +0200 Subject: [PATCH 10/11] Empty line at the end --- cmsdb/campaigns/run2_2018_nano_v9/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmsdb/campaigns/run2_2018_nano_v9/__init__.py b/cmsdb/campaigns/run2_2018_nano_v9/__init__.py index 3585f3f4..a132e8bf 100644 --- a/cmsdb/campaigns/run2_2018_nano_v9/__init__.py +++ b/cmsdb/campaigns/run2_2018_nano_v9/__init__.py @@ -285,4 +285,4 @@ n_events=139490000, ), ), -) \ No newline at end of file +) From 754f02180eaf92e5554cf380de61c5233db9accf Mon Sep 17 00:00:00 2001 From: apaasch Date: Mon, 19 Jun 2023 14:07:01 +0200 Subject: [PATCH 11/11] rename das info script --- GetDASinfo.py => scripts/get_das_info.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename GetDASinfo.py => scripts/get_das_info.py (100%) diff --git a/GetDASinfo.py b/scripts/get_das_info.py similarity index 100% rename from GetDASinfo.py rename to scripts/get_das_info.py