17 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
18 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
19 acc = ComponentAccumulator()
21 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
22 BPHY26TriggerListsHelper = TriggerListsHelper(flags)
24 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
25 acc.addPublicTool(V0Tools)
26 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
27 acc.addPublicTool(vkalvrt)
28 trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
29 acc.addPublicTool(trackselect)
30 vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
31 acc.addPublicTool(vpest)
32 pvrefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
33 acc.addPublicTool(pvrefitter)
41 Jpsimass_lower = 770.0
42 Jpsimass_upper = 10000.0
44 Wmass_upper = 13000000
46 BPHY26JpsiFinder = CompFactory.Analysis.JpsiFinder(
47 name =
"BPHY26JpsiFinder",
50 TrackAndTrack =
False,
52 trackThresholdPt = 2500.,
53 invMassUpper = Jpsimass_upper,
54 invMassLower = Jpsimass_lower,
56 oppChargesOnly =
True,
57 atLeastOneComb =
True,
58 useCombinedMeasurement =
False,
59 muonCollectionKey =
"Muons",
60 TrackParticleCollection =
"InDetTrackParticles",
61 TrkVertexFitterTool = vkalvrt,
62 TrackSelectorTool = trackselect,
63 VertexPointEstimator = vpest,
66 acc.addPublicTool(BPHY26JpsiFinder)
68 BPHY26_Reco_mumu = CompFactory.DerivationFramework.Reco_Vertex(
69 name =
"BPHY26_Reco_mumu",
70 VertexSearchTool = BPHY26JpsiFinder,
71 OutputVtxContainerName =
"BPHY26OniaCandidates",
72 PVContainerName =
"PrimaryVertices",
73 RefPVContainerName =
"SHOULDNOTBEUSED",
76 PVRefitter = pvrefitter,
82 BPHY26Plus1Track = CompFactory.Analysis.JpsiPlus1Track(
83 name =
"BPHY26Plus1Track",
84 pionHypothesis =
True,
85 kaonHypothesis =
False,
86 trkThresholdPt = 3000,
88 JpsiMassLower = Jpsimass_lower,
89 JpsiMassUpper = Jpsimass_upper,
90 TrkTrippletMassLower = Wmass_lower,
91 TrkTrippletMassUpper = Wmass_upper,
93 JpsiContainerKey =
"BPHY26OniaCandidates",
94 TrackParticleCollection =
"InDetTrackParticles",
95 MuonsUsedInJpsi =
"Muons",
96 ExcludeJpsiMuonsOnly =
True,
97 TrkVertexFitterTool = vkalvrt,
98 TrackSelectorTool = trackselect,
99 UseMassConstraint =
False)
101 acc.addPublicTool(BPHY26Plus1Track)
103 BPHY26ThreeTrackSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
104 name =
"BPHY26ThreeTrackSelectAndWrite",
105 VertexSearchTool = BPHY26Plus1Track,
106 OutputVtxContainerName =
"BPHY26ThreeTrack",
107 PVContainerName =
"PrimaryVertices",
108 RefPVContainerName =
"BPHY26RefPrimaryVertices1",
111 PVRefitter = pvrefitter,
116 BPHY26_Select_ThreeTrack = CompFactory.DerivationFramework.Select_onia2mumu(
117 name =
"BPHY26_Select_ThreeTrack",
118 HypothesisName =
"ThreeTracks",
119 InputVtxContainerName =
"BPHY26ThreeTrack",
121 TrkMasses = [105.658, 105.658, 139.570],
123 MassMin = Wmass_lower,
124 MassMax = Wmass_upper,
132 BPHY26TrackIsolationDecorator = CompFactory.DerivationFramework.VertexTrackIsolation(
133 name =
"BPHY26TrackIsolationDecorator",
134 TrackIsoTool =
"xAOD::TrackIsolationTool",
135 TrackContainer =
"InDetTrackParticles",
136 InputVertexContainer =
"BPHY26ThreeTrack",
137 PassFlags = [
"passed_ThreeTracks"],
146 BPHY26_Revertex_phipi = CompFactory.DerivationFramework.ReVertex(
147 name =
"BPHY26_Revertex_phipi",
148 InputVtxContainerName =
"BPHY26ThreeTrack",
149 TrackIndices = [ 0, 1, 2 ],
150 SubVertexTrackIndices = [ 1, 2 ],
152 RefPVContainerName =
"BPHY26phipiRefPrimaryVertices",
153 UseMassConstraint =
False,
154 SubVertexMass = Phimass,
155 MassInputParticles = [105.658, 105.658, 139.570],
156 TrkVertexFitterTool = vkalvrt,
157 PVRefitter = pvrefitter,
159 OutputVtxContainerName =
"BPHY26Revtx_phipi")
161 BPHY26_Select_phipi = CompFactory.DerivationFramework.Select_onia2mumu(
162 name =
"BPHY26_Select_phipi",
163 HypothesisName =
"phipi",
164 InputVtxContainerName =
"BPHY26Revtx_phipi",
165 TrkMasses = [105.658, 105.658, 139.570],
167 MassMin = Wmass_lower,
168 MassMax = Wmass_upper,
171 BPHY26_Revertex_Jpsipi = CompFactory.DerivationFramework.ReVertex(
172 name =
"BPHY26_Revertex_Jpsipi",
173 InputVtxContainerName =
"BPHY26ThreeTrack",
174 TrackIndices = [ 0, 1, 2 ],
175 SubVertexTrackIndices = [ 1, 2 ],
177 RefPVContainerName =
"BPHY26JpsipiRefPrimaryVertices",
178 UseMassConstraint =
True,
179 SubVertexMass = Jpsimass,
180 MassInputParticles = [105.658, 105.658, 139.570],
181 TrkVertexFitterTool = vkalvrt,
182 PVRefitter = pvrefitter,
184 OutputVtxContainerName =
"BPHY26Revtx_Jpsipi")
186 BPHY26_Select_Jpsipi = CompFactory.DerivationFramework.Select_onia2mumu(
187 name =
"BPHY26_Select_Jpsipi",
188 HypothesisName =
"Jpsipi",
189 InputVtxContainerName =
"BPHY26Revtx_Jpsipi",
190 TrkMasses = [105.658, 105.658, 139.570],
192 MassMin = Wmass_lower,
193 MassMax = Wmass_upper,
196 BPHY26_Revertex_Upsipi = CompFactory.DerivationFramework.ReVertex(
197 name =
"BPHY26_Revertex_Upsipi",
198 InputVtxContainerName =
"BPHY26ThreeTrack",
199 TrackIndices = [ 0, 1, 2 ],
200 SubVertexTrackIndices = [ 1, 2 ],
202 RefPVContainerName =
"BPHY26UpsipiRefPrimaryVertices",
203 UseMassConstraint =
True,
204 SubVertexMass = Upsimass,
205 MassInputParticles = [105.658, 105.658, 139.570],
206 TrkVertexFitterTool = vkalvrt,
207 PVRefitter = pvrefitter,
209 OutputVtxContainerName =
"BPHY26Revtx_Upsipi")
211 BPHY26_Select_Upsipi = CompFactory.DerivationFramework.Select_onia2mumu(
212 name =
"BPHY26_Select_Upsipi",
213 HypothesisName =
"Upsipi",
214 InputVtxContainerName =
"BPHY26Revtx_Upsipi",
215 TrkMasses = [105.658, 105.658, 139.570],
217 MassMin = Wmass_lower,
218 MassMax = Wmass_upper,
232 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
233 acc.merge(PhysCommonAugmentationsCfg(
235 TriggerListsHelper = BPHY26TriggerListsHelper
239 expression =
"( count(BPHY26ThreeTrack.passed_ThreeTracks) > 0 && ( count(BPHY26Revtx_Jpsipi.passed_Jpsipi) + count(BPHY26Revtx_Upsipi.passed_Upsipi) + count(BPHY26Revtx_phipi.passed_phipi) ) > 0)"
240 BPHY26_SelectEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"BPHY26_SelectEvent", expression = expression)
242 augTools = [BPHY26_Reco_mumu, BPHY26ThreeTrackSelectAndWrite, BPHY26_Select_ThreeTrack]
243 augTools += [BPHY26TrackIsolationDecorator, BPHY26_Revertex_phipi , BPHY26_Select_phipi, BPHY26_Revertex_Jpsipi, BPHY26_Select_Jpsipi , BPHY26_Revertex_Upsipi , BPHY26_Select_Upsipi]
244 skimTools = [BPHY26_SelectEvent]
245 for t
in augTools +skimTools : acc.addPublicTool(t)
246 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"BPHY26Kernel",
247 AugmentationTools = augTools,
249 SkimmingTools = skimTools,
253 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
254 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Muons")))
260 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
261 contNames = [
"Muons"]
262 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False, containerNames = contNames, useSelTools =
True, stream_name =
"StreamDAOD_BPHY26"))
265 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
266 acc.merge(FlavorTaggingCfg(flags,
"AntiKt4EMPFlowJets"), sequenceName=
"BPHY26Sequence")
269 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
270 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
271 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
273 BPHY26SlimmingHelper =
SlimmingHelper(
"BPHY26SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
275 BPHY26SlimmingHelper.SmartCollections = [
"EventInfo",
280 "InDetTrackParticles",
282 "AntiKt4EMPFlowJets",
283 "MET_Baseline_AntiKt4EMTopo",
284 "MET_Baseline_AntiKt4EMPFlow",
289 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
290 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
293 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
294 BPHY26_AllVariables = getDefaultAllVariables()
295 BPHY26_StaticContent = []
299 BPHY26_AllVariables += [
"PrimaryVertices"]
300 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26RefPrimaryVertices1"]
301 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26RefPrimaryVertices1Aux."]
302 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26phipiRefPrimaryVertices"]
303 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26phipiRefPrimaryVerticesAux."]
304 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26JpsipiRefPrimaryVertices"]
305 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26JpsipiRefPrimaryVerticesAux."]
306 BPHY26_StaticContent += [
"xAOD::VertexContainer#BPHY26UpsipiRefPrimaryVertices"]
307 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#BPHY26UpsipiRefPrimaryVerticesAux."]
310 BPHY26_AllVariables += [
"InDetTrackParticles"]
315 BPHY26_AllVariables += [
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles"]
318 BPHY26_AllVariables += [
"Muons",
"MuonSegments"]
320 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Reco_mumu.OutputVtxContainerName]
321 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Reco_mumu.OutputVtxContainerName]
323 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26ThreeTrackSelectAndWrite.OutputVtxContainerName]
324 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26ThreeTrackSelectAndWrite.OutputVtxContainerName]
326 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_phipi.OutputVtxContainerName]
327 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_phipi.OutputVtxContainerName]
329 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_Jpsipi.OutputVtxContainerName]
330 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_Jpsipi.OutputVtxContainerName]
332 BPHY26_StaticContent += [
"xAOD::VertexContainer#%s" % BPHY26_Revertex_Upsipi.OutputVtxContainerName]
333 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY26_Revertex_Upsipi.OutputVtxContainerName]
335 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
336 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
337 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
338 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
339 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
340 BPHY26_StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
341 BPHY26_StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
347 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
348 addTruth3ContentToSlimmerTool(BPHY26SlimmingHelper)
349 BPHY26SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
"Muons.TruthLink",
"Photons.TruthLink",
"AntiKt4TruthDressedWZJets.IsoFixedCone5Pt"]
351 BPHY26_AllVariables += [
"TruthLHEParticles",
"TruthHFWithDecayParticles",
"TruthHFWithDecayVertices",
"TruthCharm",
"TruthPileupParticles",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
352 "TruthPrimaryVertices",
"TruthEvents",
"TruthParticles",
"TruthVertices",
"TruthElectrons",
"TruthMuons",
"TruthTaus"]
354 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
355 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
356 BPHY26_AllVariables += [
"TruthTausWithDecayParticles",
"TruthTausWithDecayVertices"]
358 BPHY26SlimmingHelper.SmartCollections += [
359 "AntiKt4TruthDressedWZJets",
360 "AntiKt4TruthWZJets",
365 MuonsExtraContent = [
".".join( [
367 "MeasEnergyLoss.MeasEnergyLossSigma.EnergyLossSigma.ParamEnergyLoss",
368 "ParamEnergyLossSigmaMinus.ParamEnergyLossSigmaPlus.clusterLink.scatteringCurvatureSignificance",
369 "deltaPhiRescaled2.deltaPhiFromLastMeasurement.scatteringNeighbourSignificance",
370 "ptcone20.ptcone30.ptcone40.ptvarcone20.ptvarcone30.ptvarcone40.topoetcone30",
371 "neflowisol20.neflowisol30.neflowisol40.ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt500",
372 "ptvarcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500",
373 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt500",
374 "ptvarcone40_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone20_Nonprompt_All_MaxWeightTTVA_pt500",
375 "ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone30_Nonprompt_All_MaxWeightTTVA_pt500",
376 "ptcone30_Nonprompt_All_MaxWeightTTVA_pt1000.ptcone40_Nonprompt_All_MaxWeightTTVA_pt500",
377 "ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
378 "msInnerMatchChi2",
"isoSelIsOK",
"ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr",
379 "ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr",
"neflowisol20_CloseByCorr",
"topoetcone20_CloseByCorr"
382 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",
383 "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",
384 "TruthPrimaryVertices.t.x.y.z",
385 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
386 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
387 "TauJets.dRmax.etOverPtLeadTrk",
388 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
389 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
390 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
392 BPHY26SlimmingHelper.ExtraVariables += MuonsExtraContent
394 from IsolationSelection.IsolationSelectionConfig
import setupIsoCloseBySlimmingVariables
395 setupIsoCloseBySlimmingVariables(BPHY26SlimmingHelper)
397 BPHY26SlimmingHelper.AllVariables = BPHY26_AllVariables
398 BPHY26SlimmingHelper.StaticContent = BPHY26_StaticContent
401 BPHY26SlimmingHelper.IncludeMuonTriggerContent =
True
402 BPHY26SlimmingHelper.IncludeBPhysTriggerContent =
True
406 if flags.Trigger.EDMVersion == 2:
407 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
408 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper,
409 OutputContainerPrefix =
"TrigMatch_",
410 TriggerList = BPHY26TriggerListsHelper.Run2TriggerNamesTau)
411 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper,
412 OutputContainerPrefix =
"TrigMatch_",
413 TriggerList = BPHY26TriggerListsHelper.Run2TriggerNamesNoTau)
416 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
417 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
418 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(BPHY26SlimmingHelper)
421 from Campaigns.Utils
import getDataYear
422 if getDataYear(flags) >= 2024:
424 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddjFexRoIsToSlimmingHelper
425 AddjFexRoIsToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper)
426 elif getDataYear(flags) >= 2015:
428 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddLegacyL1JetRoIsToSlimmingHelper
429 AddLegacyL1JetRoIsToSlimmingHelper(SlimmingHelper = BPHY26SlimmingHelper)
432 BPHY26ItemList = BPHY26SlimmingHelper.GetItemList()
433 acc.merge(OutputStreamCfg(flags,
"DAOD_BPHY26", ItemList=BPHY26ItemList, AcceptAlgs=[
"BPHY26Kernel"]))
434 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY26", AcceptAlgs=[
"BPHY26Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
435 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)