8def IsolationSteeringCfg(flags, name = 'IsolationSteering'):
9
10 mlog = logging.getLogger(name)
11 mlog.info('Starting Isolation steering')
12
13 acc = ComponentAccumulator()
14
15 from IsolationAlgs.IsoDensityConfig import (
16 EMTopoInputAlgCfg, NFlowInputAlgCfg, DensityForIsoAlgCfg)
17 if flags.Reco.EnableEgamma or flags.Reco.EnableCombinedMuon:
18 if flags.Detector.EnableCalo:
19
20
21 if not flags.HeavyIon.Egamma.doSubtractedClusters:
22 acc.merge(EMTopoInputAlgCfg(flags))
23 acc.merge(DensityForIsoAlgCfg(flags))
24 acc.merge(DensityForIsoAlgCfg(flags,name='ForwardDensityForTopoIso'))
25
26 if flags.Reco.EnablePFlow:
27 acc.merge(NFlowInputAlgCfg(flags))
28 acc.merge(DensityForIsoAlgCfg(flags,name='CentralDensityForNFlowIso'))
29 acc.merge(DensityForIsoAlgCfg(flags,name='ForwardDensityForNFlowIso'))
30
31 from IsolationAlgs.IsolationBuilderConfig import egIsolationCfg, muIsolationCfg
32 if flags.Reco.EnableEgamma:
33 acc.merge(egIsolationCfg(flags,name = 'photonIsolation'))
34 acc.merge(egIsolationCfg(flags,name = 'electronIsolation'))
35 if flags.Reco.EnableCombinedMuon:
36 acc.merge(muIsolationCfg(flags,name = 'muonIsolation'))
37
38
39 if flags.Output.doWriteESD or flags.Output.doWriteAOD:
40 from IsolationAlgs.IsoOutputConfig import IsoOutputCfg
41 acc.merge(IsoOutputCfg(flags))
42
43 return acc
44