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