9def IsolationSteeringDerivCfg(flags, name = 'IsolationSteeringDeriv', inType = 'EMPFlow'):
10
11 mlog = logging.getLogger(name)
12 mlog.info('Starting Isolation steering')
13
14 acc = ComponentAccumulator()
15
16 suff = 'CSSK' if inType.find('CSSK') >= 0 else ''
17 from IsolationAlgs.IsoDensityConfig import NFlowInputAlgCfg
18 acc.merge(NFlowInputAlgCfg(flags,InputType = inType))
19
20 if not flags.HeavyIon.Egamma.doSubtractedClusters:
21 from IsolationAlgs.IsoDensityConfig import DensityForIsoAlgCfg
22 acc.merge(DensityForIsoAlgCfg(flags,name='CentralDensityFor'+suff+'NFlowIso'))
23 acc.merge(DensityForIsoAlgCfg(flags,name='ForwardDensityFor'+suff+'NFlowIso'))
24
25
26 kwargs = dict()
27 margs = dict()
28 margs['FlowElementsInConeTool'] = CompFactory.xAOD.FlowElementsInConeTool(
29 name=suff+'FlowElementsInConeTool')
30 if len(suff) > 0:
31 kwargs['CustomConfigurationNameEl'] = suff
32 kwargs['CustomConfigurationNamePh'] = suff
33 margs['EFlowEDCentralContainer'] = 'NeutralParticle'+suff+'FlowIsoCentralEventShape'
34 margs['EFlowEDForwardContainer'] = 'NeutralParticle'+suff+'FlowIsoForwardEventShape'
35 margs['FlowElementsInConeTool'].PFlowKey=suff+'NeutralParticleFlowObjects'
36 from IsolationAlgs.IsoToolsConfig import EGammaCaloIsolationToolCfg
37 kwargs['PFlowIsolationTool'] = acc.popToolsAndMerge(EGammaCaloIsolationToolCfg(flags,**margs))
38
39
40 from xAODPrimitives.xAODIso import xAODIso as isoPar
41 isoType = [ [ isoPar.neflowisol20, isoPar.neflowisol30, isoPar.neflowisol40 ] ]
42 isoCor = [ [ isoPar.coreCone ] ]
43 if not flags.HeavyIon.Egamma.doSubtractedClusters:
44 isoCor[0].append(isoPar.pileupCorrection)
45 isoExCor = [ [ isoPar.coreConeSC ] ]
46 kwargs['ElIsoTypes'] = isoType
47 kwargs['ElCorTypes'] = isoCor
48 kwargs['ElCorTypesExtra'] = isoExCor
49 kwargs['PhIsoTypes'] = isoType
50 kwargs['PhCorTypes'] = isoCor
51 kwargs['PhCorTypesExtra'] = isoExCor
52
53 kwargs['name'] = suff+'PFlowIsolationBuilder'
54
55 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))
56
57 mlog.info("PFlow isolation configured")
58
59 return acc
60