示例#1
0
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
示例#2
0
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
示例#3
0
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,
示例#5
0
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':
示例#6
0
#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
示例#7
0
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()
示例#8
0
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(),
示例#9
0
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(),
示例#10
0
## 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
#################
示例#11
0
#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
示例#13
0
        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(),
示例#14
0
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'"
    ]
示例#15
0
        #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,