33 """Configure the derivation framework driving algorithm (kernel) for STDM16"""
34 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
36 acc = ComponentAccumulator()
44 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import (
45 AddStandardTruthContentsCfg,
47 AddMiniTruthCollectionLinksCfg,
49 AddTruthCollectionNavigationDecorationsCfg,
50 TruthClassificationAugmentationsCfg)
51 acc.merge(TruthClassificationAugmentationsCfg(flags))
52 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import DFCommonTruthCharmToolCfg
53 STDM16CommonTruthCharmTool = acc.getPrimaryAndMerge(DFCommonTruthCharmToolCfg(
55 name =
"STDM16CommonTruthCharmTool"))
56 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
57 acc.addEventAlgo(CommonAugmentation(
"STDM16CommonTruthCharmKernel",AugmentationTools=[STDM16CommonTruthCharmTool]))
59 acc.merge(AddStandardTruthContentsCfg(flags))
60 acc.merge(AddTruthCollectionNavigationDecorationsCfg(
62 TruthCollections=[
"TruthMuons",
68 acc.merge(AddMiniTruthCollectionLinksCfg(flags))
69 acc.merge(AddPVCollectionCfg(flags))
72 from DerivationFrameworkInDet.InDetCommonConfig
import InDetCommonCfg
73 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
74 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
78 acc.merge(InDetCommonCfg(flags,
79 DoVertexFinding = flags.Tracking.doVertexFinding,
80 AddPseudoTracks = flags.Tracking.doPseudoTracking,
82 DoR3LargeD0 = flags.Tracking.doLargeD0,
83 StoreSeparateLargeD0Container = flags.Tracking.storeSeparateLargeD0Container,
85 acc.merge(MuonsCommonCfg(flags))
86 acc.merge(EGammaCommonCfg(flags))
89 from DerivationFrameworkJetEtMiss.JetCommonConfig
import JetCommonCfg
92 acc.merge(JetCommonCfg(flags))
99 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags,
"STDM16"))
100 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags,
"STDM16"))
101 trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags,
"STDM16"))
102 vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags,
"STDM16"))
104 acc.addPublicTool(vkalvrt)
105 acc.addPublicTool(V0Tools)
106 acc.addPublicTool(trackselect)
107 acc.addPublicTool(vpest)
114 STDM16_AugmentationTools = []
120 STDM16_Finder_D0 = CompFactory.Analysis.JpsiFinder(
121 name =
"STDM16_Finder_D0",
125 TrackAndTrack =
True,
126 assumeDiMuons =
False,
127 invMassUpper = 3000.0,
130 oppChargesOnly =
True,
131 atLeastOneComb =
False,
132 useCombinedMeasurement =
False,
133 track1Mass = massPiPlus,
134 track2Mass = massPiPlus,
135 trackThresholdPt = 1000.0,
136 muonCollectionKey =
"Muons",
137 TrackParticleCollection =
"InDetTrackParticles",
138 TrkVertexFitterTool = vkalvrt,
139 TrackSelectorTool = trackselect,
140 VertexPointEstimator = vpest,
143 acc.addPublicTool(STDM16_Finder_D0)
145 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
146 PVrefit = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
147 acc.addPublicTool(PVrefit)
149 STDM16_Reco_D0 = CompFactory.DerivationFramework.Reco_Vertex(
150 name =
"STDM16_Reco_D0",
151 VertexSearchTool = STDM16_Finder_D0,
152 OutputVtxContainerName =
"STDM16_D0Candidates",
153 PVContainerName =
"PrimaryVertices",
155 PVRefitter = PVrefit,
157 RefPVContainerName =
"SHOULDNOTBEUSED",
160 acc.addPublicTool(STDM16_Reco_D0)
161 STDM16_AugmentationTools += [STDM16_Reco_D0]
174 STDM16_Select_D0 = CompFactory.DerivationFramework.Select_onia2mumu(
175 name =
"STDM16_Select_D0",
176 HypothesisName =
"D0",
177 InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
178 TrkMasses = [massPiPlus,massKPlus],
179 VtxMassHypo = massD0,
180 MassMin = cutMinMass,
181 MassMax = cutMaxMass,
182 Chi2Max = cutMaxChiSq,
185 acc.addPublicTool(STDM16_Select_D0)
186 STDM16_AugmentationTools += [STDM16_Select_D0]
188 STDM16_Select_D0b = CompFactory.DerivationFramework.Select_onia2mumu(
189 name =
"STDM16_Select_D0b",
190 HypothesisName =
"D0b",
191 InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
192 TrkMasses = [massKPlus,massPiPlus],
193 VtxMassHypo = massD0,
194 MassMin = cutMinMass,
195 MassMax = cutMaxMass,
196 Chi2Max = cutMaxChiSq,
199 acc.addPublicTool(STDM16_Select_D0b)
200 STDM16_AugmentationTools += [STDM16_Select_D0b]
209 name =
"STDM16_DStarSelectionTool",
210 InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
211 DeltaMassMax = 200.0))
213 STDM16_AugmentationTools += [STDM16_DStarSelectionTool]
219 STDM16_SkimmingTools = []
226 SelectExpression =
"count(STDM16_D0Candidates.passed_Dstar) > 0"
228 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import (
229 xAODStringSkimmingToolCfg)
230 STDM16_SelectEvent = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
231 flags, name =
"STDM16_SelectEvent", expression = SelectExpression))
232 STDM16_SkimmingTools += [STDM16_SelectEvent]
237 STDM16_ThinningTools = []
243 STDM16_Thin_Vertex = CompFactory.DerivationFramework.Thin_vtxTrk(
244 name =
"STDM16_Thin_Vertex",
245 StreamName = streamName,
247 VertexContainerNames = [
"STDM16_D0Candidates"],
248 PassFlags = [
"passed_Dstar"] )
249 STDM16_ThinningTools += [STDM16_Thin_Vertex]
250 acc.addPublicTool(STDM16_Thin_Vertex)
257 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
259 track_thinning_expression =
"(InDetTrackParticles.trackPassDstar == 1)"
260 STDM16_Thin_Tracks = acc.getPrimaryAndMerge(
261 GenericObjectThinningCfg(flags,
262 name =
"STDM16_Thin_Tracks",
263 ContainerName =
"InDetTrackParticles",
264 StreamName = streamName,
265 SelectionString = track_thinning_expression))
266 STDM16_ThinningTools += [STDM16_Thin_Tracks]
267 acc.addPublicTool(STDM16_Thin_Tracks)
269 acc.addPublicTool(STDM16_SelectEvent)
270 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"STDM16Kernel",
271 SkimmingTools = STDM16_SkimmingTools,
272 ThinningTools = STDM16_ThinningTools,
273 AugmentationTools = STDM16_AugmentationTools))
281 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
282 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
283 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
284 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
288 AllVariables = getDefaultAllVariables()
293 AllVariables += [
"PrimaryVertices"]
296 AllVariables += [
"InDetTrackParticles"]
303 StaticContent += [
"xAOD::VertexContainer#%s" % CandidatesContainerName ]
306 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % CandidatesContainerName]
310 if flags.Input.isMC :
311 AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"MuonTruthParticles",
"AntiKt4TruthJets",
"AntiKt4TruthWZJets"]
313 STDM16SlimmingHelper =
SlimmingHelper(
"STDM16SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
316 STDM16SlimmingHelper.SmartCollections = [
"AntiKt4EMPFlowJets",
320 "InDetTrackParticles"]
323 STDM16SlimmingHelper.ExtraVariables += [
"InDetTrackParticles.trackPassDstar",
324 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostPartons.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
325 "TruthPrimaryVertices.t.x.y.z",
326 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
327 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
328 "TauJets.dRmax.etOverPtLeadTrk",
329 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
330 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
331 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
335 STDM16SlimmingHelper.IncludeJetTriggerContent =
True
336 STDM16SlimmingHelper.IncludeMuonTriggerContent =
True
337 STDM16SlimmingHelper.AllVariables = AllVariables
338 STDM16SlimmingHelper.StaticContent = StaticContent
339 STDM16ItemList = STDM16SlimmingHelper.GetItemList()
341 acc.merge(OutputStreamCfg(flags,
"DAOD_STDM16", ItemList=STDM16ItemList, AcceptAlgs=[
"STDM16Kernel"]))
342 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_STDM16", AcceptAlgs=[
"STDM16Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
343 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)