6def InDetV0FinderToolCfg(flags, name="InDetV0FinderTool", **kwargs):
7
8 acc = ComponentAccumulator()
9
10 if "V0Tools" not in kwargs:
11 from TrkConfig.TrkVertexAnalysisUtilsConfig import V0ToolsCfg
12 kwargs.setdefault("V0Tools", acc.popToolsAndMerge(
13 V0ToolsCfg(flags, name+"_V0Tools")))
14 acc.addPublicTool(kwargs["V0Tools"])
15
16 if "VertexPointEstimator" not in kwargs:
17 from InDetConfig.InDetConversionFinderToolsConfig import (
18 V0VertexPointEstimatorCfg)
19 kwargs.setdefault("VertexPointEstimator", acc.popToolsAndMerge(
20 V0VertexPointEstimatorCfg(flags)))
21 acc.addPublicTool(kwargs["VertexPointEstimator"])
22
23 if "VertexFitterTool" not in kwargs:
24 from TrkConfig.TrkV0FitterConfig import TrkV0VertexFitter_InDetExtrCfg
25 kwargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(
26 TrkV0VertexFitter_InDetExtrCfg(flags)))
27 acc.addPublicTool(kwargs["VertexFitterTool"])
28
29 if "Extrapolator" not in kwargs:
30 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
31 kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(
32 AtlasExtrapolatorCfg(flags)))
33 acc.addPublicTool(kwargs["Extrapolator"])
34
35 if "TrackToVertexTool" not in kwargs:
36 from TrackToVertex.TrackToVertexConfig import InDetTrackToVertexCfg
37 kwargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(
38 InDetTrackToVertexCfg(flags)))
39 acc.addPublicTool(kwargs["TrackToVertexTool"])
40
41 if "TrackSelectorTool" not in kwargs:
42 from InDetConfig.InDetTrackSelectorToolConfig import (
43 V0InDetConversionTrackSelectorToolCfg)
44 kwargs.setdefault("TrackSelectorTool", acc.popToolsAndMerge(
45 V0InDetConversionTrackSelectorToolCfg(flags)))
46 acc.addPublicTool(kwargs["TrackSelectorTool"])
47
48 kwargs.setdefault("useV0Fitter", True)
49 kwargs.setdefault("doSimpleV0", False)
50 kwargs.setdefault("useVertexCollection", True)
51
52 from TrkConfig.TrkVKalVrtFitterConfig import V0VKalVrtFitterCfg
53
54 if "VKVertexFitterTool" not in kwargs:
55 kwargs.setdefault("VKVertexFitterTool", acc.popToolsAndMerge(
56 V0VKalVrtFitterCfg(flags, "_BPhysVKVFitter")))
57 if "KshortFitterTool" not in kwargs:
58 kwargs.setdefault("KshortFitterTool", acc.popToolsAndMerge(
59 V0VKalVrtFitterCfg(flags, "_BPhysVKKVFitter",
60 InputParticleMasses = [139.57,139.57],
61 MassForConstraint = 497.672)))
62 if "LambdaFitterTool" not in kwargs:
63 kwargs.setdefault("LambdaFitterTool", acc.popToolsAndMerge(
64 V0VKalVrtFitterCfg(flags, "_BPhysVKLFitter",
65 InputParticleMasses = [938.272,139.57],
66 MassForConstraint = 1115.68)))
67 if "LambdabarFitterTool" not in kwargs:
68 kwargs.setdefault("LambdabarFitterTool", acc.popToolsAndMerge(
69 V0VKalVrtFitterCfg(flags, "_BPhysVKLbFitter",
70 InputParticleMasses = [139.57,938.272],
71 MassForConstraint = 1115.68)))
72 if "GammaFitterTool" not in kwargs:
73 kwargs.setdefault("GammaFitterTool", acc.popToolsAndMerge(
74 V0VKalVrtFitterCfg(flags, "_BPhysVKGFitter",
75 Robustness = 6,
76 usePhiCnst = True,
77 useThetaCnst = True,
78 InputParticleMasses = [0.511,0.511])))
79
80 from AthenaServices.PartPropSvcConfig import PartPropSvcCfg
81 kwargs.setdefault("PartPropSvc", acc.getPrimaryAndMerge(PartPropSvcCfg(flags)))
82 acc.setPrivateTools(CompFactory.InDet.InDetV0FinderTool(name, **kwargs))
83 return acc
84