ATLAS Offline Software
CommonTrackFitterConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 # Configuration of common interface with various track fitters
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from TrkConfig.TrkConfigFlags import TrackFitterType
5 
6 
9 
10 def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs) :
11  from TrkConfig.TrkDistributedKalmanFilterConfig import (
12  DistributedKalmanFilterCfg)
13  from TrkConfig.TrkGlobalChi2FitterConfig import InDetGlobalChi2FitterCfg
14  from TrkConfig.TrkGaussianSumFilterConfig import GaussianSumFitterCfg
15  return {
16  TrackFitterType.DistributedKalmanFilter : DistributedKalmanFilterCfg,
17  TrackFitterType.GlobalChi2Fitter : InDetGlobalChi2FitterCfg,
18  TrackFitterType.GaussianSumFilter : GaussianSumFitterCfg
19  }[flags.Tracking.trackFitterType](flags, name, **kwargs)
20 
21 def InDetTrackFitterHoleSearchCfg(flags, name='InDetTrackFitterHoleSearch', **kwargs) :
22  acc = ComponentAccumulator()
23 
24  if "BoundaryCheckTool" not in kwargs:
25  from InDetConfig.InDetBoundaryCheckToolConfig import (
26  InDetBoundaryCheckToolCfg)
27  kwargs.setdefault("BoundaryCheckTool", acc.popToolsAndMerge(
29 
30  kwargs.setdefault("DoHoleSearch", True)
31 
32  acc.setPrivateTools(acc.popToolsAndMerge(
33  InDetTrackFitterCfg(flags, name, **kwargs)))
34  return acc
35 
36 def InDetTrackFitterAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs) :
37  acc = ComponentAccumulator()
38 
39  InDetTrackFitter = acc.popToolsAndMerge(
40  InDetTrackFitterHoleSearchCfg(flags, name, **kwargs))
41  ClusterSplitProbabilityName = ("InDetAmbiguityProcessorSplitProb" +
42  flags.Tracking.ActiveConfig.extension)
43 
44  if flags.Tracking.trackFitterType==TrackFitterType.DistributedKalmanFilter:
45  InDetTrackFitter.RecalibratorHandle.BroadPixelClusterOnTrackTool.ClusterSplitProbabilityName = ClusterSplitProbabilityName
46 
47  elif flags.Tracking.trackFitterType==TrackFitterType.GlobalChi2Fitter:
48  InDetTrackFitter.ClusterSplitProbabilityName = ClusterSplitProbabilityName
49  InDetTrackFitter.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
50  InDetTrackFitter.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
51 
52  elif flags.Tracking.trackFitterType==TrackFitterType.GaussianSumFilter:
53  InDetTrackFitter.ToolForROTCreation.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
54 
55  acc.setPrivateTools(InDetTrackFitter)
56  return acc
57 
58 def InDetTrackFitterTRTCfg(flags, name='InDetTrackFitterTRT', **kwargs) :
59  if flags.Tracking.trackFitterType==TrackFitterType.GlobalChi2Fitter:
60  from TrkConfig.TrkGlobalChi2FitterConfig import (
61  InDetGlobalChi2FitterTRTCfg)
62  TrackFitterTRTCfg = InDetGlobalChi2FitterTRTCfg
63  else:
64  TrackFitterTRTCfg = InDetTrackFitterCfg
65  return TrackFitterTRTCfg(flags, name, **kwargs)
66 
67 def InDetTrackFitterLowPtCfg(flags, name='InDetTrackFitter', **kwargs) :
68  if flags.Tracking.trackFitterType==TrackFitterType.GlobalChi2Fitter:
69  from TrkConfig.TrkGlobalChi2FitterConfig import (
70  InDetGlobalChi2FitterLowPtCfg)
71  TrackFitterLowPtCfg = InDetGlobalChi2FitterLowPtCfg
72  else:
73  TrackFitterLowPtCfg = InDetTrackFitterCfg
74  return TrackFitterLowPtCfg(flags, name, **kwargs)
75 
76 def InDetTrackFitterLowPtHoleSearchCfg(flags, name='InDetTrackFitterHoleSearch', **kwargs) :
77  acc = ComponentAccumulator()
78 
79  if "BoundaryCheckTool" not in kwargs:
80  from InDetConfig.InDetBoundaryCheckToolConfig import (
81  InDetBoundaryCheckToolCfg)
82  kwargs.setdefault("BoundaryCheckTool", acc.popToolsAndMerge(
84 
85  kwargs.setdefault("DoHoleSearch", True)
86 
87  acc.setPrivateTools(acc.popToolsAndMerge(
88  InDetTrackFitterLowPtCfg(flags, name, **kwargs)))
89  return acc
90 
91 def InDetTrackFitterLowPtAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs) :
92  acc = ComponentAccumulator()
93 
94  if flags.Tracking.trackFitterType == TrackFitterType.GlobalChi2Fitter:
95  from TrkConfig.TrkGlobalChi2FitterConfig import (
96  InDetGlobalChi2FitterLowPtCfg)
97  InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(
98  InDetGlobalChi2FitterLowPtCfg(flags, name, **kwargs))
99 
100  ClusterSplitProbabilityName = ("InDetAmbiguityProcessorSplitProb" +
101  flags.Tracking.ActiveConfig.extension)
102  InDetGlobalChi2FitterLowPt.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
103  InDetGlobalChi2FitterLowPt.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
104  acc.setPrivateTools(InDetGlobalChi2FitterLowPt)
105 
106  else:
107  acc.setPrivateTools(acc.popToolsAndMerge(
108  InDetTrackFitterAmbiCfg(flags, name, **kwargs)))
109 
110  return acc
111 
112 def InDetTrackFitterBTCfg(flags, name='InDetTrackFitterBT', **kwargs) :
113  if flags.Tracking.trackFitterType==TrackFitterType.GlobalChi2Fitter:
114  from TrkConfig.TrkGlobalChi2FitterConfig import (
115  InDetGlobalChi2FitterBTCfg)
116  TrackFitterBTCfg = InDetGlobalChi2FitterBTCfg
117  else:
118  TrackFitterBTCfg = InDetTrackFitterCfg
119  return TrackFitterBTCfg(flags, name, **kwargs)
120 
121 
122 
125 
126 def ITkTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs) :
127  from TrkConfig.TrkDistributedKalmanFilterConfig import (
128  ITkDistributedKalmanFilterCfg)
129  from TrkConfig.TrkGlobalChi2FitterConfig import ITkGlobalChi2FitterCfg
130  from TrkConfig.TrkGaussianSumFilterConfig import ITkGaussianSumFitterCfg
131  return {
132  TrackFitterType.DistributedKalmanFilter : ITkDistributedKalmanFilterCfg,
133  TrackFitterType.GlobalChi2Fitter : ITkGlobalChi2FitterCfg,
134  TrackFitterType.GaussianSumFilter : ITkGaussianSumFitterCfg
135  }[flags.Tracking.trackFitterType](flags, name, **kwargs)
136 
137 def ITkTrackFitterAmbiCfg(flags, name='ITkTrackFitterAmbi', **kwargs) :
138  acc = ComponentAccumulator()
139 
140  if "BoundaryCheckTool" not in kwargs:
141  from InDetConfig.InDetBoundaryCheckToolConfig import (
142  ITkBoundaryCheckToolCfg)
143  kwargs.setdefault("BoundaryCheckTool", acc.popToolsAndMerge(
144  ITkBoundaryCheckToolCfg(flags)))
145 
146  kwargs.setdefault("DoHoleSearch", True)
147 
148  ITkTrackFitter = acc.popToolsAndMerge(
149  ITkTrackFitterCfg(flags, name, **kwargs))
150  ClusterSplitProbabilityName = ("ITkAmbiguityProcessorSplitProb" +
151  flags.Tracking.ActiveConfig.extension)
152 
153  if flags.Tracking.trackFitterType==TrackFitterType.DistributedKalmanFilter:
154  ITkTrackFitter.RecalibratorHandle.BroadPixelClusterOnTrackTool.ClusterSplitProbabilityName = ClusterSplitProbabilityName
155 
156  elif flags.Tracking.trackFitterType==TrackFitterType.GlobalChi2Fitter:
157  ITkTrackFitter.ClusterSplitProbabilityName = ClusterSplitProbabilityName
158  ITkTrackFitter.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
159  ITkTrackFitter.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
160 
161  elif flags.Tracking.trackFitterType==TrackFitterType.GaussianSumFilter:
162  ITkTrackFitter.ToolForROTCreation.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName
163 
164  acc.setPrivateTools(ITkTrackFitter)
165  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetBoundaryCheckToolConfig.ITkBoundaryCheckToolCfg
def ITkBoundaryCheckToolCfg(flags, name='ITkBoundaryCheckTool', **kwargs)
Definition: InDetBoundaryCheckToolConfig.py:102
python.CommonTrackFitterConfig.ITkTrackFitterCfg
def ITkTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs)
ITk configs #####.
Definition: CommonTrackFitterConfig.py:126
python.CommonTrackFitterConfig.InDetTrackFitterBTCfg
def InDetTrackFitterBTCfg(flags, name='InDetTrackFitterBT', **kwargs)
Definition: CommonTrackFitterConfig.py:112
python.CommonTrackFitterConfig.InDetTrackFitterLowPtAmbiCfg
def InDetTrackFitterLowPtAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs)
Definition: CommonTrackFitterConfig.py:91
python.CommonTrackFitterConfig.InDetTrackFitterCfg
def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs)
InDet configs #####.
Definition: CommonTrackFitterConfig.py:10
python.CommonTrackFitterConfig.InDetTrackFitterTRTCfg
def InDetTrackFitterTRTCfg(flags, name='InDetTrackFitterTRT', **kwargs)
Definition: CommonTrackFitterConfig.py:58
python.CommonTrackFitterConfig.InDetTrackFitterLowPtHoleSearchCfg
def InDetTrackFitterLowPtHoleSearchCfg(flags, name='InDetTrackFitterHoleSearch', **kwargs)
Definition: CommonTrackFitterConfig.py:76
python.CommonTrackFitterConfig.InDetTrackFitterLowPtCfg
def InDetTrackFitterLowPtCfg(flags, name='InDetTrackFitter', **kwargs)
Definition: CommonTrackFitterConfig.py:67
python.InDetBoundaryCheckToolConfig.InDetBoundaryCheckToolCfg
def InDetBoundaryCheckToolCfg(flags, name='InDetBoundarySearchTool', **kwargs)
Definition: InDetBoundaryCheckToolConfig.py:7
python.CommonTrackFitterConfig.InDetTrackFitterAmbiCfg
def InDetTrackFitterAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs)
Definition: CommonTrackFitterConfig.py:36
python.TrkGlobalChi2FitterConfig.InDetGlobalChi2FitterLowPtCfg
def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', **kwargs)
Definition: TrkGlobalChi2FitterConfig.py:156
python.CommonTrackFitterConfig.ITkTrackFitterAmbiCfg
def ITkTrackFitterAmbiCfg(flags, name='ITkTrackFitterAmbi', **kwargs)
Definition: CommonTrackFitterConfig.py:137
python.CommonTrackFitterConfig.InDetTrackFitterHoleSearchCfg
def InDetTrackFitterHoleSearchCfg(flags, name='InDetTrackFitterHoleSearch', **kwargs)
Definition: CommonTrackFitterConfig.py:21