ATLAS Offline Software
JPsiVertexFitSetupCfg.py
Go to the documentation of this file.
1 #Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 
5 def AddRecoMumuToolCfg(flags, name = "MuonTPRecoMumuTool", **kwargs):
6  result = ComponentAccumulator()
7  from TrkConfig.TrkVertexAnalysisUtilsConfig import V0ToolsCfg
8  kwargs.setdefault("V0Tools", result.popToolsAndMerge(V0ToolsCfg(flags, "RecoMumuToolV0Tools")))
9  from JpsiUpsilonTools.JpsiUpsilonToolsConfig import PrimaryVertexRefittingToolCfg
10  kwargs.setdefault("PVRefitter", result.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)))
11  the_tool = CompFactory.DerivationFramework.Reco_mumu(name, **kwargs)
12  result.setPrivateTools(the_tool)
13  return result
14 
15 def AddJPsiVertexingFitterCfg(flags, prefix='', IdTrkContainer = "InDetTrackParticles", MuonContainer = "Muons"):
16  result = ComponentAccumulator()
17  from JpsiUpsilonTools.JpsiUpsilonToolsConfig import JpsiFinderCfg
18  jpsi_finder_tool = result.popToolsAndMerge(JpsiFinderCfg(flags,
19  muAndMu = False,
20  muAndTrack = False,
21  TrackAndTrack = True,
22  assumeDiMuons = True, # If true, will assume dimu hypothesis and use PDG value for mu mass
23  invMassUpper = 3500.0,
24  invMassLower = 2700.0,
25  Chi2Cut = 2000.,
26  allChargeCombinations = True,
27  oppChargesOnly = False,
28  sameChargesOnly= False,
29  trackThresholdPt = 2500,
30  muonThresholdPt= 4000,
31  atLeastOneComb = False,
32  useCombinedMeasurement = False, # Only takes effect if combOnly=True
33  muonCollectionKey = MuonContainer,
34  TrackParticleCollection = IdTrkContainer,
35  useV0Fitter = False, # if False a TrkVertexFitterTool will be used
36  useMCPCuts = True))
37 
38 
39 
40  MuonTP_Reco_mumu = result.getPrimaryAndMerge(AddRecoMumuToolCfg(flags,
41  name = prefix+"MuonTP_Reco_mumu",
42  JpsiFinder = jpsi_finder_tool,
43  OutputVtxContainerName = prefix+"JpsiCandidates",
44  PVContainerName = "PrimaryVertices",
45  RefPVContainerName = prefix+"RefittedPrimaryVertices",
46  RefitPV = True,
47  MaxPVrefit = 100000,
48  DoVertexType = 7))
49  result.addPublicTool(MuonTP_Reco_mumu)
50  the_alg = CompFactory.DerivationFramework.DerivationKernel(prefix +"JPsiVertexFitKernel",
51  AugmentationTools = [MuonTP_Reco_mumu])
52  result.addEventAlgo(the_alg, primary = True)
53  return result
54 
55 def MuonTPOniaSelToolCfg(flags,name = "MuonTP_Select_Jpsi2mumu", **kwargs):
56 
57  result = ComponentAccumulator()
58  from TrkConfig.TrkVertexAnalysisUtilsConfig import V0ToolsCfg
59  v0_tools = result.popToolsAndMerge(V0ToolsCfg(flags, name+"JPsiSelV0Tools"))
60  kwargs.setdefault("V0Tools", v0_tools)
61  kwargs.setdefault("HypothesisName", "Jpsi")
62  kwargs.setdefault("VtxMassHypo", 3096.916)
63  kwargs.setdefault("MassMin", 2700.0)
64  kwargs.setdefault("MassMax", 3500.0)
65  kwargs.setdefault("Chi2Max", 200)
66  kwargs.setdefault("DoVertexType", 7)
67  MuonTP_Select_Jpsi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(name = name, **kwargs)
68  result.addPublicTool(v0_tools)
69  result.setPrivateTools(MuonTP_Select_Jpsi2mumu)
70  return result
71 
72 def AddJPsiVertexingSelectionCfg(flags, prefix = ''):
73 
74  result = ComponentAccumulator()
75  MuonTP_Select_Jpsi2mumu =result.popToolsAndMerge(MuonTPOniaSelToolCfg(flags, prefix + "MuonTP_Select_Jpsi2mumu",
76  InputVtxContainerName = prefix+"JpsiCandidates" ))
77  result.addPublicTool(MuonTP_Select_Jpsi2mumu)
78  the_alg = CompFactory.DerivationFramework.DerivationKernel(prefix +"JPsiVertexFitSelector",
79  AugmentationTools = [MuonTP_Select_Jpsi2mumu])
80  result.addEventAlgo(the_alg, primary = True)
81  return result
82 
83 def AddMCPJPsiVertexFitCfg(flags, prefix = '', IdTrkContainer = "InDetTrackParticles", MuonContainer = "Muons"):
84  result = ComponentAccumulator()
85  result.merge(AddJPsiVertexingFitterCfg(flags, prefix = prefix, IdTrkContainer = IdTrkContainer, MuonContainer = MuonContainer))
86  result.merge(AddJPsiVertexingSelectionCfg(flags, prefix = prefix))
87  return result
88 
89 
90 
python.HIGG1D1CustomVertexConfig.PrimaryVertexRefittingToolCfg
def PrimaryVertexRefittingToolCfg(flags, **kwargs)
Definition: HIGG1D1CustomVertexConfig.py:7
python.JPsiVertexFitSetupCfg.MuonTPOniaSelToolCfg
def MuonTPOniaSelToolCfg(flags, name="MuonTP_Select_Jpsi2mumu", **kwargs)
Definition: JPsiVertexFitSetupCfg.py:55
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TrkVertexAnalysisUtilsConfig.V0ToolsCfg
def V0ToolsCfg(flags, name="V0Tools", **kwargs)
Definition: TrkVertexAnalysisUtilsConfig.py:6
JpsiUpsilonToolsConfig.JpsiFinderCfg
def JpsiFinderCfg(ConfigFlags, name="JpsiFinder", **kwargs)
Definition: JpsiUpsilonToolsConfig.py:15
python.JPsiVertexFitSetupCfg.AddMCPJPsiVertexFitCfg
def AddMCPJPsiVertexFitCfg(flags, prefix='', IdTrkContainer="InDetTrackParticles", MuonContainer="Muons")
Definition: JPsiVertexFitSetupCfg.py:83
python.JPsiVertexFitSetupCfg.AddRecoMumuToolCfg
def AddRecoMumuToolCfg(flags, name="MuonTPRecoMumuTool", **kwargs)
Definition: JPsiVertexFitSetupCfg.py:5
python.JPsiVertexFitSetupCfg.AddJPsiVertexingSelectionCfg
def AddJPsiVertexingSelectionCfg(flags, prefix='')
Definition: JPsiVertexFitSetupCfg.py:72
python.JPsiVertexFitSetupCfg.AddJPsiVertexingFitterCfg
def AddJPsiVertexingFitterCfg(flags, prefix='', IdTrkContainer="InDetTrackParticles", MuonContainer="Muons")
Definition: JPsiVertexFitSetupCfg.py:15