def _do_jobproperties(self): """ Place to handle JobProperties. """ ## Import extra flags if it hasn't already been done from G4AtlasApps.SimFlags import simFlags if "atlas_flags" not in simFlags.extra_flags: simFlags.load_atlas_flags() if jobproperties.Beam.beamType( ) == "cosmics" and "cosmics_flags" not in simFlags.extra_flags: simFlags.load_cosmics_flags() AtlasG4Eng.G4Eng.log.verbose( 'AtlasSimSkeleton._do_jobproperties :: starting') ## Tidy up DBM DetFlags: temporary measure DetFlags.DBM_setOff() from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff() if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff() if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff() ## Switch off tasks DetFlags.pileup.all_setOff() DetFlags.simulateLVL1.all_setOff() DetFlags.digitize.all_setOff() if not simFlags.IsEventOverlayInputSim(): DetFlags.overlay.all_setOff() DetFlags.readRDOPool.all_setOff() DetFlags.makeRIO.all_setOff() DetFlags.writeBS.all_setOff() DetFlags.readRDOBS.all_setOff() DetFlags.readRIOBS.all_setOff() DetFlags.readRIOPool.all_setOff() DetFlags.writeRIOPool.all_setOff() DetFlags.writeRDOPool.all_setOff() ## Global flags needed by externals from AthenaCommon.GlobalFlags import globalflags globalflags.DataSource = 'geant4' if jobproperties.Beam.beamType() == 'cosmics': globalflags.DetGeo = 'commis' else: globalflags.DetGeo = 'atlas' ## At this point we can set the global job properties flag globalflags.DetDescrVersion = simFlags.SimLayout.get_Value() # Switch off GeoModel Release in the case of parameterization if simFlags.LArParameterization.get_Value( ) > 0 and simFlags.ReleaseGeoModel(): AtlasG4Eng.G4Eng.log.info( 'AtlasSimSkeleton._do_jobproperties :: Running parameterization - switching off GeoModel release!' ) simFlags.ReleaseGeoModel = False ## Translate conditions tag into IOVDbSvc global tag: must be done before job properties are locked!!! from AthenaCommon.AppMgr import ServiceMgr from IOVDbSvc.IOVDbSvcConf import IOVDbSvc ServiceMgr += IOVDbSvc() if not hasattr( globalflags, "ConditionsTag") or not globalflags.ConditionsTag.get_Value(): msg = "AtlasSimSkeleton._do_jobproperties :: conditions tag has not been set and is no longer guessed by SimAtlasKernel. " msg += "You must set the globaltags.ConditionsTag flag in your job options." AtlasG4Eng.G4Eng.log.error(msg) raise SystemExit( "AtlasSimSkeleton._do_jobproperties :: Global ConditionsTag not set" ) if not hasattr(ServiceMgr.IOVDbSvc, 'GlobalTag') or not ServiceMgr.IOVDbSvc.GlobalTag: ServiceMgr.IOVDbSvc.GlobalTag = globalflags.ConditionsTag.get_Value( ) ## Enable floating point exception handling ## FIXME! This seems to cause the jobs to crash in the FpeControlSvc, so commenting this out for now... #from AthenaCommon.AthenaCommonFlags import athenaCommonFlags #athenaCommonFlags.RuntimeStrictness = 'abort' #AtlasG4Eng.G4Eng.log.debug('AtlasSimSkeleton._do_jobproperties :: Enabled floating point exceptions') if not simFlags.ISFRun: from G4AtlasApps.G4Atlas_Metadata import checkForSpecialConfigurationMetadata checkForSpecialConfigurationMetadata() ## Print flags if AtlasG4Eng.G4Eng.log.getEffectiveLevel() < 40: AtlasG4Eng.G4Eng.log.info( 'AtlasSimSkeleton._do_jobproperties :: printing detector flags DetFlags' ) DetFlags.Print() AtlasG4Eng.G4Eng.log.info( 'AtlasSimSkeleton._do_jobproperties :: printing simulation flags simFlags' ) jobproperties.print_JobProperties('tree&value') # Lock the job properties if not running ISF. if not simFlags.ISFRun: jobproperties.lock_JobProperties() AtlasG4Eng.G4Eng.log.verbose( 'AtlasSimSkeleton._do_jobproperties :: done')
def _do_jobproperties(self): """ Place to handle JobProperties . """ AtlasG4Eng.G4Eng.log.info('SimSkeleton :: _do_JobProperties starting') ## Import extra flags if it hasn't already been done from G4AtlasApps.SimFlags import simFlags if not simFlags.extra_flags: simFlags.load_ctb_flags() # - switch off tasks DetFlags.pileup.all_setOff() DetFlags.simulateLVL1.all_setOff() DetFlags.digitize.all_setOff() DetFlags.overlay.all_setOff() DetFlags.readRDOPool.all_setOff() DetFlags.makeRIO.all_setOff() DetFlags.writeBS.all_setOff() DetFlags.readRDOBS.all_setOff() DetFlags.readRIOBS.all_setOff() DetFlags.readRIOPool.all_setOff() DetFlags.writeRIOPool.all_setOff() DetFlags.writeRDOPool.all_setOff() # - see if there are beam-conditions if (simFlags.BeamConditions.statusOn and simFlags.BeamConditions.get_Value()): try: AtlasG4Eng.G4Eng.log.info(' SimCtbKernel: '+\ ' loading CTB beam-conditions from the'+\ ' CTB run-condition file !!') BeamCond = __import__(modulepath, globals(), locals(), prepath).BeamCond beam_cond_obj = BeamCond.retrieve_Run( simFlags.RunNumber.get_Value()) beam_cond_obj._map() except: AtlasG4Eng.G4Eng.log.warning(' SimCtbKernel: '+ 'No particular beam conditions found for the run '+\ str(simFlags.RunNumber.get_Value())) # - switch off non-existing detectors DetFlags.FCal_setOff() DetFlags.HEC_setOff() # - Muons off for 13.0.0 release DetFlags.Muon_setOff() AtlasG4Eng.G4Eng.log.info( 'SimCtbKernel : Muons are not supported in releases >= 13.0.0') # - photon runs under run-conditions. For all the photon runs with # run number > 2860 SCT and Pixel were not at the beam # -- LAr material studies if (simFlags.SimLayout.get_Value() == 'ctbh8_lar-material'): DetFlags.SCT_setOff() DetFlags.Muon_setOff() if (simFlags.SimLayout.get_Value() == 'ctbh8_calodata'): DetFlags.ID_setOff() DetFlags.Muon_setOff() # # Note: for combined runs tag 04 in IDET # photon runs tag 08 # larmaterial runs tag 01 if simFlags.SimLayout.get_Value( ) == 'ctbh8_combined' and not simFlags.IdetOracleTag.statusOn: simFlags.IdetOracleTag = "InnerDetector-CTB-04-01" elif simFlags.SimLayout.get_Value( ) == 'ctbh8_phothon' and not simFlags.IdetOracleTag.statusOn: simFlags.IdetOracleTag = "InnerDetector-CTB-08-01" elif simFlags.SimLayout.get_Value( ) == 'ctbh8_lar-material' and not simFlags.IdetOracleTag.statusOn: simFlags.IdetOracleTag = "InnerDetector-CTB-01-01" else: simFlags.IdetOracleTag.set_On() # globalflags.DataSource = "geant4" globalflags.DetGeo = "ctbh8" ## mgallas this is a hack! needed for GeoModel and IOVDbSvc # TODO: Wow! Is this really still needed? import __main__ __main__.DetDescrVersion = 'CTB' __main__.globalflags = globalflags globalflags.DetDescrVersion = 'CTB' ## Translate conditions tag into IOVDbSvc global tag: must be done before job properties are locked!!! from AthenaCommon.AppMgr import ServiceMgr from IOVDbSvc.IOVDbSvcConf import IOVDbSvc ServiceMgr += IOVDbSvc() if not hasattr( globalflags, "ConditionsTag") or not globalflags.ConditionsTag.get_Value(): msg = "AtlasSimSkeleton._do_jobproperties :: conditions tag has not been set and is no longer guessed by SimAtlasKernel. " msg += "You must set the globaltags.ConditionsTag flag in your job options." AtlasG4Eng.G4Eng.log.error(msg) raise SystemExit( "AtlasSimSkeleton._do_jobproperties :: Global ConditionsTag not set" ) if not hasattr(ServiceMgr.IOVDbSvc, 'GlobalTag') or not ServiceMgr.IOVDbSvc.GlobalTag: ServiceMgr.IOVDbSvc.GlobalTag = globalflags.ConditionsTag.get_Value( ) if not simFlags.ISFRun: from G4AtlasApps.G4Atlas_Metadata import checkForSpecialConfigurationMetadata checkForSpecialConfigurationMetadata() ## Print out flags if AtlasG4Eng.G4Eng.log.getEffectiveLevel() < 40: AtlasG4Eng.G4Eng.log.info( 'SimCtbKernel : printing detector flags DetFlags') DetFlags.Print() AtlasG4Eng.G4Eng.log.info( 'SimCtbKernel : printing simulation flags simFlags') jobproperties.print_JobProperties('tree&value') jobproperties.lock_JobProperties() AtlasG4Eng.G4Eng.log.info('SimSkeleton :: _do_JobProperties done')
if not hasattr(ServiceMgr.IOVDbSvc, 'GlobalTag') or not ServiceMgr.IOVDbSvc.GlobalTag: ServiceMgr.IOVDbSvc.GlobalTag = globalflags.ConditionsTag.get_Value() if not simFlags.ISFRun: from G4AtlasApps.G4Atlas_Metadata import checkForSpecialConfigurationMetadata checkForSpecialConfigurationMetadata() ## Print flags from AthenaCommon.JobProperties import jobproperties #if AtlasG4Eng.G4Eng.log.getEffectiveLevel()<40: # AtlasG4Eng.G4Eng.log.info('SimCtbKernel : printing detector flags DetFlags') # DetFlags.Print() # AtlasG4Eng.G4Eng.log.info('SimCtbKernel : printing simulation flags simFlags') # jobproperties.print_JobProperties('tree&value') jobproperties.lock_JobProperties() ## Tile2000_2003._do_external from AthenaCommon.AppMgr import ServiceMgr from Geo2G4.Geo2G4Conf import Geo2G4Svc Geo2G4Svc = Geo2G4Svc() theApp.CreateSvc += ["Geo2G4Svc"] ServiceMgr += Geo2G4Svc Geo2G4Svc.GetTopTransform = False from AtlasGeoModel import SetGeometryVersion from AthenaCommon.Configurable import Configurable if Configurable.allConfigurables.get('GeoModelSvc'): GeoModelSvc = Configurable.allConfigurables.get('GeoModelSvc') else: GeoModelSvc = theApp.service('GeoModelSvc')
def _do_jobproperties(self): """ Place to handle JobProperties . """ AtlasG4Eng.G4Eng.log.info('SimSkeleton :: _do_JobProperties starting') ## Import extra flags if it hasn't already been done from G4AtlasApps.SimFlags import simFlags if not simFlags.extra_flags: simFlags.load_tbLArH6_flags() # - switch off tasks DetFlags.pileup.all_setOff() DetFlags.simulateLVL1.all_setOff() DetFlags.overlay.all_setOff() DetFlags.digitize.all_setOff() DetFlags.readRDOPool.all_setOff() DetFlags.makeRIO.all_setOff() DetFlags.writeBS.all_setOff() DetFlags.readRDOBS.all_setOff() DetFlags.readRIOBS.all_setOff() DetFlags.readRIOPool.all_setOff() DetFlags.writeRIOPool.all_setOff() DetFlags.writeRDOPool.all_setOff() DetFlags.ID_setOff() DetFlags.Muon_setOff() DetFlags.Tile_setOff() globalflags.DataSource = "geant4" globalflags.DetGeo = "ctbh6" # mgallas this is a hack! needed for GeoModel and IOVDbSvc # TODO: Wow! Is this really still needed? import __main__ __main__.globalflags = globalflags if simFlags.SimLayout.get_Value() == "tb_LArH6_2003": globalflags.DetDescrVersion = 'ATLAS-H6-2003-02' __main__.DetDescrVersion = globalflags.DetDescrVersion.get_Value() elif simFlags.SimLayout.get_Value() == "tb_LArH6_2002": globalflags.DetDescrVersion = 'ATLAS-H6-2002-01' __main__.DetDescrVersion = globalflags.DetDescrVersion.get_Value() elif simFlags.SimLayout.get_Value() == "tb_LArH6EC_2002": globalflags.DetDescrVersion = 'ATLAS-TBEC-01' __main__.DetDescrVersion = globalflags.DetDescrVersion.get_Value() elif simFlags.SimLayout.get_Value() == "tb_LArH6_2004": globalflags.DetDescrVersion = 'ATLAS-H6-2004-00' __main__.DetDescrVersion = globalflags.DetDescrVersion.get_Value() ## Translate conditions tag into IOVDbSvc global tag: must be done before job properties are locked!!! from AthenaCommon.AppMgr import ServiceMgr from IOVDbSvc.IOVDbSvcConf import IOVDbSvc ServiceMgr += IOVDbSvc() if not hasattr( globalflags, "ConditionsTag") or not globalflags.ConditionsTag.get_Value(): msg = "AtlasSimSkeleton._do_jobproperties :: conditions tag has not been set and is no longer guessed by SimAtlasKernel. " msg += "You must set the globaltags.ConditionsTag flag in your job options." AtlasG4Eng.G4Eng.log.error(msg) raise SystemExit( "AtlasSimSkeleton._do_jobproperties :: Global ConditionsTag not set" ) if not hasattr(ServiceMgr.IOVDbSvc, 'GlobalTag') or not ServiceMgr.IOVDbSvc.GlobalTag: ServiceMgr.IOVDbSvc.GlobalTag = globalflags.ConditionsTag.get_Value( ) if not simFlags.ISFRun: from G4AtlasApps.G4Atlas_Metadata import checkForSpecialConfigurationMetadata checkForSpecialConfigurationMetadata() ## Print flags if AtlasG4Eng.G4Eng.log.getEffectiveLevel() < 40: AtlasG4Eng.G4Eng.log.info( 'SimCtbKernel : printing detector flags DetFlags') DetFlags.Print() AtlasG4Eng.G4Eng.log.info( 'SimCtbKernel : printing simulation flags simFlags') jobproperties.print_JobProperties('tree&value') jobproperties.lock_JobProperties() AtlasG4Eng.G4Eng.log.info('SimSkeleton :: _do_JobProperties done')