11 includeFwdElectrons =
"ForwardElectrons" in flags.Input.Collections
12 mlog = logging.getLogger(name)
13 mlog.info(
'Starting Isolation steering')
15 acc = ComponentAccumulator()
17 suff =
'CSSK' if inType.find(
'CSSK') >= 0
else ''
18 from IsolationAlgs.IsoDensityConfig
import NFlowInputAlgCfg
19 acc.merge(NFlowInputAlgCfg(flags,InputType = inType))
21 if not flags.HeavyIon.Egamma.doSubtractedClusters:
22 from IsolationAlgs.IsoDensityConfig
import DensityForIsoAlgCfg
23 acc.merge(DensityForIsoAlgCfg(flags,name=
'CentralDensityFor'+suff+
'NFlowIso'))
24 acc.merge(DensityForIsoAlgCfg(flags,name=
'ForwardDensityFor'+suff+
'NFlowIso'))
29 margs[
'FlowElementsInConeTool'] = CompFactory.xAOD.FlowElementsInConeTool(
30 name=suff+
'FlowElementsInConeTool')
32 kwargs[
'CustomConfigurationNameEl'] = suff
33 kwargs[
'CustomConfigurationNamePh'] = suff
34 margs[
'EFlowEDCentralContainer'] =
'NeutralParticle'+suff+
'FlowIsoCentralEventShape'
35 margs[
'EFlowEDForwardContainer'] =
'NeutralParticle'+suff+
'FlowIsoForwardEventShape'
36 margs[
'FlowElementsInConeTool'].PFlowKey=suff+
'NeutralParticleFlowObjects'
37 from IsolationAlgs.IsoToolsConfig
import EGammaCaloIsolationToolCfg
38 kwargs[
'PFlowIsolationTool'] = acc.popToolsAndMerge(EGammaCaloIsolationToolCfg(flags,**margs))
41 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
42 isoType = [ [ isoPar.neflowisol20, isoPar.neflowisol30, isoPar.neflowisol40 ] ]
43 isoCor = [ [ isoPar.coreCone ] ]
44 if not flags.HeavyIon.Egamma.doSubtractedClusters:
45 isoCor[0].append(isoPar.pileupCorrection)
46 isoExCor = [ [ isoPar.coreConeSC ] ]
47 kwargs[
'ElIsoTypes'] = isoType
48 kwargs[
'ElCorTypes'] = isoCor
49 kwargs[
'ElCorTypesExtra'] = isoExCor
50 kwargs[
'PhIsoTypes'] = isoType
51 kwargs[
'PhCorTypes'] = isoCor
52 kwargs[
'PhCorTypesExtra'] = isoExCor
53 if includeFwdElectrons:
54 kwargs[
'FwdElIsoTypes'] = isoType
55 kwargs[
'FwdElCorTypes'] = isoCor
56 kwargs[
'FwdElCorTypesExtra'] = isoExCor
58 kwargs[
'name'] = suff+
'PFlowIsolationBuilder'
60 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))
62 mlog.info(
"PFlow isolation configured")
69 mlog = logging.getLogger(name)
70 mlog.info(
'Starting Forward electron Isolation steering')
71 acc = ComponentAccumulator()
73 suff =
'forwardElectron'
75 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
76 from IsolationAlgs.IsoToolsConfig
import EGammaCaloIsolationToolCfg
80 if not flags.HeavyIon.Egamma.doSubtractedClusters:
81 isoType.append([isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40])
82 isoCor.append([isoPar.coreCone, isoPar.pileupCorrection])
84 kwargs[
'CaloTopoIsolationTool'] = acc.popToolsAndMerge(EGammaCaloIsolationToolCfg(flags))
87 if flags.Detector.EnableITk :
88 from IsolationAlgs.IsoToolsConfig
import ElectronTrackIsolationToolCfg
89 isoType.append([ isoPar.ptcone30, isoPar.ptcone20 ])
90 isoCor.append([ isoPar.coreTrackPtr ])
92 if flags.Reco.EnableHGTDExtension:
94 extraInputs += [(
"xAOD::TrackParticleContainer",
"StoreGateSvc+GSFTrackParticles.time")]
95 kwargs.setdefault(
"ExtraInputs", extraInputs)
96 kwargs[
'TrackIsolationTool'] = acc.popToolsAndMerge(ElectronTrackIsolationToolCfg(flags,DoForwardIsoTiming=
True))
98 kwargs[
'TrackIsolationTool'] = acc.popToolsAndMerge(ElectronTrackIsolationToolCfg(flags))
100 kwargs[
'FwdElIsoTypes'] = isoType
101 kwargs[
'FwdElCorTypes'] = isoCor
102 kwargs[
'FwdElCorTypesExtra'] = isoExCor
105 kwargs[
'name'] = suff+
'IsolationBuilder'
107 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))
109 mlog.info(suff+
" isolation configured")
115 mlog = logging.getLogger(name)
116 mlog.info(
'Starting LRT electron calo Isolation steering')
118 acc = ComponentAccumulator()
121 from IsolationAlgs.IsoDensityConfig
import (
122 NFlowInputAlgCfg, DensityForIsoAlgCfg)
123 acc.merge(NFlowInputAlgCfg(flags,InputType =
"EMPFlow"))
124 acc.merge(DensityForIsoAlgCfg(flags,name=
'CentralDensityForNFlowIso'))
125 acc.merge(DensityForIsoAlgCfg(flags,name=
'ForwardDensityForNFlowIso'))
129 the_pflowElementsTool = CompFactory.xAOD.FlowElementsInConeTool(
130 name=
'FlowElementsInConeTool')
132 from IsolationAlgs.IsoToolsConfig
import EGammaCaloIsolationToolCfg
133 cisoTool = acc.popToolsAndMerge(EGammaCaloIsolationToolCfg(flags,
134 FlowElementsInConeTool = the_pflowElementsTool))
137 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
138 isoType = [ [ isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40 ],
139 [ isoPar.neflowisol20, isoPar.neflowisol30, isoPar.neflowisol40 ] ]
140 isoCor = [ [ isoPar.core57cells, isoPar.ptCorrection, isoPar.pileupCorrection ],
141 [ isoPar.coreCone, isoPar.pileupCorrection ] ]
142 isoExCor = [ [ ], [ isoPar.coreConeSC ] ]
144 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs,
145 name =
'LRTElectronCaloIsolationBuilder',
146 ElectronCollectionContainerName =
'LRT'+flags.Egamma.Keys.Output.Electrons,
147 ElIsoTypes = isoType,
149 ElCorTypesExtra = isoExCor,
150 CaloTopoIsolationTool = cisoTool,
151 PFlowIsolationTool = cisoTool))
153 mlog.info(
"LRTElectron calo isolation configured")
159 mlog = logging.getLogger(name)
160 mlog.info(
'Starting LRT muon calo Isolation steering')
162 acc = ComponentAccumulator()
165 from IsolationAlgs.IsoDensityConfig
import (
166 NFlowInputAlgCfg, DensityForIsoAlgCfg)
167 acc.merge(NFlowInputAlgCfg(flags,InputType =
"EMPFlow"))
168 acc.merge(DensityForIsoAlgCfg(flags,name=
'CentralDensityForNFlowIso'))
169 acc.merge(DensityForIsoAlgCfg(flags,name=
'ForwardDensityForNFlowIso'))
172 the_pflowElementsTool = CompFactory.xAOD.FlowElementsInConeTool(
173 name=
'FlowElementsInConeTool')
175 from IsolationAlgs.IsoToolsConfig
import MuonCaloIsolationToolCfg
176 cisoTool = acc.popToolsAndMerge(MuonCaloIsolationToolCfg(flags,
177 FlowElementsInConeTool = the_pflowElementsTool ))
179 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
180 misoType = [ [ isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40 ],
181 [ isoPar.neflowisol20, isoPar.neflowisol30, isoPar.neflowisol40 ] ]
182 misoCor = [ [ isoPar.coreCone, isoPar.pileupCorrection ],
183 [ isoPar.coreCone, isoPar.pileupCorrection ] ]
184 misoExCor = [ [ ], [ ] ]
186 acc.addEventAlgo(CompFactory.IsolationBuilder(name=
"LRTMuonCaloIsolationBuilder",
187 MuonCollectionContainerName =
"MuonsLRT",
188 MuCorTypesExtra = misoExCor,
189 MuCorTypes = misoCor,
190 CaloTopoIsolationTool = cisoTool,
191 PFlowIsolationTool = cisoTool,
192 MuIsoTypes = misoType ))
194 mlog.info(
"MuonLRT calo isolation configured")