def _do_readevgen(cls): """ Place to read evgen events. """ from G4AtlasApps.SimFlags import simFlags from AthenaCommon.AppMgr import ServiceMgr as svcMgr AtlasG4Eng.G4Eng.log.verbose('SimSkeleton._do_readevgen :: starting') from AthenaCommon.AthenaCommonFlags import athenaCommonFlags ## ReadTR is only present in simFlags for ATLAS geometries with cosmics switched on if (not simFlags.ISFRun) and hasattr(simFlags, "ReadTR") and simFlags.ReadTR.statusOn: include("CosmicGenerator/SetCosmicGenerator.py") if athenaCommonFlags.PoolEvgenInput.statusOn: ## Tell the event selector about the evgen input files and event skipping if not hasattr(svcMgr, 'EventSelector'): import AthenaPoolCnvSvc.ReadAthenaPool svcMgr.EventSelector.InputCollections = athenaCommonFlags.PoolEvgenInput() if athenaCommonFlags.SkipEvents.statusOn: svcMgr.EventSelector.SkipEvents = athenaCommonFlags.SkipEvents() from G4AtlasApps.G4Atlas_Metadata import inputFileValidityCheck inputFileValidityCheck() else: ## No input file so assume that we are running a Generator in the same job if not hasattr(svcMgr, 'EventSelector'): import AthenaCommon.AtlasUnixGeneratorJob # TODO: Check that there is at least one algorithm already in the AlgSequence? ## Warn if attempting to skip events in a generator job if athenaCommonFlags.SkipEvents.statusOn and athenaCommonFlags.SkipEvents()!=0: msg = "SimSkeleton._do_readevgen :: athenaCommonFlags.SkipEvents set in a job without an active " msg += "athenaCommonFlags.PoolEvgenInput flag: ignoring event skip request" AtlasG4Eng.G4Eng.log.warning(msg) AtlasG4Eng.G4Eng.log.verbose('SimSkeleton._do_readevgen :: done')
def buildListOfModifiers(): Modifiers = [] from Digitization.DigitizationFlags import digitizationFlags if digitizationFlags.RunAndLumiOverrideList.get_Value(): if not digitizationFlags.RunAndLumiOverrideList.is_locked(): raise RuntimeError( 'You cannot configure the EvtIdModifierSvc with an unlocked JobProperty.' ) pDicts = digitizationFlags.RunAndLumiOverrideList.get_Value() for el in pDicts: if 'evt_nbr' in el: Modifiers += add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts'], evt_nbr=el['evt_nbr']) else: Modifiers += add_modifier(run_nbr=el['run'], lbk_nbr=el['lb'], time_stamp=el['starttstamp'], nevts=el['evts']) elif digitizationFlags.dataRunNumber.get_Value(): if digitizationFlags.dataRunNumber.get_Value() < 0: raise SystemExit( "Given a negative Run Number - please use a real run number from data." ) #logDigitization_flags.info( 'Overriding run number to be: %s ', digitizationFlags.dataRunNumber.get_Value() ) myRunNumber = digitizationFlags.dataRunNumber.get_Value() myFirstLB = 1 ## Using event numbers to avoid "some very large number" setting from AthenaCommon.AthenaCommonFlags import athenaCommonFlags totalNumber = 1000000 if athenaCommonFlags.EvtMax( ) is not None and athenaCommonFlags.EvtMax() > 0: totalNumber = athenaCommonFlags.EvtMax() + 1 if athenaCommonFlags.SkipEvents( ) is not None and athenaCommonFlags.SkipEvents() > 0: totalNumber += athenaCommonFlags.SkipEvents() try: from RunDependentSimComps.RunDMCFlags import runDMCFlags myInitialTimeStamp = runDMCFlags.RunToTimestampDict.getTimestampForRun( myRunNumber) #print "FOUND TIMESTAMP ", str(myInitialTimeStamp) except KeyError: myInitialTimeStamp = 1 Modifiers += add_modifier(run_nbr=myRunNumber, lbk_nbr=myFirstLB, time_stamp=myInitialTimeStamp, nevts=totalNumber) return Modifiers
class ISF_Input: """ Place to handle the persistency. """ isfiplog.info("in ISF_Input") """ Place to read evgen events. """ from G4AtlasApps.SimFlags import simFlags from AthenaCommon.AppMgr import ServiceMgr as svcMgr #G4AtlasEngine.log.verbose('SimSkeleton._do_readevgen :: starting') from AthenaCommon.AthenaCommonFlags import athenaCommonFlags if athenaCommonFlags.PoolEvgenInput.statusOn: ## Tell the event selector about the evgen input files and event skipping if not hasattr(svcMgr, 'EventSelector'): import AthenaPoolCnvSvc.ReadAthenaPool svcMgr.EventSelector.InputCollections = athenaCommonFlags.PoolEvgenInput( ) if athenaCommonFlags.SkipEvents.statusOn: svcMgr.EventSelector.SkipEvents = athenaCommonFlags.SkipEvents() from ISF_Example.ISF_Metadata import inputFileValidityCheck inputFileValidityCheck() else: ## No input file so assume that we are running a Generator in the same job if not hasattr(svcMgr, 'EventSelector'): import AthenaCommon.AtlasUnixGeneratorJob # TODO: Check that there is at least one algorithm already in the AlgSequence? ## Warn if attempting to skip events in a generator job if athenaCommonFlags.SkipEvents.statusOn: msg = "athenaCommonFlags.SkipEvents set in a job without an active " msg += "athenaCommonFlags.PoolEvgenInput flag: ignoring event skip request" isfiplog.warning(msg) isfiplog.verbose('ISF_Input done')
from RecExConfig.RecFlags import rec rec.doLArg = doLAr rec.doTile = doTile rec.doCalo = doLAr or doTile rec.Commissioning = True # setup geometry from AtlasGeoModel import SetGeometryVersion from AtlasGeoModel import GeoModelInit from AtlasGeoModel import SetupRecoGeometry # setup bytestream reading from ByteStreamCnvSvc import ReadByteStream svcMgr.EventSelector.Input = athenaCommonFlags.FilesInput() theApp.EvtMax = athenaCommonFlags.EvtMax() svcMgr.EventSelector.SkipEvents = athenaCommonFlags.SkipEvents() # Level-1 bs data include("TrigT1CaloByteStream/ReadLVL1CaloBS_jobOptions.py") # detector description include("CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv_joboptions.py") include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py") # extra LAr setup if doLAr: include("LArConditionsCommon/LArIdMap_comm_jobOptions.py") include("LArIdCnv/LArIdCnv_joboptions.py") svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ "LArFebHeaderContainer/LArFebHeader" ] include("LArROD/LArFebErrorSummaryMaker_jobOptions.py")
from G4AtlasApps.SimFlags import simFlags from AthenaCommon.AppMgr import ServiceMgr as svcMgr from AthenaCommon.AthenaCommonFlags import athenaCommonFlags ## ReadTR is only present in simFlags for ATLAS geometries with cosmics switched on if (not simFlags.ISFRun) and hasattr( simFlags, "ReadTR") and simFlags.ReadTR.statusOn: include("CosmicGenerator/SetCosmicGenerator.py") if athenaCommonFlags.PoolEvgenInput.statusOn: ## Tell the event selector about the evgen input files and event skipping if not hasattr(svcMgr, 'EventSelector'): import AthenaPoolCnvSvc.ReadAthenaPool svcMgr.EventSelector.InputCollections = athenaCommonFlags.PoolEvgenInput( ) if athenaCommonFlags.SkipEvents.statusOn: svcMgr.EventSelector.SkipEvents = athenaCommonFlags.SkipEvents() from G4AtlasApps.G4Atlas_Metadata import inputFileValidityCheck inputFileValidityCheck() else: ## No input file so assume that we are running a Generator in the same job if not hasattr(svcMgr, 'EventSelector'): import AthenaCommon.AtlasUnixGeneratorJob # TODO: Check that there is at least one algorithm already in the AlgSequence? ## Warn if attempting to skip events in a generator job if athenaCommonFlags.SkipEvents.statusOn and athenaCommonFlags.SkipEvents( ) != 0: msg = "SimSkeleton._do_readevgen :: athenaCommonFlags.SkipEvents set in a job without an active " msg += "athenaCommonFlags.PoolEvgenInput flag: ignoring event skip request" print msg ## SimSkeleton._do_persistency
def configureRunNumberOverrides(): myRunNumber = 1 myFirstLB = 1 myInitialTimeStamp = 0 from G4AtlasApps.SimFlags import simFlags if hasattr(simFlags, "RunNumber") and simFlags.RunNumber.statusOn: myRunNumber = simFlags.RunNumber.get_Value() simMDlog.info('Found run number %d in sim flags.' % myRunNumber) ## Set event selector details based on evgen metadata ######update the run/event info for each event from AthenaCommon.AppMgr import ServiceMgr if not hasattr(ServiceMgr, 'EvtIdModifierSvc'): import AthenaServices.Configurables as asc ServiceMgr += asc.EvtIdModifierSvc(EvtStoreName="StoreGateSvc") from AthenaCommon.AppMgr import theApp theApp.CreateSvc += ["EvtIdModifierSvc"] else: simMDlog.warning( 'Will override the settings of the EvtIdModifierSvc that was previously set up!' ) #fix iov metadata if not hasattr(ServiceMgr.ToolSvc, 'IOVDbMetaDataTool'): from AthenaCommon import CfgMgr ServiceMgr.ToolSvc += CfgMgr.IOVDbMetaDataTool() ServiceMgr.ToolSvc.IOVDbMetaDataTool.MinMaxRunNumbers = [ myRunNumber, 2147483647 ] ## FIXME need to use maxRunNumber = 2147483647 for now to keep overlay working but in the future this should be set properly. # Using event numbers to avoid "some very large number" setting from AthenaCommon.AthenaCommonFlags import athenaCommonFlags totalNumber = 1000000 # TODO possibly get this from MetaReader?? if athenaCommonFlags.EvtMax( ) is not None and athenaCommonFlags.EvtMax() > 0: totalNumber = athenaCommonFlags.EvtMax() + 1 if athenaCommonFlags.SkipEvents( ) is not None and athenaCommonFlags.SkipEvents() > 0: totalNumber += athenaCommonFlags.SkipEvents() try: from RunDependentSimComps.RunDMCFlags import runDMCFlags myInitialTimeStamp = runDMCFlags.RunToTimestampDict.getTimestampForRun( myRunNumber) #print "FOUND TIMESTAMP ", str(myInitialTimeStamp) except: myInitialTimeStamp = 1 ServiceMgr.EvtIdModifierSvc.add_modifier(run_nbr=myRunNumber, lbk_nbr=myFirstLB, time_stamp=myInitialTimeStamp, nevts=totalNumber) if hasattr(ServiceMgr.EventSelector, 'OverrideRunNumberFromInput'): ServiceMgr.EventSelector.OverrideRunNumberFromInput = True elif metadata_lite is not None: # Get evgen run number and lumi block if len(metadata_lite['runNumbers']) > 0: myRunNumber = metadata_lite['runNumbers'][0] simMDlog.info('Found runNumbers %d in hits file metadata.' % myRunNumber) else: simMDlog.warning( 'Failed to find runNumbers in hits file metadata.') if metadata_lite['lumiBlockNumbers']: myFirstLB = metadata_lite['lumiBlockNumbers'][0] else: simMDlog.warning( 'Requires simFlags.RunNumber to be specified in this running mode.\ Using default value of 1 for RunNumber.') from AthenaCommon.AppMgr import ServiceMgr ServiceMgr.EventSelector.OverrideRunNumber = True ServiceMgr.EventSelector.RunNumber = myRunNumber ServiceMgr.EventSelector.FirstLB = myFirstLB # Necessary to avoid a crash ServiceMgr.EventSelector.InitialTimeStamp = myInitialTimeStamp
#------------------------- import AthenaPoolCnvSvc.ReadAthenaPoolDouble from AthenaCommon.AppMgr import ServiceMgr from AthenaCommon.AthenaCommonFlags import athenaCommonFlags if overlayFlags.isDataOverlay(): ServiceMgr.DoubleEventSelector.InputCollections = athenaCommonFlags.PoolHitsInput( ) ServiceMgr.SecondaryEventSelector.Input = athenaCommonFlags.FilesInput() ServiceMgr.SecondaryEventSelector.ProcessBadEvent = True else: ServiceMgr.DoubleEventSelector.InputCollections = athenaCommonFlags.PoolRDOInput( ) ServiceMgr.SecondaryEventSelector.InputCollections = athenaCommonFlags.PoolHitsInput( ) if athenaCommonFlags.SkipEvents.statusOn: ServiceMgr.DoubleEventSelector.SkipEvents = athenaCommonFlags.SkipEvents() # Properly generate event context from AthenaCommon.ConcurrencyFlags import jobproperties as jp nThreads = jp.ConcurrencyFlags.NumThreads() if nThreads > 0: EventLoop = Service("AthenaHiveEventLoopMgr") else: EventLoop = Service("AthenaEventLoopMgr") EventLoop.UseSecondaryEventNumber = True svcMgr += EventLoop #------------------------- # Common infrastructure #------------------------- # GeoModel