ATLAS Offline Software
Loading...
Searching...
No Matches
TrackVertexAssociationToolConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def getTTVAToolForReco(name="TTVATool", **kwargs):
7
8 # set default values for AMVF decoration properties, in case they are not set
9 # passing other values in kwargs will override these, if you are using a custom vertex container (eg. HIGG1D1 jet reconstruction)
10 kwargs.setdefault("AMVFVerticesDeco", "TTVA_AMVFVertices_forReco")
11 kwargs.setdefault("AMVFWeightsDeco", "TTVA_AMVFWeights_forReco")
12
13 return CompFactory.CP.TrackVertexAssociationTool(name, **kwargs)
14
15def TTVAToolCfg(flags, name, addDecoAlg=True, VertexContName="PrimaryVertices", **kwargs):
16 """Create a component accumulator containing a TTVA tool
17
18 If addDecoAlg is True, also adds an algorithm for decorating the 'used-in-fit' information
19 """
20
21 acc = ComponentAccumulator()
22
23 # For cosmics or config without PV reconstruction, don't even try
24 if not flags.Tracking.doVertexFinding:
25 return acc
26
27 kwargs.setdefault("TrackContName", "InDetTrackParticles")
28 kwargs.setdefault("AMVFVerticesDeco", "TTVA_AMVFVertices_forReco")
29 kwargs.setdefault("AMVFWeightsDeco", "TTVA_AMVFWeights_forReco")
30
31 acc.setPrivateTools(getTTVAToolForReco(name, **kwargs))
32
33 if addDecoAlg:
34 from InDetUsedInFitTrackDecoratorTool.UsedInVertexFitTrackDecoratorConfig import (
35 UsedInVertexFitTrackDecoratorCfg)
36 acc.merge(UsedInVertexFitTrackDecoratorCfg(
37 flags, trackCont=kwargs["TrackContName"], vtxCont=VertexContName,
38 vertexDeco=kwargs["AMVFVerticesDeco"], weightDeco=kwargs["AMVFWeightsDeco"]))
39
40 return acc
41
42
43def isoTTVAToolCfg(flags, name="ttvaToolForIso", **kwargs):
44 kwargs.setdefault("WorkingPoint", "Nonprompt_All_MaxWeight")
45 kwargs.setdefault("HardScatterLinkDeco", "")
46 return TTVAToolCfg(flags, name, **kwargs)
47
48
49def TauTTVAToolCfg(flags, name="TVATool", **kwargs):
50 kwargs.setdefault("WorkingPoint", "Nonprompt_Hard_MaxWeight")
51 kwargs.setdefault("HardScatterLinkDeco", "")
52 kwargs.setdefault("TrackContName", flags.Tau.ActiveConfig.TrackCollection)
53 kwargs.setdefault("VertexContName", flags.Tau.ActiveConfig.VertexCollection)
54 return TTVAToolCfg(flags, flags.Tau.ActiveConfig.prefix + name, **kwargs)
55
56
57def CVF_TTVAToolCfg(flags, name="CVF_TTVATool", **kwargs):
58 kwargs.setdefault("WorkingPoint", "Custom")
59 kwargs.setdefault("HardScatterLinkDeco", "")
60 kwargs.setdefault("d0_cut", 2.0)
61 kwargs.setdefault("dzSinTheta_cut", 2.0)
62 return TTVAToolCfg(flags, name, **kwargs)
63
64
65def GNNHS_TTVAToolCfg(flags, name="TrackVertexAssociationTool_GNNHS", **kwargs):
66 # The import should be done here as TrkConfig is not part of AthAnalysis
67 from TrkConfig.VertexFindingFlags import VertexSortingSetup
68
69 kwargs.setdefault("WorkingPoint", "Prompt_MaxWeight")
70 kwargs.setdefault("VertexContName", "PrimaryVertices_initial"
71 if flags.Tracking.PriVertex.sortingSetup is VertexSortingSetup.GNNSorting else
72 "PrimaryVertices")
73 kwargs.setdefault("HardScatterLinkDeco", "")
74 kwargs.setdefault("AMVFVerticesDeco", "TTVA_AMVFVertices_forGNN")
75 kwargs.setdefault("AMVFWeightsDeco", "TTVA_AMVFWeights_forGNN")
76 return TTVAToolCfg(flags, name, **kwargs)
isoTTVAToolCfg(flags, name="ttvaToolForIso", **kwargs)
CVF_TTVAToolCfg(flags, name="CVF_TTVATool", **kwargs)
GNNHS_TTVAToolCfg(flags, name="TrackVertexAssociationTool_GNNHS", **kwargs)
TTVAToolCfg(flags, name, addDecoAlg=True, VertexContName="PrimaryVertices", **kwargs)
TauTTVAToolCfg(flags, name="TVATool", **kwargs)