3 from AthenaCommon.Logging
import logging
4 from AthenaConfiguration.Enums
import FlagEnum, ProductionStep
5 from AthenaKernel.EventIdOverrideConfig
import getMinMaxRunNumbers
7 folderName =
"/Simulation/Parameters"
11 simMDlog = logging.getLogger(
'Sim_Metadata')
15 for flag
in sorted(flags._flagdict):
16 if flag.startswith(
"Sim."):
17 if "GenerationConfiguration" in flag:
20 if "Twiss" in flag
and not flags.Detector.GeometryForward:
23 if "UseShadowEvent" in flag
and not flags.Sim.UseShadowEvent:
26 if "VertexTimeWidth" in flag
and not flags.Sim.VertexTimeSmearing:
29 if "RunOnGPU" in flag
and not flags.Sim.ISF.Simulator.usesFastCaloSim():
32 if "FastCalo.ParamsInputFilename" in flag
and not flags.Sim.ISF.Simulator.usesFastCaloSim():
35 if "SimplifiedGeoPath" in flag
and not flags.Sim.SimplifiedGeoPath:
38 if "FastCalo.doEMECFCS" in flag
and not flags.Sim.FastCalo.doEMECFCS:
41 if "FastCalo.doPunchThrough" in flag
and not flags.Sim.FastCalo.doPunchThrough:
45 key = flag.split(
".")[-1]
46 value = flags._get(flag)
47 if isinstance(value, FlagEnum):
49 if not isinstance(value, str):
51 dbFiller.addSimParam(key, value)
52 simMDlog.info(
'SimulationMetaData: setting "%s" to be %s', key, value)
54 dbFiller.addSimParam(
'G4Version', flags.Sim.G4Version)
55 dbFiller.addSimParam(
'RunType',
'atlas')
56 dbFiller.addSimParam(
'beamType', flags.Beam.Type.value)
57 dbFiller.addSimParam(
'SimLayout', flags.GeoModel.AtlasVersion)
58 dbFiller.addSimParam(
'MagneticField',
'AtlasFieldSvc')
62 from AthenaConfiguration.DetectorConfigFlags
import getEnabledDetectors
64 simMDlog.info(
"Setting 'SimulatedDetectors' = %r", simDets)
65 dbFiller.addSimParam(
'SimulatedDetectors',
repr(simDets))
68 dbFiller.addSimParam(
'hitFileMagicNumber',
'0')
71 dbFiller.addSimParam(
'Simulator', flags.Sim.ISF.Simulator.value)
72 dbFiller.addSimParam(
'SimulationFlavour', flags.Sim.ISF.Simulator.value.replace(
'MT',
''))
75 dbFiller.addSimParam(
'Simulator',
'AtlasG4')
76 dbFiller.addSimParam(
'SimulationFlavour',
'AtlasG4')
80 simMDlog = logging.getLogger(
'Sim_Metadata')
81 from IOVDbMetaDataTools
import ParameterDbFiller
84 simMDlog.debug(
'ParameterDbFiller BeginRun = %s',
str(myRunNumber) )
85 dbFiller.setBeginRun(myRunNumber)
86 simMDlog.debug(
'ParameterDbFiller EndRun = %s',
str(myEndRunNumber) )
87 dbFiller.setEndRun(myEndRunNumber)
100 """Read digitization parameters metadata"""
101 from IOVDbSvc.IOVDbSvcConfig
import addFolders
102 if flags.Common.ProductionStep
not in [ProductionStep.Simulation, ProductionStep.FastChain]:
103 return addFolders(flags, folderName, className=
"AthenaAttributeList", tag=
"HEAD")
108 return addFolders(flags, folderName, detDb=
"SimParams.db", db=
"SIMPARAM", className=
"AthenaAttributeList")
112 """Write digitization parameters metadata"""
113 from IOVDbSvc.IOVDbSvcConfig
import IOVDbSvcCfg, addFolders
114 acc =
IOVDbSvcCfg(flags, FoldersToMetaData=[folderName])
115 acc.merge(
addFolders(flags, folderName, detDb=
"SimParams.db", db=
"SIMPARAM"))