ATLAS Offline Software
MuSAVtxFitterConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 #default MuSAVtxFitterTool configuration
7 def MuSAVtxFitterToolConfig(flags, name="MuSAVtxFitterTool", **kwargs):
9 
10  if "VertexFitterTool" not in kwargs:
11  from TrkConfig.TrkVKalVrtFitterConfig import TrkVKalVrtFitterCfg
12  kwargs.setdefault("VertexFitterTool", acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags, IterationNumber = 100, allowUltraDisplaced = True)))
13 
14 
15  if "Extrapolator" not in kwargs:
16  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
17  kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)))
18 
19 
20  kwargs.setdefault("etaCutMSTP", 2.5)
21  kwargs.setdefault("baseChi2Cut", 50)
22 
23  kwargs.setdefault("doValidation", False)
24 
25  acc.setPrivateTools(CompFactory.Rec.MuSAVtxFitterTool(name,**kwargs))
26  return acc
27 
28 #default MuSAVtxFitter configuration
29 def MuSAVtxFitterConfig(flags, name="MuSAVtxFitter", **kwargs):
30  acc = ComponentAccumulator()
31 
32  kwargs.setdefault("MuSAVtxContainerName", "MuSAVertices")
33  kwargs.setdefault("MuSAExtrapolatedTracksName", "MuSAExtrapolatedTrackParticles")
34  kwargs.setdefault("MuonContainerName", "Muons")
35  kwargs.setdefault("MSTPContainerName", "MuonSpectrometerTrackParticles")
36 
37  if "TrackToVertexTool" not in kwargs:
38  from TrackToVertex.TrackToVertexConfig import TrackToVertexCfg
39  kwargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
40 
41  if "MuSAVtxToolName" not in kwargs:
42  from MuSAVtxFitter.MuSAVtxFitterConfig import MuSAVtxFitterToolConfig
43  kwargs.setdefault("MuSAVtxToolName", acc.popToolsAndMerge(MuSAVtxFitterToolConfig(flags)))
44 
45  acc.addEventAlgo(CompFactory.Rec.MuSAVtxFitter(name, **kwargs))
46 
47  return acc
48 
49 # config for J/Psi collection for tag and probe validation
50 def MuSAVtxJPsiValidationAlgCfg(flags, name="MuSAVtxJPsiValidationAlg", **kwargs):
51  acc = ComponentAccumulator()
52 
53  # Define J/Psi mass window
54  Jpsi_lo = 2000 # MeV
55  Jpsi_hi = 4000 # MeV
56 
57  # Get required tools
58  from TrkConfig.TrkVKalVrtFitterConfig import TrkVKalVrtFitterCfg
59  vkalvrt = acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags))
60 
61  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
62  extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
63 
64  from InDetConfig.InDetTrackSelectorToolConfig import InDetTrackSelectorToolCfg
65  trackselect = acc.popToolsAndMerge(InDetTrackSelectorToolCfg(flags, Extrapolator=extrapolator))
66  acc.addPublicTool(trackselect)
67 
68  from InDetConfig.InDetConversionFinderToolsConfig import BPHY_VertexPointEstimatorCfg
69  vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags))
70  acc.addPublicTool(vpest)
71 
72  # Configure the JpsiFinder tool
73  jpsiFinderTool = CompFactory.Analysis.JpsiFinder(
74  name = "JPsiFinderTool",
75  muAndMu = True, # Default: m_mumu = true
76  muAndTrack = False, # Default: m_mutrk = false
77  TrackAndTrack = False, # Default: m_trktrk = false
78  assumeDiMuons = True, # Default: m_diMuons = true
79  invMassLower = Jpsi_lo, # Default: m_invMassLower = 0.0
80  invMassUpper = Jpsi_hi, # Default: m_invMassUpper = 100000.0
81  Chi2Cut = 50., # Default: m_Chi2Cut = 50.
82  oppChargesOnly = True, # Default: m_oppChOnly = true
83  atLeastOneComb = True, # Default: m_atLeastOneComb = true
84  useCombinedMeasurement = False, # Default: m_useCombMeasurement = false
85  muonCollectionKey = "StdWithLRTMuons", # Default: not explicitly set
86  TrackParticleCollection = "InDetWithLRTTrackParticles", # Default: not explicitly set
87  useV0Fitter = False, # Default: m_useV0Fitter = false
88  TrkVertexFitterTool = vkalvrt, # Default: not explicitly set
89  TrackSelectorTool = trackselect, # Default: not explicitly set
90  VertexPointEstimator = vpest, # Default: not explicitly set
91  useMCPCuts = False # Default: m_mcpCuts = true
92  )
93 
94  acc.addPublicTool(jpsiFinderTool)
95  kwargs.setdefault("JpsiFinderTool", jpsiFinderTool)
96 
97  kwargs.setdefault("MuonContainer", "StdWithLRTMuons")
98  kwargs.setdefault("EventInfo", "EventInfo")
99  kwargs.setdefault("JPsiMuonContainer", "JPsiMuons")
100  kwargs.setdefault("JPsiVertexContainer", "JPsiVertices")
101 
102  acc.addEventAlgo(CompFactory.Rec.MuSAVtxJPsiValidationAlg(name, **kwargs))
103 
104  return acc
105 
106 #config for running MuSAFitter on all MSTPs
107 def MuSAVtxFitterValidationConfig(flags, name="MuSAVtxFitterValidation", **kwargs):
108  acc = ComponentAccumulator()
109 
110  kwargs.setdefault("MuSAVtxContainerName", "JPsiMuSAVertices")
111  kwargs.setdefault("MuSAExtrapolatedTracksName", "JPsiMuSAExtrapolatedTrackParticles")
112  kwargs.setdefault("MuonContainerName", "JPsiMuons")
113  kwargs.setdefault("MSTPContainerName", "MuonSpectrometerTrackParticles")
114 
115  if "TrackToVertexTool" not in kwargs:
116  from TrackToVertex.TrackToVertexConfig import TrackToVertexCfg
117  kwargs.setdefault("TrackToVertexTool", acc.popToolsAndMerge(TrackToVertexCfg(flags)))
118 
119  if "MuSAVtxToolName" not in kwargs:
120  from MuSAVtxFitter.MuSAVtxFitterConfig import MuSAVtxFitterToolConfig
121  kwargs.setdefault("MuSAVtxToolName", acc.popToolsAndMerge(MuSAVtxFitterToolConfig(flags, doValidation=True)))
122 
123  acc.addEventAlgo(CompFactory.Rec.MuSAVtxFitter(name, **kwargs))
124 
125  return acc
126 
127 # snippet for running standalone / unit test
128 
129 if __name__ == "__main__":
130  from AthenaConfiguration.AllConfigFlags import initConfigFlags
131  from AthenaConfiguration.TestDefaults import defaultTestFiles
132 
133  flags = initConfigFlags()
134  flags.Concurrency.NumThreads = 1
135  flags.Concurrency.NumConcurrentEvents = 1
136  flags.Input.Files = defaultTestFiles.AOD_RUN2_MC
137 
138  flags.fillFromArgs()
139 
140  flags.lock()
141 
142  from MuonCondTest.MdtCablingTester import setupServicesCfg
143  cfg = setupServicesCfg(flags)
144  from DerivationFrameworkLLP.LLPToolsConfig import LRTMuonMergerAlg
145  from AthenaConfiguration.Enums import LHCPeriod
146  cfg.merge(LRTMuonMergerAlg(flags,
147  OutputMuonLocation = "StdWithLRTMuons",
148  CreateViewCollection = False,
149  overlapStrategy = 1,
150  UseRun3WP = flags.GeoModel.Run == LHCPeriod.Run3))
151  cfg.merge(MuSAVtxFitterConfig(flags, MuonContainerName="StdWithLRTMuons"))
152  cfg.printConfig(withDetails=True, summariseProps=True)
153  flags.dump()
154 
155  cfg.getService("MessageSvc").enableSuppression = True
156 
157  # Get maximum events from flags
158  evtMax = flags.Exec.MaxEvents if flags.Exec.MaxEvents > 0 else None
159 
160  sc = cfg.run(evtMax)
161  if not sc.isSuccess():
162  import sys
163  sys.exit("Execution failed")
python.LLPToolsConfig.LRTMuonMergerAlg
def LRTMuonMergerAlg(flags, name="LLP1_MuonLRTMergingAlg", **kwargs)
Definition: LLPToolsConfig.py:181
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
MuSAVtxFitterConfig.MuSAVtxFitterValidationConfig
def MuSAVtxFitterValidationConfig(flags, name="MuSAVtxFitterValidation", **kwargs)
Definition: MuSAVtxFitterConfig.py:107
MuSAVtxFitterConfig.MuSAVtxFitterConfig
def MuSAVtxFitterConfig(flags, name="MuSAVtxFitter", **kwargs)
Definition: MuSAVtxFitterConfig.py:29
MuSAVtxFitterConfig.MuSAVtxFitterToolConfig
def MuSAVtxFitterToolConfig(flags, name="MuSAVtxFitterTool", **kwargs)
Definition: MuSAVtxFitterConfig.py:7
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
MdtCablingTester.setupServicesCfg
def setupServicesCfg(flags)
Definition: MdtCablingTester.py:17
python.TrkVKalVrtFitterConfig.TrkVKalVrtFitterCfg
def TrkVKalVrtFitterCfg(flags, name="TrkVKalVrtFitter", **kwargs)
Definition: TrkVKalVrtFitterConfig.py:7
MuSAVtxFitterConfig
Definition: MuSAVtxFitterConfig.py:1
MuSAVtxFitterConfig.MuSAVtxJPsiValidationAlgCfg
def MuSAVtxJPsiValidationAlgCfg(flags, name="MuSAVtxJPsiValidationAlg", **kwargs)
Definition: MuSAVtxFitterConfig.py:50
python.InDetConversionFinderToolsConfig.BPHY_VertexPointEstimatorCfg
def BPHY_VertexPointEstimatorCfg(flags, name="BPHY_VertexPointEstimator", **kwargs)
Definition: InDetConversionFinderToolsConfig.py:69
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.InDetTrackSelectorToolConfig.InDetTrackSelectorToolCfg
def InDetTrackSelectorToolCfg(flags, name='InDetTrackSelectorTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:82
TrackToVertexConfig.TrackToVertexCfg
def TrackToVertexCfg(flags, name="AtlasTrackToVertexTool", **kwargs)
Definition: TrackToVertexConfig.py:6