11def collectDigitizationMetadata(flags):
12 """Collect digitization metadata parameters as a dictionary"""
13 logDigitizationWriteMetadata = logging.getLogger('DigitizationParametersConfig')
14 params = {}
15
16
17
18
19
20 digitMetaDataKeys = { 'doInDetNoise' : 'Digitization.DoInnerDetectorNoise',
21 'doCaloNoise' : 'Digitization.DoCaloNoise',
22 'bunchSpacing' : 'Beam.BunchSpacing',
23 'beamType' : 'Beam.Type',
24 'IOVDbGlobalTag' : 'IOVDb.GlobalTag',
25 'DetDescrVersion' : 'GeoModel.AtlasVersion',
26 'finalBunchCrossing' : 'Digitization.PU.FinalBunchCrossing',
27 'initialBunchCrossing' : 'Digitization.PU.InitialBunchCrossing',
28 'physicsList' : 'Sim.PhysicsList',
29 'digiSteeringConf' : 'Digitization.DigiSteeringConf',
30 'pileUp' : 'Digitization.PileUp',
31 }
32 logDigitizationWriteMetadata.info('Filling Digitization MetaData')
33 for testKey, testFlag in digitMetaDataKeys.items():
34 if flags.hasFlag(testFlag):
35 testValue = flags._get(testFlag)
36 if isinstance(testValue, FlagEnum):
37 testValue = testValue.value
38 if not isinstance(testValue, str):
39 testValue = str(testValue)
40 params[testKey] = testValue
41 logDigitizationWriteMetadata.info('DigitizationMetaData: setting "%s" to be %s', testKey, testValue)
42 else :
43 logDigitizationWriteMetadata.debug('DigitizationMetaData: ConfigFlags.%s is not available.', testFlag)
44
45
46 testKey = "doMuonNoise"
47 testValue = str(not flags.Common.isOverlay)
48 params[testKey] = testValue
49 logDigitizationWriteMetadata.info('DigitizationMetaData: setting "%s" to be %s', testKey, testValue)
50
51
52 testKey = "BeamIntensityPattern"
53 if flags.Digitization.PileUp:
54 testValue = str(flags.Digitization.PU.BeamIntensityPattern)
55 else:
56 testValue = "None"
57 logDigitizationWriteMetadata.info('DigitizationMetaData: setting "%s" to be %s', testKey, testValue)
58 params[testKey] = testValue
59
60
61 testKey = "intraTrainBunchSpacing"
62 testValue = str(25)
63 params[testKey] = testValue
64 logDigitizationWriteMetadata.info('DigitizationMetaData: setting "%s" to be %s', testKey, testValue)
65
66
67 from AthenaConfiguration.DetectorConfigFlags import getEnabledDetectors
68 digiDets = ['Truth'] + getEnabledDetectors(flags)
69 logDigitizationWriteMetadata.info("Setting 'DigitizedDetectors' = %s" , repr(digiDets))
70 params['DigitizedDetectors'] = repr(digiDets)
71
72 return params
73
74