ATLAS Offline Software
Loading...
Searching...
No Matches
IDTR2.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3# ====================================================================
4# IDTR2.py
5# ====================================================================
6
7from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8from AthenaConfiguration.ComponentFactory import CompFactory
9from AthenaConfiguration.Enums import MetadataCategory
10
11streamName = "StreamDAOD_IDTR2"
12
13
14def IDTR2Cfg(flags):
15
16 acc = ComponentAccumulator()
17
18 # LRT merge
19 from DerivationFrameworkInDet.InDetToolsConfig import InDetLRTMergeCfg
20 acc.merge(InDetLRTMergeCfg(flags))
21
22 # VrtSecInclusive
23 from VrtSecInclusive.VrtSecInclusiveConfig import VrtSecInclusiveCfg
24 acc.merge(VrtSecInclusiveCfg(
25 flags,
26 name="VrtSecInclusive",
27 AugmentingVersionString="",
28 FillIntermediateVertices=False,
29 TrackLocation="InDetWithLRTTrackParticles"))
30
31 # NewVrtSecInclusive
32 from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig import (
33 MaterialSVFinderToolCfg, DVFinderToolCfg, KsFinderToolCfg)
34 MaterialSVFinderTool = acc.popToolsAndMerge(
35 MaterialSVFinderToolCfg(flags, AugmentingVersionString="_Material"))
36 acc.addEventAlgo(CompFactory.Rec.NewVrtSecInclusiveAlg(
37 name="NewVrtSecInclusive_Material",
38 TrackParticleContainer="InDetWithLRTTrackParticles",
39 PrimaryVertexContainer="PrimaryVertices",
40 BVertexContainerName="NewVrtSecInclusive_SecondaryVertices_Material",
41 BVertexTool=MaterialSVFinderTool))
42
43 DVFinderTool = acc.popToolsAndMerge(
44 DVFinderToolCfg(flags, AugmentingVersionString="_DV"))
45 acc.addEventAlgo(CompFactory.Rec.NewVrtSecInclusiveAlg(
46 name="NewVrtSecInclusive_DV",
47 TrackParticleContainer="InDetWithLRTTrackParticles",
48 PrimaryVertexContainer="PrimaryVertices",
49 BVertexContainerName="NewVrtSecInclusive_SecondaryVertices_DV",
50 BVertexTool=DVFinderTool))
51
52 KsFinderTool = acc.popToolsAndMerge(
53 KsFinderToolCfg(flags, AugmentingVersionString="_Ks"))
54 acc.addEventAlgo(CompFactory.Rec.NewVrtSecInclusiveAlg(
55 name="NewVrtSecInclusive_Ks",
56 TrackParticleContainer="InDetWithLRTTrackParticles",
57 PrimaryVertexContainer="PrimaryVertices",
58 BVertexContainerName="NewVrtSecInclusive_SecondaryVertices_Ks",
59 BVertexTool=KsFinderTool))
60
61 # V0Finder
62 IDTR2V0ContainerName = "IDTR2RecoV0Candidates"
63 IDTR2KshortContainerName = "IDTR2RecoKshortCandidates"
64 IDTR2LambdaContainerName = "IDTR2RecoLambdaCandidates"
65 IDTR2LambdabarContainerName = "IDTR2RecoLambdabarCandidates"
66
67 from InDetConfig.InDetV0FinderConfig import IDTR2_V0FinderToolCfg
68 V0FinderTool = acc.popToolsAndMerge(IDTR2_V0FinderToolCfg(
69 flags,
70 name="IDTR2_V0FinderTool",
71 TrackParticleCollection="InDetWithLRTTrackParticles",
72 V0ContainerName=IDTR2V0ContainerName,
73 KshortContainerName=IDTR2KshortContainerName,
74 LambdaContainerName=IDTR2LambdaContainerName,
75 LambdabarContainerName=IDTR2LambdabarContainerName))
76
77 from DerivationFrameworkBPhys.V0ToolConfig import BPHY_Reco_V0FinderCfg
78 IDTR2_Reco_V0Finder = acc.popToolsAndMerge(BPHY_Reco_V0FinderCfg(
79 flags, derivation = "IDTR2",
80 V0ContainerName = IDTR2V0ContainerName,
81 KshortContainerName = IDTR2KshortContainerName,
82 LambdaContainerName = IDTR2LambdaContainerName,
83 LambdabarContainerName = IDTR2LambdabarContainerName,
84 CheckVertexContainers = ['PrimaryVertices'],
85 V0FinderTool = V0FinderTool))
86
87 skimmingTools = []
88 augmentationTools = [IDTR2_Reco_V0Finder]
89
90 if flags.Derivation.InDet.doTrackSystematics:
91 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig import TrackSystematicsAlgCfg
92 acc.merge(TrackSystematicsAlgCfg(
93 flags,
94 InputTrackContainer="InDetWithLRTTrackParticles",
95 OutputTrackContainer=(
96 "InDetWithLRTTrackParticles_TRK_EFF_LARGED0_GLOBAL__1down")))
97
98 V0FinderToolSyst = acc.popToolsAndMerge(IDTR2_V0FinderToolCfg(
99 flags,
100 name="IDTR2_V0FinderTool_Syst",
101 TrackParticleCollection=(
102 "InDetWithLRTTrackParticles_TRK_EFF_LARGED0_GLOBAL__1down"),
103 V0ContainerName=IDTR2V0ContainerName + "Syst",
104 KshortContainerName=IDTR2KshortContainerName + "Syst",
105 LambdaContainerName=IDTR2LambdaContainerName + "Syst",
106 LambdabarContainerName=IDTR2LambdabarContainerName + "Syst"))
107
108 IDTR2_Reco_V0FinderSyst = acc.popToolsAndMerge(BPHY_Reco_V0FinderCfg(
109 flags, derivation = "IDTR2", suffix = "_Syst",
110 V0ContainerName = IDTR2V0ContainerName + "Syst",
111 KshortContainerName = IDTR2KshortContainerName + "Syst",
112 LambdaContainerName = IDTR2LambdaContainerName + "Syst",
113 LambdabarContainerName = IDTR2LambdabarContainerName + "Syst",
114 CheckVertexContainers = ['PrimaryVertices'],
115 V0FinderTool = V0FinderToolSyst))
116
117 augmentationTools += [IDTR2_Reco_V0FinderSyst]
118
119 for t in augmentationTools:
120 acc.addPublicTool(t)
121
122 # Define the main kernel
123 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
124 acc.addEventAlgo(DerivationKernel("IDTR2Kernel",
125 AugmentationTools=augmentationTools,
126 SkimmingTools=skimmingTools))
127
128 # ============================
129 # Define contents of the format
130 # =============================
131 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
132 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
133 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
134
135 IDTR2SlimmingHelper = SlimmingHelper(
136 "IDTR2SlimmingHelper",
137 NamesAndTypes=flags.Input.TypedCollections,
138 flags=flags)
139
140 IDTR2SlimmingHelper.AllVariables = [
141 "EventInfo",
142 "PrimaryVertices",
143 "InDetTrackParticles",
144 "InDetLargeD0TrackParticles",
145 "TruthParticles",
146 "TruthVertices"
147 ]
148
149 StaticContent = []
150 StaticContent += ["xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices"]
151 StaticContent += ["xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVerticesAux."]
152
153 for vertexContainer in ["NewVrtSecInclusive_SecondaryVertices_DV",
154 "NewVrtSecInclusive_SecondaryVertices_Material",
155 "NewVrtSecInclusive_SecondaryVertices_Ks",
156 "IDTR2RecoV0Candidates",
157 "IDTR2RecoKshortCandidates",
158 "IDTR2RecoLambdaCandidates",
159 "IDTR2RecoLambdabarCandidates",
160 "IDTR2RecoV0CandidatesSyst",
161 "IDTR2RecoKshortCandidatesSyst",
162 "IDTR2RecoLambdaCandidatesSyst",
163 "IDTR2RecoLambdabarCandidatesSyst"]:
164 StaticContent += ["xAOD::VertexContainer#%s" % vertexContainer]
165 StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" %
166 vertexContainer]
167
168 IDTR2SlimmingHelper.StaticContent = StaticContent
169
170 IDTR2ItemList = IDTR2SlimmingHelper.GetItemList()
171 acc.merge(OutputStreamCfg(flags, "DAOD_IDTR2",
172 ItemList=IDTR2ItemList,
173 AcceptAlgs=["IDTR2Kernel"]))
174 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_IDTR2",
175 AcceptAlgs=["IDTR2Kernel"],
176 createMetadata=[MetadataCategory.CutFlowMetaData]))
177
178 return acc
IDTR2Cfg(flags)
Definition IDTR2.py:14