ATLAS Offline Software
Loading...
Searching...
No Matches
TrackingAnalysisAlgorithmsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentFactory import CompFactory
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.Enums import LHCPeriod
6
7def InDetSecVtxTruthMatchToolCfg(flags, name="InDetSecVtxTruthMatchTool", **kwargs):
8 acc = ComponentAccumulator()
9
10 kwargs.setdefault("trackMatchProb", 0.5)
11 kwargs.setdefault("vertexMatchWeight", 0.5)
12 kwargs.setdefault("trackPtCut", 1000.0)
13 kwargs.setdefault("doSMOrigin", False)
14
15 acc.setPrivateTools(CompFactory.InDetSecVtxTruthMatchTool(**kwargs))
16 return acc
17
18def InDetSecVtxTruthMatchToolMuSaCfg(flags, name="InDetSecVtxTruthMatchTool", **kwargs):
19 acc = ComponentAccumulator()
20
21 kwargs.setdefault("trackMatchProb", 0.99999)
22 kwargs.setdefault("vertexMatchWeight", 0.99999) #2trk means 1 real 1 fake would pass if 0.5
23 kwargs.setdefault("trackPtCut", 1000.0)
24 kwargs.setdefault("doMuSA", True)
25 kwargs.setdefault("doSMOrigin", False)
26 kwargs.setdefault("MuonContainer", "StdWithLRTMuons")
27 kwargs.setdefault("FallbackMuonContainer", "Muons")
28
29 acc.setPrivateTools(CompFactory.InDetSecVtxTruthMatchTool(**kwargs))
30 return acc
31
32def SecVertexTruthMatchAlgCfg(flags, name="SecVertexTruthMatchAlg", useLRTTracks = False, **kwargs):
33
34 acc = ComponentAccumulator()
35
36 if useLRTTracks:
37 from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
38 acc.merge(InDetLRTMergeCfg(flags))
39 kwargs.setdefault("TrackParticleContainer", "InDetWithLRTTrackParticles")
40
41 kwargs.setdefault("TruthVertexContainer", "TruthVertices")
42 kwargs.setdefault("SecondaryVertexContainer", "VrtSecInclusive_SecondaryVertices")
43 kwargs.setdefault("TargetPDGIDs", [511,521])
44 kwargs.setdefault("doSMOrigin", False)
45
46 kwargs.setdefault("MatchTool", acc.popToolsAndMerge(InDetSecVtxTruthMatchToolCfg(
47 flags, doSMOrigin=kwargs["doSMOrigin"])))
48
49 acc.addEventAlgo(CompFactory.CP.SecVertexTruthMatchAlg(name, **kwargs))
50 acc.addService(CompFactory.THistSvc(Output = [f"ANALYSIS DATAFILE='{flags.Output.HISTFileName}' OPT='RECREATE'"]))
51 acc.setAppProperty("HistogramPersistency","ROOT")
52 return acc
53
54def SecVertexTruthMatchMuSaAlgCfg(flags, name="SecVertexTruthMatchMuSaAlg", **kwargs):
55
56 acc = ComponentAccumulator()
57
58 promptMuonContainer = kwargs.pop("PromptMuonContainer", "Muons")
59 lrtMuonContainer = kwargs.pop("LRTMuonContainer", "MuonsLRT")
60 mergedMuonContainer = kwargs.pop("MergedMuonContainer", "StdWithLRTMuons")
61 fallbackMuonContainer = kwargs.pop("FallbackMuonContainer", promptMuonContainer)
62
63 kwargs.setdefault("TruthVertexContainer", "TruthVertices")
64 kwargs.setdefault("SecondaryVertexContainer", "MuSAVertices")
65 kwargs.setdefault("TrackParticleContainer", "MuonSpectrometerTrackParticles")
66 kwargs.setdefault("TargetPDGIDs", [50, 72, 31, 32, 3000001])
67 kwargs.setdefault("doMuSA", True)
68 kwargs.setdefault("doSMOrigin", False)
69
70 from DerivationFrameworkLLP.LLPToolsConfig import LRTMuonMergerAlg
71 acc.merge(LRTMuonMergerAlg(
72 flags,
73 PromptMuonLocation=promptMuonContainer,
74 LRTMuonLocation=lrtMuonContainer,
75 OutputMuonLocation=mergedMuonContainer,
76 CreateViewCollection=True,
77 UseRun3WP=(flags.GeoModel.Run == LHCPeriod.Run3)))
78
79 kwargs.setdefault("MatchTool", acc.popToolsAndMerge(InDetSecVtxTruthMatchToolMuSaCfg(
80 flags,
81 doSMOrigin=kwargs["doSMOrigin"],
82 MuonContainer=mergedMuonContainer,
83 FallbackMuonContainer=fallbackMuonContainer)))
84
85 acc.addEventAlgo(CompFactory.CP.SecVertexTruthMatchAlg(name, **kwargs))
86 acc.addService(CompFactory.THistSvc(Output = [f"ANALYSIS DATAFILE='{flags.Output.HISTFileName}' OPT='RECREATE'"]))
87 acc.setAppProperty("HistogramPersistency","ROOT")
88 return acc
89
90
91
SecVertexTruthMatchAlgCfg(flags, name="SecVertexTruthMatchAlg", useLRTTracks=False, **kwargs)
InDetSecVtxTruthMatchToolCfg(flags, name="InDetSecVtxTruthMatchTool", **kwargs)
InDetSecVtxTruthMatchToolMuSaCfg(flags, name="InDetSecVtxTruthMatchTool", **kwargs)
SecVertexTruthMatchMuSaAlgCfg(flags, name="SecVertexTruthMatchMuSaAlg", **kwargs)