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()

RunTrigCostAnalysis.decodingCfg ( flags)

Definition at line 114 of file RunTrigCostAnalysis.py.

114def 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()

RunTrigCostAnalysis.getHltMenu ( )

Definition at line 184 of file RunTrigCostAnalysis.py.

184def 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()

RunTrigCostAnalysis.hltConfigSvcCfg ( flags,
smk,
dbAlias )

Definition at line 131 of file RunTrigCostAnalysis.py.

131def 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()

RunTrigCostAnalysis.readConfigFromCool ( flags,
smk,
dbAlias )

Definition at line 158 of file RunTrigCostAnalysis.py.

158def 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()

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

Definition at line 79 of file RunTrigCostAnalysis.py.

79def 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
STL class.
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition hcg.cxx:310
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ readMCpayload()

RunTrigCostAnalysis.readMCpayload ( args)

Definition at line 58 of file RunTrigCostAnalysis.py.

58def 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()

RunTrigCostAnalysis.trigCostAnalysisCfg ( flags,
args )

Definition at line 13 of file RunTrigCostAnalysis.py.

13def 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 = flags.fillFromArgs(parser=parser)

Definition at line 222 of file RunTrigCostAnalysis.py.

◆ bool

RunTrigCostAnalysis.bool

Definition at line 208 of file RunTrigCostAnalysis.py.

◆ cfg

RunTrigCostAnalysis.cfg = MainServicesCfg(flags)

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 = initConfigFlags()

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 = CompFactory.THistSvc()

Definition at line 237 of file RunTrigCostAnalysis.py.

◆ int

RunTrigCostAnalysis.int

Definition at line 211 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 204 of file RunTrigCostAnalysis.py.

◆ sc

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

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.