ATLAS Offline Software
InDetAmbiTrackSelectionToolConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 # Configuration of InDetAmbiTrackSelectionTool package
3 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import BeamType, LHCPeriod
7 
8 
10  flags, name="InDetAmbiTrackSelectionTool", **kwargs):
11  acc = ComponentAccumulator()
12 
13  if ('UseParameterization' in kwargs and
14  kwargs.get('UseParameterization', False) and
15  "DriftCircleCutTool" not in kwargs):
16  from InDetConfig.InDetTrackSelectorToolConfig import (
17  InDetTRTDriftCircleCutToolCfg)
18  DriftCircleCutTool = acc.popToolsAndMerge(
20  acc.addPublicTool(DriftCircleCutTool)
21  kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
22 
23  if "AssociationTool" not in kwargs:
24  from InDetConfig.InDetAssociationToolsConfig import (
25  InDetPRDtoTrackMapToolGangedPixelsCfg)
26  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
28 
29  kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters)
30  kwargs.setdefault("minNotShared",
31  flags.Tracking.ActiveConfig.minSiNotShared)
32  kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared)
33  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
34  kwargs.setdefault("UseParameterization", False)
35  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
36  kwargs.setdefault("doPixelSplitting",
37  flags.Tracking.doPixelClusterSplitting)
38 
39  if flags.Tracking.ActiveConfig.useTIDE_Ambi:
40  kwargs.setdefault("sharedProbCut",
41  flags.Tracking.pixelClusterSplitProb1)
42  kwargs.setdefault("sharedProbCut2",
43  flags.Tracking.pixelClusterSplitProb2)
44  kwargs.setdefault("minSiHitsToAllowSplitting",
45  8 if flags.GeoModel.Run is LHCPeriod.Run1 else 9)
46  kwargs.setdefault("minUniqueSCTHits", 4)
47  kwargs.setdefault("minTrackChi2ForSharedHits", 3)
48  # Only allow split clusters on track withe pt greater than this MeV
49  kwargs.setdefault("minPtSplit", 1000)
50  # Split cluster ROI size
51  kwargs.setdefault("phiWidth", 0.05)
52  kwargs.setdefault("etaWidth", 0.05)
53 
54  # Only split in cluster in region of interest
55  kwargs.setdefault("doEmCaloSeed", flags.Tracking.doCaloSeededAmbi)
56  kwargs.setdefault("EMROIPhiRZContainer",
57  "InDetCaloClusterROIPhiRZ10GeV")
58  if flags.Tracking.doCaloSeededAmbi:
59  from InDetConfig.InDetCaloClusterROISelectorConfig import (
60  CaloClusterROIPhiRZContainerMakerCfg)
61  acc.merge(CaloClusterROIPhiRZContainerMakerCfg(flags))
62 
63  # Do special cuts in region of interest
64  kwargs.setdefault("doHadCaloSeed", flags.Tracking.doCaloSeededAmbi)
65  kwargs.setdefault("HadROIPhiRZContainer",
66  "InDetHadCaloClusterROIPhiRZBjet")
67  if flags.Tracking.doCaloSeededAmbi:
68  from InDetConfig.InDetCaloClusterROISelectorConfig import (
69  HadCaloClusterROIPhiRZContainerMakerCfg)
71 
72  # Do special cuts in region of interest
73  kwargs.setdefault("minPtBjetROI", 10000)
74  # Split cluster ROI size
75  kwargs.setdefault("phiWidthEM", 0.05)
76  kwargs.setdefault("etaWidthEM", 0.05)
77  # Skip ambi solver in hadronic ROI
78  kwargs.setdefault("doSkipAmbiInROI", flags.Tracking.doSkipAmbiROI)
79 
80  if (flags.Tracking.doTIDE_AmbiTrackMonitoring and
81  flags.Tracking.ActiveConfig.extension == ""):
82  from TrkConfig.TrkValToolsConfig import TrkObserverToolCfg
83  TrkObserverTool = acc.popToolsAndMerge(TrkObserverToolCfg(flags))
84  acc.addPublicTool(TrkObserverTool)
85  kwargs.setdefault("ObserverTool", TrkObserverTool)
86 
87  else:
88  kwargs.setdefault("sharedProbCut", 0.10)
89 
90  if flags.Tracking.ActiveConfig.useTIDE_Ambi:
91  AmbiTrackSelectionTool = (
92  CompFactory.InDet.InDetDenseEnvAmbiTrackSelectionTool)
93  else:
94  AmbiTrackSelectionTool = CompFactory.InDet.InDetAmbiTrackSelectionTool
95 
96  acc.setPrivateTools(AmbiTrackSelectionTool(
97  name=name+flags.Tracking.ActiveConfig.extension, **kwargs))
98  return acc
99 
100 
102  flags, name='InDetTRT_SeededAmbiTrackSelectionTool', **kwargs):
103  acc = ComponentAccumulator()
104 
105  if "DriftCircleCutTool" not in kwargs:
106  from InDetConfig.InDetTrackSelectorToolConfig import (
107  InDetTRTDriftCircleCutToolCfg)
108  DriftCircleCutTool = acc.popToolsAndMerge(
110  acc.addPublicTool(DriftCircleCutTool)
111  kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
112 
113  if "AssociationTool" not in kwargs:
114  from InDetConfig.InDetAssociationToolsConfig import (
115  InDetPRDtoTrackMapToolGangedPixelsCfg)
116  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
118 
119  kwargs.setdefault("minScoreShareTracks", -1.) # off !
120  kwargs.setdefault("minHits", flags.Tracking.BackTracking.minClusters)
121  kwargs.setdefault("minNotShared", flags.Tracking.BackTracking.minSiNotShared)
122  kwargs.setdefault("maxShared", flags.Tracking.BackTracking.maxShared)
123  kwargs.setdefault("minTRTHits", flags.Tracking.BackTracking.minTRT)
124  kwargs.setdefault("UseParameterization", flags.Tracking.useNewParamTRT)
125  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
126  kwargs.setdefault("doPixelSplitting",
127  flags.Tracking.doPixelClusterSplitting)
128 
129  acc.setPrivateTools(
130  CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs))
131  return acc
132 
134  flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs):
135 
136  if flags.Detector.GeometryITk:
137  kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters[0]) #TODO eta-dependant cuts
138  kwargs.setdefault("minNotShared",
139  flags.Tracking.ActiveConfig.minSiNotShared[0])
140  kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared[0])
141  tool = ITkTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs)
142  else:
143  tool = InDetTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs)
144 
145  return tool
146 
148  flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs):
149  acc = ComponentAccumulator()
150 
151  if "DriftCircleCutTool" not in kwargs:
152  from InDetConfig.InDetTrackSelectorToolConfig import (
153  InDetTrigTRTDriftCircleCutToolCfg)
154  DriftCircleCutTool = acc.popToolsAndMerge(
156  acc.addPublicTool(DriftCircleCutTool)
157  kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
158 
159  if "AssociationTool" not in kwargs:
160  from InDetConfig.InDetAssociationToolsConfig import (
161  TrigPRDtoTrackMapToolGangedPixelsCfg)
162  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
164 
165  kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters)
166  kwargs.setdefault("minNotShared",
167  flags.Tracking.ActiveConfig.minSiNotShared)
168  kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared)
169  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
170  kwargs.setdefault("Cosmics", False) # there is a different instance
171  kwargs.setdefault("UseParameterization", False)
172 
173  acc.setPrivateTools(
174  CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs))
175  return acc
176 
178  flags, name='InDetTrigAmbiTrackSelectionToolCosmics', **kwargs):
179  kwargs.setdefault("Cosmics", True)
180  kwargs.setdefault("minHits", 0) #not the same minClusters setting everywhere
181  kwargs.setdefault("maxTracksPerSharedPRD", 10)
182  return InDetTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs)
183 
185  flags, name="ITkAmbiTrackSelectionTool", **kwargs):
186  acc = ComponentAccumulator()
187 
188  kwargs.setdefault("DriftCircleCutTool", None)
189 
190  if "AssociationTool" not in kwargs:
191  from InDetConfig.InDetAssociationToolsConfig import (
192  ITkPRDtoTrackMapToolGangedPixelsCfg)
193  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
195 
196  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
197  kwargs.setdefault("UseParameterization", False)
198  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
199  kwargs.setdefault("doPixelSplitting",
200  flags.Tracking.doPixelClusterSplitting)
201 
202  kwargs.setdefault("sharedProbCut",
203  flags.Tracking.pixelClusterSplitProb1)
204  kwargs.setdefault("sharedProbCut2",
205  flags.Tracking.pixelClusterSplitProb2)
206  kwargs.setdefault("minSiHitsToAllowSplitting", 9)
207  kwargs.setdefault("minUniqueSCTHits", 4)
208  kwargs.setdefault("minTrackChi2ForSharedHits", 3)
209  # Only allow split clusters on track withe pt greater than this MeV
210  kwargs.setdefault("minPtSplit", 1000)
211  # Split cluster ROI size
212  kwargs.setdefault("phiWidth", 0.05)
213  kwargs.setdefault("etaWidth", 0.05)
214 
215  # Only split in cluster in region of interest
216  kwargs.setdefault("doEmCaloSeed", flags.Tracking.ActiveConfig.doCaloSeededAmbiSi)
217  kwargs.setdefault("EMROIPhiRZContainer", "ITkCaloClusterROIPhiRZ10GeV")
218  if flags.Tracking.ActiveConfig.doCaloSeededAmbiSi:
219  from InDetConfig.InDetCaloClusterROISelectorConfig import (
220  ITkCaloClusterROIPhiRZContainerMakerCfg)
222 
223  # Do special cuts in region of interest
224  kwargs.setdefault("doHadCaloSeed", flags.Tracking.ActiveConfig.doCaloSeededAmbiSi)
225  kwargs.setdefault("HadROIPhiRZContainer", "ITkHadCaloClusterROIPhiRZBjet")
226  if flags.Tracking.ActiveConfig.doCaloSeededAmbiSi:
227  from InDetConfig.InDetCaloClusterROISelectorConfig import (
228  ITkHadCaloClusterROIPhiRZContainerMakerCfg)
230 
231  # Only allow split clusters on track withe pt greater than this MeV
232  kwargs.setdefault("minPtBjetROI", 10000)
233  # Split cluster ROI size
234  kwargs.setdefault("phiWidthEM", 0.05)
235  kwargs.setdefault("etaWidthEM", 0.05)
236  # Skip ambi solver in hadronic ROI
237  kwargs.setdefault("doSkipAmbiInROI", flags.Tracking.doSkipAmbiROI)
238 
239  if 'InDetEtaDependentCutsSvc' not in kwargs:
240  from InDetConfig.InDetEtaDependentCutsConfig import (
241  ITkEtaDependentCutsSvcCfg)
242  acc.merge(ITkEtaDependentCutsSvcCfg(flags))
243  kwargs.setdefault("InDetEtaDependentCutsSvc", acc.getService(
244  "ITkEtaDependentCutsSvc"+flags.Tracking.ActiveConfig.extension))
245 
246  acc.setPrivateTools(CompFactory.InDet.InDetDenseEnvAmbiTrackSelectionTool(
247  name=name+flags.Tracking.ActiveConfig.extension, **kwargs))
248  return acc
249 
251  flags, name="ITkTrigAmbiTrackSelectionTool", **kwargs):
252 
253  acc = ComponentAccumulator()
254 
255  if "DriftCircleCutTool" not in kwargs:
256  from InDetConfig.InDetTrackSelectorToolConfig import (
257  InDetTrigTRTDriftCircleCutToolCfg)
258  DriftCircleCutTool = acc.popToolsAndMerge(
260  acc.addPublicTool(DriftCircleCutTool)
261  kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
262 
263  if "AssociationTool" not in kwargs:
264  from InDetConfig.InDetAssociationToolsConfig import (
265  TrigITkPRDtoTrackMapToolGangedPixelsCfg)
266  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
268 
269  kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters)
270  kwargs.setdefault("minNotShared",
271  flags.Tracking.ActiveConfig.minSiNotShared)
272  kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared)
273  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
274  kwargs.setdefault("Cosmics", False) # there is a different instance
275  kwargs.setdefault("UseParameterization", False)
276 
277  acc.setPrivateTools(
278  CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs))
279  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetTrackSelectorToolConfig.InDetTRTDriftCircleCutToolCfg
def InDetTRTDriftCircleCutToolCfg(flags, name='InDetTRTDriftCircleCutTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:249
python.InDetAmbiTrackSelectionToolConfig.InDetTrigAmbiTrackSelectionToolCosmicsCfg
def InDetTrigAmbiTrackSelectionToolCosmicsCfg(flags, name='InDetTrigAmbiTrackSelectionToolCosmics', **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:177
python.InDetEtaDependentCutsConfig.ITkEtaDependentCutsSvcCfg
def ITkEtaDependentCutsSvcCfg(flags, name='ITkEtaDependentCutsSvc', **kwargs)
Definition: InDetEtaDependentCutsConfig.py:7
python.InDetAmbiTrackSelectionToolConfig.TrigAmbiTrackSelectionToolCfg
def TrigAmbiTrackSelectionToolCfg(flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:133
python.InDetAssociationToolsConfig.TrigITkPRDtoTrackMapToolGangedPixelsCfg
def TrigITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedPixels', **kwargs)
Definition: InDetAssociationToolsConfig.py:50
python.InDetAmbiTrackSelectionToolConfig.ITkTrigAmbiTrackSelectionToolCfg
def ITkTrigAmbiTrackSelectionToolCfg(flags, name="ITkTrigAmbiTrackSelectionTool", **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:250
python.InDetAmbiTrackSelectionToolConfig.InDetAmbiTrackSelectionToolCfg
def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:9
python.InDetCaloClusterROISelectorConfig.CaloClusterROIPhiRZContainerMakerCfg
def CaloClusterROIPhiRZContainerMakerCfg(flags, name="CaloClusterROIPhiRZContainerMaker", **kwargs)
Definition: InDetCaloClusterROISelectorConfig.py:7
python.InDetCaloClusterROISelectorConfig.ITkCaloClusterROIPhiRZContainerMakerCfg
def ITkCaloClusterROIPhiRZContainerMakerCfg(flags, name="ITkCaloClusterROIPhiRZContainerMaker", **kwargs)
Definition: InDetCaloClusterROISelectorConfig.py:69
python.InDetCaloClusterROISelectorConfig.HadCaloClusterROIPhiRZContainerMakerCfg
def HadCaloClusterROIPhiRZContainerMakerCfg(flags, name="HadCaloClusterROIPhiRZContainerMaker", **kwargs)
Definition: InDetCaloClusterROISelectorConfig.py:131
python.InDetCaloClusterROISelectorConfig.ITkHadCaloClusterROIPhiRZContainerMakerCfg
def ITkHadCaloClusterROIPhiRZContainerMakerCfg(flags, name="ITkHadCaloClusterROIPhiRZContainerMaker", **kwargs)
Definition: InDetCaloClusterROISelectorConfig.py:178
python.TrkValToolsConfig.TrkObserverToolCfg
def TrkObserverToolCfg(flags, name="TrackObserverTool", **kwargs)
Definition: TrkValToolsConfig.py:8
python.InDetAssociationToolsConfig.InDetPRDtoTrackMapToolGangedPixelsCfg
def InDetPRDtoTrackMapToolGangedPixelsCfg(flags, name='PRDtoTrackMapToolGangedPixels', **kwargs)
Definition: InDetAssociationToolsConfig.py:29
python.InDetAmbiTrackSelectionToolConfig.InDetTRTAmbiTrackSelectionToolCfg
def InDetTRTAmbiTrackSelectionToolCfg(flags, name='InDetTRT_SeededAmbiTrackSelectionTool', **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:101
python.InDetAmbiTrackSelectionToolConfig.InDetTrigAmbiTrackSelectionToolCfg
def InDetTrigAmbiTrackSelectionToolCfg(flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:147
python.InDetAssociationToolsConfig.TrigPRDtoTrackMapToolGangedPixelsCfg
def TrigPRDtoTrackMapToolGangedPixelsCfg(flags, name='InDetTrigPRDtoTrackMapToolGangedPixels', **kwargs)
Definition: InDetAssociationToolsConfig.py:36
python.InDetAmbiTrackSelectionToolConfig.ITkAmbiTrackSelectionToolCfg
def ITkAmbiTrackSelectionToolCfg(flags, name="ITkAmbiTrackSelectionTool", **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:184
python.InDetTrackSelectorToolConfig.InDetTrigTRTDriftCircleCutToolCfg
def InDetTrigTRTDriftCircleCutToolCfg(flags, name='InDetTrigTRTDriftCircleCutTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:258
python.InDetAssociationToolsConfig.ITkPRDtoTrackMapToolGangedPixelsCfg
def ITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedPixels', **kwargs)
Definition: InDetAssociationToolsConfig.py:43