ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
VKalVrt
GNNVertexFitter
python
GNNVertexFitterConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
4
from
AthenaConfiguration.ComponentFactory
import
CompFactory
5
from
TrkConfig.TrkVKalVrtFitterConfig
import
TrkVKalVrtFitterCfg
6
from
BeamSpotConditions.BeamSpotConditionsConfig
import
BeamSpotCondAlgCfg
7
from
FlavorTagDiscriminants.FlavorTagNNConfig
import
MultifoldGNNCfg
8
from
os.path
import
commonpath
9
from
pathlib
import
PurePath
10
from
ParticleJetTools.JetParticleAssociationAlgConfig
import
(
11
JetParticleAssociationAlgCfg,
12
)
13
from
BTagging.BTagTrackAugmenterAlgConfig
import
BTagTrackAugmenterAlgCfg
14
15
def
GNNVertexFitterToolCfg
(flags, name="GNNVertexFitterTool", **kwargs):
16
acc = ComponentAccumulator()
17
18
acc.merge(BeamSpotCondAlgCfg(flags))
19
kwargs.setdefault(
"VertexFitterTool"
, acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags)))
20
kwargs.setdefault(
"GNNModel"
, flags.BTagging.AK4TaggerName)
21
kwargs.setdefault(
"JetCollection"
,
"AntiKt4EMPFlowJets"
)
22
kwargs.setdefault(
"includePrimaryVertex"
,
False
)
23
kwargs.setdefault(
"removeNonHFVertices"
,
False
)
24
kwargs.setdefault(
"doInclusiveVertexing"
,
False
)
25
kwargs.setdefault(
"maxChi2"
, 20)
26
kwargs.setdefault(
"HFRatio"
, 0)
27
kwargs.setdefault(
"applyCuts"
,
False
)
28
acc.setPrivateTools(CompFactory.Rec.GNNVertexFitterTool(**kwargs))
29
30
return
acc
31
32
def
GNNVertexFitterAlgCfg
(flags, jetcol="AntiKt4EMPFlowJets", inclusive=False, **kwargs):
33
acc = ComponentAccumulator()
34
35
trackCollection =
'InDetTrackParticles'
36
JetTrackAssociator =
"TracksForBTagging"
37
38
#Track Augmenter
39
acc.merge(BTagTrackAugmenterAlgCfg(flags))
40
41
acc.merge(JetParticleAssociationAlgCfg(
42
flags,
43
JetCollection=jetcol,
44
InputParticleCollection=trackCollection,
45
OutputParticleDecoration=JetTrackAssociator,
46
))
47
48
# decorate b-tagging directly to the jets
49
for
networks
in
flags.BTagging.NNs.get(jetcol, []):
50
assert
len(networks[
'folds'
]) > 1
51
52
nnFilePaths=networks[
'folds'
]
53
common = commonpath(nnFilePaths)
54
nn_name =
'_'
.join(PurePath(common).with_suffix(
''
).parts)
55
algname = f
'{nn_name}_Jet'
56
57
remapping=networks.get(
'remapping'
, {})
58
remapping[
'BTagTrackToJetAssociator'
] = JetTrackAssociator
59
60
args = dict(
61
flags=flags,
62
BTaggingCollection=
None
,
63
TrackCollection=trackCollection,
64
nnFilePaths=nnFilePaths,
65
remapping=remapping,
66
JetCollection=jetcol,
67
)
68
69
acc.merge(MultifoldGNNCfg(**args))
70
71
tool = acc.popToolsAndMerge(
72
GNNVertexFitterToolCfg
(
73
flags,
74
name=f
'{algname}_VertexFitterTool'
,
75
GNNModel=algname,
76
doInclusiveVertexing=inclusive,
77
removeNonHFVertices=inclusive,
# if running inclusive vertexing, remove vertices with no HF tracks
78
)
79
)
80
81
name = f
'{algname}_VertexFitterAlg{"Incl" if inclusive else ""}'
82
outcol = f
'{"Inclusive" if inclusive else ""}GNNVertices'
83
84
acc.addEventAlgo(
85
CompFactory.Rec.GNNVertexFitterAlg(
86
name = name,
87
VtxTool=tool,
88
inputJetContainer=jetcol,
89
outputVertexContainer=outcol,
90
**kwargs
91
)
92
)
93
94
return
acc
GNNVertexFitterConfig.GNNVertexFitterAlgCfg
GNNVertexFitterAlgCfg(flags, jetcol="AntiKt4EMPFlowJets", inclusive=False, **kwargs)
Definition
GNNVertexFitterConfig.py:32
GNNVertexFitterConfig.GNNVertexFitterToolCfg
GNNVertexFitterToolCfg(flags, name="GNNVertexFitterTool", **kwargs)
Definition
GNNVertexFitterConfig.py:15
Generated on
for ATLAS Offline Software by
1.17.0