73def muIsolationCfg(flags, name='muIsolation', noCalo=False, **kwargs):
74
75 mlog = logging.getLogger(name)
76 mlog.info('Starting '+name+' configuration')
77
78 acc = ComponentAccumulator()
79
80 from xAODPrimitives.xAODIso import xAODIso as isoPar
81 from IsolationAlgs.IsoToolsConfig import (
82 TrackIsolationToolCfg, MuonCaloIsolationToolCfg)
83
84 isoType = []
85 isoCor = []
86 isoExCor = []
87
88 if flags.Detector.EnableID or flags.Detector.EnableITk:
89 isoType.append([ isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20 ])
90 isoCor.append([ isoPar.coreTrackPtr ])
91 isoExCor.append([])
92 if 'TrackIsolationTool' not in kwargs:
93 kwargs['TrackIsolationTool'] = acc.popToolsAndMerge(
94 TrackIsolationToolCfg(flags))
95
96 if flags.Detector.EnableCalo and not noCalo:
97 isoType.append(
98 [ isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40 ])
99 isoCor.append([ isoPar.coreCone, isoPar.pileupCorrection ])
100
101 if flags.HeavyIon.Egamma.doSubtractedClusters:
102 isoCor[-1] = [ x for x in isoCor[-1] if x != isoPar.pileupCorrection ]
103 isoExCor.append([])
104 if ('CaloTopoIsolationTool' not in kwargs) or (
105 'PFlowIsolationTool' not in kwargs):
106 cisoTool = acc.popToolsAndMerge(MuonCaloIsolationToolCfg(flags))
107 if 'CaloTopoIsolationTool' not in kwargs:
108 kwargs['CaloTopoIsolationTool'] = cisoTool
109 if flags.Reco.EnablePFlow and 'PFlowIsolationTool' not in kwargs:
110 isoType.append(
111 [ isoPar.neflowisol20, isoPar.neflowisol30, isoPar.neflowisol40 ])
112 isoCor.append([ isoPar.coreCone, isoPar.pileupCorrection ])
113
114
115 if flags.HeavyIon.Egamma.doSubtractedClusters:
116 isoCor[-1] = [ x for x in isoCor[-1] if x != isoPar.pileupCorrection ]
117 isoExCor.append([])
118 kwargs['PFlowIsolationTool'] = cisoTool
119
120 kwargs['MuIsoTypes'] = isoType
121 kwargs['MuCorTypes'] = isoCor
122 kwargs['MuCorTypesExtra'] = isoExCor
123 kwargs['name'] = 'muonIsolationBuilder'
124
125 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))
126
127 mlog.info("muon isolation configured")
128
129 return acc
130
131