ATLAS Offline Software
Functions | Variables
RunTrigCostAnalysis Namespace Reference

Functions

def trigCostAnalysisCfg (flags, args)
 
def readMCpayload (args)
 
def readHashesFromHLTJO (joFileName="", smk=0, dbAlias="")
 
def decodingCfg (flags)
 
def hltConfigSvcCfg (flags, smk, dbAlias)
 
def readConfigFromCool (flags, smk, dbAlias)
 
def getHltMenu ()
 

Variables

 log
 
 flags
 
 parser
 
 type
 
 str
 
 default
 
 help
 
 action
 
 float
 
 bool
 
 False
 
 int
 
 args
 
 cfg
 
 histSvc
 
 dbAlias
 
 withDetails
 
 sc
 

Function Documentation

◆ decodingCfg()

def RunTrigCostAnalysis.decodingCfg (   flags)

Definition at line 114 of file RunTrigCostAnalysis.py.

114 def decodingCfg(flags):
115  from AthenaCommon.CFElements import seqAND
116  from TrigEDMConfig import DataScoutingInfo
117 
118  acc = ComponentAccumulator()
119 
120  acc.addSequence(seqAND("Decoding"))
121  acc.addEventAlgo(CompFactory.HLTResultMTByteStreamDecoderAlg(), "Decoding")
122 
123  costDataDeserialiser = CompFactory.TriggerEDMDeserialiserAlg("CostDataTrigDeserialiser")
124  costDataDeserialiser.ModuleID = DataScoutingInfo.getDataScoutingResultID("CostMonDS")
125  acc.addEventAlgo(costDataDeserialiser, "Decoding")
126 
127  return acc
128 
129 
130 # Configure HLTConfigSvc with JSON Menu file

◆ getHltMenu()

def RunTrigCostAnalysis.getHltMenu ( )

Definition at line 184 of file RunTrigCostAnalysis.py.

184 def getHltMenu():
185  # Try to find local menu file
186  menuFileName = 'HLTMenu_.*json'
187 
188  import re, os
189  r = re.compile(menuFileName)
190  menuFiles = list(filter(r.match, os.listdir('.')))
191 
192  if len(menuFiles) > 1:
193  log.info("Found more than one menu file! Saving first match %s", menuFiles[0])
194 
195  return menuFiles[0] if len(menuFiles) > 0 else ""
196 
197 

◆ hltConfigSvcCfg()

def RunTrigCostAnalysis.hltConfigSvcCfg (   flags,
  smk,
  dbAlias 
)

Definition at line 131 of file RunTrigCostAnalysis.py.

131 def hltConfigSvcCfg(flags, smk, dbAlias):
132  acc = ComponentAccumulator()
133 
134  hltConfigSvc = CompFactory.getComp("TrigConf::HLTConfigSvc")("HLTConfigSvc")
135 
136  menuFile = getHltMenu()
137  # If local file not found - read HLTMenu from database
138  if menuFile:
139  log.debug("Reading HLTMenu from file {0}".format(menuFile))
140 
141  hltConfigSvc.InputType = "FILE"
142  hltConfigSvc.HLTJsonFileName = menuFile
143  elif smk and dbAlias:
144  log.debug("Reading HLTMenu from database {0} {1}".format(smk, dbAlias))
145 
146  hltConfigSvc.InputType = "DB"
147  hltConfigSvc.HLTJsonFileName = ""
148  hltConfigSvc.TriggerDB = dbAlias
149  hltConfigSvc.SMK = smk
150  else:
151  log.error("Cannot read the HLTMenu! Provide file or relevant keys.")
152 
153  acc.addService(hltConfigSvc, False, True)
154 
155  return acc
156 
157 

◆ readConfigFromCool()

def RunTrigCostAnalysis.readConfigFromCool (   flags,
  smk,
  dbAlias 
)

Definition at line 158 of file RunTrigCostAnalysis.py.

158 def readConfigFromCool(flags, smk, dbAlias):
159  # Try to read keys from COOL (for P1 data)
160  from TrigConfStorage.TriggerCoolUtil import TriggerCoolUtil
161  dbconn = TriggerCoolUtil.GetConnection("CONDBR2")
162  runNumber = flags.Input.RunNumbers[0]
163  configKeys = TriggerCoolUtil.getHLTConfigKeys(dbconn, [[runNumber, runNumber]])
164 
165  log.debug("Getting keys from COOL for run {0}".format(runNumber))
166  if configKeys and runNumber in configKeys.keys():
167  if not smk:
168  smk = configKeys[runNumber]['SMK']
169 
170  if not dbAlias:
171  dbAlias = configKeys[runNumber]['DB']
172 
173  log.debug("Config keys are SMK: {0} DB alias: {1}".format(smk, dbAlias))
174 
175  else:
176  log.debug("Configuration keys for run {0} not found!".format(runNumber))
177  dbAlias = None if not dbAlias else dbAlias
178  smk = None if not smk else smk
179 
180  return (smk, dbAlias)
181 
182 
183 # Get HLT Menu from json file

◆ readHashesFromHLTJO()

def RunTrigCostAnalysis.readHashesFromHLTJO (   joFileName = "",
  smk = 0,
  dbAlias = "" 
)

Definition at line 79 of file RunTrigCostAnalysis.py.

79 def readHashesFromHLTJO(joFileName="", smk=0, dbAlias=""):
80  joData = {}
81  try:
82  if joFileName:
83  log.debug("Reading HLTJobOptions from file {0}".format(joFileName))
84  with open(joFileName, "r") as joFile:
85  import json
86  joData = json.load(joFile)
87  elif smk and dbAlias:
88  log.debug("Reading HLTJobOptions from database {0} {1}".format(smk, dbAlias))
89  from TrigConfIO.HLTTriggerConfigAccess import HLTJobOptionsAccess
90  joData = HLTJobOptionsAccess(dbalias = dbAlias, smkey = smk)
91  else:
92  log.debug("Additional collections' names from HLTJobOptions file are not available")
93  return list()
94  except Exception as err:
95  log.warning("Retrieving additional names fron HLTJO failed: {0}".format(err))
96  return list()
97 
98  namesList = set()
99  for entry in joData["properties"]:
100  namesList.add(entry.split('.')[0])
101 
102  # Read algorithm names with classes
103  entryObj = joData["properties"][entry]
104  if "Members" in entryObj:
105  membersList = entryObj["Members"].strip('][').replace("'", "").split(', ')
106  namesList.update(membersList)
107 
108 
109  log.info("Retrieved {0} additional names from HLT JO file".format(len(namesList)))
110  return list(namesList)
111 
112 
113 # Configure deserialisation

◆ readMCpayload()

def RunTrigCostAnalysis.readMCpayload (   args)

Definition at line 58 of file RunTrigCostAnalysis.py.

58 def readMCpayload(args):
59  payload = {}
60 
61  payload['MCCrossSection'] = args.MCCrossSection
62  payload['MCFilterEfficiency'] = args.MCFilterEfficiency
63  payload['MCKFactor'] = args.MCKFactor
64  payload['MCIgnoreGeneratorWeights'] = args.MCIgnoreGeneratorWeights
65 
66  dset = args.MCDatasetName
67  if payload['MCCrossSection'] == 0: # If the input file is MC then make sure we have the needed info
68  from RatesAnalysis.GetCrossSectionAMITool import GetCrossSectionAMI
69  amiTool = GetCrossSectionAMI()
70  if dset == '': # Can we get the dataset name from the input file path?
71  dset = amiTool.getDatasetNameFromPath(flags.Input.Files[0])
72  amiTool.queryAmi(dset)
73  payload['MCCrossSection'] = amiTool.crossSection
74  payload['MCFilterEfficiency'] = amiTool.filterEfficiency
75 
76  return payload
77 
78 # Read algorithm and class names from HLTJobOptions file

◆ trigCostAnalysisCfg()

def RunTrigCostAnalysis.trigCostAnalysisCfg (   flags,
  args 
)

Definition at line 13 of file RunTrigCostAnalysis.py.

13 def trigCostAnalysisCfg(flags, args):
14  from TrigCostAnalysis.ROSToROB import ROSToROBMap
15 
16  acc = ComponentAccumulator()
17 
18  if len(flags.Input.RunNumbers) > 1:
19  log.error('Multiple run numbers from metadata! Only one expected per cost processing')
20  return acc
21 
22  enhancedBiasWeighter = CompFactory.EnhancedBiasWeighter()
23  enhancedBiasWeighter.RunNumber = flags.Input.RunNumbers[0]
24  enhancedBiasWeighter.UseBunchCrossingData = False
25  enhancedBiasWeighter.IsMC = flags.Input.isMC
26  if flags.Input.isMC:
27  MCpayload = readMCpayload(args)
28  enhancedBiasWeighter.MCCrossSection = MCpayload.get('MCCrossSection')
29  enhancedBiasWeighter.MCFilterEfficiency = MCpayload.get('MCFilterEfficiency')
30  enhancedBiasWeighter.MCKFactor = MCpayload.get('MCKFactor')
31  enhancedBiasWeighter.MCIgnoreGeneratorWeights = MCpayload.get('MCIgnoreGeneratorWeights')
32 
33  trigCostAnalysis = CompFactory.TrigCostAnalysis()
34  trigCostAnalysis.OutputLevel = flags.Exec.OutputLevel
35  trigCostAnalysis.BaseEventWeight = args.baseWeight
36  trigCostAnalysis.EnhancedBiasTool = enhancedBiasWeighter
37  trigCostAnalysis.AlgToChainTool = CompFactory.getComp("TrigCompositeUtils::AlgToChainTool")()
38  trigCostAnalysis.UseEBWeights = args.useEBWeights
39  trigCostAnalysis.MaxFullEventDumps = 100
40  trigCostAnalysis.FullEventDumpProbability = 1 # X. Where probability is 1 in X
41  trigCostAnalysis.UseSingleTimeRange = flags.Input.isMC or args.useEBWeights
42  trigCostAnalysis.ROSToROBMap = ROSToROBMap().get_mapping()
43  trigCostAnalysis.DoMonitorChainAlgorithm = args.monitorChainAlgorithm
44  if args.excludeAlgsFromChainTime:
45  trigCostAnalysis.ExcludeAlgsFromChainTime = args.excludeAlgsFromChainTime.split(',')
46 
47  if not flags.Input.isMC:
48  trigCostAnalysis.AdditionalHashList = readHashesFromHLTJO(args.joFile, args.smk, args.dbAlias)
49  else:
50  log.debug("Hashes from the HLTJO won't be retrieved for MC job")
51  trigCostAnalysis.AdditionalHashList = list()
52 
53  acc.addEventAlgo(trigCostAnalysis)
54 
55  return acc
56 
57 # Prepare dictionary with MC parameters read from arguments, or from AMI

Variable Documentation

◆ action

RunTrigCostAnalysis.action

Definition at line 206 of file RunTrigCostAnalysis.py.

◆ args

RunTrigCostAnalysis.args

Definition at line 222 of file RunTrigCostAnalysis.py.

◆ bool

RunTrigCostAnalysis.bool

Definition at line 208 of file RunTrigCostAnalysis.py.

◆ cfg

RunTrigCostAnalysis.cfg

Definition at line 227 of file RunTrigCostAnalysis.py.

◆ dbAlias

RunTrigCostAnalysis.dbAlias

Definition at line 243 of file RunTrigCostAnalysis.py.

◆ default

RunTrigCostAnalysis.default

Definition at line 205 of file RunTrigCostAnalysis.py.

◆ False

RunTrigCostAnalysis.False

Definition at line 208 of file RunTrigCostAnalysis.py.

◆ flags

RunTrigCostAnalysis.flags

Definition at line 201 of file RunTrigCostAnalysis.py.

◆ float

RunTrigCostAnalysis.float

Definition at line 207 of file RunTrigCostAnalysis.py.

◆ help

RunTrigCostAnalysis.help

Definition at line 205 of file RunTrigCostAnalysis.py.

◆ histSvc

RunTrigCostAnalysis.histSvc

Definition at line 237 of file RunTrigCostAnalysis.py.

◆ int

RunTrigCostAnalysis.int

Definition at line 211 of file RunTrigCostAnalysis.py.

◆ log

RunTrigCostAnalysis.log

Definition at line 9 of file RunTrigCostAnalysis.py.

◆ parser

RunTrigCostAnalysis.parser

Definition at line 204 of file RunTrigCostAnalysis.py.

◆ sc

RunTrigCostAnalysis.sc

Definition at line 251 of file RunTrigCostAnalysis.py.

◆ str

RunTrigCostAnalysis.str

Definition at line 205 of file RunTrigCostAnalysis.py.

◆ type

RunTrigCostAnalysis.type

Definition at line 205 of file RunTrigCostAnalysis.py.

◆ withDetails

RunTrigCostAnalysis.withDetails

Definition at line 250 of file RunTrigCostAnalysis.py.

RunTrigCostAnalysis.decodingCfg
def decodingCfg(flags)
Definition: RunTrigCostAnalysis.py:114
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:310
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
vtune_athena.format
format
Definition: vtune_athena.py:14
RunTrigCostAnalysis.getHltMenu
def getHltMenu()
Definition: RunTrigCostAnalysis.py:184
RunTrigCostAnalysis.hltConfigSvcCfg
def hltConfigSvcCfg(flags, smk, dbAlias)
Definition: RunTrigCostAnalysis.py:131
covarianceTool.filter
filter
Definition: covarianceTool.py:514
RunTrigCostAnalysis.trigCostAnalysisCfg
def trigCostAnalysisCfg(flags, args)
Definition: RunTrigCostAnalysis.py:13
ROS_HLT_TableConstructor.ROSToROBMap
ROSToROBMap
Definition: ROS_HLT_TableConstructor.py:7
RunTrigCostAnalysis.readMCpayload
def readMCpayload(args)
Definition: RunTrigCostAnalysis.py:58
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
Trk::open
@ open
Definition: BinningType.h:40
python.CFElements.seqAND
def seqAND(name, subs=[], invert=False)
Definition: CFElements.py:27
RunTrigCostAnalysis.readHashesFromHLTJO
def readHashesFromHLTJO(joFileName="", smk=0, dbAlias="")
Definition: RunTrigCostAnalysis.py:79
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
RunTrigCostAnalysis.readConfigFromCool
def readConfigFromCool(flags, smk, dbAlias)
Definition: RunTrigCostAnalysis.py:158