ATLAS Offline Software
MCMCGeneratorHelper.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.Enums import LHCPeriod
3 
4 DL1dv01_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 
19 DL1dv01_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 
29 GN2v01_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 
42 GN2v01_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 dict_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  }
57 def 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 
84 def 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
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
MCMCGeneratorHelper.MCMC_generator_map
def MCMC_generator_map(generatorDict, tagger='GN2v01')
Definition: MCMCGeneratorHelper.py:57
str
Definition: BTagTrackIpAccessor.cxx:11
MCMCGeneratorHelper.MCMC_dsid_map
def MCMC_dsid_map(geometry, generatorDict={}, selfDefineGenerator=None, tagger='GN2v01')
Definition: MCMCGeneratorHelper.py:84