ATLAS Offline Software
Loading...
Searching...
No Matches
MCMCGeneratorHelper.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.Enums import LHCPeriod
3
4DL1dv01_MC20_Generator_dict = {
5 "default": "default",
6 "Powheg+Pythia8": "default",
7 "aMcAtNlo+Pythia8": "410464",
8 "Herwig713": "411233",
9 "Herwig721": "600666",
10 "Herwig723": "600666",
11 "aMcAtNlo+Herwig7": "412116",
12 "Sherpa221": "410250",
13 "Sherpa2210": "700122",
14 "Sherpa2211": "700122",
15 "Sherpa2212": "700660",
16 "Sherpa2214": "700660",
17}
18
19DL1dv01_MC23_Generator_dict = {
20 "default": "default",
21 "Powheg+Pythia8": "default",
22 "Herwig721": "601414",
23 "Herwig723": "601414",
24 "Sherpa2211": "700660",
25 "Sherpa2212": "700660",
26 "Sherpa2214": "700660",
27}
28
29GN2v01_MC20_Generator_dict = {
30 "default": "default",
31 "Pythia8": "default",
32 "Herwig713": "411233",
33 "Herwig721": "600666",
34 "Herwig723": "600666",
35 "Sherpa2210": "700660",
36 "Sherpa2211": "700660",
37 "Sherpa2212": "700660",
38 "Sherpa2214": "700660",
39 "Sherpa2216": "700660",
40}
41
42GN2v01_MC23_Generator_dict = {
43 "default": "default",
44 "Pythia8": "default",
45 "Herwig721": "601414",
46 "Herwig723": "601414",
47 "Sherpa2212": "700808",
48 "Sherpa2214": "700808",
49 "Sherpa2216": "700808",
50}
51
52GN3XPV01_MC20_Generator_dict = {
53 "Pythia8": "Pythia8",
54 "Herwig713": "Herwig7",
55 "Herwig721": "Herwig7",
56 "Herwig723": "Herwig7",
57 "Sherpa2210": "Sherpa",
58 "Sherpa2211": "Sherpa",
59 "Sherpa2212": "Sherpa",
60 "Sherpa2214": "Sherpa",
61 "Sherpa2216": "Sherpa",
62}
63
64GN3XPV01_MC23_Generator_dict = {
65 "Pythia8": "Pythia8",
66 "Herwig721": "Herwig7",
67 "Herwig723": "Herwig7",
68 "Sherpa2212": "Sherpa",
69 "Sherpa2214": "Sherpa",
70 "Sherpa2216": "Sherpa",
71}
72
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,
80}
81def MCMC_generator_map(generatorDict, tagger='GN2v01'):
82 generator = None
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('.', '')
92 else:
93 if 'Herwig7' in generatorDict:
94 generator = 'Herwig'+generatorDict['Herwig7'].replace('.', '')[:3]
95 elif 'Pythia8' in generatorDict:
96 generator = 'Pythia8'
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)
106 return generator
107
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"""
111
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]
115
116 dsid = None
117 generator = None
118
119 if selfDefineGenerator is not None and selfDefineGenerator != "autoconfig":
120 generator = selfDefineGenerator
121 else:
122 generator = MCMC_generator_map(generatorDict, tagger)
123 if generator in mc_dict:
124 dsid = mc_dict[generator]
125
126 if dsid is None:
127 raise ValueError("No MCMC map available for generator: " + generator + " with " + tagger + " in " + str(geometry))
128 else:
129 return dsid
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition hcg.cxx:312
MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01')
MCMC_generator_map(generatorDict, tagger='GN2v01')