10 flags, name="InDetAmbiTrackSelectionTool", **kwargs):
11 acc = ComponentAccumulator()
12
13 if ('UseParameterization' in kwargs and
14 kwargs.get('UseParameterization', False) and
15 "DriftCircleCutTool" not in kwargs):
16 from InDetConfig.InDetTrackSelectorToolConfig import (
17 InDetTRTDriftCircleCutToolCfg)
18 DriftCircleCutTool = acc.popToolsAndMerge(
19 InDetTRTDriftCircleCutToolCfg(flags))
20 acc.addPublicTool(DriftCircleCutTool)
21 kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool)
22
23 if "AssociationTool" not in kwargs:
24 from InDetConfig.InDetAssociationToolsConfig import (
25 InDetPRDtoTrackMapToolGangedPixelsCfg)
26 kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
27 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
28
29 kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters)
30 kwargs.setdefault("minNotShared",
31 flags.Tracking.ActiveConfig.minSiNotShared)
32 kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared)
33 kwargs.setdefault("minTRTHits", 0)
34 kwargs.setdefault("UseParameterization", False)
35 kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
36 kwargs.setdefault("doPixelSplitting",
37 flags.Tracking.doPixelClusterSplitting)
38
39 if flags.Tracking.ActiveConfig.useTIDE_Ambi:
40 kwargs.setdefault("sharedProbCut",
41 flags.Tracking.pixelClusterSplitProb1)
42 kwargs.setdefault("sharedProbCut2",
43 flags.Tracking.pixelClusterSplitProb2)
44 kwargs.setdefault("minSiHitsToAllowSplitting",
45 8 if flags.GeoModel.Run is LHCPeriod.Run1 else 9)
46 kwargs.setdefault("minUniqueSCTHits", 4)
47 kwargs.setdefault("minTrackChi2ForSharedHits", 3)
48
49 kwargs.setdefault("minPtSplit", 1000)
50
51 kwargs.setdefault("phiWidth", 0.05)
52 kwargs.setdefault("etaWidth", 0.05)
53
54
55 kwargs.setdefault("doEmCaloSeed", flags.Tracking.doCaloSeededAmbi)
56 kwargs.setdefault("EMROIPhiRZContainer",
57 "InDetCaloClusterROIPhiRZ10GeV")
58 if flags.Tracking.doCaloSeededAmbi:
59 from InDetConfig.InDetCaloClusterROISelectorConfig import (
60 CaloClusterROIPhiRZContainerMakerCfg)
61 acc.merge(CaloClusterROIPhiRZContainerMakerCfg(flags))
62
63
64 kwargs.setdefault("doHadCaloSeed", flags.Tracking.doCaloSeededAmbi)
65 kwargs.setdefault("HadROIPhiRZContainer",
66 "InDetHadCaloClusterROIPhiRZBjet")
67 if flags.Tracking.doCaloSeededAmbi:
68 from InDetConfig.InDetCaloClusterROISelectorConfig import (
69 HadCaloClusterROIPhiRZContainerMakerCfg)
70 acc.merge(HadCaloClusterROIPhiRZContainerMakerCfg(flags))
71
72
73 kwargs.setdefault("minPtBjetROI", 10000)
74
75 kwargs.setdefault("phiWidthEM", 0.05)
76 kwargs.setdefault("etaWidthEM", 0.05)
77
78 kwargs.setdefault("doSkipAmbiInROI", flags.Tracking.doSkipAmbiROI)
79
80 kwargs.setdefault("removeSharedHitsInLoop", True)
81
82 if (flags.Tracking.doTIDE_AmbiTrackMonitoring and
83 flags.Tracking.ActiveConfig.extension == ""):
84 from TrkConfig.TrkValToolsConfig import TrkObserverToolCfg
85 TrkObserverTool = acc.popToolsAndMerge(TrkObserverToolCfg(flags))
86 acc.addPublicTool(TrkObserverTool)
87 kwargs.setdefault("ObserverTool", TrkObserverTool)
88
89 else:
90 kwargs.setdefault("sharedProbCut", 0.10)
91
92 if flags.Tracking.ActiveConfig.useTIDE_Ambi:
93 AmbiTrackSelectionTool = (
94 CompFactory.InDet.InDetDenseEnvAmbiTrackSelectionTool)
95 else:
96 AmbiTrackSelectionTool = CompFactory.InDet.InDetAmbiTrackSelectionTool
97
98 acc.setPrivateTools(AmbiTrackSelectionTool(
99 name=name+flags.Tracking.ActiveConfig.extension, **kwargs))
100 return acc
101
102