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 434 of file LVL1CaloMonitoringConfig.py.

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

Variable Documentation

◆ DataType

LVL1CaloMonitoringConfig.DataType

Definition at line 595 of file LVL1CaloMonitoringConfig.py.

◆ enableLumiAccess

LVL1CaloMonitoringConfig.enableLumiAccess

Definition at line 596 of file LVL1CaloMonitoringConfig.py.

◆ Environment

LVL1CaloMonitoringConfig.Environment

Definition at line 594 of file LVL1CaloMonitoringConfig.py.

◆ flags

LVL1CaloMonitoringConfig.flags = initConfigFlags()

Definition at line 592 of file LVL1CaloMonitoringConfig.py.

◆ h

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

Definition at line 598 of file LVL1CaloMonitoringConfig.py.

◆ hanConfig

LVL1CaloMonitoringConfig.hanConfig

Definition at line 599 of file LVL1CaloMonitoringConfig.py.

◆ path

LVL1CaloMonitoringConfig.path

Definition at line 599 of file LVL1CaloMonitoringConfig.py.

◆ thresholdConfig

LVL1CaloMonitoringConfig.thresholdConfig

Definition at line 607 of file LVL1CaloMonitoringConfig.py.

◆ type

LVL1CaloMonitoringConfig.type

Definition at line 599 of file LVL1CaloMonitoringConfig.py.

◆ useTrigger

LVL1CaloMonitoringConfig.useTrigger

Definition at line 593 of file LVL1CaloMonitoringConfig.py.