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 
133 
135  flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs):
136  acc = ComponentAccumulator()
137  # TODO add AmbiTrackSelectionTool for cosmics
138 
139  if "DriftCircleCutTool" not in kwargs:
140  from InDetConfig.InDetTrackSelectorToolConfig import (
141  InDetTrigTRTDriftCircleCutToolCfg)
142  DriftCircleCutTool = acc.popToolsAndMerge(
144  acc.addPublicTool(DriftCircleCutTool)
145  kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
146 
147  if "AssociationTool" not in kwargs:
148  from InDetConfig.InDetAssociationToolsConfig import (
149  TrigPRDtoTrackMapToolGangedPixelsCfg)
150  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
152 
153  kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters)
154  kwargs.setdefault("minNotShared",
155  flags.Tracking.ActiveConfig.minSiNotShared)
156  kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared)
157  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
158  kwargs.setdefault("Cosmics", False) # there is a different instance
159  kwargs.setdefault("UseParameterization", False)
160 
161  acc.setPrivateTools(
162  CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs))
163  return acc
164 
166  flags, name='InDetTrigAmbiTrackSelectionToolCosmics', **kwargs):
167  kwargs.setdefault("Cosmics", True)
168  kwargs.setdefault("minHits", 0) #not the same minClusters setting everywhere
169  kwargs.setdefault("maxTracksPerSharedPRD", 10)
170  return InDetTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs)
171 
173  flags, name="ITkAmbiTrackSelectionTool", **kwargs):
174  acc = ComponentAccumulator()
175 
176  kwargs.setdefault("DriftCircleCutTool", None)
177 
178  if "AssociationTool" not in kwargs:
179  from InDetConfig.InDetAssociationToolsConfig import (
180  ITkPRDtoTrackMapToolGangedPixelsCfg)
181  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
183 
184  kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!!
185  kwargs.setdefault("UseParameterization", False)
186  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
187  kwargs.setdefault("doPixelSplitting",
188  flags.Tracking.doPixelClusterSplitting)
189 
190  kwargs.setdefault("sharedProbCut",
191  flags.Tracking.pixelClusterSplitProb1)
192  kwargs.setdefault("sharedProbCut2",
193  flags.Tracking.pixelClusterSplitProb2)
194  kwargs.setdefault("minSiHitsToAllowSplitting", 9)
195  kwargs.setdefault("minUniqueSCTHits", 4)
196  kwargs.setdefault("minTrackChi2ForSharedHits", 3)
197  # Only allow split clusters on track withe pt greater than this MeV
198  kwargs.setdefault("minPtSplit", 1000)
199  # Split cluster ROI size
200  kwargs.setdefault("phiWidth", 0.05)
201  kwargs.setdefault("etaWidth", 0.05)
202 
203  # Only split in cluster in region of interest
204  kwargs.setdefault("doEmCaloSeed", flags.Tracking.ActiveConfig.doCaloSeededAmbiSi)
205  kwargs.setdefault("EMROIPhiRZContainer", "ITkCaloClusterROIPhiRZ10GeV")
206  if flags.Tracking.ActiveConfig.doCaloSeededAmbiSi:
207  from InDetConfig.InDetCaloClusterROISelectorConfig import (
208  ITkCaloClusterROIPhiRZContainerMakerCfg)
210 
211  # Do special cuts in region of interest
212  kwargs.setdefault("doHadCaloSeed", flags.Tracking.ActiveConfig.doCaloSeededAmbiSi)
213  kwargs.setdefault("HadROIPhiRZContainer", "ITkHadCaloClusterROIPhiRZBjet")
214  if flags.Tracking.ActiveConfig.doCaloSeededAmbiSi:
215  from InDetConfig.InDetCaloClusterROISelectorConfig import (
216  ITkHadCaloClusterROIPhiRZContainerMakerCfg)
218 
219  # Only allow split clusters on track withe pt greater than this MeV
220  kwargs.setdefault("minPtBjetROI", 10000)
221  # Split cluster ROI size
222  kwargs.setdefault("phiWidthEM", 0.05)
223  kwargs.setdefault("etaWidthEM", 0.05)
224  # Skip ambi solver in hadronic ROI
225  kwargs.setdefault("doSkipAmbiInROI", flags.Tracking.doSkipAmbiROI)
226 
227  if 'InDetEtaDependentCutsSvc' not in kwargs:
228  from InDetConfig.InDetEtaDependentCutsConfig import (
229  ITkEtaDependentCutsSvcCfg)
230  acc.merge(ITkEtaDependentCutsSvcCfg(flags))
231  kwargs.setdefault("InDetEtaDependentCutsSvc", acc.getService(
232  "ITkEtaDependentCutsSvc"+flags.Tracking.ActiveConfig.extension))
233 
234  acc.setPrivateTools(CompFactory.InDet.InDetDenseEnvAmbiTrackSelectionTool(
235  name=name+flags.Tracking.ActiveConfig.extension, **kwargs))
236  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetTrackSelectorToolConfig.InDetTRTDriftCircleCutToolCfg
def InDetTRTDriftCircleCutToolCfg(flags, name='InDetTRTDriftCircleCutTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:252
python.InDetAmbiTrackSelectionToolConfig.InDetTrigAmbiTrackSelectionToolCosmicsCfg
def InDetTrigAmbiTrackSelectionToolCosmicsCfg(flags, name='InDetTrigAmbiTrackSelectionToolCosmics', **kwargs)
Definition: InDetAmbiTrackSelectionToolConfig.py:165
python.InDetEtaDependentCutsConfig.ITkEtaDependentCutsSvcCfg
def ITkEtaDependentCutsSvcCfg(flags, name='ITkEtaDependentCutsSvc', **kwargs)
Definition: InDetEtaDependentCutsConfig.py:7
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:134
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:172
python.InDetTrackSelectorToolConfig.InDetTrigTRTDriftCircleCutToolCfg
def InDetTrigTRTDriftCircleCutToolCfg(flags, name='InDetTrigTRTDriftCircleCutTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:261
python.InDetAssociationToolsConfig.ITkPRDtoTrackMapToolGangedPixelsCfg
def ITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedPixels', **kwargs)
Definition: InDetAssociationToolsConfig.py:43