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)
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  # V0Finder
53  IDTR2V0ContainerName = "IDTR2RecoV0Candidates"
54  IDTR2KshortContainerName = "IDTR2RecoKshortCandidates"
55  IDTR2LambdaContainerName = "IDTR2RecoLambdaCandidates"
56  IDTR2LambdabarContainerName = "IDTR2RecoLambdabarCandidates"
57 
58  from InDetConfig.InDetV0FinderConfig import IDTR2_V0FinderToolCfg
59  V0FinderTool = acc.popToolsAndMerge(IDTR2_V0FinderToolCfg(
60  flags,
61  name="IDTR2_V0FinderTool",
62  TrackParticleCollection="InDetWithLRTTrackParticles",
63  V0ContainerName=IDTR2V0ContainerName,
64  KshortContainerName=IDTR2KshortContainerName,
65  LambdaContainerName=IDTR2LambdaContainerName,
66  LambdabarContainerName=IDTR2LambdabarContainerName))
67 
68  from DerivationFrameworkBPhys.V0ToolConfig import BPHY_Reco_V0FinderCfg
69  IDTR2_Reco_V0Finder = acc.popToolsAndMerge(BPHY_Reco_V0FinderCfg(
70  flags, derivation = "IDTR2",
71  V0ContainerName = IDTR2V0ContainerName,
72  KshortContainerName = IDTR2KshortContainerName,
73  LambdaContainerName = IDTR2LambdaContainerName,
74  LambdabarContainerName = IDTR2LambdabarContainerName,
75  CheckVertexContainers = ['PrimaryVertices'],
76  V0FinderTool = V0FinderTool))
77 
78  skimmingTools = []
79  augmentationTools = [IDTR2_Reco_V0Finder]
80 
81  if flags.Derivation.InDet.doTrackSystematics:
82  from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig import TrackSystematicsAlgCfg
83  acc.merge(TrackSystematicsAlgCfg(
84  flags,
85  InputTrackContainer="InDetWithLRTTrackParticles",
86  OutputTrackContainer=(
87  "InDetWithLRTTrackParticles_TRK_EFF_LARGED0_GLOBAL__1down")))
88 
89  V0FinderToolSyst = acc.popToolsAndMerge(IDTR2_V0FinderToolCfg(
90  flags,
91  name="IDTR2_V0FinderTool_Syst",
92  TrackParticleCollection=(
93  "InDetWithLRTTrackParticles_TRK_EFF_LARGED0_GLOBAL__1down"),
94  V0ContainerName=IDTR2V0ContainerName + "Syst",
95  KshortContainerName=IDTR2KshortContainerName + "Syst",
96  LambdaContainerName=IDTR2LambdaContainerName + "Syst",
97  LambdabarContainerName=IDTR2LambdabarContainerName + "Syst"))
98 
99  IDTR2_Reco_V0FinderSyst = acc.popToolsAndMerge(BPHY_Reco_V0FinderCfg(
100  flags, derivation = "IDTR2", suffix = "_Syst",
101  V0ContainerName = IDTR2V0ContainerName + "Syst",
102  KshortContainerName = IDTR2KshortContainerName + "Syst",
103  LambdaContainerName = IDTR2LambdaContainerName + "Syst",
104  LambdabarContainerName = IDTR2LambdabarContainerName + "Syst",
105  CheckVertexContainers = ['PrimaryVertices'],
106  V0FinderTool = V0FinderToolSyst))
107 
108  augmentationTools += [IDTR2_Reco_V0FinderSyst]
109 
110  for t in augmentationTools:
111  acc.addPublicTool(t)
112 
113  # Define the main kernel
114  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
115  acc.addEventAlgo(DerivationKernel("IDTR2Kernel",
116  AugmentationTools=augmentationTools,
117  SkimmingTools=skimmingTools))
118 
119  # ============================
120  # Define contents of the format
121  # =============================
122  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
123  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
124  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
125 
126  IDTR2SlimmingHelper = SlimmingHelper(
127  "IDTR2SlimmingHelper",
128  NamesAndTypes=flags.Input.TypedCollections,
129  flags=flags)
130 
131  IDTR2SlimmingHelper.AllVariables = [
132  "EventInfo",
133  "PrimaryVertices",
134  "InDetTrackParticles",
135  "InDetLargeD0TrackParticles",
136  "TruthParticles",
137  "TruthVertices"
138  ]
139 
140  StaticContent = []
141  StaticContent += ["xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices"]
142  StaticContent += ["xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVerticesAux."]
143 
144  for vertexContainer in ["NewVrtSecInclusive_SecondaryVertices_DV",
145  "NewVrtSecInclusive_SecondaryVertices_Material",
146  "IDTR2RecoV0Candidates",
147  "IDTR2RecoKshortCandidates",
148  "IDTR2RecoLambdaCandidates",
149  "IDTR2RecoLambdabarCandidates",
150  "IDTR2RecoV0CandidatesSyst",
151  "IDTR2RecoKshortCandidatesSyst",
152  "IDTR2RecoLambdaCandidatesSyst",
153  "IDTR2RecoLambdabarCandidatesSyst"]:
154  StaticContent += ["xAOD::VertexContainer#%s" % vertexContainer]
155  StaticContent += ["xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" %
156  vertexContainer]
157 
158  IDTR2SlimmingHelper.StaticContent = StaticContent
159 
160  IDTR2ItemList = IDTR2SlimmingHelper.GetItemList()
161  acc.merge(OutputStreamCfg(flags, "DAOD_IDTR2",
162  ItemList=IDTR2ItemList,
163  AcceptAlgs=["IDTR2Kernel"]))
164  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_IDTR2",
165  AcceptAlgs=["IDTR2Kernel"],
166  createMetadata=[MetadataCategory.CutFlowMetaData]))
167 
168  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
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:112
NewVrtSecInclusiveConfig.DVFinderToolCfg
def DVFinderToolCfg(flags, name="DVFinderTool", **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