ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1CaloMonitoringConfig Namespace Reference

Classes

class  L1CaloMonitorCfgHelper

Functions

 LVL1CaloMonitoringConfig (flags)

Variables

 flags = initConfigFlags()
 useTrigger
 Environment
 DataType
 enableLumiAccess
 h = L1CaloMonitorCfgHelper(flags,CompFactory.JfexSimMonitorAlgorithm,"MyAlg")
 type
 path
 hanConfig
 thresholdConfig

Function Documentation

◆ LVL1CaloMonitoringConfig()

LVL1CaloMonitoringConfig.LVL1CaloMonitoringConfig ( flags)
Function to call l1calo DQ monitoring algorithms

Definition at line 435 of file LVL1CaloMonitoringConfig.py.

435def LVL1CaloMonitoringConfig(flags):
436 '''Function to call l1calo DQ monitoring algorithms'''
437 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
438 from AthenaConfiguration.Enums import Format
439 import logging
440
441 # local printing
442 local_logger = logging.getLogger('AthenaMonitoringCfg')
443 info = local_logger.info
444 info('In LVL1CaloMonitoringConfig')
445
446 result = ComponentAccumulator()
447
448 # If we're not putting trigger objects in event store, can't monitor them
449 if not flags.Trigger.Online.isPartition:
450 if not flags.DQ.triggerDataAvailable:
451 return result
452
453 isData = not flags.Input.isMC
454
455 # check if validation requested
456 validation=flags.DQ.Steering.LVL1Calo.doValidation
457
458 # monitoring algorithm configs
459 # do not run on MC or RAW->ESD(tier0), or AOD-only
460 if not validation and isData and flags.DQ.Environment not in ('tier0Raw', 'AOD'):
461
462 from TrigT1CaloMonitoring.PprMonitorAlgorithm import PprMonitoringConfig
463 from TrigT1CaloMonitoring.JepJemMonitorAlgorithm import JepJemMonitoringConfig
464
465 # Use metadata to check Run3 compatible trigger info is available
466 from AthenaConfiguration.AutoConfigFlags import GetFileMD
467 md = GetFileMD(flags.Input.Files)
468 inputContainsRun3FormatConfigMetadata = ("metadata_items" in md and any(('TriggerMenuJson' in key) for key in md["metadata_items"].keys()))
469 result.merge(PprMonitoringConfig(flags))
470 result.merge(JepJemMonitoringConfig(flags))
471 if flags.Input.Format is not Format.POOL or inputContainsRun3FormatConfigMetadata:
472 # L1 menu available in the POOL file
473
474 # since the legacy system started getting turned off in 2024, use detMask to determine
475 # which things are included, and therefore need monitoring ...
476 import eformat
477 detMask=eformat.helper.DetectorMask(f'{md.get("detectorMask",[0x0])[0]:032x}') #DetectorMask constructor swallows two 64bit ints
478 hasCPM = detMask.is_set(eformat.helper.SubDetector.TDAQ_CALO_CLUSTER_PROC_DAQ)
479 hasJEP = detMask.is_set(eformat.helper.SubDetector.TDAQ_CALO_JET_PROC_DAQ)
480
481 if hasCPM:
482 from TrigT1CaloMonitoring.CpmMonitorAlgorithm import CpmMonitoringConfig
483 from TrigT1CaloMonitoring.CpmSimMonitorAlgorithm import CpmSimMonitoringConfig
484 result.merge(CpmMonitoringConfig(flags))
485 result.merge(CpmSimMonitoringConfig(flags))
486
487 if hasJEP:
488 from TrigT1CaloMonitoring.JepCmxMonitorAlgorithm import JepCmxMonitoringConfig
489 result.merge(JepCmxMonitoringConfig(flags))
490
491 from TrigT1CaloMonitoring.OverviewMonitorAlgorithm import OverviewMonitoringConfig
492 from TrigT1CaloMonitoring.PPMSimBSMonitorAlgorithm import PPMSimBSMonitoringConfig
493 result.merge(PPMSimBSMonitoringConfig(flags))
494 result.merge(OverviewMonitoringConfig(flags))
495
496 if not hasCPM:
497 # CPM was disabled for run 480893 onwards, so stop monitoring that part
498 OverviewMonAlg = result.getEventAlgo("OverviewMonAlg")
499 OverviewMonAlg.CPMErrorLocation = ""
500 OverviewMonAlg.CPMMismatchLocation = ""
501
502 if flags.Input.TriggerStream == "physics_Mistimed":
503 from TrigT1CaloMonitoring.MistimedStreamMonitorAlgorithm import MistimedStreamMonitorConfig
504 result.merge(MistimedStreamMonitorConfig(flags))
505
506 # For running on bytestream data
507 if flags.Input.Format is Format.BS:
508 from TrigT1CaloByteStream.LVL1CaloRun2ByteStreamConfig import LVL1CaloRun2ReadBSCfg
509 result.merge(LVL1CaloRun2ReadBSCfg(flags))
510
511 # Phase 1 monitoring of inputs and sim-vs-hw
512 if flags.Trigger.enableL1CaloPhase1 and flags.Input.Format is not Format.POOL:
513
514 # run the L1Calo simulation (causes conflicts with DAOD)
515 from L1CaloFEXSim.L1CaloFEXSimCfg import L1CaloFEXSimCfg
516 result.merge(L1CaloFEXSimCfg(flags))
517
518 #efex monitoring
519 if flags.Trigger.L1.doeFex:
520 from TrigT1CaloMonitoring.EfexInputMonitorAlgorithm import EfexInputMonitoringConfig
521 result.merge(EfexInputMonitoringConfig(flags))
522
523 # monitoring of simulation vs hardware
524 from TrigT1CaloMonitoring.EfexSimMonitorAlgorithm import EfexSimMonitoringConfig
525 result.merge(EfexSimMonitoringConfig(flags))
526
527 #gfex monitoring
528 if flags.Trigger.L1.dogFex:
529 #gfex input monitoring
530 from TrigT1CaloMonitoring.GfexInputMonitorAlgorithm import GfexInputMonitoringConfig
531 result.merge(GfexInputMonitoringConfig(flags))
532
533 from TrigT1CaloMonitoring.GfexSimMonitorAlgorithm import GfexSimMonitoringConfig
534 result.merge(GfexSimMonitoringConfig(flags))
535
536 #jfex monitoring
537 if flags.Trigger.L1.dojFex:
538 #jfex monitoring for input data
539 from TrigT1CaloMonitoring.JfexInputMonitorAlgorithm import JfexInputMonitoringConfig
540 result.merge(JfexInputMonitoringConfig(flags))
541
542 #jfex monitoring for Data Vs Simulation
543 from TrigT1CaloMonitoring.JfexSimMonitorAlgorithm import JfexSimMonitoringConfig
544 JfexSimMonitoring = JfexSimMonitoringConfig(flags)
545 result.merge(JfexSimMonitoring)
546
547 if flags.Trigger.L1.doTopo and isData:
548 #L1TopoSimulation (with monitoring Off to avoid clash with next call)
549 from L1TopoSimulation.L1TopoSimulationConfig import L1TopoSimulationCfg
550 result.merge(L1TopoSimulationCfg(flags,readMuCTPI=True,doMonitoring=False, useMuonDecoder=True, writeMuonRoIs = False))
551 #L1TopoOnlineMonitoring specific for L1Calo DQPlots
552 from L1TopoOnlineMonitoring.L1TopoOnlineMonitoringConfig import Phase1TopoMonitoringCfg
553 result.merge(Phase1TopoMonitoringCfg(flags))
554
555 # run FEX output monitoring if doing validation or running on data not @ tier0 or on AOD
556 if validation or (isData and flags.DQ.Environment not in ('tier0Raw', 'AOD')):
557
558 if validation:
559 # only run this monitoring if doing validation
560 from TrigT1CaloMonitoring.L1CaloLegacyEDMMonitorAlgorithm import L1CaloLegacyEDMMonitoringConfig
561 result.merge(L1CaloLegacyEDMMonitoringConfig(flags))
562
563 #efex monitoring
564 if flags.Trigger.L1.doeFex:
565 from TrigT1CaloMonitoring.EfexMonitorAlgorithm import EfexMonitoringConfig
566 result.merge(EfexMonitoringConfig(flags))
567 from TrigT1CaloMonitoring.EfexMonitorAlgorithm import EfexMonitoringHistConfig
568 result.merge(EfexMonitoringHistConfig(flags,result.getEventAlgo('EfexMonAlg')))
569
570 #gfex monitoring
571 if flags.Trigger.L1.dogFex:
572 from TrigT1CaloMonitoring.GfexMonitorAlgorithm import GfexMonitoringConfig
573 result.merge(GfexMonitoringConfig(flags))
574
575 #jfex monitoring
576 if flags.Trigger.L1.dojFex:
577 from TrigT1CaloMonitoring.JfexMonitorAlgorithm import JfexMonitoringConfig
578 result.merge(JfexMonitoringConfig(flags))
579
580 # jet efficiency monitoring -- needs either gfex or jfex to be worth scheduling
581 if flags.Trigger.L1.dojFex or flags.Trigger.L1.dogFex:
582 from TrigT1CaloMonitoring.JetEfficiencyMonitorAlgorithm import JetEfficiencyMonitoringConfig
583 result.merge(JetEfficiencyMonitoringConfig(flags))
584
585 result.printConfig( withDetails= True )
586
587 return result
588

Variable Documentation

◆ DataType

LVL1CaloMonitoringConfig.DataType

Definition at line 596 of file LVL1CaloMonitoringConfig.py.

◆ enableLumiAccess

LVL1CaloMonitoringConfig.enableLumiAccess

Definition at line 597 of file LVL1CaloMonitoringConfig.py.

◆ Environment

LVL1CaloMonitoringConfig.Environment

Definition at line 595 of file LVL1CaloMonitoringConfig.py.

◆ flags

LVL1CaloMonitoringConfig.flags = initConfigFlags()

Definition at line 593 of file LVL1CaloMonitoringConfig.py.

◆ h

LVL1CaloMonitoringConfig.h = L1CaloMonitorCfgHelper(flags,CompFactory.JfexSimMonitorAlgorithm,"MyAlg")

Definition at line 599 of file LVL1CaloMonitoringConfig.py.

◆ hanConfig

LVL1CaloMonitoringConfig.hanConfig

Definition at line 600 of file LVL1CaloMonitoringConfig.py.

◆ path

LVL1CaloMonitoringConfig.path

Definition at line 600 of file LVL1CaloMonitoringConfig.py.

◆ thresholdConfig

LVL1CaloMonitoringConfig.thresholdConfig

Definition at line 608 of file LVL1CaloMonitoringConfig.py.

◆ type

LVL1CaloMonitoringConfig.type

Definition at line 600 of file LVL1CaloMonitoringConfig.py.

◆ useTrigger

LVL1CaloMonitoringConfig.useTrigger

Definition at line 594 of file LVL1CaloMonitoringConfig.py.