Skip to content
Snippets Groups Projects
Commit 7ca11f15 authored by John Derek Chapman's avatar John Derek Chapman Committed by Vakhtang Tsulaia
Browse files

Update Simulation MetaData writing (and reading) in CA-based jobs

Update Simulation MetaData writing (and reading) in CA-based jobs
parent 6b14ab7e
No related branches found
No related tags found
No related merge requests found
......@@ -43,7 +43,7 @@ def makeEGammaDFCommon():
isFullSim = False
if isMC:
simulationFlavour = af.fileinfos['metadata']['/Simulation/Parameters']['SimulationFlavour']
isFullSim = simulationFlavour in ('default', 'MC12G4', 'FullG4')
isFullSim = simulationFlavour in ('default', 'AtlasG4', 'MC12G4', 'FullG4', 'FullG4_QS')
print("EGammaCommon: isMC = ", isMC)
if isMC:
......
......@@ -43,14 +43,11 @@ def EGammaCommonCfg(ConfigFlags):
# Below are some examples:
#af.fileinfos
isMC = ConfigFlags.Input.isMC
isMC = ConfigFlags.Input.isMC
isFullSim = False
# TODO: something that replicates this needs to be added to the ConfigFlags
#if isMC:
# simulationFlavour = af.fileinfos['metadata']['/Simulation/Parameters']['SimulationFlavour']
# isFullSim = simulationFlavour in ('default', 'MC12G4', 'FullG4')
isFullSim = True
if isMC:
isFullSim = ConfigFlags.Sim.ISF.Simulator.isFullSim()
print("EGammaCommon: isMC = ", isMC)
if isMC:
print("EGammaCommon: isFullSim = ", isFullSim)
......
......@@ -25,6 +25,7 @@ def fillAtlasMetadata(ConfigFlags, dbFiller):
dbFiller.addSimParam('RunType', 'atlas')
dbFiller.addSimParam('beamType', ConfigFlags.Beam.Type.value)
dbFiller.addSimParam('SimLayout', ConfigFlags.GeoModel.AtlasVersion)
dbFiller.addSimParam('MagneticField', 'AtlasFieldSvc') # TODO hard-coded for now for consistency with old-style configuration.
#---------
## Simulated detector flags: add each enabled detector to the simulatedDetectors list
......@@ -49,11 +50,13 @@ def fillAtlasMetadata(ConfigFlags, dbFiller):
## Hard-coded simulation hit file magic number (for major changes)
dbFiller.addSimParam('hitFileMagicNumber', '0') ##FIXME Remove this?
def fillISFMetadata(dbFiller):
#todo - later
from ISF_Config.ISF_jobProperties import ISF_Flags
dbFiller.addSimParam('Simulator', ISF_Flags.Simulator())
if ConfigFlags.Sim.ISFRun:
dbFiller.addSimParam('Simulator', ConfigFlags.Sim.ISF.Simulator.value)
dbFiller.addSimParam('SimulationFlavour', ConfigFlags.Sim.ISF.Simulator.value.replace('MT', '')) # used by egamma
else:
# TODO hard-code for now, but set flag properly later
dbFiller.addSimParam('Simulator', 'AtlasG4')
dbFiller.addSimParam('SimulationFlavour', 'AtlasG4')
def writeSimulationParametersMetadata(ConfigFlags):
......@@ -66,9 +69,7 @@ def writeSimulationParametersMetadata(ConfigFlags):
dbFiller.setEndRun(myEndRunNumber)
fillAtlasMetadata(ConfigFlags, dbFiller)
if ConfigFlags.Sim.ISFRun:
#fillISFMetadata(dbFiller) #add later
pass
#-------------------------------------------------
# Make the MetaData Db
#-------------------------------------------------
......
......@@ -97,7 +97,40 @@ def createSimConfigFlags():
# ISF
scf.addFlag("Sim.ISFRun", False)
scf.addFlag("Sim.ISF.Simulator", SimulationFlavour.Unknown, enum=SimulationFlavour)
def _checkSimulationFlavour(prevFlags):
simulator = SimulationFlavour.Unknown
if prevFlags.Input.Files:
from AthenaConfiguration.AutoConfigFlags import GetFileMD
simFlavour = GetFileMD(prevFlags.Input.Files).get("Simulator", "")
if not simFlavour:
simFlavour = GetFileMD(prevFlags.Input.Files).get("SimulationFlavour", "")
try:
simulator = SimulationFlavour(simFlavour)
except ValueError:
# Deal with old non-thread-safe simulators
if simFlavour in ['default']: # This is the case when ISF was not configured in sim
simulator = SimulationFlavour.AtlasG4
elif simFlavour in ['MC12G4', 'FullG4']:
simulator = SimulationFlavour.FullG4MT
elif simFlavour in ['FullG4_QS', 'FullG4_Longlived']:
simulator = SimulationFlavour.FullG4MT_QS
elif simFlavour in ['PassBackG4']:
simulator = SimulationFlavour.PassBackG4MT
elif simFlavour in ['ATLFASTII']:
simulator = SimulationFlavour.ATLFASTIIMT
elif simFlavour in ['ATLFASTIIF']:
simulator = SimulationFlavour.ATLFASTIIFMT
elif simFlavour in ['ATLFAST3']:
simulator = SimulationFlavour.ATLFAST3MT
elif simFlavour in ['ATLFAST3_QS']:
simulator = SimulationFlavour.ATLFAST3MT_QS
else:
# Obscure old-style configuration used - do not try to interpret
simulator = SimulationFlavour.Unknown
return simulator
scf.addFlag("Sim.ISF.Simulator", _checkSimulationFlavour, enum=SimulationFlavour)
scf.addFlag("Sim.ISF.DoTimeMonitoring", True) # bool: run time monitoring
scf.addFlag("Sim.ISF.DoMemoryMonitoring", True) # bool: run time monitoring
scf.addFlag("Sim.ISF.ValidationMode", False) # bool: run ISF internal validation checks
......
......@@ -44,6 +44,10 @@ class SimulationFlavour(FlagEnum):
ATLFAST3MT = 'ATLFAST3MT'
ATLFAST3MT_QS = 'ATLFAST3MT_QS'
ATLFAST3F_G4MS = 'ATLFAST3F_G4MS'
AtlasG4 = 'AtlasG4' # Outside ISF
def isFullSim(self):
return 'FullG4' in self.value or 'PassBackG4' in self.value or 'AtlasG4' in self.value
def usesFastCaloSim(self):
return 'ATLFAST' in self.value
......
......@@ -155,19 +155,19 @@ def configureFlagsATLFAST3MT():
configureFlagsATLFAST3()
ISF_Flags.ParticleBroker = ""
from G4AtlasApps.SimFlags import simFlags
simFlags.SimulationFlavour = "ATLFAST3MT"
simFlags.SimulationFlavour = "ATLFAST3"
def configureFlagsATLFAST3MT_QS():
configureFlagsATLFAST3()
from G4AtlasApps.SimFlags import simFlags
simFlags.SimulationFlavour = "ATLFAST3MT_QS"
simFlags.SimulationFlavour = "ATLFAST3_QS"
return
def configureFlagsATLFAST3MTEnergyOrdered():
configureFlagsATLFAST3()
ISF_Flags.ParticleBroker = ""
from G4AtlasApps.SimFlags import simFlags
simFlags.SimulationFlavour = "ATLFAST3MT"
simFlags.SimulationFlavour = "ATLFAST3"
return
def configureFlagsG4FastCalo():
......
......@@ -929,6 +929,8 @@ def make_peeker(meta_dict):
'TruthStrategy',
'SimBarcodeOffset',
'TRTRangeCut',
'SimulationFlavour',
'Simulator',
]
for item in list(meta_dict[filename]['/Simulation/Parameters']):
if item not in keys_to_keep:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment