33def precisionCaloRecoSequence(flags, RoIs, name = None, ion=False, variant=''):
34 acc = ComponentAccumulator()
35
36 TrigEgammaKeys = getTrigEgammaKeys(flags, variant, ion = ion)
37
38 log.debug('flags = %s',flags)
39 log.debug('RoIs = %s',RoIs)
40
41 acc.merge(precisionCaloElectronVDVCfg(flags, name+'VDV'+variant,RoIs,ion,variant=variant))
42
43 from TrigCaloRec.TrigCaloRecConfig import egammaTopoClusteringCfg, egammaTopoClusteringCfg_LRT, hltCaloTopoClusteringHICfg
44
45 if ion:
46 topoCluster = hltCaloTopoClusteringHICfg(flags,
47 CellsName = "CaloCells",
48 roisKey=RoIs)
49 else:
50 if variant:
51 topoCluster = egammaTopoClusteringCfg_LRT(flags, RoIs)
52
53 else:
54 topoCluster = egammaTopoClusteringCfg(flags, RoIs)
55
56 acc.merge(topoCluster)
57 tag = 'HI' if ion is True else ''
58
59 copier = CompFactory.egammaTopoClusterCopier('eTrigEgammaTopoClusterCopier'+ tag + RoIs,
60 InputTopoCollection=TrigEgammaKeys.precisionTopoClusterContainer,
61 OutputTopoCollection= TrigEgammaKeys.precisionCaloTopoCollection)
62 acc.addEventAlgo(copier)
63
64 trigEgammaRec = TrigEgammaRecCfg(flags, name = 'eTrigEgammaRec'+tag + RoIs +variant)
65
66 acc.merge(trigEgammaRec)
67
68 trigEgammaSuperClusterBuilder = TrigEgammaSuperClusterBuilderCfg(flags,
69 'eTrigEgammaSuperClusterBuilder' + tag + RoIs,
70 'electron',
71 TrigEgammaKeys.precisionElectronCaloClusterContainer,
72 TrigEgammaKeys.precisionEgammaSuperClusterRecCollection)
73 acc.merge(trigEgammaSuperClusterBuilder)
74
75 return acc
76