12 mlog = logging.getLogger(
'DerivationTrackIsoConfig')
13 mlog.info(
'Starting track isolation for derivation')
17 from xAODPrimitives.xAODIso
import xAODIso
as isoPar
19 ptcone_list = [ [ isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20 ] ]
20 trkcor_list = [ [ isoPar.coreTrackPtr ] ]
22 if 'object_types' not in jwarg:
23 object_types = (
"Electrons",
"Photons",
"Muons")
25 object_types = jwarg[
'object_types']
28 WP =
'Nonprompt_All_MaxWeight'
33 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig
import isoTTVAToolCfg
34 ttvaCA = acc.popToolsAndMerge(
38 if 'postfix' in jwarg:
39 postfix = jwarg[
'postfix']
41 if 'ptCuts' not in jwarg:
44 ptCuts = jwarg[
'ptCuts']
46 do_egamma = any(x
in object_types
for x
in (
"Electrons",
"Photons"))
48 mlog.info(
'will isolate objects '+
" ".
join(object_types)+
' with TTVA WP = '+WP)
50 for track_pt
in ptCuts:
51 for loose_cone
in (
True,
False):
52 if loose_cone
and not do_egamma:
56 cone_str =
"LooseCone" if loose_cone
else ""
59 name = f
"{WP}TTVA{cone_str}_pt{track_pt}"
63 if "Electrons" in object_types:
64 kwargs[
"ElIsoTypes"] = ptcone_list
65 kwargs[
"ElCorTypes"] = trkcor_list
66 kwargs[
"ElCorTypesExtra"] = [[]]
67 kwargs[
"CustomConfigurationNameEl"] = name
68 if "Electrons" in object_types
and "LRT" in postfix:
69 kwargs[
"ElectronCollectionContainerName"] =
"LRTElectrons"
70 if "Photons" in object_types:
71 kwargs[
"PhIsoTypes"] = ptcone_list
72 kwargs[
"PhCorTypes"] = trkcor_list
73 kwargs[
"PhCorTypesExtra"] = [[]]
74 kwargs[
"CustomConfigurationNamePh"] = name
75 if "Muons" in object_types
and not loose_cone:
76 kwargs[
"MuIsoTypes"] = ptcone_list
77 kwargs[
"MuCorTypes"] = trkcor_list
78 kwargs[
"MuCorTypesExtra"] = [[]]
79 kwargs[
"CustomConfigurationNameMu"] = name
80 if "Muons" in object_types
and not loose_cone
and "LRT" in postfix:
81 kwargs[
"MuonCollectionContainerName"] =
"MuonsLRT"
87 toolkwargs[
'TTVATool'] = ttvaCA
90 from InDetConfig.InDetTrackSelectionToolConfig
import (
91 isoTrackSelectionToolCfg )
92 toolkwargs[
'TrackSelectionTool'] = acc.popToolsAndMerge(
96 toolkwargs[
'CoreTrackEtaRange'] = 0.01
98 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg
99 kwargs[
'TrackIsolationTool'] = acc.popToolsAndMerge(
103 kwargs[
'name'] = f
"IsolationBuilder{WP}{cone_str}{track_pt}{postfix}"
104 acc.addEventAlgo(CompFactory.IsolationBuilder(**kwargs))