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