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