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

Functions

 PhysValExampleCfg (flags, **kwargs)
 GoodRunsListSelectionToolCfg (flags, grls, **kwargs)
 GoodRunListSelectionAlgCfg (flags, **kwargs)
 PhysValMonitoringCfg (flags, name="PhysValMonManager", tools=None, **kwargs)

Variables

 logger = logging.getLogger("PhysValMonitoringConfig")

Detailed Description

@file PhysValMonitoringConfig.py
@author T. Strebler
@date 2022-06-16
@brief Main CA-based python configuration for PhysValMonitoring

Function Documentation

◆ GoodRunListSelectionAlgCfg()

PhysValMonitoringConfig.GoodRunListSelectionAlgCfg ( flags,
** kwargs )

Definition at line 70 of file PhysValMonitoringConfig.py.

70def GoodRunListSelectionAlgCfg(flags, **kwargs):
71 acc = ComponentAccumulator()
72 kwargs.setdefault('GoodRunsListSelectionTool', acc.popToolsAndMerge(
73 GoodRunsListSelectionToolCfg(flags, grls=flags.PhysVal.GRLs)))
74
75 alg = CompFactory.GRLSelectorAlg(
76 'GRLSelectorAlg', Tool=kwargs['GoodRunsListSelectionTool'], grlKey="EventInfo.passGRL")
77 acc.addEventAlgo(alg)
78 return acc
79
80

◆ GoodRunsListSelectionToolCfg()

PhysValMonitoringConfig.GoodRunsListSelectionToolCfg ( flags,
grls,
** kwargs )

Definition at line 40 of file PhysValMonitoringConfig.py.

40def GoodRunsListSelectionToolCfg(flags, grls, **kwargs):
41 from GoodRunsLists.GoodRunsListsDictionary import getGoodRunsLists
42 all_grls = getGoodRunsLists() # this is a Dict[str, List[str]]
43 all_grl_flattened = [grl for grls in all_grls.values() for grl in grls]
44
45 acc = ComponentAccumulator()
46
47 if isinstance(grls, str):
48 raise TypeError("grls must be an iterable of GRLs, e.g. [%s]" % grls)
49
50 resolved_grls = []
51 for grl in grls:
52 if grl.endswith(".xml"):
53 if grl not in all_grl_flattened:
54 logger.warning("GRL '%s' is not in the reccomended GRLs, using it as is.", grl)
55 resolved_grls.append(grl)
56 else:
57 if grl in all_grls:
58 resolved_grls.extend(all_grls[grl])
59 else:
60 raise ValueError(f"GRL name '{grl}' not found in the available GRLs. Available GRL names: %s" % all_grls.keys())
61
62 tool = CompFactory.GoodRunsListSelectionTool(name="GoodRunsListSelectionTool",
63 GoodRunsListVec=resolved_grls,
64 PassThrough=False,
65 **kwargs)
66 acc.setPrivateTools(tool)
67 return acc
68
69

◆ PhysValExampleCfg()

PhysValMonitoringConfig.PhysValExampleCfg ( flags,
** kwargs )

Definition at line 19 of file PhysValMonitoringConfig.py.

19def PhysValExampleCfg(flags, **kwargs):
20 acc = ComponentAccumulator()
21
22 from AthenaCommon.Constants import WARNING
23 kwargs.setdefault("EnableLumi", False)
24 kwargs.setdefault("OutputLevel", WARNING)
25 kwargs.setdefault("DetailLevel", 10)
26 kwargs.setdefault("TauContainerName", "TauJets")
27 kwargs.setdefault("PhotonContainerName", "Photons")
28 kwargs.setdefault("ElectronContainerName", "Electrons")
29
30 # Keep this disabled for now
31 kwargs.setdefault("DoExBtag", False)
32 kwargs.setdefault("DoExMET", False)
33 kwargs.setdefault("DoExJet", flags.PhysVal.doJet)
34 kwargs.setdefault("METContainerName", "")
35
36 acc.setPrivateTools(CompFactory.PhysVal.PhysValExample(**kwargs))
37 return acc
38
39

◆ PhysValMonitoringCfg()

PhysValMonitoringConfig.PhysValMonitoringCfg ( flags,
name = "PhysValMonManager",
tools = None,
** kwargs )

Definition at line 81 of file PhysValMonitoringConfig.py.

81def PhysValMonitoringCfg(flags, name="PhysValMonManager", tools=None, **kwargs):
82 if tools is None:
83 tools = []
84
85 acc = ComponentAccumulator()
86
87 kwargs.setdefault("FileKey", "PhysVal")
88 kwargs.setdefault("Environment", "altprod")
89 kwargs.setdefault("ManualDataTypeSetup", True)
90 kwargs.setdefault("DataType", "monteCarlo")
91 kwargs.setdefault("ManualRunLBSetup", True)
92 kwargs.setdefault("Run", 1)
93 kwargs.setdefault("LumiBlock", 1)
94
95 if flags.PhysVal.doExample:
96 tools.append(acc.popToolsAndMerge(PhysValExampleCfg(flags)))
97 if flags.PhysVal.doInDet:
98 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig import InDetPhysValMonitoringToolCfg
99 tools.append(acc.popToolsAndMerge(InDetPhysValMonitoringToolCfg(flags)))
100 if flags.PhysVal.doInDetLargeD0:
101 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig import InDetLargeD0PhysValMonitoringToolCfg
102 tools.append(acc.popToolsAndMerge(InDetLargeD0PhysValMonitoringToolCfg(flags)))
103 if flags.PhysVal.doBtag:
104 from JetTagDQA.JetTagDQAConfig import PhysValBTagCfg
105 tools.append(acc.popToolsAndMerge(PhysValBTagCfg(flags)))
106 if flags.PhysVal.doMET:
107 from MissingEtDQA.MissingEtDQAConfig import PhysValMETCfg
108 tools.append(acc.popToolsAndMerge(PhysValMETCfg(flags)))
109 if flags.PhysVal.doEgamma:
110 from EgammaPhysValMonitoring.EgammaPhysValMonitoringConfig import EgammaPhysValMonitoringToolCfg
111 tools.append(acc.popToolsAndMerge(EgammaPhysValMonitoringToolCfg(flags, useOQQuality=flags.PhysVal.applyAllDataCleaning)))
112 if flags.PhysVal.doTau:
113 from TauDQA.TauDQAConfig import PhysValTauCfg
114 tools.append(acc.popToolsAndMerge(PhysValTauCfg(flags, tauContainer="TauJets")))
115 if flags.Tau.TauMuonRM_isAvailable:
116 tools.append(acc.popToolsAndMerge(PhysValTauCfg(flags, tauContainer="TauJets_MuonRM")))
117 if flags.Tau.TauEleRM_isAvailable:
118 tools.append(acc.popToolsAndMerge(PhysValTauCfg(flags, tauContainer="TauJets_EleRM")))
119 if flags.PhysVal.doDiTau:
120 from DiTauDQA.DiTauDQAConfig import PhysValDiTauCfg
121 tools.append(acc.popToolsAndMerge(PhysValDiTauCfg(flags)))
122 if flags.PhysVal.doJet:
123 from JetValidation.JetValidationConfig import PhysValJetCfg
124 tools.append(acc.popToolsAndMerge(PhysValJetCfg(flags)))
125 if flags.PhysVal.doTopoCluster:
126 from PFODQA.ClusterDQAConfig import PhysValClusterCfg
127 tools += acc.popToolsAndMerge(PhysValClusterCfg(flags))
128 if flags.PhysVal.doZee:
129 from ZeeValidation.ZeeValidationMonToolConfig import PhysValZeeCfg
130 tools.append(acc.popToolsAndMerge(PhysValZeeCfg(flags)))
131 if flags.PhysVal.doPFlow:
132 from PFODQA.PFPhysValConfig import PhysValPFOCfg
133 tools += acc.popToolsAndMerge(PhysValPFOCfg(flags))
134 if flags.PhysVal.doMuon:
135 from MuonPhysValMonitoring.MuonPhysValConfig import PhysValMuonCfg
136 tools.append(acc.popToolsAndMerge(PhysValMuonCfg(flags)))
137 if flags.PhysVal.doLRTMuon:
138 from MuonPhysValMonitoring.MuonPhysValConfig import PhysValLRTMuonCfg
139 tools.append(acc.popToolsAndMerge(PhysValLRTMuonCfg(flags)))
140 if flags.PhysVal.IDPVM.doActs:
141 from ActsConfig.ActsAnalysisConfig import PhysValActsCfg
142 tools.append(acc.popToolsAndMerge(PhysValActsCfg(flags)))
143 if flags.PhysVal.doLLPSecVtx:
144 from InDetSecVertexValidation.InDetSecVertexValidationConfig import PhysValSecVtxCfg
145 tools.append(acc.popToolsAndMerge(PhysValSecVtxCfg(flags)))
146
147 kwargs.setdefault("AthenaMonTools", tools)
148
149 # create the sequence, so that the main algorithm is not executed if the GRL or event cleaning fails
150 acc.addSequence(seqAND("PhysValSequence"))
151
152 if flags.PhysVal.applyAllDataCleaning or flags.PhysVal.applyGRL:
153 if (flags.Input.isMC):
154 raise ValueError("applyGRL (or applyAllDataCleaning) is not supported for MC data, please disable it.")
155 acc.merge(GoodRunListSelectionAlgCfg(flags, **kwargs),
156 sequenceName="PhysValSequence")
157 if flags.PhysVal.applyAllDataCleaning or flags.PhysVal.applyEventStatusSelection:
158 if (flags.Input.isMC):
159 raise ValueError("applyEventStatusSelection (or applyAllDataCleaning) is not supported for MC data, please disable it.")
160 acc.addEventAlgo(CompFactory.CP.EventStatusSelectionAlg("EventStatusSelectionAlg", FilterKey="EventErrorState",
161 FilterDescription="selecting events without any error state set"), sequenceName="PhysValSequence")
162
163 # add the main algorithm
164 acc.addEventAlgo(CompFactory.AthenaMonManager(
165 name, **kwargs), sequenceName="PhysValSequence")
166 acc.addService(CompFactory.THistSvc(
167 Output=[f"PhysVal DATAFILE='{flags.PhysVal.OutputFileName}' OPT='RECREATE'"]))
168
169 return acc

Variable Documentation

◆ logger

PhysValMonitoringConfig.logger = logging.getLogger("PhysValMonitoringConfig")

Definition at line 16 of file PhysValMonitoringConfig.py.