ATLAS Offline Software
Loading...
Searching...
No Matches
MCMCGeneratorHelper.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 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}
51dict_tagger_generator = {
52 ('DL1dv01', LHCPeriod.Run2): DL1dv01_MC20_Generator_dict,
53 ('DL1dv01', LHCPeriod.Run3): DL1dv01_MC23_Generator_dict,
54 ('GN2v01', LHCPeriod.Run2): GN2v01_MC20_Generator_dict,
55 ('GN2v01', LHCPeriod.Run3): GN2v01_MC23_Generator_dict,
56 }
57def MCMC_generator_map(generatorDict, tagger='GN2v01'):
58 generator = None
59 if tagger == 'DL1dv01':
60 if 'Powheg' in generatorDict and 'Pythia8' in generatorDict:
61 generator = 'Powheg+Pythia8'
62 elif ('aMcAtNlo' in generatorDict or 'MadGraph' in generatorDict) and 'Pythia8' in generatorDict:
63 generator = 'aMcAtNlo+Pythia8'
64 elif 'aMcAtNlo' in generatorDict and 'Herwig7' in generatorDict:
65 generator = 'aMcAtNlo+Herwig7'
66 elif 'Herwig7' in generatorDict:
67 generator = 'Herwig'+generatorDict['Herwig7'].replace('.', '')
68 else:
69 if 'Herwig7' in generatorDict:
70 generator = 'Herwig'+generatorDict['Herwig7'].replace('.', '')[:3]
71 elif 'Pythia8' in generatorDict:
72 generator = 'Pythia8'
73 if 'Sherpa' in generatorDict:
74 sherpa_versions = ['Sherpa2210', 'Sherpa2211', 'Sherpa2212', 'Sherpa2214', 'Sherpa2216']
75 generator = 'Sherpa'+generatorDict['Sherpa'].replace('.', '')
76 if any(generator.startswith(version) for version in sherpa_versions):
77 generator = generator[:10]
78 elif generator.startswith('Sherpa221'):
79 generator = 'Sherpa221'
80 if generator is None:
81 generator = str(generatorDict)
82 return generator
83
84def MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01'):
85 """use metadata(generatorDict) or self set generator (selfDefineGenerator)
86 to get the generator setting for MCMC efficiency map"""
87
88 if (tagger, geometry) not in dict_tagger_generator:
89 raise ValueError("No CDI MCMC map available for " + tagger + " in " + str(geometry))
90 mc_dict = dict_tagger_generator[tagger, geometry]
91
92 dsid = None
93 generator = None
94
95 if selfDefineGenerator is not None and selfDefineGenerator != "autoconfig":
96 generator = selfDefineGenerator
97 else:
98 generator = MCMC_generator_map(generatorDict, tagger)
99 if generator in mc_dict:
100 dsid = mc_dict[generator]
101
102 if dsid is None:
103 raise ValueError("No CDI MCMC map available for generator: " + generator + " with " + tagger + " in " + str(geometry))
104 else:
105 return dsid
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition hcg.cxx:310
MCMC_generator_map(generatorDict, tagger='GN2v01')
MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01')