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