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.getPrimaryAndMerge(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.getPrimaryAndMerge(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.getPrimaryAndMerge(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 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.getPrimaryAndMerge(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  kwargs.setdefault('TrackSummaryTool', result.popToolsAndMerge( MuonTrackSummaryToolCfg(flags, name='MuonTrackSummary') ) )
377 
378  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
379  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)) )
380 
381  result.setPrivateTools(CompFactory.Muon.MuonNSWSegmentFinderTool(name,**kwargs))
382  return result
383 
384 def MuonPRDSelectionToolCfg( flags, name="MuonPRDSelectionTool", **kwargs):
385  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg, MdtDriftCircleOnTrackCreatorCfg
386  # Won't explicitly configure MuonIdHelperSvc
387  result = ComponentAccumulator()
388  kwargs.setdefault("MdtDriftCircleOnTrackCreator", result.popToolsAndMerge(MdtDriftCircleOnTrackCreatorCfg(flags)))
389  kwargs.setdefault("MuonClusterOnTrackCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
390  # Won't explicitly configure MuonRecoValidationTool (but it would need configuration if used)
391  the_tool = CompFactory.Muon.MuonPRDSelectionTool(name, **kwargs)
392  result.setPrivateTools(the_tool)
393  return result
394 
395 
396 def MuonLayerHoughToolCfg(flags, name = "MuonLayerHoughTool" , **kwargs):
397  result = ComponentAccumulator()
398  layer_hough_tool = CompFactory.Muon.MuonLayerHoughTool(name, **kwargs)
399  result.setPrivateTools(layer_hough_tool)
400  return result
401 
402 def MuonLayerHoughAlgCfg(flags, name = "MuonLayerHoughAlg", **kwargs):
403  result = ComponentAccumulator()
404 
405  if not flags.Detector.EnableMDT:
406  kwargs.setdefault("MdtPrepDataContainer", "")
407  if not flags.Detector.EnableRPC:
408  kwargs.setdefault("RpcPrepDataContainer", "")
409  if not flags.Detector.EnableTGC:
410  kwargs.setdefault("TgcPrepDataContainer", "")
411 
412  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
413  kwargs.setdefault("CscPrepDataContainer", "CSC_Clusters" if flags.Detector.EnableCSC else "")
414  kwargs.setdefault("sTgcPrepDataContainer", "STGC_Measurements" if flags.Detector.EnablesTGC else "")
415  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
416  kwargs.setdefault("MMPrepDataContainer", "MM_Measurements" if flags.Detector.EnableMM else "")
417 
418  kwargs.setdefault("PrintSummary", flags.Muon.printSummary)
419  kwargs.setdefault("printerTool", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags) ))
420 
421  hough_tool = result.getPrimaryAndMerge(MuonLayerHoughToolCfg(flags,
422  name = "MuonLayerHoughTool")) if flags.Beam.Type is not BeamType.Cosmics else \
423  result.popToolsAndMerge(MuonHoughPatternFinderToolCfg(flags, name="MuonHoughPatternFinderTool"))
424  kwargs.setdefault("MuonLayerScanTool", hough_tool)
425 
426  the_alg = CompFactory.MuonLayerHoughAlg(name = name,**kwargs)
427  result.addEventAlgo( the_alg, primary = True )
428  return result
429 
430 
431 def MuonPatternCalibrationCfg(flags, name="MuonPatternCalibration", **kwargs):
432  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg, MdtDriftCircleOnTrackCreatorCfg, MdtCalibToolForRotsCfg
433  result = ComponentAccumulator()
434 
435  if not flags.Detector.EnableRPC:
436  kwargs.setdefault("RpcPrepDataContainer", "")
437  if not flags.Detector.EnableTGC:
438  kwargs.setdefault("TgcPrepDataContainer", "")
439 
440  if "MdtCreator" not in kwargs:
441  # on data configure a MdtDriftCircleOnTrackCreator for the segment finding with reduced errors
442  # when using the t0 refit enlarge the time window
443  if not flags.Input.isMC and flags.Beam.Type is BeamType.Collisions:
444  if flags.Muon.doSegmentT0Fit:
445  timeWindowSetting = MdtCalibWindowNumber('Collision_t0fit')
446  else:
447  timeWindowSetting = MdtCalibWindowNumber('Collision_data')
448  acc = MdtDriftCircleOnTrackCreatorCfg(flags, name="MdtDriftCircleOnTrackCreatorSegmentFinding",
449  CreateTubeHit = False,
450  CalibrationTool = result.popToolsAndMerge(MdtCalibToolForRotsCfg(flags,
451  TimeWindowSetting = timeWindowSetting))
452  )
453  else:
454  # I think we need to configure a 'default' version of the MdtDriftCircleOnTrackCreator here
456 
457  kwargs.setdefault('MdtCreator', result.popToolsAndMerge(acc))
458 
459  kwargs.setdefault('ClusterCreator', result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
460  kwargs.setdefault("Printer", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags) ))
461  kwargs.setdefault('TgcPrepDataContainer', 'TGC_MeasurementsAllBCs' if not flags.Muon.useTGCPriorNextBC else 'TGC_Measurements')
462 
463  if flags.Beam.Type is BeamType.Cosmics:
464  kwargs.setdefault("AngleCutPhi", 1e9)
465  kwargs.setdefault("DropDistance", 100000000.)
466  # Won't explicitly configure MuonIdHelperSvc
467  result.setPrivateTools( CompFactory.Muon.MuonPatternCalibration(name, **kwargs) )
468  return result
469 
470 def MuonSegmentFinderNCBAlgCfg(flags, name="MuonSegmentMaker_NCB", **kwargs):
471  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
472  result = ComponentAccumulator()
473  kwargs.setdefault("doStgcSegments", flags.Detector.EnablesTGC)
474  kwargs.setdefault("doMMSegments", flags.Detector.EnableMM)
475  kwargs.setdefault("doMdtSegments", False)
476  kwargs.setdefault("CSC_clusterkey", "CSC_Clusters" if flags.Detector.EnableCSC else "")
477 
478  kwargs.setdefault("SegmentCollectionName", "NCB_TrackMuonSegments")
479 
480  kwargs.setdefault("NSWSegmentCollectionName", "")
481  kwargs.setdefault("SegmentQuality", 1)
482 
483 
484 
485  if flags.Detector.EnableCSC:
486  csc_segment_util_tool = result.popToolsAndMerge(CscSegmentUtilToolCfg(flags,
487  name='CscSegmentUtilTool_NCB',
488  TightenChi2 = False,
489  IPconstraint=False))
490 
491  csc_2d_segment_maker = result.popToolsAndMerge(Csc2dSegmentMakerCfg(flags,
492  name='Csc2dSegmentMaker_NCB',
493  segmentTool=csc_segment_util_tool))
494 
495  csc_4d_segment_maker = result.popToolsAndMerge(Csc4dSegmentMakerCfg(flags,
496  name='Csc4dSegmentMaker_NCB',
497  segmentTool=csc_segment_util_tool))
498 
499  kwargs.setdefault("Csc2dSegmentMaker", csc_2d_segment_maker)
500  kwargs.setdefault("Csc4dSegmentMaker", csc_4d_segment_maker)
501 
502  if flags.Detector.EnablesTGC or flags.Detector.EnableMM:
503  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
504  # Configure subtools needed by MuonNSWSegmentFinderTool
505  extrapolator = result.getPrimaryAndMerge(MuonStraightLineExtrapolatorCfg(flags))
506  result.addPublicTool(extrapolator)
507  cleaner = result.popToolsAndMerge( MuonTrackCleanerCfg(flags, name='MuonTrackCleaner_seg',seg=True) )
508  segment_finder = result.popToolsAndMerge(MuonNSWSegmentFinderToolCfg(flags,
509  name ="MuonNSWSegmentFinderTool",
510  TrackCleaner = cleaner,
511  SeedMMStereos = False,
512  IPConstraint = False,
513  CaloConstraint = True))
514  kwargs.setdefault("NSWSegmentMaker", segment_finder)
515  the_alg = CompFactory.MuonSegmentFinderAlg(name, **kwargs)
516  result.addEventAlgo(the_alg, primary = True)
517  return result
518 
519 def MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker", **kwargs):
520  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MuonClusterOnTrackCreatorCfg
521  result = ComponentAccumulator()
522  # Won't configure MuonIdHelperSvc
523  kwargs.setdefault("EDMPrinter", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)) )
524 
525  # for test purposes allow parallel running of truth segment finding and new segment finder
526  kwargs.setdefault('MuonPatternCalibration', result.popToolsAndMerge( MuonPatternCalibrationCfg(flags) ) )
527  segment_maker = result.getPrimaryAndMerge(DCMathSegmentMakerCfg(flags,name="DCMathSegmentMaker"))
528  kwargs.setdefault('SegmentMaker', segment_maker)
529  # Not yet configuring MuonSegmentOverlapRemovalTool
530 
531  if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
532  kwargs.setdefault("MuonClusterCreator", result.popToolsAndMerge(MuonClusterOnTrackCreatorCfg(flags)))
533 
534  # Configure subtools needed by MuonNSWSegmentFinderTool
535  extrapolator = result.getPrimaryAndMerge(MuonStraightLineExtrapolatorCfg(flags))
536  result.addPublicTool(extrapolator)
537  cleaner = result.popToolsAndMerge( MuonTrackCleanerCfg(flags, name='MuonTrackCleaner_seg',seg=True) )
538  segment_finder = result.getPrimaryAndMerge(MuonNSWSegmentFinderToolCfg(flags, name ="MuonNSWSegmentFinderTool", TrackCleaner = cleaner))
539  kwargs.setdefault("NSWSegmentMaker", segment_finder)
540 
541 
542  if flags.Detector.EnableCSC:
543  kwargs.setdefault("Csc2dSegmentMaker", result.popToolsAndMerge(Csc2dSegmentMakerCfg(flags)))
544  kwargs.setdefault("Csc4dSegmentMaker", result.popToolsAndMerge(Csc4dSegmentMakerCfg(flags)))
545  else:
546  kwargs.setdefault("CSC_clusterkey", "")
547 
548  kwargs.setdefault("PrintSummary", flags.Muon.printSummary)
549  kwargs.setdefault("doStgcSegments", flags.Detector.EnablesTGC)
550  kwargs.setdefault("doMMSegments", flags.Detector.EnableMM)
551 
552  kwargs.setdefault("SegmentCollectionName", "TrackMuonSegments" if flags.Muon.segmentOrigin != "TruthTracking" else "ThirdChainSegments")
553 
554  the_alg = CompFactory.MuonSegmentFinderAlg( name, **kwargs)
555  result.addEventAlgo(the_alg)
556  return result
557 
558 def MuonSegmentFilterAlgCfg(flags, name="MuonSegmentFilterAlg", **kwargs):
559  result = ComponentAccumulator()
560  kwargs.setdefault("SegmentCollectionName", "TrackMuonSegments")
561 
562  kwargs.setdefault("FilteredCollectionName", "TrackMuonSegmentsEMEO")
563  the_alg = CompFactory.MuonSegmentFilterAlg(name, **kwargs)
564  result.addEventAlgo(the_alg)
565  return result
566 
567 def MuonSegmentCnvAlgCfg(flags, name="MuonSegmentCnvAlg", **kwargs):
568  result = ComponentAccumulator()
569  from MuonCombinedConfig.MuonCombinedRecToolsConfig import MuonSegmentConverterToolCfg
570  kwargs.setdefault("MuonSegmentConverterTool", result.popToolsAndMerge(MuonSegmentConverterToolCfg(flags)))
571  the_alg = CompFactory.xAODMaker.MuonSegmentCnvAlg(name, **kwargs)
572  result.addEventAlgo(the_alg, primary = True)
573  return result
574 
575 
576 def MuonSegmentFindingCfg(flags, setup_bytestream = True, cardinality=1):
577  """
578  Returns a CA setting up Muon Segment Finding
579  @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
580  """
581  # Set up some general stuff needed by muon reconstruction
582 
583  result = ComponentAccumulator()
584 
585  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
586  result.merge( MuonGeoModelCfg(flags) )
587  from MuonConfig.MuonRecToolsConfig import MuonEDMHelperSvcCfg
588  result.merge(MuonEDMHelperSvcCfg(flags))
589 
590  if (setup_bytestream):
591  # We need to be able to disable this when using MuonCalibStream,
592  # as the normal BS convertors clash with the special MCS converters.
593  if flags.Input.Format is Format.BS:
594  from MuonConfig.MuonBytestreamDecodeConfig import MuonByteStreamDecodersCfg
595  result.merge( MuonByteStreamDecodersCfg(flags) )
596 
597  if flags.Input.Format is Format.BS or 'StreamRDO' in flags.Input.ProcessingTags:
598  from MuonConfig.MuonRdoDecodeConfig import MuonRDOtoPRDConvertorsCfg
599  result.merge( MuonRDOtoPRDConvertorsCfg(flags) )
600 
601  # We need to add two algorithms - one for normal collisions, one for NCB
602  result.merge(MuonLayerHoughAlgCfg(flags))
603  result.merge(MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker"))
604 
605 
606  if flags.Muon.runCommissioningChain:
607  result.merge(MuonSegmentFilterAlgCfg(flags))
608 
609  if flags.Beam.Type is BeamType.Collisions:
610  result.merge(MuonSegmentFinderNCBAlgCfg(flags))
611  result.merge(MuonSegmentCnvAlgCfg(flags, "MuonSegmentCnvAlg_NCB",
612  SegmentContainerName="NCB_TrackMuonSegments",
613  xAODContainerName="NCB_MuonSegments") )
614 
615  if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
616  result.merge(MuonSegmentCnvAlgCfg(flags, "QuadNSW_MuonSegmentCnvAlg",
617  SegmentContainerName="TrackMuonNSWSegments",
618  xAODContainerName="xAODNSWSegments"))
619  return result
620 
621 if __name__=="__main__":
622  # To run this, do e.g.
623  # python -m MuonConfig.MuonSegmentFindingConfig --threads=1
624  from MuonConfig.MuonConfigUtils import SetupMuonStandaloneConfigFlags, SetupMuonStandaloneOutput, SetupMuonStandaloneCA
625 
627  cfg = SetupMuonStandaloneCA(args, flags)
628 
629  # Run the actual test.
631  cfg.merge(acc)
632 
633  # This is a temporary fix - it should go someplace central as it replaces the functionality of addInputRename from here:
634  # https://gitlab.cern.ch/atlas/athena/blob/master/Control/SGComps/python/AddressRemappingSvc.py
635  AddressRemappingSvc, ProxyProviderSvc=CompFactory.getComps("AddressRemappingSvc","ProxyProviderSvc",)
638  pps.ProviderNames += [ 'AddressRemappingSvc' ]
639  ars.TypeKeyRenameMaps += [ '%s#%s->%s' % ("Trk::SegmentCollection", "TrackMuonSegments", "TrackMuonSegments_old") ]
640  ars.TypeKeyRenameMaps += [ '%s#%s->%s' % ("Trk::SegmentCollection", "NCB_TrackMuonSegments", "NCB_TrackMuonSegments_old") ]
641 
642  cfg.addService(pps)
643  cfg.addService(ars)
644 
645  itemsToRecord = ["Trk::SegmentCollection#TrackMuonSegments", "Trk::SegmentCollection#NCB_TrackMuonSegments"]
646  SetupMuonStandaloneOutput(cfg, flags, itemsToRecord)
647 
648  # cfg.getService("StoreGateSvc").Dump = True
649  cfg.printConfig()
650  f=open("MuonSegmentFinding.pkl","wb")
651  cfg.store(f)
652  f.close()
653 
654  if not args.config_only:
655  sc = cfg.run(20)
656  if not sc.isSuccess():
657  import sys
658  sys.exit("Execution failed")
659  else:
660  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:144
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:337
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.MuonSegmentFindingConfig.MuonSegmentFindingCfg
def MuonSegmentFindingCfg(flags, setup_bytestream=True, cardinality=1)
Definition: MuonSegmentFindingConfig.py:576
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:42
python.MuonSegmentFindingConfig.AdjustableT0Tool
def AdjustableT0Tool(flags, **kwargs)
Definition: MuonSegmentFindingConfig.py:58
python.MuonConfigUtils.SetupMuonStandaloneCA
def SetupMuonStandaloneCA(args, flags)
Definition: MuonConfigUtils.py:41
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.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:396
python.MuonSegmentFindingConfig.MuonLayerHoughAlgCfg
def MuonLayerHoughAlgCfg(flags, name="MuonLayerHoughAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:402
python.MuonCombinedRecToolsConfig.MuonSegmentSelectionToolCfg
def MuonSegmentSelectionToolCfg(flags, name="MuonSegmentSelectionTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1041
python.MuonSegmentFindingConfig.MuonSegmentCnvAlgCfg
def MuonSegmentCnvAlgCfg(flags, name="MuonSegmentCnvAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:567
python.MuonRecToolsConfig.MuonEDMHelperSvcCfg
def MuonEDMHelperSvcCfg(flags, name="MuonEDMHelperSvc", **kwargs)
Definition: MuonRecToolsConfig.py:31
python.MuonConfigUtils.SetupMuonStandaloneOutput
def SetupMuonStandaloneOutput(cfg, flags, itemsToRecord)
Definition: MuonConfigUtils.py:65
Trk::open
@ open
Definition: BinningType.h:40
python.MuonRecToolsConfig.MuonTrackCleanerCfg
def MuonTrackCleanerCfg(flags, name="MuonTrackCleaner", seg=False, **kwargs)
Definition: MuonRecToolsConfig.py:159
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:37
python.MuonRdoDecodeConfig.MuonRDOtoPRDConvertorsCfg
def MuonRDOtoPRDConvertorsCfg(flags)
Definition: MuonRdoDecodeConfig.py:349
python.MuonSegmentFindingConfig.MuonPatternCalibrationCfg
def MuonPatternCalibrationCfg(flags, name="MuonPatternCalibration", **kwargs)
Definition: MuonSegmentFindingConfig.py:431
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:470
CalibCscStripFitter
Definition: CalibCscStripFitter.h:23
CscClusterUtilTool
Definition: CscClusterUtilTool.h:30
python.MuonSegmentFindingConfig.MuonSegmentFinderAlgCfg
def MuonSegmentFinderAlgCfg(flags, name="MuonSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:519
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:558
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:119
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:384
Csc2dSegmentMaker
Definition: Csc2dSegmentMaker.h:24
python.MuonBytestreamDecodeConfig.MuonByteStreamDecodersCfg
def MuonByteStreamDecodersCfg(flags)
Definition: MuonBytestreamDecodeConfig.py:400