ATLAS Offline Software
Loading...
Searching...
No Matches
IsolationBuilderConfig Namespace Reference

Functions

 egIsolationCfg (flags, name='egIsolation', noCalo=False, **kwargs)
 muIsolationCfg (flags, name='muIsolation', noCalo=False, **kwargs)

Variables

 flags = initConfigFlags()
 Files
 doWriteESD
 doWriteAOD
 mlog = logging.getLogger("isolationConfigTest")
 acc = MainServicesCfg(flags)
 nestLevel
 printDefaults

Detailed Description

Instantiate the electron or photon isolation 

Function Documentation

◆ egIsolationCfg()

IsolationBuilderConfig.egIsolationCfg ( flags,
name = 'egIsolation',
noCalo = False,
** kwargs )

Definition at line 9 of file IsolationBuilderConfig.py.

9def egIsolationCfg(flags, name='egIsolation', noCalo=False, **kwargs):
10
11 mlog = logging.getLogger(name)
12 mlog.info('Starting '+name+' configuration')
13
14 acc = ComponentAccumulator()
15
16 suff = ''
17 if name.find('photon') >= 0:
18 suff = 'photon'
19 pref = 'Ph'
20 elif name.find('electron') >= 0:
21 suff = 'electron'
22 pref = 'El'
23 else:
24 mlog.error('Name '+name+' should contain electron or photon')
25 return acc
26
27 from xAODPrimitives.xAODIso import xAODIso as isoPar
28 from IsolationAlgs.IsoToolsConfig import (
29 TrackIsolationToolCfg, ElectronTrackIsolationToolCfg,
30 EGammaCaloIsolationToolCfg)
31
32 isoType = []
33 isoCor = []
34 isoExCor = []
35
36 if flags.Detector.EnableID or flags.Detector.EnableITk:
37 isoType.append([ isoPar.ptcone30, isoPar.ptcone20 ])
38 isoCor.append([ isoPar.coreTrackPtr ])
39 isoExCor.append([])
40 if 'TrackIsolationTool' not in kwargs:
41 if pref == 'Ph':
42 kwargs['TrackIsolationTool'] = acc.popToolsAndMerge(
43 TrackIsolationToolCfg(flags))
44 else:
45 kwargs['TrackIsolationTool'] = acc.popToolsAndMerge(
46 ElectronTrackIsolationToolCfg(flags))
47
48 if flags.Detector.EnableCalo and not noCalo:
49 isoType.append(
50 [ isoPar.topoetcone20, isoPar.topoetcone30, isoPar.topoetcone40 ])
51 isoCor.append(
52 [ isoPar.core57cells, isoPar.ptCorrection, isoPar.pileupCorrection ])
53 # do not do pileup correction if HI with subtracted clusters
54 if flags.HeavyIon.Egamma.doSubtractedClusters:
55 isoCor[-1] = [ x for x in isoCor[-1] if x != isoPar.pileupCorrection ]
56 isoExCor.append([])
57 if 'CaloTopoIsolationTool' not in kwargs:
58 kwargs['CaloTopoIsolationTool'] = acc.popToolsAndMerge(
59 EGammaCaloIsolationToolCfg(flags))
60
61 kwargs[f'{pref}IsoTypes'] = isoType
62 kwargs[f'{pref}CorTypes'] = isoCor
63 kwargs[f'{pref}CorTypesExtra'] = isoExCor
64
65 kwargs['name'] = suff+'IsolationBuilder'
66
67 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))
68
69 mlog.info(suff+" isolation configured")
70
71 return acc
72

◆ muIsolationCfg()

IsolationBuilderConfig.muIsolationCfg ( flags,
name = 'muIsolation',
noCalo = False,
** kwargs )

Definition at line 73 of file IsolationBuilderConfig.py.

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 # do not do pileup correction if HI with subtracted clusters
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 # do not do pileup correction for HI reco...
114 # and pflow iso is more than experimental in such reco anyway
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

Variable Documentation

◆ acc

IsolationBuilderConfig.acc = MainServicesCfg(flags)

Definition at line 146 of file IsolationBuilderConfig.py.

◆ doWriteAOD

IsolationBuilderConfig.doWriteAOD

Definition at line 140 of file IsolationBuilderConfig.py.

◆ doWriteESD

IsolationBuilderConfig.doWriteESD

Definition at line 139 of file IsolationBuilderConfig.py.

◆ Files

IsolationBuilderConfig.Files

Definition at line 138 of file IsolationBuilderConfig.py.

◆ flags

IsolationBuilderConfig.flags = initConfigFlags()

Definition at line 137 of file IsolationBuilderConfig.py.

◆ mlog

IsolationBuilderConfig.mlog = logging.getLogger("isolationConfigTest")

Definition at line 143 of file IsolationBuilderConfig.py.

◆ nestLevel

IsolationBuilderConfig.nestLevel

Definition at line 152 of file IsolationBuilderConfig.py.

◆ printDefaults

IsolationBuilderConfig.printDefaults

Definition at line 153 of file IsolationBuilderConfig.py.