Skip to content
Snippets Groups Projects
Commit 808f212f authored by Julien Maurer's avatar Julien Maurer
Browse files

Merge branch 'UpdateDigitizationParametersCA_22.0' into '22.0'

Add missing required key:value pairs to /Digitization/Parameters metadata in CA-based configuration

See merge request atlas/athena!53626
parents 97bedd12 0dcd2147
No related branches found
No related tags found
No related merge requests found
......@@ -17,15 +17,9 @@ def GEN_AOD2xAODCfg(flags, name="GEN_AOD2xAOD", **kwargs):
writeInTimePileUpTruth=False
# Use digiSteeringConf from metadata to write full-PU truth
# Not available yet in metadata
from PyUtils.MetaReader import read_metadata
infile = flags.Input.Files[0]
thisFileMD = read_metadata(infile, None, 'full')
metadata = thisFileMD[infile]
digiSteeringConf = metadata['/Digitization/Parameters'].get("digiSteeringConf","")
if digiSteeringConf == 'StandardInTimeOnlyGeantinoTruthPileUpToolsAlg':
# Use digiSteeringConf from metadata to check whether full-PU
# truth should be written.
if flags.Digitization.DigiSteeringConf == 'StandardInTimeOnlyGeantinoTruthPileUpToolsAlg':
writeInTimePileUpTruth = True
kwargs.setdefault('WriteInTimePileUpTruth', writeInTimePileUpTruth)
......
......@@ -33,7 +33,14 @@ def createDigitizationCfgFlags():
flags = AthConfigFlags()
# Digitization Steering - needed for easy comparison with the
# old-style configuration, but can potentially drop
flags.addFlag("Digitization.DigiSteeringConf", "StandardPileUpToolsAlg")
def _checkDigiSteeringConf(prevFlags):
digiSteeringConf = "StandardPileUpToolsAlg"
if prevFlags.Input.Files:
from AthenaConfiguration.AutoConfigFlags import GetFileMD
digiSteeringConf = GetFileMD(prevFlags.Input.Files).get("digiSteeringConf", "StandardPileUpToolsAlg")
return digiSteeringConf
flags.addFlag("Digitization.DigiSteeringConf", _checkDigiSteeringConf)
# Run Inner Detector noise simulation
flags.addFlag("Digitization.DoInnerDetectorNoise", True)
# Run pile-up digitization on one bunch crossing at a time?
......
......@@ -24,7 +24,9 @@ def writeDigitizationMetadata(ConfigFlags):
'IOVDbGlobalTag' : 'IOVDb.GlobalTag',
'DetDescrVersion' : 'GeoModel.AtlasVersion',
'finalBunchCrossing' : 'Digitization.PU.FinalBunchCrossing',
'initialBunchCrossing' : 'Digitization.PU.InitialBunchCrossing'
'initialBunchCrossing' : 'Digitization.PU.InitialBunchCrossing',
'physicsList' : 'Sim.PhysicsList', #TODO migrate clients to use /Simulation/Parameters metadata?
'digiSteeringConf' : 'Digitization.DigiSteeringConf'
}
logDigitizationWriteMetadata.info('Filling Digitization MetaData')
for testKey, testFlag in digitMetaDataKeys.items():
......
......@@ -56,7 +56,17 @@ def createSimConfigFlags():
scf.addFlag("Sim.G4Version", _check_G4_version)
scf.addFlag("Sim.PhysicsList", "FTFP_BERT_ATL")
def _checkPhysicsListConf(prevFlags):
physicsList = "FTFP_BERT_ATL"
if prevFlags.Input.Files:
from AthenaConfiguration.AutoConfigFlags import GetFileMD
physicsList = GetFileMD(prevFlags.Input.Files).get("PhysicsList", "")
if not physicsList:
# Currently physicsList is also part of /Digitization/Parameters metadata. TODO migrate away from this.
physicsList = GetFileMD(prevFlags.Input.Files).get("physicsList", "FTFP_BERT_ATL")
return physicsList
scf.addFlag("Sim.PhysicsList", _checkPhysicsListConf)
scf.addFlag("Sim.NeutronTimeCut", 150.) # Sets the value for the neutron out of time cut in G4
scf.addFlag("Sim.NeutronEnergyCut", -1.) # Sets the value for the neutron energy cut in G4
scf.addFlag("Sim.ApplyEMCuts", False) # Turns on the G4 option to apply cuts for EM physics
......
......@@ -931,6 +931,7 @@ def make_peeker(meta_dict):
'TRTRangeCut',
'SimulationFlavour',
'Simulator',
'PhysicsList',
]
for item in list(meta_dict[filename]['/Simulation/Parameters']):
if item not in keys_to_keep:
......@@ -941,6 +942,8 @@ def make_peeker(meta_dict):
'numberOfCollisions',
'intraTrainBunchSpacing',
'BeamIntensityPattern'
'physicsList',
'digiSteeringConf',
]
for item in list(meta_dict[filename]['/Digitization/Parameters']):
if item not in keys_to_keep:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment