2from AthenaConfiguration.Enums
import LHCPeriod
4DL1dv01_MC20_Generator_dict = {
6 "Powheg+Pythia8":
"default",
7 "aMcAtNlo+Pythia8":
"410464",
10 "Herwig723":
"600666",
11 "aMcAtNlo+Herwig7":
"412116",
12 "Sherpa221":
"410250",
13 "Sherpa2210":
"700122",
14 "Sherpa2211":
"700122",
15 "Sherpa2212":
"700660",
16 "Sherpa2214":
"700660",
19DL1dv01_MC23_Generator_dict = {
21 "Powheg+Pythia8":
"default",
22 "Herwig721":
"601414",
23 "Herwig723":
"601414",
24 "Sherpa2211":
"700660",
25 "Sherpa2212":
"700660",
26 "Sherpa2214":
"700660",
29GN2v01_MC20_Generator_dict = {
32 "Herwig713":
"411233",
33 "Herwig721":
"600666",
34 "Herwig723":
"600666",
35 "Sherpa2210":
"700660",
36 "Sherpa2211":
"700660",
37 "Sherpa2212":
"700660",
38 "Sherpa2214":
"700660",
39 "Sherpa2216":
"700660",
42GN2v01_MC23_Generator_dict = {
45 "Herwig721":
"601414",
46 "Herwig723":
"601414",
47 "Sherpa2212":
"700808",
48 "Sherpa2214":
"700808",
49 "Sherpa2216":
"700808",
52GN3XPV01_MC20_Generator_dict = {
54 "Herwig713":
"Herwig7",
55 "Herwig721":
"Herwig7",
56 "Herwig723":
"Herwig7",
57 "Sherpa2210":
"Sherpa",
58 "Sherpa2211":
"Sherpa",
59 "Sherpa2212":
"Sherpa",
60 "Sherpa2214":
"Sherpa",
61 "Sherpa2216":
"Sherpa",
64GN3XPV01_MC23_Generator_dict = {
66 "Herwig721":
"Herwig7",
67 "Herwig723":
"Herwig7",
68 "Sherpa2212":
"Sherpa",
69 "Sherpa2214":
"Sherpa",
70 "Sherpa2216":
"Sherpa",
73dict_tagger_generator = {
74 (
'DL1dv01', LHCPeriod.Run2): DL1dv01_MC20_Generator_dict,
75 (
'DL1dv01', LHCPeriod.Run3): DL1dv01_MC23_Generator_dict,
76 (
'GN2v01', LHCPeriod.Run2): GN2v01_MC20_Generator_dict,
77 (
'GN2v01', LHCPeriod.Run3): GN2v01_MC23_Generator_dict,
78 (
'GN3XPV01_hbb_bjr', LHCPeriod.Run2): GN3XPV01_MC20_Generator_dict,
79 (
'GN3XPV01_hbb_bjr', LHCPeriod.Run3): GN3XPV01_MC23_Generator_dict,
83 if tagger ==
'DL1dv01':
84 if 'Powheg' in generatorDict
and 'Pythia8' in generatorDict:
85 generator =
'Powheg+Pythia8'
86 elif (
'aMcAtNlo' in generatorDict
or 'MadGraph' in generatorDict)
and 'Pythia8' in generatorDict:
87 generator =
'aMcAtNlo+Pythia8'
88 elif 'aMcAtNlo' in generatorDict
and 'Herwig7' in generatorDict:
89 generator =
'aMcAtNlo+Herwig7'
90 elif 'Herwig7' in generatorDict:
91 generator =
'Herwig'+generatorDict[
'Herwig7'].
replace(
'.',
'')
93 if 'Herwig7' in generatorDict:
94 generator =
'Herwig'+generatorDict[
'Herwig7'].
replace(
'.',
'')[:3]
95 elif 'Pythia8' in generatorDict:
97 if 'Sherpa' in generatorDict:
98 sherpa_versions = [
'Sherpa2210',
'Sherpa2211',
'Sherpa2212',
'Sherpa2214',
'Sherpa2216']
99 generator =
'Sherpa'+generatorDict[
'Sherpa'].
replace(
'.',
'')
100 if any(generator.startswith(version)
for version
in sherpa_versions):
101 generator = generator[:10]
102 elif generator.startswith(
'Sherpa221'):
103 generator =
'Sherpa221'
104 if generator
is None:
105 generator = str(generatorDict)
108def MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01'):
109 """use metadata(generatorDict) or self set generator (selfDefineGenerator)
110 to get the generator setting for MCMC efficiency map"""
112 if (tagger, geometry)
not in dict_tagger_generator:
113 raise ValueError(
"No MCMC map available for " + tagger +
" in " + str(geometry))
114 mc_dict = dict_tagger_generator[tagger, geometry]
119 if selfDefineGenerator
is not None and selfDefineGenerator !=
"autoconfig":
120 generator = selfDefineGenerator
123 if generator
in mc_dict:
124 dsid = mc_dict[generator]
127 raise ValueError(
"No MCMC map available for generator: " + generator +
" with " + tagger +
" in " + str(geometry))
std::string replace(std::string s, const std::string &s2, const std::string &s3)
MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01')
MCMC_generator_map(generatorDict, tagger='GN2v01')