ATLAS Offline Software
MuonSegmentFindingConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 # This file configures the Muon segment finding. It is based on a few files in the old configuration system:
4 # Tools, which are configured here:
5 # https://gitlab.cern.ch/atlas/athena/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
6 # https://gitlab.cern.ch/atlas/athena/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MooreTools.py
7 # from https://gitlab.cern.ch/atlas/athena/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/CscTools.py
8 
9 # Core
10 from AthenaConfiguration.ComponentFactory import CompFactory
11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 from AthenaConfiguration.Enums import BeamType, Format
13 
14 #Local
15 from TrkConfig.TrkGlobalChi2FitterConfig import MCTBFitterCfg, MCTBSLFitterCfg, MCTBSLFitterMaterialFromTrackCfg
16 from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg, MuonTrackCleanerCfg, MuonEDMPrinterToolCfg
17 from MuonConfig.MuonCondAlgConfig import MuonStationIntersectCondAlgCfg
18 from TrkConfig.AtlasExtrapolatorConfig import MuonStraightLineExtrapolatorCfg
19 from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtCalibWindowNumber
20 
21 
22 def MuonCombinePatternToolCfg(flags, name="MuonCombinePatternTool",**kwargs):
23  result = ComponentAccumulator()
24  kwargs.setdefault("UseTightAssociation",flags.Beam.Type is BeamType.Collisions)
25  kwargs.setdefault("UseCosmics", flags.Beam.Type is not BeamType.Collisions )
26  the_tool = CompFactory.MuonCombinePatternTool(name,**kwargs)
27  result.setPrivateTools(the_tool)
28  return result
29 
30 def MuonHoughPatternToolCfg(flags, name = "MuonHoughPatternTool",**kwargs):
31  result = ComponentAccumulator()
32  if flags.Beam.Type is not BeamType.Collisions:
33  kwargs.setdefault("UseCosmics", True)
34  kwargs.setdefault("NumberOfMaximaPerIterations", 1)
35  the_tool = CompFactory.MuonHoughPatternTool(name,**kwargs)
36  result.setPrivateTools(the_tool)
37  return result
38 def MuonHoughPatternFinderToolCfg(flags, name = "MuonHoughPatternFinderTool", **kwargs):
39  result = ComponentAccumulator()
40  if flags.Beam.Type is BeamType.Collisions:
41  kwargs.setdefault("MDT_TDC_cut", False)
42  kwargs.setdefault("RecordAll",False)
43  kwargs.setdefault("muonHoughPatternTool", result.popToolsAndMerge(MuonHoughPatternToolCfg(flags)) )
44  kwargs.setdefault("muonCombinePatternTool", result.popToolsAndMerge(MuonCombinePatternToolCfg(flags)) )
45  kwargs.setdefault("DoSummary", flags.Muon.printSummary)
46  the_tool = CompFactory.Muon.MuonHoughPatternFinderTool(name,**kwargs)
47  result.setPrivateTools(the_tool)
48  return result
49 
51  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
52  kwargs.setdefault("TimingMode", 3)
53  kwargs.setdefault("DoTofCorrection", True)
54  kwargs.setdefault("TimeWindowSetting", MdtCalibWindowNumber('Collision_data'))
55  acc = MuonClusterOnTrackCreatorCfg(flags, **kwargs)
56  return acc
57 
58 def AdjustableT0Tool(flags,**kwargs):
59  # NB: the following 'ifs' are the same as in the MdtDriftCircleOnTrackCreator, so that the ToF setting is the same
60  if flags.Beam.Type is BeamType.Cosmics:
61  kwargs.setdefault("DoTof", 0)
62  else: # collisions simulation final precise cuts
63  kwargs.setdefault("DoTof", 1)
64 
65  AdjT0__AdjustableT0Tool=CompFactory.getComp("AdjT0::AdjustableT0Tool")
66  return AdjT0__AdjustableT0Tool(**kwargs)
67 
68 def MdtMathSegmentFinderCfg(flags,name="MdtMathSegmentFinder", **kwargs):
69  # beamType = getattr(extraFlags,"beamType", beamFlags.beamType())
70  # enableCurvedSegmentFinding = getattr(extraFlags,"enableCurvedSegmentFinding", muonStandaloneFlags.enableCurvedSegmentFinding())
71  result = ComponentAccumulator()
72 
73  doSegmentT0Fit = kwargs.pop('doSegmentT0Fit', flags.Muon.doSegmentT0Fit)
74 
75  kwargs.setdefault("FinderDebugLevel", 0) # This is just to avoid that the tool seems unconfigured. Real fix is to use default name.
76 
77  if doSegmentT0Fit and not (flags.Muon.MuonTrigger and flags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics]):
78  kwargs.setdefault("AssociationRoadWidth", 3.)
79  kwargs.setdefault("MDTAssocationPullcut", 3.)
80  kwargs.setdefault("RecoverMdtOutliers", False)
81  kwargs.setdefault("DCFitProvider", result.popToolsAndMerge(MdtSegmentT0FitterCfg(flags) ) )
82 
83  if flags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics] or flags.Input.isMC is False:
84  kwargs.setdefault("AssociationRoadWidth", 2.)
85  kwargs.setdefault("MDTAssocationPullcut", 4.)
86  kwargs.setdefault("RecoverMdtOutliers", True )
87 
88 
89  if flags.Muon.enableCurvedSegmentFinding:
90  kwargs.setdefault("DoCurvedSegmentFinder",True)
91  result.setPrivateTools(CompFactory.Muon.MdtMathSegmentFinder(name=name,**kwargs))
92  return result
93 
94 def MuonSegmentFittingToolCfg(flags, name = "MuonSegmentFittingTool", **kwargs):
95  from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
96  result = RungeKuttaPropagatorCfg(flags, name='AtlasRungeKuttaPropagator')
97  kwargs.setdefault("SLPropagator",
98  result.popPrivateTools())
99  kwargs.setdefault("SLFitter",
100  result.popToolsAndMerge(MCTBSLFitterCfg(flags)))
101  kwargs.setdefault("CurvedFitter",
102  result.popToolsAndMerge(MCTBFitterCfg(flags)))
103  kwargs.setdefault("TrackCleaner", result.popToolsAndMerge(MuonTrackCleanerCfg(flags)))
104 
105  result.setPrivateTools(CompFactory.Muon.MuonSegmentFittingTool(name,**kwargs))
106  return result
107 
108 def MdtSegmentT0FitterCfg(flags, name="MdtSegmentT0Fitter", **kwargs):
109  result = ComponentAccumulator()
110  kwargs.setdefault("FloatSegDirection", flags.Beam.Type is BeamType.Cosmics)
111  result.setPrivateTools(CompFactory.TrkDriftCircleMath.MdtSegmentT0Fitter(name, **kwargs))
112  return result
113 
115  name='DCMathSegmentMaker',
116  doSegmentT0Fit=False,
117  **kwargs):
118 
119  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtDriftCircleOnTrackCreatorCfg, TriggerChamberClusterOnTrackCreatorCfg, MdtCalibToolForRotsCfg
120  from MuonCombinedConfig.MuonCombinedRecToolsConfig import MuonSegmentSelectionToolCfg
121 
122  # This in general is a pretty problematic piece of code. It seems to have a lot of potential issues, because it has loads of mutables / subtools etc
123  # https://gitlab.cern.ch/atlas/athena/blob/master/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/DCMathSegmentMaker/src/DCMathSegmentMaker.h
124  # ToolHandle<IMdtDriftCircleOnTrackCreator> m_mdtCreator; //<! mdt rio ontrack creator
125  # ToolHandle<IMdtDriftCircleOnTrackCreator> m_mdtCreatorT0; //<! mdt rio ontrack creator
126  # ToolHandle<IMuonClusterOnTrackCreator> m_clusterCreator; //<! cluster rio ontrack creator
127  # ToolHandle<IMuonCompetingClustersOnTrackCreator> m_compClusterCreator; //<! competing clusters rio ontrack creator
128  # ToolHandle<MuonEDMPrinterTool> m_printer; //<! printer helper tool
129  # ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc; //<! printer helper tool
130  # ToolHandle<IMdtSegmentFinder> m_segmentFinder; //<! segment finder tool MdtSegmentFinder
131  # ToolHandle<IMuonSegmentFittingTool> m_segmentFitter; //<! segment fitting tool
132  # ToolHandle<IMuonSegmentSelectionTool> m_segmentSelectionTool; //<! segment selection tool
133  # ToolHandle<IDCSLFitProvider> m_dcslFitProvider;
134 
135  result=ComponentAccumulator()
136  # Won't explicitly configure MuonIdHelperSvc
137  from MuonConfig.MuonRecToolsConfig import MuonEDMHelperSvcCfg
138  kwargs.setdefault("edmHelper", result.getPrimaryAndMerge(MuonEDMHelperSvcCfg(flags)))
139  kwargs.setdefault("RefitSegment", True)
140  kwargs.setdefault("AssumePointingPhi", flags.Beam.Type is not BeamType.Cosmics)
141  kwargs.setdefault("OutputFittedT0", True)
142 
143  kwargs.setdefault("DCFitProvider", result.popToolsAndMerge(MdtSegmentT0FitterCfg(flags)))
144  #kwargs.setdefault("CurvedErrorScaling", False)
145  kwargs.setdefault("UsePreciseError", True)
146  kwargs.setdefault("SinAngleCut", 0.4)
147 
148  doSegmentT0Fit = doSegmentT0Fit or flags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics]
149  if flags.Beam.Type in [BeamType.SingleBeam, BeamType.Cosmics]:
150  kwargs.setdefault("SinAngleCut", 0.9)
151  kwargs.setdefault("AddUnassociatedPhiHits", True)
152  kwargs.setdefault("RecoverBadRpcCabling", True)
153  kwargs.setdefault("CurvedErrorScaling", False)
154  elif not flags.Input.isMC: # collisions real data
155  kwargs.setdefault("AddUnassociatedPhiHits", True)
156  kwargs.setdefault("RecoverBadRpcCabling", True)
157 
158  if flags.Muon.updateSegmentSecondCoordinate:
159  kwargs.setdefault("UpdatePhiUsingPhiHits",True)
160 
161  if flags.Muon.enableCurvedSegmentFinding:
162  kwargs.setdefault("CurvedErrorScaling", False)
163  kwargs.setdefault("PreciseErrorScale", 1)
164  kwargs.setdefault("UsePreciseError", True)
165 
166  # Now stuff that wasn't explicitly configured before.
167 
168  result.merge(MuonStationIntersectCondAlgCfg(flags))
169 
170  kwargs.setdefault("MdtCreator", result.getPrimaryAndMerge(MdtDriftCircleOnTrackCreatorCfg(flags)))
171  # Set MdtCreatorT0 below
172  kwargs.setdefault("MuonCompetingClustersCreator", result.getPrimaryAndMerge(TriggerChamberClusterOnTrackCreatorCfg(flags)))
173  edm_printer = result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags) ) # Needed again below
174  kwargs.setdefault("EDMPrinter", edm_printer )
175  if doSegmentT0Fit:
176  mdt_dcot_CA = MdtDriftCircleOnTrackCreatorCfg(flags,
177  name="MdtDriftCircleOnTrackCreatorAdjustableT0",
178  TimingMode=3,
179  CalibrationTool = result.popToolsAndMerge(MdtCalibToolForRotsCfg(flags,
180  DoTofCorrection=True,
181  TimeWindowSetting=MdtCalibWindowNumber('Collision_data'))))
182  kwargs.setdefault("MdtCreatorT0", result.getPrimaryAndMerge(mdt_dcot_CA))
183  kwargs.setdefault("MdtSegmentFinder", result.getPrimaryAndMerge(MdtMathSegmentFinderCfg(flags, name='MdtMathT0FitSegmentFinder', doSegmentT0Fit=True)))
184  else:
185  kwargs.setdefault("MdtCreatorT0", "")
186  kwargs.setdefault("MdtSegmentFinder", result.getPrimaryAndMerge(MdtMathSegmentFinderCfg(flags)) )
187 
188  kwargs.setdefault("SegmentFitter", result.getPrimaryAndMerge(MuonSegmentFittingToolCfg(flags, name="MuonSegmentFittingTool")))
189 
190  kwargs.setdefault("SegmentSelector", result.popToolsAndMerge(MuonSegmentSelectionToolCfg(flags)))
191 
192  dc_segment_maker = CompFactory.Muon.DCMathSegmentMaker(name=name, **kwargs)
193  result.setPrivateTools(dc_segment_maker)
194  return result
195 
196 
197 def CscAlignmentTool(flags, **kwargs):
198 
199  CscAlignmentTool=CompFactory.CscAlignmentTool
200  etaposAlignConsts = [ # 1st, 2nd, 3rd, 4th layer
201  0.0, -0.0902347, -0.0984321, -0.141175, #sector -16
202  0.0, -0.166412, -0.150399, -0.18592, #sector -15
203  0.0, -0.0544449, 0.101448, -0.0433321, #sector -14
204  0.0, -0.047769, -0.156247, -0.0854826, #sector -13
205  0.0, -0.0970101, -0.227578, -0.301079, #sector -12
206  0.0, -0.152912, -0.365218, -0.314042, #sector -11
207  0.0, 0.0338696, -0.264766, -0.224567, #sector -10
208  0.0, -0.107372, -0.16099, -0.13508, #sector -9
209  0.0, -0.0663979, -0.0312645, -0.130711, #sector -8
210  0.0, -0.249974, -0.269372, -0.353648, #sector -7
211  0.0, -0.194175, 0.0238348, -0.188433, #sector -6
212  0.0, 0.0977346, 0.0492461, 0.150434, #sector -5
213  0.0, 0.0444637, -0.0871214, -0.0627541, #sector -4
214  0.0, 0.0347245, -0.0226186, -0.0826478, #sector -3
215  0.0, -0.00408879, -0.0638005, -0.206868, #sector -2
216  0.0, 0.0331328, 0.0402103, 0.118611, #sector -1
217  0.0, -0.0634537, -0.0516743, 0.0045364, #sector 1
218  0.0, -0.0957718, -0.235246, -0.439811, #sector 2
219  0.0, -0.163504, -0.0129115, 0.00140143, #sector 3
220  0.0, -0.182903, -0.0503858, -0.207799, #sector 4
221  0.0, -0.0970927, 0, 0.124744, #sector 5
222  0.0, -0.0169602, -0.0527447, 0.0319154, #sector 6
223  0.0, -0.176499, -0.196542, -0.0846979, #sector 7
224  0.0, 0.0589994, 0.0131431, 0.0461769, #sector 8
225  0.0, -0.0237507, -0.0307316, 0.144429, #sector 9
226  0.0, -0.0144483, -0.0328234, -0.00553684, #sector 10
227  0.0, 0.113188, -0.176182, 0.0635706, #sector 11
228  0.0, -0.109776, -0.727705, -0.756824, #sector 12
229  0.0, -0.0553061, -0.056162, -0.0336955, #sector 13
230  0.0, -0.070077, -0.127203, -0.140082, #sector 14
231  0.0, -0.0844368, -0.0735331, -0.016667, #sector 15
232  0.0, 0.0426443, -0.153659, -0.129711, #sector 16
233  ]
234 
235  phiposAlignConsts = [ # 1st, 2nd, 3rd, 4th layer
236  0.0, 0.0, 0.0, 0.0, #-16
237  0.0, 0.0, 0.0, 0.0,
238  0.0, 0.0, 0.0, 0.0, #-14
239  0.0, 0.0, 0.0, 0.0,
240  0.0, 0.0, 0.0, 0.0, #-12
241  0.0, 0.0, 0.0, 0.0,
242  0.0, 0.0, 0.0, 0.0, #-10
243  0.0, 0.0, 0.0, 0.0,
244  0.0, 0.0, 0.0, 0.0, #-8
245  0.0, 0.0, 0.0, 0.0,
246  0.0, 0.0, 0.0, 0.0, #-6
247  0.0, 0.0, 0.0, 0.0,
248  0.0, 0.0, 0.0, 0.0, #-4
249  0.0, 0.0, 0.0, 0.0,
250  0.0, 0.0, 0.0, 0.0, #-2
251  0.0, 0.0, 0.0, 0.0, #-1
252  0.0, 0.0, 0.0, 0.0, # sector =1 and above...
253  0.0, 0.0, 0.0, 0.0, #2
254  0.0, 0.0, 0.0, 0.0, #3
255  0.0, 0.0, 0.0, 0.0, #4
256  0.0, 0.0, 0.0, 0.0,
257  0.0, 0.0, 0.0, 0.0, #6
258  0.0, 0.0, 0.0, 0.0,
259  0.0, 0.0, 0.0, 0.0, #8
260  0.0, 0.0, 0.0, 0.0,
261  0.0, 0.0, 0.0, 0.0, #10
262  0.0, 0.0, 0.0, 0.0,
263  0.0, 0.0, 0.0, 0.0, #12
264  0.0, 0.0, 0.0, 0.0,
265  0.0, 0.0, 0.0, 0.0, #14
266  0.0, 0.0, 0.0, 0.0,
267  0.0, 0.0, 0.0, 0.0 #16
268  ]
269  kwargs.setdefault("phiposAlignConsts", phiposAlignConsts)
270  kwargs.setdefault("etaposAlignConsts", etaposAlignConsts)
271  kwargs.setdefault("useAlignment", flags.Input.isMC is False and flags.Muon.Align.UseILines is False )
272 
273  return CscAlignmentTool(**kwargs)
274 
275 
276 def QratCscClusterFitterCfg(flags, **kwargs):
277  # This is based on https://gitlab.cern.ch/atlas/athena/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/CscTools.py#L151
278  QratCscClusterFitter=CompFactory.QratCscClusterFitter
279  result=ComponentAccumulator()
280  qratcor_css_eta = [
281  0.000000, 0.000000, 0.000000, 0.000000, 0.0699381, 0.178291, 0.271303, 0.345611,
282  0.400738, 0.452451, 0.493772, 0.526792, 0.553845, 0.580111, 0.603337, 0.624749,
283  0.646065, 0.663924, 0.681897, 0.701345, 0.716067, 0.730324, 0.743168, 0.760598,
284  0.773341, 0.786406, 0.798358, 0.811339, 0.820949, 0.832676, 0.843917, 0.85412,
285  0.863914, 0.873229, 0.88251, 0.892856, 0.903296, 0.910067, 0.917892, 0.928028,
286  0.93461, 0.943679, 0.951617, 0.958326, 0.964428, 0.97341, 0.978204, 0.987075,
287  0.994789, 1.000000
288  ]
289  qratcor_csl_eta = [
290  0.000000, 0.000000, 0.000000, 0.000000, 0.0290177, 0.0834867, 0.188683, 0.269967,
291  0.334887, 0.393036, 0.440317, 0.481884, 0.51725, 0.545107, 0.56959, 0.592327,
292  0.614087, 0.635344, 0.655252, 0.672766, 0.690929, 0.707293, 0.722742, 0.738323,
293  0.753562, 0.76749, 0.780983, 0.79354, 0.806521, 0.818085, 0.829987, 0.841443,
294  0.853723, 0.863393, 0.87431, 0.883139, 0.892962, 0.902803, 0.911276, 0.921417,
295  0.929387, 0.938106, 0.947072, 0.954406, 0.961692, 0.97055, 0.978517, 0.985133,
296  0.992257, 1.000000
297  ]
298  kwargs.setdefault("qratcor_csl_eta",qratcor_csl_eta)
299  kwargs.setdefault("qratcor_css_eta",qratcor_css_eta)
300  csc_align_tool = CscAlignmentTool(flags)
301  kwargs.setdefault("CscAlignmentTool", csc_align_tool )
302  result.setPrivateTools(QratCscClusterFitter(**kwargs))
303 
304  return result
305 
306 def CalibCscStripFitterCfg(flags, name = "CalibCscStripFitter",**kwargs):
307  CalibCscStripFitter=CompFactory.CalibCscStripFitter
308  from MuonConfig.MuonCalibrationConfig import CscCalibToolCfg
309  result = CscCalibToolCfg(flags)
310  kwargs.setdefault("cscCalibTool", result.popPrivateTools() )
311  result.setPrivateTools(CalibCscStripFitter(name=name,**kwargs))
312  return result
313 
314 def CscClusterUtilToolCfg(flags, name='CscClusterUtilTool', **kwargs):
315  CscClusterUtilTool=CompFactory.CscClusterUtilTool
316 
317  result = CalibCscStripFitterCfg(flags)
318  kwargs.setdefault("strip_fitter", result.popPrivateTools() )
319 
320  acc = QratCscClusterFitterCfg(flags)
321  kwargs.setdefault("precision_fitter", acc.popPrivateTools() )
322  result.setPrivateTools(CscClusterUtilTool(name=name, **kwargs))
323  result.merge(acc)
324  return result
325 
326 def CscSegmentUtilToolCfg(flags, name='CscSegmentUtilTool', **kwargs):
327  CscSegmentUtilTool=CompFactory.CscSegmentUtilTool
328  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import CscClusterOnTrackCreatorCfg
329 
330  result=CscClusterOnTrackCreatorCfg(flags)
331  csc_cluster_creator = result.popPrivateTools()
332  kwargs.setdefault("rot_creator", csc_cluster_creator )
333 
334  result.setPrivateTools(CscSegmentUtilTool( name=name, **kwargs))
335  return result
336 
337 def Csc2dSegmentMakerCfg(flags, name= "Csc2dSegmentMaker", **kwargs):
338  Csc2dSegmentMaker=CompFactory.Csc2dSegmentMaker
339  result=ComponentAccumulator()
340  if 'segmentTool' not in kwargs:
341  acc = CscSegmentUtilToolCfg(flags)
342  csc_segment_util_tool = acc.getPrimary()
343  result.addPublicTool(csc_segment_util_tool)
344  kwargs.setdefault('segmentTool', csc_segment_util_tool)
345  result.merge(acc)
346 
347  kwargs.setdefault("printerTool", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags) ))
348 
349  csc_segment_maker = Csc2dSegmentMaker(name=name, **kwargs)
350  result.setPrivateTools(csc_segment_maker)
351 
352  return result
353 
354 
355 def Csc4dSegmentMakerCfg(flags, name= "Csc4dSegmentMaker", **kwargs):
356  result=CscSegmentUtilToolCfg(flags)
357  kwargs.setdefault("segmentTool", result.getPrimary() )
358  kwargs.setdefault("Printer", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags)) )
359  result.setPrivateTools(CompFactory.Csc4dSegmentMaker(name=name, **kwargs))
360  return result
361 
362 def MuonNSWSegmentFinderToolCfg(flags, name='MuonNSWSegmentFinderTool', **kwargs):
363 
364  from MuonConfig.MuonRecToolsConfig import MuonTrackToSegmentToolCfg
365  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg, MuonTrackSummaryToolCfg
366  result=ComponentAccumulator()
367  kwargs.setdefault("IPConstraint", flags.Beam.Type is BeamType.Collisions)
368  kwargs.setdefault('SegmentAmbiguityTool', result.popToolsAndMerge( MuonAmbiProcessorCfg(flags) ) )
369  kwargs.setdefault('SLFitter', result.popToolsAndMerge( MCTBSLFitterMaterialFromTrackCfg(flags) ) )
370  kwargs.setdefault("TrackToSegmentTool", result.popToolsAndMerge( MuonTrackToSegmentToolCfg(flags) ) )
371  kwargs.setdefault("Printer", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags)) )
372  if flags.Beam.Type is not BeamType.Collisions:
373  kwargs.setdefault("MmOccupancyBinWidth", 2048)
374 
375  kwargs.setdefault('TrackCleaner', result.popToolsAndMerge( MuonTrackCleanerCfg(flags, name='MuonTrackCleaner_seg',seg=True) ) )
376  if flags.Muon.MuonTrigger:
377  kwargs.setdefault('TrackSummaryTool', result.popToolsAndMerge( MuonTrackSummaryToolCfg(flags, name='MuonTrackSummary') ) )
378  else:
379  kwargs.setdefault('TrackSummaryTool', result.popToolsAndMerge( MuonCombinedTrackSummaryToolCfg(flags, name='CombinedMuonTrackSummary') ) )
380 
381  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
382  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)) )
383 
384  result.setPrivateTools(CompFactory.Muon.MuonNSWSegmentFinderTool(name,**kwargs))
385  return result
386 
387 def MuonPRDSelectionToolCfg( flags, name="MuonPRDSelectionTool", **kwargs):
388  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg, MdtDriftCircleOnTrackCreatorCfg
389  # Won't explicitly configure MuonIdHelperSvc
390  result = ComponentAccumulator()
391  kwargs.setdefault("MdtDriftCircleOnTrackCreator", result.popToolsAndMerge(MdtDriftCircleOnTrackCreatorCfg(flags)))
392  kwargs.setdefault("MuonClusterOnTrackCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
393  # Won't explicitly configure MuonRecoValidationTool (but it would need configuration if used)
394  the_tool = CompFactory.Muon.MuonPRDSelectionTool(name, **kwargs)
395  result.setPrivateTools(the_tool)
396  return result
397 
398 
399 def MuonLayerHoughToolCfg(flags, name = "MuonLayerHoughTool" , **kwargs):
400  result = ComponentAccumulator()
401  layer_hough_tool = CompFactory.Muon.MuonLayerHoughTool(name, **kwargs)
402  result.setPrivateTools(layer_hough_tool)
403  return result
404 
405 def MuonLayerHoughAlgCfg(flags, name = "MuonLayerHoughAlg", **kwargs):
406  result = ComponentAccumulator()
407 
408  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
409  kwargs.setdefault("CscPrepDataContainer", "CSC_Clusters" if flags.Detector.EnableCSC else "")
410  kwargs.setdefault("sTgcPrepDataContainer", "STGC_Measurements" if flags.Detector.EnablesTGC else "")
411  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
412  kwargs.setdefault("MMPrepDataContainer", "MM_Measurements" if flags.Detector.EnableMM else "")
413  kwargs.setdefault("PrintSummary", flags.Muon.printSummary)
414  kwargs.setdefault("printerTool", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags) ))
415 
416  hough_tool = result.getPrimaryAndMerge(MuonLayerHoughToolCfg(flags,
417  name = "MuonLayerHoughTool")) if flags.Beam.Type is not BeamType.Cosmics else \
418  result.popToolsAndMerge(MuonHoughPatternFinderToolCfg(flags, name="MuonHoughPatternFinderTool"))
419  kwargs.setdefault("MuonLayerScanTool", hough_tool)
420 
421  the_alg = CompFactory.MuonLayerHoughAlg(name = name,**kwargs)
422  result.addEventAlgo( the_alg, primary = True )
423  return result
424 
425 
426 def MuonPatternCalibrationCfg(flags, name="MuonPatternCalibration", **kwargs):
427  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg, MdtDriftCircleOnTrackCreatorCfg, MdtCalibToolForRotsCfg
428  result = ComponentAccumulator()
429 
430  if "MdtCreator" not in kwargs:
431  # on data configure a MdtDriftCircleOnTrackCreator for the segment finding with reduced errors
432  # when using the t0 refit enlarge the time window
433  if not flags.Input.isMC and flags.Beam.Type is BeamType.Collisions:
434  if flags.Muon.doSegmentT0Fit:
435  timeWindowSetting = MdtCalibWindowNumber('Collision_t0fit')
436  else:
437  timeWindowSetting = MdtCalibWindowNumber('Collision_data')
438  acc = MdtDriftCircleOnTrackCreatorCfg(flags, name="MdtDriftCircleOnTrackCreatorSegmentFinding",
439  CreateTubeHit = False,
440  CalibrationTool = result.popToolsAndMerge(MdtCalibToolForRotsCfg(flags,
441  TimeWindowSetting = timeWindowSetting))
442  )
443  else:
444  # I think we need to configure a 'default' version of the MdtDriftCircleOnTrackCreator here
446 
447  kwargs.setdefault('MdtCreator', result.popToolsAndMerge(acc))
448 
449  kwargs.setdefault('ClusterCreator', result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
450  kwargs.setdefault("Printer", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags) ))
451  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
452 
453  if flags.Beam.Type is BeamType.Cosmics:
454  kwargs.setdefault("AngleCutPhi", 1e9)
455  kwargs.setdefault("DropDistance", 100000000.)
456  # Won't explicitly configure MuonIdHelperSvc
457  result.setPrivateTools( CompFactory.Muon.MuonPatternCalibration(name, **kwargs) )
458  return result
459 
460 def MuonSegmentFinderNCBAlgCfg(flags, name="MuonSegmentMaker_NCB", **kwargs):
461  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
462  result = ComponentAccumulator()
463  kwargs.setdefault("doStgcSegments", flags.Detector.EnablesTGC)
464  kwargs.setdefault("doMMSegments", flags.Detector.EnableMM)
465  kwargs.setdefault("doMdtSegments", False)
466  kwargs.setdefault("CSC_clusterkey", "CSC_Clusters" if flags.Detector.EnableCSC else "")
467 
468  kwargs.setdefault("SegmentCollectionName", "NCB_TrackMuonSegments")
469 
470  kwargs.setdefault("NSWSegmentCollectionName", "")
471  kwargs.setdefault("SegmentQuality", 1)
472 
473 
474 
475  if flags.Detector.EnableCSC:
476  csc_segment_util_tool = result.popToolsAndMerge(CscSegmentUtilToolCfg(flags,
477  name='CscSegmentUtilTool_NCB',
478  TightenChi2 = False,
479  IPconstraint=False))
480 
481  csc_2d_segment_maker = result.popToolsAndMerge(Csc2dSegmentMakerCfg(flags,
482  name='Csc2dSegmentMaker_NCB',
483  segmentTool=csc_segment_util_tool))
484 
485  csc_4d_segment_maker = result.popToolsAndMerge(Csc4dSegmentMakerCfg(flags,
486  name='Csc4dSegmentMaker_NCB',
487  segmentTool=csc_segment_util_tool))
488 
489  kwargs.setdefault("Csc2dSegmentMaker", csc_2d_segment_maker)
490  kwargs.setdefault("Csc4dSegmentMaker", csc_4d_segment_maker)
491 
492  if flags.Detector.EnablesTGC or flags.Detector.EnableMM:
493  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
494  # Configure subtools needed by MuonNSWSegmentFinderTool
495  extrapolator = result.getPrimaryAndMerge(MuonStraightLineExtrapolatorCfg(flags))
496  result.addPublicTool(extrapolator)
497  cleaner = result.popToolsAndMerge( MuonTrackCleanerCfg(flags, name='MuonTrackCleaner_seg',seg=True) )
498  segment_finder = result.popToolsAndMerge(MuonNSWSegmentFinderToolCfg(flags,
499  name ="MuonNSWSegmentFinderTool",
500  TrackCleaner = cleaner,
501  SeedMMStereos = False,
502  IPConstraint = False,
503  CaloConstraint = True))
504  kwargs.setdefault("NSWSegmentMaker", segment_finder)
505  the_alg = CompFactory.MuonSegmentFinderAlg(name, **kwargs)
506  result.addEventAlgo(the_alg, primary = True)
507  return result
508 
509 def MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker", **kwargs):
510  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
511  result = ComponentAccumulator()
512  # Won't configure MuonIdHelperSvc
513  kwargs.setdefault("EDMPrinter", result.popToolsAndMerge(MuonEDMPrinterToolCfg(flags)) )
514 
515  # for test purposes allow parallel running of truth segment finding and new segment finder
516  kwargs.setdefault('MuonPatternCalibration', result.popToolsAndMerge( MuonPatternCalibrationCfg(flags) ) )
517  segment_maker = result.getPrimaryAndMerge(DCMathSegmentMakerCfg(flags,name="DCMathSegmentMaker"))
518  kwargs.setdefault('SegmentMaker', segment_maker)
519  # Not yet configuring MuonSegmentOverlapRemovalTool
520 
521  if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
522  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
523 
524  # Configure subtools needed by MuonNSWSegmentFinderTool
525  extrapolator = result.getPrimaryAndMerge(MuonStraightLineExtrapolatorCfg(flags))
526  result.addPublicTool(extrapolator)
527  cleaner = result.popToolsAndMerge( MuonTrackCleanerCfg(flags, name='MuonTrackCleaner_seg',seg=True) )
528  segment_finder = result.getPrimaryAndMerge(MuonNSWSegmentFinderToolCfg(flags, name ="MuonNSWSegmentFinderTool", TrackCleaner = cleaner))
529  kwargs.setdefault("NSWSegmentMaker", segment_finder)
530 
531 
532  if flags.Detector.EnableCSC:
533  kwargs.setdefault("Csc2dSegmentMaker", result.popToolsAndMerge(Csc2dSegmentMakerCfg(flags)))
534  kwargs.setdefault("Csc4dSegmentMaker", result.popToolsAndMerge(Csc4dSegmentMakerCfg(flags)))
535  else:
536  kwargs.setdefault("CSC_clusterkey", "")
537 
538  kwargs.setdefault("PrintSummary", flags.Muon.printSummary)
539  kwargs.setdefault("doStgcSegments", flags.Detector.EnablesTGC)
540  kwargs.setdefault("doMMSegments", flags.Detector.EnableMM)
541 
542  kwargs.setdefault("SegmentCollectionName", "TrackMuonSegments" if flags.Muon.segmentOrigin != "TruthTracking" else "ThirdChainSegments")
543 
544  the_alg = CompFactory.MuonSegmentFinderAlg( name, **kwargs)
545  result.addEventAlgo(the_alg)
546  return result
547 
548 def MuonSegmentFilterAlgCfg(flags, name="MuonSegmentFilterAlg", **kwargs):
549  result = ComponentAccumulator()
550  kwargs.setdefault("SegmentCollectionName", "TrackMuonSegments")
551 
552  kwargs.setdefault("FilteredCollectionName", "TrackMuonSegmentsEMEO")
553  the_alg = CompFactory.MuonSegmentFilterAlg(name, **kwargs)
554  result.addEventAlgo(the_alg)
555  return result
556 
557 def MuonSegmentCnvAlgCfg(flags, name="MuonSegmentCnvAlg", **kwargs):
558  result = ComponentAccumulator()
559  from MuonCombinedConfig.MuonCombinedRecToolsConfig import MuonSegmentConverterToolCfg
560  kwargs.setdefault("MuonSegmentConverterTool", result.popToolsAndMerge(MuonSegmentConverterToolCfg(flags)))
561  the_alg = CompFactory.xAODMaker.MuonSegmentCnvAlg(name, **kwargs)
562  result.addEventAlgo(the_alg, primary = True)
563  return result
564 
565 
566 def MuonSegmentFindingCfg(flags, setup_bytestream = True, cardinality=1):
567  """
568  Returns a CA setting up Muon Segment Finding
569  @param setup_bytestream if True and if Format.BS, sets up reading from bytestream. If False, disables setting up BS, even if Format.BS is True
570  """
571  # Set up some general stuff needed by muon reconstruction
572 
573  result = ComponentAccumulator()
574 
575  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
576  result.merge( MuonGeoModelCfg(flags) )
577  from MuonConfig.MuonRecToolsConfig import MuonEDMHelperSvcCfg
578  result.merge(MuonEDMHelperSvcCfg(flags))
579 
580  if (setup_bytestream):
581  # We need to be able to disable this when using MuonCalibStream,
582  # as the normal BS convertors clash with the special MCS converters.
583  if flags.Input.Format is Format.BS:
584  from MuonConfig.MuonBytestreamDecodeConfig import MuonByteStreamDecodersCfg
585  result.merge( MuonByteStreamDecodersCfg(flags) )
586 
587  if flags.Input.Format is Format.BS or 'StreamRDO' in flags.Input.ProcessingTags:
588  from MuonConfig.MuonRdoDecodeConfig import MuonRDOtoPRDConvertorsCfg
589  result.merge( MuonRDOtoPRDConvertorsCfg(flags) )
590 
591  # We need to add two algorithms - one for normal collisions, one for NCB
592  result.merge(MuonLayerHoughAlgCfg(flags))
593  result.merge(MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker"))
594 
595 
596  if flags.Muon.runCommissioningChain:
597  result.merge(MuonSegmentFilterAlgCfg(flags))
598 
599  if flags.Beam.Type is BeamType.Collisions:
600  result.merge(MuonSegmentFinderNCBAlgCfg(flags))
601  result.merge(MuonSegmentCnvAlgCfg(flags, "MuonSegmentCnvAlg_NCB",
602  SegmentContainerName="NCB_TrackMuonSegments",
603  xAODContainerName="NCB_MuonSegments") )
604 
605  if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
606  result.merge(MuonSegmentCnvAlgCfg(flags, "QuadNSW_MuonSegmentCnvAlg",
607  SegmentContainerName="TrackMuonNSWSegments",
608  xAODContainerName="xAODNSWSegments"))
609  return result
610 
611 if __name__=="__main__":
612  # To run this, do e.g.
613  # python -m MuonConfig.MuonSegmentFindingConfig --threads=1
614  from MuonConfig.MuonConfigUtils import SetupMuonStandaloneConfigFlags, SetupMuonStandaloneOutput, SetupMuonStandaloneCA
615 
617  cfg = SetupMuonStandaloneCA(args, flags)
618 
619  # Run the actual test.
621  cfg.merge(acc)
622 
623  # This is a temporary fix - it should go someplace central as it replaces the functionality of addInputRename from here:
624  # https://gitlab.cern.ch/atlas/athena/blob/master/Control/SGComps/python/AddressRemappingSvc.py
625  AddressRemappingSvc, ProxyProviderSvc=CompFactory.getComps("AddressRemappingSvc","ProxyProviderSvc",)
628  pps.ProviderNames += [ 'AddressRemappingSvc' ]
629  ars.TypeKeyRenameMaps += [ '%s#%s->%s' % ("Trk::SegmentCollection", "TrackMuonSegments", "TrackMuonSegments_old") ]
630  ars.TypeKeyRenameMaps += [ '%s#%s->%s' % ("Trk::SegmentCollection", "NCB_TrackMuonSegments", "NCB_TrackMuonSegments_old") ]
631 
632  cfg.addService(pps)
633  cfg.addService(ars)
634 
635  itemsToRecord = ["Trk::SegmentCollection#TrackMuonSegments", "Trk::SegmentCollection#NCB_TrackMuonSegments"]
636  SetupMuonStandaloneOutput(cfg, flags, itemsToRecord)
637 
638  # cfg.getService("StoreGateSvc").Dump = True
639  cfg.printConfig()
640  f=open("MuonSegmentFinding.pkl","wb")
641  cfg.store(f)
642  f.close()
643 
644  if not args.config_only:
645  sc = cfg.run(20)
646  if not sc.isSuccess():
647  import sys
648  sys.exit("Execution failed")
649  else:
650  cfg.wasMerged()
python.MuonSegmentFindingConfig.MdtSegmentT0FitterCfg
def MdtSegmentT0FitterCfg(flags, name="MdtSegmentT0Fitter", **kwargs)
Definition: MuonSegmentFindingConfig.py:108
python.MuonRecToolsConfig.MuonAmbiProcessorCfg
def MuonAmbiProcessorCfg(flags, name="MuonAmbiProcessor", **kwargs)
Definition: MuonRecToolsConfig.py:135
python.MuonSegmentFindingConfig.MuonHoughPatternFinderToolCfg
def MuonHoughPatternFinderToolCfg(flags, name="MuonHoughPatternFinderTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:38
AddressRemappingSvc
This class provides the interface to the LCG POOL persistency software.
Definition: AddressRemappingSvc.h:41
python.MuonCondAlgConfig.MuonStationIntersectCondAlgCfg
def MuonStationIntersectCondAlgCfg(flags, name='MuonStationIntersectCondAlg', **kwargs)
Definition: MuonCondAlgConfig.py:340
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.MuonSegmentFindingConfig.MuonSegmentFindingCfg
def MuonSegmentFindingCfg(flags, setup_bytestream=True, cardinality=1)
Definition: MuonSegmentFindingConfig.py:566
python.MuonSegmentFindingConfig.MuonHoughPatternToolCfg
def MuonHoughPatternToolCfg(flags, name="MuonHoughPatternTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:30
python.MuonSegmentFindingConfig.MdtDriftCircleOnTrackCreatorAdjustableT0Cfg
def MdtDriftCircleOnTrackCreatorAdjustableT0Cfg(flags, **kwargs)
Definition: MuonSegmentFindingConfig.py:50
python.MuonRIO_OnTrackCreatorToolConfig.MdtCalibWindowNumber
def MdtCalibWindowNumber(name)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:19
python.MuonRIO_OnTrackCreatorToolConfig.TriggerChamberClusterOnTrackCreatorCfg
def TriggerChamberClusterOnTrackCreatorCfg(flags, name="TriggerChamberClusterOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:25
python.MuonCalibrationConfig.CscCalibToolCfg
def CscCalibToolCfg(flags, name="CscCalibTool", **kwargs)
CSC calibration.
Definition: MuonCalibrationConfig.py:21
python.MuonRecToolsConfig.MuonEDMPrinterToolCfg
def MuonEDMPrinterToolCfg(flags, name="MuonEDMPrinterTool", **kwargs)
Definition: MuonRecToolsConfig.py:10
python.TrkTrackSummaryToolConfig.MuonTrackSummaryToolCfg
def MuonTrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs)
Definition: TrkTrackSummaryToolConfig.py:143
python.MuonSegmentFindingConfig.MuonNSWSegmentFinderToolCfg
def MuonNSWSegmentFinderToolCfg(flags, name='MuonNSWSegmentFinderTool', **kwargs)
Definition: MuonSegmentFindingConfig.py:362
ProxyProviderSvc
manages the address providers and add proxies on demand to the store
Definition: ProxyProviderSvc.h:43
python.MuonSegmentFindingConfig.AdjustableT0Tool
def AdjustableT0Tool(flags, **kwargs)
Definition: MuonSegmentFindingConfig.py:58
python.MuonConfigUtils.SetupMuonStandaloneCA
def SetupMuonStandaloneCA(args, flags)
Definition: MuonConfigUtils.py:29
python.MuonSegmentFindingConfig.QratCscClusterFitterCfg
def QratCscClusterFitterCfg(flags, **kwargs)
Definition: MuonSegmentFindingConfig.py:276
python.TrkGlobalChi2FitterConfig.MCTBSLFitterCfg
def MCTBSLFitterCfg(flags, name='MCTBSLFitter', **kwargs)
Definition: TrkGlobalChi2FitterConfig.py:253
python.TrkTrackSummaryToolConfig.MuonCombinedTrackSummaryToolCfg
def MuonCombinedTrackSummaryToolCfg(flags, name="CombinedMuonTrackSummary", **kwargs)
Definition: TrkTrackSummaryToolConfig.py:153
python.MuonSegmentFindingConfig.CscAlignmentTool
def CscAlignmentTool(flags, **kwargs)
Definition: MuonSegmentFindingConfig.py:197
python.MuonSegmentFindingConfig.CalibCscStripFitterCfg
def CalibCscStripFitterCfg(flags, name="CalibCscStripFitter", **kwargs)
Definition: MuonSegmentFindingConfig.py:306
python.TrkExRungeKuttaPropagatorConfig.RungeKuttaPropagatorCfg
def RungeKuttaPropagatorCfg(flags, name='AtlasRungeKuttaPropagator', **kwargs)
Definition: TrkExRungeKuttaPropagatorConfig.py:9
CscAlignmentTool
Definition: CscAlignmentTool.h:22
python.MuonSegmentFindingConfig.CscClusterUtilToolCfg
def CscClusterUtilToolCfg(flags, name='CscClusterUtilTool', **kwargs)
Definition: MuonSegmentFindingConfig.py:314
python.MuonSegmentFindingConfig.MuonSegmentFittingToolCfg
def MuonSegmentFittingToolCfg(flags, name="MuonSegmentFittingTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:94
python.MuonSegmentFindingConfig.MuonCombinePatternToolCfg
def MuonCombinePatternToolCfg(flags, name="MuonCombinePatternTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:22
CscSegmentUtilTool
Definition: CscSegmentUtilTool.h:35
python.MuonRIO_OnTrackCreatorToolConfig.CscClusterOnTrackCreatorCfg
def CscClusterOnTrackCreatorCfg(flags, name="CscClusterOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:34
QratCscClusterFitter
Definition: QratCscClusterFitter.h:26
python.MuonSegmentFindingConfig.MuonLayerHoughToolCfg
def MuonLayerHoughToolCfg(flags, name="MuonLayerHoughTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:399
python.MuonSegmentFindingConfig.MuonLayerHoughAlgCfg
def MuonLayerHoughAlgCfg(flags, name="MuonLayerHoughAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:405
python.MuonCombinedRecToolsConfig.MuonSegmentSelectionToolCfg
def MuonSegmentSelectionToolCfg(flags, name="MuonSegmentSelectionTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1042
python.MuonSegmentFindingConfig.MuonSegmentCnvAlgCfg
def MuonSegmentCnvAlgCfg(flags, name="MuonSegmentCnvAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:557
python.MuonRecToolsConfig.MuonEDMHelperSvcCfg
def MuonEDMHelperSvcCfg(flags, name="MuonEDMHelperSvc", **kwargs)
Definition: MuonRecToolsConfig.py:29
python.MuonConfigUtils.SetupMuonStandaloneOutput
def SetupMuonStandaloneOutput(cfg, flags, itemsToRecord)
Definition: MuonConfigUtils.py:48
Trk::open
@ open
Definition: BinningType.h:40
python.MuonRecToolsConfig.MuonTrackCleanerCfg
def MuonTrackCleanerCfg(flags, name="MuonTrackCleaner", seg=False, **kwargs)
Definition: MuonRecToolsConfig.py:150
python.TrkGlobalChi2FitterConfig.MCTBFitterCfg
def MCTBFitterCfg(flags, name='MCTBFitter', **kwargs)
Definition: TrkGlobalChi2FitterConfig.py:238
python.TrkGlobalChi2FitterConfig.MCTBSLFitterMaterialFromTrackCfg
def MCTBSLFitterMaterialFromTrackCfg(flags, name='MCTBSLFitterMaterialFromTrack', **kwargs)
Definition: TrkGlobalChi2FitterConfig.py:259
python.MuonRIO_OnTrackCreatorToolConfig.MuonClusterOnTrackCreatorCfg
def MuonClusterOnTrackCreatorCfg(flags, name="MuonClusterOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:96
python.MuonRIO_OnTrackCreatorToolConfig.MdtDriftCircleOnTrackCreatorCfg
def MdtDriftCircleOnTrackCreatorCfg(flags, name="MdtDriftCircleOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:73
python.MuonGeometryConfig.MuonGeoModelCfg
def MuonGeoModelCfg(flags)
Definition: MuonGeometryConfig.py:28
python.MuonConfigUtils.SetupMuonStandaloneConfigFlags
def SetupMuonStandaloneConfigFlags(default_input=['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExRecoTest/ESD.16747874._000011_100events.pool.root'])
Definition: MuonConfigUtils.py:6
python.MuonRecToolsConfig.MuonTrackToSegmentToolCfg
def MuonTrackToSegmentToolCfg(flags, name="MuonTrackToSegmentTool", **kwargs)
Definition: MuonRecToolsConfig.py:35
python.MuonRdoDecodeConfig.MuonRDOtoPRDConvertorsCfg
def MuonRDOtoPRDConvertorsCfg(flags)
Definition: MuonRdoDecodeConfig.py:307
python.MuonSegmentFindingConfig.MuonPatternCalibrationCfg
def MuonPatternCalibrationCfg(flags, name="MuonPatternCalibration", **kwargs)
Definition: MuonSegmentFindingConfig.py:426
python.MuonSegmentFindingConfig.Csc4dSegmentMakerCfg
def Csc4dSegmentMakerCfg(flags, name="Csc4dSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:355
python.MuonSegmentFindingConfig.CscSegmentUtilToolCfg
def CscSegmentUtilToolCfg(flags, name='CscSegmentUtilTool', **kwargs)
Definition: MuonSegmentFindingConfig.py:326
python.MuonSegmentFindingConfig.MuonSegmentFinderNCBAlgCfg
def MuonSegmentFinderNCBAlgCfg(flags, name="MuonSegmentMaker_NCB", **kwargs)
Definition: MuonSegmentFindingConfig.py:460
CalibCscStripFitter
Definition: CalibCscStripFitter.h:23
CscClusterUtilTool
Definition: CscClusterUtilTool.h:30
python.MuonSegmentFindingConfig.MuonSegmentFinderAlgCfg
def MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:509
python.MuonRIO_OnTrackCreatorToolConfig.MdtCalibToolForRotsCfg
def MdtCalibToolForRotsCfg(flags, name="MdtCalibrationTool", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:62
python.MuonSegmentFindingConfig.DCMathSegmentMakerCfg
def DCMathSegmentMakerCfg(flags, name='DCMathSegmentMaker', doSegmentT0Fit=False, **kwargs)
Definition: MuonSegmentFindingConfig.py:114
python.MuonSegmentFindingConfig.Csc2dSegmentMakerCfg
def Csc2dSegmentMakerCfg(flags, name="Csc2dSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:337
python.MuonSegmentFindingConfig.MuonSegmentFilterAlgCfg
def MuonSegmentFilterAlgCfg(flags, name="MuonSegmentFilterAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:548
python.MuonSegmentFindingConfig.MdtMathSegmentFinderCfg
def MdtMathSegmentFinderCfg(flags, name="MdtMathSegmentFinder", **kwargs)
Definition: MuonSegmentFindingConfig.py:68
python.MuonCombinedRecToolsConfig.MuonSegmentConverterToolCfg
def MuonSegmentConverterToolCfg(flags, name="MuonSegmentConverterTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:120
python.AtlasExtrapolatorConfig.MuonStraightLineExtrapolatorCfg
def MuonStraightLineExtrapolatorCfg(flags, name="MuonStraightLineExtrapolator", **kwargs)
Definition: AtlasExtrapolatorConfig.py:422
python.MuonSegmentFindingConfig.MuonPRDSelectionToolCfg
def MuonPRDSelectionToolCfg(flags, name="MuonPRDSelectionTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:387
Csc2dSegmentMaker
Definition: Csc2dSegmentMaker.h:24
python.MuonBytestreamDecodeConfig.MuonByteStreamDecodersCfg
def MuonByteStreamDecodersCfg(flags)
Definition: MuonBytestreamDecodeConfig.py:400