17 from AthenaServices.PartPropSvcConfig
import PartPropSvcCfg
18 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
19 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
20 acc = ComponentAccumulator()
21 acc.getPrimaryAndMerge(PartPropSvcCfg(flags))
23 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
24 BPHY26TriggerListsHelper = TriggerListsHelper(flags)
26 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
27 acc.addPublicTool(V0Tools)
28 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
29 acc.addPublicTool(vkalvrt)
30 trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
31 acc.addPublicTool(trackselect)
32 vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
33 acc.addPublicTool(vpest)
34 pvrefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
35 acc.addPublicTool(pvrefitter)
43 Jpsimass_lower = 770.0
44 Jpsimass_upper = 10000.0
46 Wmass_upper = 13000000
48 BPHY26JpsiFinder = CompFactory.Analysis.JpsiFinder(
49 name =
"BPHY26JpsiFinder",
52 TrackAndTrack =
False,
54 trackThresholdPt = 2500.,
55 invMassUpper = Jpsimass_upper,
56 invMassLower = Jpsimass_lower,
58 oppChargesOnly =
True,
59 atLeastOneComb =
True,
60 useCombinedMeasurement =
False,
61 muonCollectionKey =
"Muons",
62 TrackParticleCollection =
"InDetTrackParticles",
63 TrkVertexFitterTool = vkalvrt,
64 TrackSelectorTool = trackselect,
65 VertexPointEstimator = vpest,
68 acc.addPublicTool(BPHY26JpsiFinder)
70 BPHY26_Reco_mumu = CompFactory.DerivationFramework.Reco_Vertex(
71 name =
"BPHY26_Reco_mumu",
72 VertexSearchTool = BPHY26JpsiFinder,
73 OutputVtxContainerName =
"BPHY26OniaCandidates",
74 PVContainerName =
"PrimaryVertices",
75 RefPVContainerName =
"SHOULDNOTBEUSED",
78 PVRefitter = pvrefitter,
84 BPHY26Plus1Track = CompFactory.Analysis.JpsiPlus1Track(
85 name =
"BPHY26Plus1Track",
86 pionHypothesis =
True,
87 kaonHypothesis =
False,
88 trkThresholdPt = 3000,
90 JpsiMassLower = Jpsimass_lower,
91 JpsiMassUpper = Jpsimass_upper,
92 TrkTrippletMassLower = Wmass_lower,
93 TrkTrippletMassUpper = Wmass_upper,
95 JpsiContainerKey =
"BPHY26OniaCandidates",
96 TrackParticleCollection =
"InDetTrackParticles",
97 MuonsUsedInJpsi =
"Muons",
98 ExcludeJpsiMuonsOnly =
True,
99 TrkVertexFitterTool = vkalvrt,
100 TrackSelectorTool = trackselect,
101 UseMassConstraint =
False)
103 acc.addPublicTool(BPHY26Plus1Track)
105 BPHY26ThreeTrackSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
106 name =
"BPHY26ThreeTrackSelectAndWrite",
107 VertexSearchTool = BPHY26Plus1Track,
108 OutputVtxContainerName =
"BPHY26ThreeTrack",
109 PVContainerName =
"PrimaryVertices",
110 RefPVContainerName =
"BPHY26RefPrimaryVertices1",
113 PVRefitter = pvrefitter,
118 BPHY26_Select_ThreeTrack = CompFactory.DerivationFramework.Select_onia2mumu(
119 name =
"BPHY26_Select_ThreeTrack",
120 HypothesisName =
"ThreeTracks",
121 InputVtxContainerName =
"BPHY26ThreeTrack",
123 TrkMasses = [105.658, 105.658, 139.570],
125 MassMin = Wmass_lower,
126 MassMax = Wmass_upper,
134 BPHY26TrackIsolationDecorator = CompFactory.DerivationFramework.VertexTrackIsolation(
135 name =
"BPHY26TrackIsolationDecorator",
136 TrackIsoTool =
"xAOD::TrackIsolationTool",
137 TrackContainer =
"InDetTrackParticles",
138 InputVertexContainer =
"BPHY26ThreeTrack",
139 PassFlags = [
"passed_ThreeTracks"],
148 BPHY26_Revertex_phipi = CompFactory.DerivationFramework.ReVertex(
149 name =
"BPHY26_Revertex_phipi",
150 InputVtxContainerName =
"BPHY26ThreeTrack",
151 TrackIndices = [ 0, 1, 2 ],
152 SubVertexTrackIndices = [ 1, 2 ],
154 RefPVContainerName =
"BPHY26phipiRefPrimaryVertices",
155 UseMassConstraint =
False,
156 SubVertexMass = Phimass,
157 MassInputParticles = [105.658, 105.658, 139.570],
158 TrkVertexFitterTool = vkalvrt,
159 PVRefitter = pvrefitter,
161 OutputVtxContainerName =
"BPHY26Revtx_phipi")
163 BPHY26_Select_phipi = CompFactory.DerivationFramework.Select_onia2mumu(
164 name =
"BPHY26_Select_phipi",
165 HypothesisName =
"phipi",
166 InputVtxContainerName =
"BPHY26Revtx_phipi",
167 TrkMasses = [105.658, 105.658, 139.570],
169 MassMin = Wmass_lower,
170 MassMax = Wmass_upper,
173 BPHY26_Revertex_Jpsipi = CompFactory.DerivationFramework.ReVertex(
174 name =
"BPHY26_Revertex_Jpsipi",
175 InputVtxContainerName =
"BPHY26ThreeTrack",
176 TrackIndices = [ 0, 1, 2 ],
177 SubVertexTrackIndices = [ 1, 2 ],
179 RefPVContainerName =
"BPHY26JpsipiRefPrimaryVertices",
180 UseMassConstraint =
True,
181 SubVertexMass = Jpsimass,
182 MassInputParticles = [105.658, 105.658, 139.570],
183 TrkVertexFitterTool = vkalvrt,
184 PVRefitter = pvrefitter,
186 OutputVtxContainerName =
"BPHY26Revtx_Jpsipi")
188 BPHY26_Select_Jpsipi = CompFactory.DerivationFramework.Select_onia2mumu(
189 name =
"BPHY26_Select_Jpsipi",
190 HypothesisName =
"Jpsipi",
191 InputVtxContainerName =
"BPHY26Revtx_Jpsipi",
192 TrkMasses = [105.658, 105.658, 139.570],
194 MassMin = Wmass_lower,
195 MassMax = Wmass_upper,
198 BPHY26_Revertex_Upsipi = CompFactory.DerivationFramework.ReVertex(
199 name =
"BPHY26_Revertex_Upsipi",
200 InputVtxContainerName =
"BPHY26ThreeTrack",
201 TrackIndices = [ 0, 1, 2 ],
202 SubVertexTrackIndices = [ 1, 2 ],
204 RefPVContainerName =
"BPHY26UpsipiRefPrimaryVertices",
205 UseMassConstraint =
True,
206 SubVertexMass = Upsimass,
207 MassInputParticles = [105.658, 105.658, 139.570],
208 TrkVertexFitterTool = vkalvrt,
209 PVRefitter = pvrefitter,
211 OutputVtxContainerName =
"BPHY26Revtx_Upsipi")
213 BPHY26_Select_Upsipi = CompFactory.DerivationFramework.Select_onia2mumu(
214 name =
"BPHY26_Select_Upsipi",
215 HypothesisName =
"Upsipi",
216 InputVtxContainerName =
"BPHY26Revtx_Upsipi",
217 TrkMasses = [105.658, 105.658, 139.570],
219 MassMin = Wmass_lower,
220 MassMax = Wmass_upper,
234 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
235 acc.merge(PhysCommonAugmentationsCfg(
237 TriggerListsHelper = BPHY26TriggerListsHelper
241 expression =
"( count(BPHY26ThreeTrack.passed_ThreeTracks) > 0 && ( count(BPHY26Revtx_Jpsipi.passed_Jpsipi) + count(BPHY26Revtx_Upsipi.passed_Upsipi) + count(BPHY26Revtx_phipi.passed_phipi) ) > 0)"
242 BPHY26_SelectEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"BPHY26_SelectEvent", expression = expression)
244 augTools = [BPHY26_Reco_mumu, BPHY26ThreeTrackSelectAndWrite, BPHY26_Select_ThreeTrack]
245 augTools += [BPHY26TrackIsolationDecorator, BPHY26_Revertex_phipi , BPHY26_Select_phipi, BPHY26_Revertex_Jpsipi, BPHY26_Select_Jpsipi , BPHY26_Revertex_Upsipi , BPHY26_Select_Upsipi]
246 skimTools = [BPHY26_SelectEvent]
247 for t
in augTools +skimTools : acc.addPublicTool(t)
248 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"BPHY26Kernel",
249 AugmentationTools = augTools,
251 SkimmingTools = skimTools,
255 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
256 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Muons")))
262 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
263 contNames = [
"Muons"]
264 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False, containerNames = contNames, useSelTools =
True, stream_name =
"StreamDAOD_BPHY26"))
267 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
268 acc.merge(FlavorTaggingCfg(flags,
"AntiKt4EMPFlowJets"), sequenceName=
"BPHY26Sequence")
271 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
272 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
273 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
275 BPHY26SlimmingHelper =
SlimmingHelper(
"BPHY26SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
277 BPHY26SlimmingHelper.SmartCollections = [
"EventInfo",
282 "InDetTrackParticles",
284 "AntiKt4EMPFlowJets",
285 "MET_Baseline_AntiKt4EMTopo",
286 "MET_Baseline_AntiKt4EMPFlow",
291 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
292 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
295 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
296 BPHY26_AllVariables = getDefaultAllVariables()
297 BPHY26_StaticContent = []
301 BPHY26_AllVariables += [
"PrimaryVertices"]
302 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26RefPrimaryVertices1"]
303 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26RefPrimaryVertices1Aux."]
304 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26phipiRefPrimaryVertices"]
305 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26phipiRefPrimaryVerticesAux."]
306 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26JpsipiRefPrimaryVertices"]
307 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26JpsipiRefPrimaryVerticesAux."]
308 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26UpsipiRefPrimaryVertices"]
309 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26UpsipiRefPrimaryVerticesAux."]
312 BPHY26_AllVariables += [
"InDetTrackParticles"]
317 BPHY26_AllVariables += [
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles"]
320 BPHY26_AllVariables += [
"Muons",
"MuonSegments"]
322 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Reco_mumu.OutputVtxContainerName]
323 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Reco_mumu.OutputVtxContainerName]
325 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26ThreeTrackSelectAndWrite.OutputVtxContainerName]
326 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26ThreeTrackSelectAndWrite.OutputVtxContainerName]
328 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_phipi.OutputVtxContainerName]
329 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_phipi.OutputVtxContainerName]
331 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_Jpsipi.OutputVtxContainerName]
332 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_Jpsipi.OutputVtxContainerName]
334 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_Upsipi.OutputVtxContainerName]
335 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_Upsipi.OutputVtxContainerName]
337 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
338 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
339 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
340 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
341 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
342 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
343 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
349 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
350 addTruth3ContentToSlimmerTool(BPHY26SlimmingHelper)
351 BPHY26SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
"Muons.TruthLink",
"Photons.TruthLink",
"AntiKt4TruthDressedWZJets.IsoFixedCone5Pt"]
353 BPHY26_AllVariables += [
"TruthLHEParticles",
"TruthHFWithDecayParticles",
"TruthHFWithDecayVertices",
"TruthCharm",
"TruthPileupParticles",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
354 "TruthPrimaryVertices",
"TruthEvents",
"TruthParticles",
"TruthVertices",
"TruthElectrons",
"TruthMuons",
"TruthTaus"]
356 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
357 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
358 BPHY26_AllVariables += [
"TruthTausWithDecayParticles",
"TruthTausWithDecayVertices"]
360 BPHY26SlimmingHelper.SmartCollections += [
361 "AntiKt4TruthDressedWZJets",
362 "AntiKt4TruthWZJets",
367 MuonsExtraContent = [
".".join( [
369 "MeasEnergyLoss.MeasEnergyLossSigma.EnergyLossSigma.ParamEnergyLoss",
370 "ParamEnergyLossSigmaMinus.ParamEnergyLossSigmaPlus.clusterLink.scatteringCurvatureSignificance",
371 "deltaPhiRescaled2.deltaPhiFromLastMeasurement.scatteringNeighbourSignificance",
372 "ptcone20.ptcone30.ptcone40.ptvarcone20.ptvarcone30.ptvarcone40.topoetcone30",
373 "neflowisol20.neflowisol30.neflowisol40.ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500",
374 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500",
375 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500",
376 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone20_Nonprompt_All_MaxWeightTTVA_pt500",
377 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone30_Nonprompt_All_MaxWeightTTVA_pt500",
378 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone40_Nonprompt_All_MaxWeightTTVA_pt500",
379 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
380 "msInnerMatchChi2",
"isoSelIsOK",
"ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr",
381 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr",
"neflowisol20_CloseByCorr",
"topoetcone20_CloseByCorr"
384 BPHY26SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.IsoFixedCone5PtPUsub",
385 "AntiKt4EMPFlowJets.QGTransformer_ConstScore.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
386 "TruthPrimaryVertices.t.x.y.z",
387 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
388 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
389 "TauJets.dRmax.etOverPtLeadTrk",
390 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
391 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
392 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
394 BPHY26SlimmingHelper.ExtraVariables += MuonsExtraContent
396 from IsolationSelection.IsolationSelectionConfig
import setupIsoCloseBySlimmingVariables
397 setupIsoCloseBySlimmingVariables(BPHY26SlimmingHelper)
399 BPHY26SlimmingHelper.AllVariables = BPHY26_AllVariables
400 BPHY26SlimmingHelper.StaticContent = BPHY26_StaticContent
403 BPHY26SlimmingHelper.IncludeMuonTriggerContent =
True
404 BPHY26SlimmingHelper.IncludeBPhysTriggerContent =
True
408 if flags.Trigger.EDMVersion == 2:
409 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
410 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper,
411 OutputContainerPrefix =
"TrigMatch_",
412 TriggerList = BPHY26TriggerListsHelper.Run2TriggerNamesTau)
413 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper,
414 OutputContainerPrefix =
"TrigMatch_",
415 TriggerList = BPHY26TriggerListsHelper.Run2TriggerNamesNoTau)
418 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
419 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
420 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(BPHY26SlimmingHelper)
423 from Campaigns.Utils
import getDataYear
424 if getDataYear(flags) >= 2024:
426 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddjFexRoIsToSlimmingHelper
427 AddjFexRoIsToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper)
428 elif getDataYear(flags) >= 2015:
430 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddLegacyL1JetRoIsToSlimmingHelper
431 AddLegacyL1JetRoIsToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper)
434 BPHY26ItemList = BPHY26SlimmingHelper.GetItemList()
435 acc.merge(OutputStreamCfg(flags,
"DAOD_BPHY26", ItemList=BPHY26ItemList, AcceptAlgs=[
"BPHY26Kernel"]))
436 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY26", AcceptAlgs=[
"BPHY26Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
437 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)