ATLAS Offline Software
Loading...
Searching...
No Matches
DiTauToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def SeedJetBuilderCfg(flags, name="DiTauRec_SeedJetBuilder", jetCollection=""):
7 """Configure the seed jet builder"""
8 acc = ComponentAccumulator()
9 acc.setPrivateTools(CompFactory.SeedJetBuilder(name,
10 JetCollection = jetCollection if jetCollection != "" else flags.DiTau.SeedJetCollection[0]))
11 return acc
12
13
14def SubjetBuilderCfg(flags, name="DiTauRec_SubjetBuilder"):
15 """Configure the subjet builder"""
16 acc = ComponentAccumulator()
17 acc.setPrivateTools(CompFactory.SubjetBuilder(name,
18 Rsubjet = flags.DiTau.Rsubjet,
19 ptminsubjet = flags.DiTau.PtMinSubjet))
20 return acc
21
22def TVAToolCfg(flags, name="TVATool_forDiTaus", **kwargs):
23 """Configure the TVA tool"""
24 acc = ComponentAccumulator()
25
26 kwargs.setdefault("TrackParticleContainer", "InDetTrackParticles")
27 kwargs.setdefault("TrackVertexAssociation", "JetTrackVtxAssoc_forDiTaus")
28 kwargs.setdefault("VertexContainer", "PrimaryVertices")
29 kwargs.setdefault("MaxTransverseDistance", 2.5) # in mm
30 kwargs.setdefault("MaxLongitudinalDistance", 2) # in mm
31
32 acc.setPrivateTools(CompFactory.TrackVertexAssociationTool(name, **kwargs))
33 return acc
34
35def JetAlgCfg(flags, name="DiTauRec_JetAlgorithm", **kwargs): # Name changed wrt legacy config DiTauRec_TVATool
36 """Configure the JetAlgorithm"""
37 acc = ComponentAccumulator()
38
39 tools = [acc.popToolsAndMerge(TVAToolCfg(flags))]
40 kwargs.setdefault("Tools", tools)
41
42 acc.addEventAlgo(CompFactory.JetAlgorithm(name, **kwargs))
43 return acc
44
45# require TrackVertexAssociation to be produced by TVA tool - see above
46def VertexFinderCfg(flags, name="DiTauRec_VertexFinder", **kwargs):
47 """Configure the vertex finder"""
48 acc = ComponentAccumulator()
49
50 kwargs.setdefault("PrimVtxContainerName", "PrimaryVertices")
51 kwargs.setdefault("AssociatedTracks", "GhostTrack")
52 kwargs.setdefault("TrackVertexAssociation", "JetTrackVtxAssoc_forDiTaus")
53 kwargs.setdefault("UseTJVA", flags.Tau.doTJVA)
54
55 acc.setPrivateTools(CompFactory.VertexFinder(name, **kwargs))
56 return acc
57
58def DiTauTrackFinderCfg(flags, name="DiTauRec_DiTauTrackFinder", **kwargs):
59 """Configure the di-tau track finder"""
60 acc = ComponentAccumulator()
61
62 kwargs.setdefault("MaxDrJet", 1.0)
63 kwargs.setdefault("MaxDrSubjet", 0.2)
64 kwargs.setdefault("MaxNTracksSubjet", -1)
65 kwargs.setdefault("TrackParticleContainer", "InDetTrackParticles")
66
67 if "TrackSelectorTool" not in kwargs:
68 from InDetConfig.InDetTrackSelectorToolConfig import TauRecInDetTrackSelectorToolCfg
69 InDetTrackSelectorTool = acc.popToolsAndMerge(TauRecInDetTrackSelectorToolCfg(flags))
70 acc.addPublicTool(InDetTrackSelectorTool)
71 kwargs.setdefault("TrackSelectorTool", InDetTrackSelectorTool)
72
73 acc.setPrivateTools(CompFactory.DiTauTrackFinder(name, **kwargs))
74 return acc
75
76def CellFinderCfg(flags, name="DiTauRec_CellFinder"):
77 """Configure the cell finder"""
78 acc = ComponentAccumulator()
79
80 CellFinder = CompFactory.CellFinder(name,
81 Rsubjet = flags.DiTau.Rsubjet,)
82 acc.setPrivateTools(CellFinder)
83 return acc
84
85def DiTauConstituentFinderCfg(flags, name="DiTauRec_DiTauConstituentFinder", **kwargs):
86 """Configure the di-tau constituent finder"""
87 acc = ComponentAccumulator()
88 kwargs.setdefault("Rsubjet", 0.2)
89 kwargs.setdefault("UseRawConstit", True)
90
91 acc.setPrivateTools(CompFactory.DiTauConstituentFinder(name, **kwargs))
92 return acc
93
94def DiTauExtraVarDecoratorCfg(flags, name="DiTauRec_ExtraVarDecorator", **kwargs):
95 """Configure the ExtraVarDecorator"""
96 acc = ComponentAccumulator()
97 acc.setPrivateTools(CompFactory.DiTauExtraVarDecorator(name, **kwargs))
98 return acc
99
100def DiTauOnnxScoreCalculatorCfg(flags, name="DiTauRec_OnnxScoreCalculator", **kwargs):
101 """Configure the OnnxScoreCalculator"""
102 acc = ComponentAccumulator()
103 kwargs.setdefault("onnxModelPath", "TrigTauRec/00-11-02/dev/boosted_ditau_omni_model.onnx")
104 kwargs.setdefault("maxTracks", 10)
105 acc.setPrivateTools(CompFactory.DiTauOnnxDiscriminantTool(name, **kwargs))
106 return acc
107
108def DiTauWPDecoratorCfg(flags, name="DiTauRec_WPDecorator", **kwargs):
109 """Configure the WPDecorator"""
110 acc = ComponentAccumulator()
111 kwargs.setdefault("ScoreName", "omni_score")
112 kwargs.setdefault("DiTauContainerName", "DiTauJets")
113 kwargs.setdefault("DecorWPNames", ["omni_score_VL", "omni_score_L", "omni_score_M", "omni_score_T"])
114 kwargs.setdefault("DecorWPCuts", [0.40, 0.60, 0.80, 0.9]) #NOTE: these are dummy values for testing, to be updated when WPs values will be offficially decided
115 acc.setPrivateTools(CompFactory.DiTauWPDecorator(name, **kwargs))
116 return acc
117
SeedJetBuilderCfg(flags, name="DiTauRec_SeedJetBuilder", jetCollection="")