ATLAS Offline Software
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 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.Enums import MetadataCategory
10 
11 streamName = "StreamDAOD_IDTR2"
12 
13 
14 def 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
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
VrtSecInclusiveConfig.VrtSecInclusiveCfg
def VrtSecInclusiveCfg(flags, name="VrtSecInclusive", **kwargs)
Definition: VrtSecInclusiveConfig.py:9
python.InDetV0FinderConfig.IDTR2_V0FinderToolCfg
def IDTR2_V0FinderToolCfg(flags, name="IDTR2_V0FinderTool", **kwargs)
Definition: InDetV0FinderConfig.py:85
V0ToolConfig.BPHY_Reco_V0FinderCfg
def BPHY_Reco_V0FinderCfg(flags, derivation="", suffix="", V0ContainerName="", KshortContainerName="", LambdaContainerName="", LambdabarContainerName="", CheckVertexContainers=[], **kwargs)
Definition: V0ToolConfig.py:48
python.IDTR2.IDTR2Cfg
def IDTR2Cfg(flags)
Definition: IDTR2.py:14
NewVrtSecInclusiveConfig.MaterialSVFinderToolCfg
def MaterialSVFinderToolCfg(flags, name="MaterialSVFinderTool", **myargs)
Definition: NewVrtSecInclusiveConfig.py:172
InDetTrackSystematicsToolsConfig.TrackSystematicsAlgCfg
def TrackSystematicsAlgCfg(flags, name="InDetTrackSystematicsAlg", **kwargs)
Definition: InDetTrackSystematicsToolsConfig.py:114
NewVrtSecInclusiveConfig.DVFinderToolCfg
def DVFinderToolCfg(flags, name="DVFinderTool", **myargs)
Definition: NewVrtSecInclusiveConfig.py:279
NewVrtSecInclusiveConfig.KsFinderToolCfg
def KsFinderToolCfg(flags, name="KsFinderTool", **myargs)
Definition: NewVrtSecInclusiveConfig.py:226
python.InDetToolsConfig.InDetLRTMergeCfg
def InDetLRTMergeCfg(flags, name="InDetLRTMerge", **kwargs)
Definition: InDetToolsConfig.py:14
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66