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

Functions

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

Variables

 log = logging.getLogger('RunTrigCostAnalysis.py')
 flags = initConfigFlags()
 parser = flags.getArgumentParser()
 type
 str
 default
 help
 action
 float
 bool
 False
 int
 args = flags.fillFromArgs(parser=parser)
 cfg = MainServicesCfg(flags)
 histSvc = CompFactory.THistSvc()
 dbAlias
 withDetails
 sc = cfg.run(flags.Exec.MaxEvents)

Function Documentation

◆ decodingCfg()

decodingCfg ( flags)

Definition at line 112 of file RunTrigCostAnalysis.py.

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

◆ getHltMenu()

getHltMenu ( )

Definition at line 182 of file RunTrigCostAnalysis.py.

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

◆ hltConfigSvcCfg()

hltConfigSvcCfg ( flags,
smk,
dbAlias )

Definition at line 129 of file RunTrigCostAnalysis.py.

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

◆ readConfigFromCool()

readConfigFromCool ( flags,
smk,
dbAlias )

Definition at line 156 of file RunTrigCostAnalysis.py.

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

◆ readHashesFromHLTJO()

readHashesFromHLTJO ( joFileName = "",
smk = 0,
dbAlias = "" )

Definition at line 77 of file RunTrigCostAnalysis.py.

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

◆ readMCpayload()

readMCpayload ( args)

Definition at line 56 of file RunTrigCostAnalysis.py.

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

◆ trigCostAnalysisCfg()

trigCostAnalysisCfg ( flags,
args )

Definition at line 13 of file RunTrigCostAnalysis.py.

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

Variable Documentation

◆ action

RunTrigCostAnalysis.action

Definition at line 204 of file RunTrigCostAnalysis.py.

◆ args

RunTrigCostAnalysis.args = flags.fillFromArgs(parser=parser)

Definition at line 220 of file RunTrigCostAnalysis.py.

◆ bool

RunTrigCostAnalysis.bool

Definition at line 206 of file RunTrigCostAnalysis.py.

◆ cfg

RunTrigCostAnalysis.cfg = MainServicesCfg(flags)

Definition at line 225 of file RunTrigCostAnalysis.py.

◆ dbAlias

RunTrigCostAnalysis.dbAlias

Definition at line 241 of file RunTrigCostAnalysis.py.

◆ default

RunTrigCostAnalysis.default

Definition at line 203 of file RunTrigCostAnalysis.py.

◆ False

RunTrigCostAnalysis.False

Definition at line 206 of file RunTrigCostAnalysis.py.

◆ flags

RunTrigCostAnalysis.flags = initConfigFlags()

Definition at line 199 of file RunTrigCostAnalysis.py.

◆ float

RunTrigCostAnalysis.float

Definition at line 205 of file RunTrigCostAnalysis.py.

◆ help

RunTrigCostAnalysis.help

Definition at line 203 of file RunTrigCostAnalysis.py.

◆ histSvc

RunTrigCostAnalysis.histSvc = CompFactory.THistSvc()

Definition at line 235 of file RunTrigCostAnalysis.py.

◆ int

RunTrigCostAnalysis.int

Definition at line 209 of file RunTrigCostAnalysis.py.

◆ log

RunTrigCostAnalysis.log = logging.getLogger('RunTrigCostAnalysis.py')

Definition at line 9 of file RunTrigCostAnalysis.py.

◆ parser

RunTrigCostAnalysis.parser = flags.getArgumentParser()

Definition at line 202 of file RunTrigCostAnalysis.py.

◆ sc

RunTrigCostAnalysis.sc = cfg.run(flags.Exec.MaxEvents)

Definition at line 249 of file RunTrigCostAnalysis.py.

◆ str

RunTrigCostAnalysis.str

Definition at line 203 of file RunTrigCostAnalysis.py.

◆ type

RunTrigCostAnalysis.type

Definition at line 203 of file RunTrigCostAnalysis.py.

◆ withDetails

RunTrigCostAnalysis.withDetails

Definition at line 248 of file RunTrigCostAnalysis.py.