diff --git a/Generators/GeneratorConfig/data/Legacy_SampleOverrides.txt b/Generators/GeneratorConfig/data/Legacy_SampleOverrides.txt new file mode 100644 index 0000000000000000000000000000000000000000..e22e63cfe649cc5719563b05a36b1d3d902c5cba --- /dev/null +++ b/Generators/GeneratorConfig/data/Legacy_SampleOverrides.txt @@ -0,0 +1,9 @@ +DSID,e-tag +# Sherpa 2.2.11 Zee Mll 10-40 +700467,e8338 +700468,e8338 +700469,e8338 +# Sherpa 2.2.11 Zmumu Mll 10-40 +700470,e8338 +700471,e8338 +700472,e8338 diff --git a/Generators/GeneratorConfig/python/Versioning.py b/Generators/GeneratorConfig/python/Versioning.py index 7aed02555d3aaaf47a55a93ded7db730fe43b311..61e3fd27b2b3044fae445127635590e5a45173dd 100644 --- a/Generators/GeneratorConfig/python/Versioning.py +++ b/Generators/GeneratorConfig/python/Versioning.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration from os import getenv import re @@ -22,6 +22,21 @@ def legacyReleaseData(): data[line[1]] = item return data +def legacyReleaseDataSampleOverrides(): + from pathlib import Path + from PathResolver import PathResolver + filePath = Path(PathResolver.FindCalibFile("GeneratorConfig/Legacy_SampleOverrides.txt")) + data = {} + with filePath.open() as f: + f.readline() # skip header + for line in f: + line = line.strip() + if line[0] == "#": + continue + line = line.split(",") + data[int(line[0])] = line[1] + return data + def generatorsGetInitialVersionedDictionary(generators): output = {} for generator in generators: @@ -78,6 +93,12 @@ def GeneratorVersioningFixCfg(flags): if tags and tags[0].startswith("e"): tag = tags[0] + # Fix specific samples + releaseDataSampleOverridesDict = legacyReleaseDataSampleOverrides() + if flags.Input.MCChannelNumber and flags.Input.MCChannelNumber in releaseDataSampleOverridesDict: + log.warning(f"Overriding e-tag for sample {flags.Input.MCChannelNumber} to {releaseDataSampleOverridesDict[flags.Input.MCChannelNumber]}.") + tag = releaseDataSampleOverridesDict[flags.Input.MCChannelNumber] + releaseDataDict = legacyReleaseData() if tag not in releaseDataDict: log.warning(f"Could not find release data for tag {tag}.")