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
std::string replace(std::string s, const std::string &s2, const std::string &s3)