def GetFilledBunchFilterTool(): from AthenaCommon.Logging import logging fbft_local_logger = logging.getLogger('FilledBunchFilterTool') fbft_local_logger.verbose('Configuring monFilledBunchFilterTool') from AthenaMonitoring.DQMonFlags import DQMonFlags from AthenaCommon.GlobalFlags import globalflags from RecExConfig.RecFlags import rec if (rec.triggerStream() == 'CosmicCalo' or globalflags.DataSource.get_Value() == 'geant4' or 'collisions' not in DQMonFlags.monManDataType.get_Value() or DQMonFlags.disableFilledBunchFilter.get_Value()): fbft_local_logger.verbose( 'Filled bunch filter being configured to always return true') from AthenaMonitoring.AthenaMonitoringConf import DQDummyFilterTool return DQDummyFilterTool() from AthenaMonitoring.AthenaMonitoringConf import DQFilledBunchFilterTool from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool monFilledBunchFilterTool = DQFilledBunchFilterTool() monFilledBunchFilterTool.bunchCrossingTool = BunchCrossingTool() return monFilledBunchFilterTool
def ConfigureTriggerStream(): from RecExConfig.InputFilePeeker import inputFileSummary streamName = '' if inputFileSummary['file_type'] == 'bs': try: streamName = inputFileSummary['bs_metadata']['Stream'].split( '_')[1] except: logAutoConfiguration.warning( "Input file does not contain bs_metadata! Trying to specify otherwise!" ) elif inputFileSummary['file_type'] == 'pool': try: streamName = inputFileSummary['tag_info']['triggerStreamOfFile'] except: logAutoConfiguration.warning( "Input file does not contain triggerStreamOfFile! Trying to specify otherwise!" ) if streamName == '': try: if len(inputFileSummary['stream_tags']) == 1: streamName = inputFileSummary['stream_tags'][0]['stream_name'] except: logAutoConfiguration.warning( "No trigger stream found in input file!!! ") if streamName == '': logAutoConfiguration.info( "Failed to find triggerStream from inputFileSummary. OK for MC but can be problematic for data." ) logAutoConfiguration.info( "Keeping input value untouched: rec.triggerStream='%s'" % rec.triggerStream()) return logAutoConfiguration.info( "Set rec.triggerStream='%s' from inputFileSummary." % streamName) rec.triggerStream = streamName return
def ConfigureTriggerStream(): from PyUtils.MetaReaderPeeker import metadata streamName = '' if metadata['file_type'] == 'BS': try: streamName = metadata['stream'].split('_')[1] except: logAutoConfiguration.warning( "Input file does not contain bs_metadata! Trying to specify otherwise!" ) elif metadata['file_type'] == 'POOL': try: streamName = metadata['triggerStreamOfFile'] except: logAutoConfiguration.warning( "Input file does not contain triggerStreamOfFile! Trying to specify otherwise!" ) if streamName == '': try: if len(metadata['processingTags']) == 1: streamName = metadata['processingTags'][0] except: logAutoConfiguration.warning( "No trigger stream found in input file!!! ") if streamName == '': logAutoConfiguration.info( "Failed to find triggerStream from MetaReaderPeeker. OK for MC but can be problematic for data." ) logAutoConfiguration.info( "Keeping input value untouched: rec.triggerStream='%s'" % rec.triggerStream()) return logAutoConfiguration.info( "Set rec.triggerStream='%s' from MetaReaderPeeker." % streamName) rec.triggerStream = streamName return
tmp_useReadyFilterTool = FALSE else: # tmp_useReadyFilterTool=TRUE tmp_useReadyFilterTool = FALSE if DQMonFlags.monManEnvironment() == 'online': tmp_useLArNoisyAlg = FALSE else: tmp_useLArNoisyAlg = TRUE if DQMonFlags.monManEnvironment() == 'online': tmp_useBeamBackgroundRemoval = FALSE else: tmp_useBeamBackgroundRemoval = TRUE if not (rec.triggerStream() == 'CosmicCalo'): tmp_useBeamBackgroundRemoval = FALSE print "not CosmicCalo stream" print "tmp_useBeamBackgroundRemoval=", tmp_useBeamBackgroundRemoval CaloClustMonCosmicsNoTA = CaloClusterVecMon( name="CaloClustMonCosmicsNoTA", CaloClusterContainer="CaloCalTopoClusters", TimeGran=tmp_timeGran, useBadLBTool=tmp_useBadLBTool, BadLBTool=GetLArBadLBFilterTool(), useReadyFilterTool=tmp_useReadyFilterTool, ReadyFilterTool=monAtlasReadyFilterTool, useLArNoisyAlg=tmp_useLArNoisyAlg, useBeamBackgroundRemoval=tmp_useBeamBackgroundRemoval,
rec.projectName=projectName ConfigureFieldAndGeo() ConfigureTriggerStream() ConfigureSimulationOrRealData() ConfigureBeamType() ConfigureConditionsTag() data_type=globalflags.InputFormat.get_Value() beam_type=jobproperties.Beam.beamType.get_Value() #evt_type=inputFileSummary['evt_type'] log.info("Run Number %s",runNb) log.info("Project name %s",projectName) log.info("DetDescription %s", globalflags.DetDescrVersion()) log.info("File type %s",data_type) log.info("Beam type %s",beam_type) log.info("Trigger stream %s",rec.triggerStream()) #log.info("Event type %s",evt_type) # enable PerfMon from PerfMonComps.PerfMonFlags import jobproperties jobproperties.PerfMonFlags.doFastMon = True #set up DQMonFlags required for HLTMonitoring from AthenaMonitoring.DQMonFlags import DQMonFlags if globalflags.DataSource.get_Value() == 'geant4': DQMonFlags.monManDataType = 'monteCarlo' elif (rec.doHeavyIon() or rec.doHIP()): # requires something from InputFileSummary rather than rec flag DQMonFlags.monManDataType = 'heavyioncollisions' DQMonFlags.doHIMon = True elif jobproperties.Beam.beamType() == 'cosmics':
#if (not rec.doTau()) or (rec.readRDO() and not jobproperties.TauRecFlags.Enabled()): if (not rec.doTau()): DQMonFlags.doTauMon = False # covered now by doJetMissingETTag # if (not recAlgs.doMissingET()): # DQMonFlags.doMissingEtMon=False # # Stream Aware Monitoring # Turn off tools on a stream basis to save cpu # if DQMonFlags.doStreamAwareMon: local_logger.info("Setting stream-aware monitoring for stream %s", rec.triggerStream()) from TrigHLTMonitoring.HLTMonFlags import HLTMonFlags from LArMonTools.LArMonFlags import LArMonFlags # Some LAr monitoring is only done on a couple of streams for cpu sake # So set them as false by default. Turn them on as needed LArMonFlags.doLArRODMonTool = False # savannah bug report #83390 LArMonFlags.doLArRawMonitorSignal = False # All monitoring turned on for express stream (except LArRawChannelMon) # HIP runs will use the express settings for MinBias, MinBiasOverlay, HardProbes, bulk, and UPC if (rec.triggerStream() == 'express' or (rec.doHIP() and rec.triggerStream() in ['MinBias', 'MinBiasOverlay', 'HardProbes', 'bulk', 'UPC'])): LArMonFlags.doLArRawChannelMon = False
if len(athenaCommonFlags.FilesInput()) > 0: logRecExCommon_flags.info( "Full auto-configuration has been triggered by FilesInput()") rec.AutoConfiguration.append('everything') #Optional auto-configuration if len(rec.AutoConfiguration()) > 0: from RecExConfig.AutoConfiguration import ConfigureFromListOfKeys ConfigureFromListOfKeys(rec.AutoConfiguration()) include("RecExConfig/AutoConfigConsistencyCheck.py") #special commisioning job options if rec.Commissioning(): include("RecExCommission/RecExCommission.py") if rec.triggerStream().startswith('express'): logRecExCommon_flags.info('Disabling track slimming for express stream.') include("RecJobTransforms/NoTrackSlimming.py") #Some special (monitoring) setting for Heavy Ions: if rec.doHeavyIon(): logRecExCommon_flags.info('Heavy Ion case: Calling HIEarlyIncludes.py') include("HIRecExample/HIEarlyIncludes.py") if rec.doHIP(): logRecExCommon_flags.info( 'Heavy Ion p+Pb case: Calling HIPEarlyIncludes.py') include("HIRecExample/HIPEarlyIncludes.py") varInit = dir()
from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool tmp_CaloBaselineMon = {"useBadLBTool":FALSE, "useReadyFilterTool":FALSE, "useLArNoisyAlg":FALSE, "useBeamBackgroundRemoval":FALSE, "useLArCollisionFilter":FALSE, "pedestalMon_BCIDmin":0, "bcidtoolMon_BCIDmax":0} if not (DQMonFlags.monManEnvironment == 'online' or globalflags.DataSource.get_Value() == 'geant4' or globalflags.DataSource.get_Value() == 'geant3'): tmp_CaloBaselineMon["useBadLBTool"]=TRUE tmp_CaloBaselineMon["useReadyFilterTool"]=TRUE tmp_CaloBaselineMon["useLArNoisyAlg"] = TRUE if rec.triggerStream()=='CosmicCalo': tmp_CaloBaselineMon["useLArCollisionFilter"] = TRUE tmp_CaloBaselineMon["pedestalMon_BCIDmin"] = 40 if rec.triggerStream()=='ZeroBias': tmp_CaloBaselineMon["bcidtoolMon_BCIDmax"] = 144 CaloBaseline = CaloBaselineMon( name = "CaloBaseline", useBadLBTool=tmp_CaloBaselineMon["useBadLBTool"], BadLBTool = GetLArBadLBFilterTool(), BunchCrossingTool=BunchCrossingTool(), useReadyFilterTool = tmp_CaloBaselineMon["useReadyFilterTool"], ReadyFilterTool = GetAtlasReadyFilterTool(),
from LArBadChannelTool.LArBadChannelToolConf import LArBadChannelMasker theLArChanMasker=LArBadChannelMasker("LArChanMasker") theLArChanMasker.DoMasking=True theLArChanMasker.ProblemsToMask=[ "deadReadout","deadPhys","almostDead","short", "sporadicBurstNoise", "unstableNoiseLG","unstableNoiseMG","unstableNoiseHG", "highNoiseHG","highNoiseMG","highNoiseLG" ] ToolSvc+=theLArChanMasker # All 2D plot occupancy are activate only for express and cosmiccalo if (rec.triggerStream()=='CosmicCalo' or rec.triggerStream()=='express' or rec.triggerStream()=='Main' or rec.triggerStream()=='ZeroBias') or (DQMonFlags.monManEnvironment() == 'online'): do2DOcc = True else: do2DOcc = False LArCellMon = LArCellMonTool( #DoSaveTempHists=True, #OutputLevel=DEBUG, name = "LArCellMon", CaloCellContainer = "AllCalo", BadLBTool = GetLArBadLBFilterTool(), ReadyFilterTool = GetAtlasReadyFilterTool(),
## More fine-tuning available for each tool/alg below (default value shown) ################# ### Setup skimming tools ################# skimmingTools = [] # Applying prescales # https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DerivationFramework#Applying_prescales from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__PrescaleTool from InDetPrepRawDataToxAOD.SCTxAODJobProperties import SCTxAODFlags from RecExConfig.RecFlags import rec msg.info("rec.triggerStream() is " + rec.triggerStream()) if not SCTxAODFlags.Prescale.is_locked(): if rec.triggerStream() == 'express': SCTxAODFlags.Prescale = SCTxAODFlags.PrescaleExpress() elif rec.triggerStream() == 'IDprescaledL1': SCTxAODFlags.Prescale = SCTxAODFlags.PrescaleIDprescaledL1() msg.info("SCTxAODFlags.Prescale() is " + str(SCTxAODFlags.Prescale())) prescaleTool = DerivationFramework__PrescaleTool( name="SCTxAOD_PrescaleTool", Prescale=SCTxAODFlags.Prescale()) ToolSvc += prescaleTool skimmingTools += [prescaleTool] ################# ### Setup decorators tools #################
#if (not rec.doTau()) or (rec.readRDO() and not jobproperties.TauRecFlags.Enabled()): if (not rec.doTau()): DQMonFlags.doTauMon = False # covered now by doJetMissingETTag # if (not recAlgs.doMissingET()): # DQMonFlags.doMissingEtMon=False # # Stream Aware Monitoring # Turn off tools on a stream basis to save cpu # if DQMonFlags.doStreamAwareMon: local_logger.info("Setting stream-aware monitoring for stream %s", rec.triggerStream()) from TrigHLTMonitoring.HLTMonFlags import HLTMonFlags from LArMonTools.LArMonFlags import LArMonFlags # Some LAr monitoring is only done on a couple of streams for cpu sake # So set them as false by default. Turn them on as needed LArMonFlags.doLArRODMonTool = False # savannah bug report #83390 LArMonFlags.doLArRawMonitorSignal = False LArMonFlags.doLArRawChannelMon = False LArMonFlags.doLArCollisionTimeMon = False LArMonFlags.doLArAffectedRegions = False LArMonFlags.doLArHVCorrectionMonTool = False LArMonFlags.doLArCoverage = False doCaloCellVecMon = False
#if (not rec.doTau()) or (rec.readRDO() and not jobproperties.TauRecFlags.Enabled()): if (not rec.doTau()): DQMonFlags.doTauMon=False # covered now by doJetMissingETTag # if (not recAlgs.doMissingET()): # DQMonFlags.doMissingEtMon=False # # Stream Aware Monitoring # Turn off tools on a stream basis to save cpu # if DQMonFlags.doStreamAwareMon: local_logger.info("Setting stream-aware monitoring for stream %s", rec.triggerStream()) from TrigHLTMonitoring.HLTMonFlags import HLTMonFlags from LArMonTools.LArMonFlags import LArMonFlags # Some LAr monitoring is only done on a couple of streams for cpu sake # So set them as false by default. Turn them on as needed LArMonFlags.doLArRODMonTool=False # savannah bug report #83390 LArMonFlags.doLArRawMonitorSignal=False # All monitoring turned on for express stream (except LArRawChannelMon) # HIP runs will use the express settings for MinBias, MinBiasOverlay, HardProbes, bulk, and UPC if (rec.triggerStream()=='express' or (rec.doHIP() and rec.triggerStream() in ['MinBias', 'MinBiasOverlay', 'HardProbes', 'bulk', 'UPC'])): LArMonFlags.doLArRawChannelMon=False LArMonFlags.doLArRODMonTool=True # savannah bug report #83390
JetCollectionName=JetCollectionKey, MuonPtCut=27, MuonMaxEta=ToolSvc.DQTMuonSelectionTool.MaxEta, MuonSelectionTool=ToolSvc.DQTMuonSelectionTool, IsolationSelectionTool=ToolSvc.DQTIsoGradientTool, MuonTrigMatchingTool=ToolSvc.MatchingTool, ) ToolSvc += MyDQTGlobalWZFinderTool ManagedAthenaGlobalPhysMon.AthenaMonTools += [MyDQTGlobalWZFinderTool] #from TrigBunchCrossingTool.TrigBunchCrossingToolConf import Trig__TrigConfBunchCrossingTool #ToolSvc += Trig__TrigConfBunchCrossingTool("DQTBunchCrossingTool") from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool #ToolSvc += BunchCrossingTool("DQTBunchCrossingTool") DontUseBunchCrossingTool = False if (rec.triggerStream() == 'CosmicCalo' or globalflags.DataSource.get_Value() == 'geant4' or 'collisions' not in DQMonFlags.monManDataType.get_Value()): DontUseBunchCrossingTool = True from DataQualityTools.DataQualityToolsConf import DQTLumiMonTool DQTLumiMonToolAnyTrigger = DQTLumiMonTool( name='DQTLumiMonToolAnyTrigger', histoPath='/GLOBAL/Luminosity/AnyTrigger', bunchCrossingTool=BunchCrossingTool(), TurnOffBunchTool=DontUseBunchCrossingTool) DQTLumiMonToolMu = DQTLumiMonTool( name='DQTLumiMonToolMu', histoPath='/GLOBAL/Luminosity/EF_muX', TriggerChain='CATEGORY_monitoring_muonIso', bunchCrossingTool=BunchCrossingTool(),
if hasattr(runArgs, "outputNTUP_SAMPLESMONFile"): from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg CaloNoiseCondAlg(noisetype="totalNoise") from LArCafJobs.LArCafJobsConfig import DefaultShapeDumper DefaultShapeDumper('LArShapeDumper', 'FREE', noiseSignifCut=5, doShape=True, doTrigger=True, caloType='EMHECFCAL') topSequence.LArShapeDumper.TrigDecisionTool = tdt topSequence.LArShapeDumper.FileName = runArgs.outputNTUP_SAMPLESMONFile topSequence.LArShapeDumper.OutputLevel = DEBUG topSequence.LArShapeDumper.BunchCrossingTool = BunchCrossingTool() if ("Empty" in rec.triggerStream()): printfunc("LArCellsEmpty: Process only empty bunch crossings") topSequence.LArShapeDumper.onlyEmptyBC = True svcMgr.THistSvc.Output += [ "AANT DATAFILE='" + runArgs.outputNTUP_SAMPLESMONFile + "' OPT='RECREATE'" ] if hasattr(runArgs, "outputNTUP_HECNOISEFile"): from LArCafJobs.LArCafJobsConf import LArHECNoise topSequence += LArHECNoise('LArHECNoise') #topSequence.LArHECNoise.OutputLevel=DEBUG svcMgr.THistSvc.Output += [ "HEC DATAFILE='" + runArgs.outputNTUP_HECNOISEFile + "' OPT='RECREATE'" ]
#from tauRec.tauRecFlags import jobproperties #jobproperties.tauRecFlags.doTauRec = False # AO (this turns off all MissingET and EFlow) rec.doJetMissingETTag = False recAlgs.doMissingET = False recAlgs.doMissingETSig = False recAlgs.doEFlow = False recAlgs.doEFlowJet = False recAlgs.doMuGirl = False recAlgs.doMuidLowPt = False recAlgs.doCaloTrkMuId = False from MuonCombinedRecExample.MuonCombinedRecFlags import muonCombinedRecFlags muonCombinedRecFlags.doMuGirlLowBeta = False ptCutVal = 0.5 if jobproperties.HIRecExampleFlags.ptCutOn(): ptCutVal = jobproperties.HIRecExampleFlags.ptCut() print("ptCutOn: Modify ptCutVal to ", ptCutVal, " GeV") if (rec.triggerStream() == "HardProbes") or (globalflags.DataSource == "geant4"): print("Modify ConfiguredNewTrackingCuts__minPT to ", ptCutVal, " GeV") from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts InDetNewTrackingCuts = ConfiguredNewTrackingCuts("HeavyIon") InDetNewTrackingCuts._ConfiguredNewTrackingCuts__minPT = ptCutVal * Units.GeV InDetNewTrackingCuts.printInfo() ############################################################################
theLArChanMasker = LArBadChannelMasker("LArChanMasker") theLArChanMasker.DoMasking = True theLArChanMasker.ProblemsToMask = [ "deadReadout", "deadPhys", "almostDead", "short", "sporadicBurstNoise", "unstableNoiseLG", "unstableNoiseMG", "unstableNoiseHG", "highNoiseHG", "highNoiseMG", "highNoiseLG" ] ToolSvc += theLArChanMasker from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool theLArBadChannelTool = LArBadChanTool() ToolSvc += theLArBadChannelTool # All 2D plot occupancy are activate only for express and cosmiccalo if (rec.triggerStream() == 'CosmicCalo' or rec.triggerStream() == 'express' or rec.triggerStream() == 'Main' or rec.triggerStream() == 'ZeroBias') or (DQMonFlags.monManEnvironment() == 'online'): do2DOcc = True else: do2DOcc = False LArCellMon = LArCellMonTool( #DoSaveTempHists=True, #OutputLevel=DEBUG, name="LArCellMon", CaloCellContainer="AllCalo", BadLBTool=GetLArBadLBFilterTool(), ReadyFilterTool=monAtlasReadyFilterTool, useElectronicNoiseOnly=False,