16 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (
17 BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg,
18 BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg,
20 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
21 acc = ComponentAccumulator()
22 isSimulation = flags.Input.isMC
24 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
25 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
26 acc.addPublicTool(vkalvrt)
27 acc.addPublicTool(V0Tools)
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 BPHY2JpsiFinder = CompFactory.Analysis.JpsiFinder(name =
"BPHY2JpsiFinder",
35 TrackAndTrack =
False,
37 invMassUpper = 4700.0,
38 invMassLower = 2600.0,
40 oppChargesOnly =
True,
42 atLeastOneComb =
False,
43 useCombinedMeasurement =
False,
44 muonCollectionKey =
"Muons",
45 TrackParticleCollection =
"InDetTrackParticles",
46 V0VertexFitterTool =
None,
48 TrkVertexFitterTool = vkalvrt,
49 TrackSelectorTool = trackselect,
50 VertexPointEstimator = vpest,
53 BPHY2JpsiSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name =
"BPHY2JpsiSelectAndWrite",
54 VertexSearchTool = BPHY2JpsiFinder,
55 OutputVtxContainerName =
"BPHY2JpsiCandidates",
56 PVContainerName =
"PrimaryVertices",
57 RefPVContainerName =
"SHOULDNOTBEUSED",
59 PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
62 BPHY2BsJpsiKK = CompFactory.Analysis.JpsiPlus2Tracks(name =
"BPHY2BsJpsiKK",
63 kaonkaonHypothesis =
True,
64 pionpionHypothesis =
False,
65 kaonpionHypothesis =
False,
66 trkThresholdPt = 800.0,
70 DiTrackMassUpper = 1019.445 + 100.,
71 DiTrackMassLower = 1019.445 - 100.,
73 TrkQuadrupletMassUpper = 6000.0,
74 TrkQuadrupletMassLower = 4800.0,
75 JpsiContainerKey =
"BPHY2JpsiCandidates",
76 TrackParticleCollection =
"InDetTrackParticles",
77 MuonsUsedInJpsi =
"Muons",
78 TrkVertexFitterTool = vkalvrt,
79 TrackSelectorTool = trackselect,
80 UseMassConstraint =
False)
82 BPHY2BsKKSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(name =
"BPHY2BsKKSelectAndWrite",
83 VertexSearchTool = BPHY2BsJpsiKK,
84 OutputVtxContainerName =
"BPHY2BsJpsiKKCandidates",
85 PVContainerName =
"PrimaryVertices",
86 RefPVContainerName =
"BPHY2RefittedPrimaryVertices",
89 PVRefitter = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags)),
90 MaxPVrefit = 10000, DoVertexType = 7)
92 BPHY2_Select_Psi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(
93 name =
"BPHY2_Select_Psi2mumu",
94 HypothesisName =
"Psi",
95 InputVtxContainerName =
"BPHY2JpsiCandidates",
97 VtxMassHypo = 3686.09,
103 BPHY2_Select_Jpsi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(
104 name =
"BPHY2_Select_Jpsi2mumu",
105 HypothesisName =
"Jpsi",
106 InputVtxContainerName =
"BPHY2JpsiCandidates",
108 VtxMassHypo = 3096.916,
114 BPHY2_Select_Bs2JpsiKK = CompFactory.DerivationFramework.Select_onia2mumu(
115 name =
"BPHY2_Select_Bs2JpsiKK",
116 HypothesisName =
"Bs",
117 InputVtxContainerName =
"BPHY2BsJpsiKKCandidates",
119 TrkMasses = [105.658, 105.658, 493.677, 493.677],
120 VtxMassHypo = 5366.3,
125 BPHY2_AugOriginalCounts = acc.popToolsAndMerge(
126 AugOriginalCountsCfg(flags, name =
"BPHY2_AugOriginalCounts"))
130 BPHY2_thinningTool_Tracks = CompFactory.DerivationFramework.Thin_vtxTrk(
131 name =
"BPHY2_thinningTool_Tracks",
132 TrackParticleContainerName =
"InDetTrackParticles",
133 StreamName = streamName,
134 VertexContainerNames = [
"BPHY2BsJpsiKKCandidates"],
135 PassFlags = [
"passed_Bs"] )
138 BPHY2_thinningTool_TracksPsi = CompFactory.DerivationFramework.Thin_vtxTrk(
139 name =
"BPHY2_thinningTool_TracksPsi",
140 TrackParticleContainerName =
"InDetTrackParticles",
141 StreamName = streamName,
142 VertexContainerNames = [
"BPHY2JpsiCandidates"],
143 PassFlags = [
"passed_Psi",
"passed_Jpsi"] )
145 BPHY2_thinningTool_PV = CompFactory.DerivationFramework.BPhysPVThinningTool(
146 name =
"BPHY2_thinningTool_PV",
147 CandidateCollections = [
"BPHY2BsJpsiKKCandidates"],
148 StreamName = streamName,
151 BPHY2MuonTPThinningTool = CompFactory.DerivationFramework.MuonTrackParticleThinning(name =
"BPHY2MuonTPThinningTool",
153 StreamName = streamName,
154 InDetTrackParticlesKey =
"InDetTrackParticles")
156 BPHY2_SelectBsJpsiKKEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(
157 name =
"BPHY2_SelectBsJpsiKKEvent",
158 expression =
"count(BPHY2BsJpsiKKCandidates.passed_Bs > 0) > 0")
163 BPHY2SkimmingOR = CompFactory.DerivationFramework.FilterCombinationOR(
"BPHY2SkimmingOR",
164 FilterList = [BPHY2_SelectBsJpsiKKEvent ])
165 acc.addPublicTool(BPHY2SkimmingOR)
168 thiningCollection = [BPHY2_thinningTool_Tracks, BPHY2_thinningTool_TracksPsi, BPHY2_thinningTool_PV, BPHY2MuonTPThinningTool]
169 augCollection = [BPHY2JpsiSelectAndWrite, BPHY2BsKKSelectAndWrite,
170 BPHY2_Select_Psi2mumu, BPHY2_Select_Jpsi2mumu,
171 BPHY2_Select_Bs2JpsiKK, BPHY2_AugOriginalCounts]
172 for t
in augCollection + thiningCollection : acc.addPublicTool(t)
174 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"BPHY2Kernel",
175 AugmentationTools = augCollection,
177 SkimmingTools = [BPHY2SkimmingOR]
if not isSimulation
else [],
178 ThinningTools = thiningCollection))
180 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
181 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
182 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
183 BPHY2SlimmingHelper =
SlimmingHelper(
"BPHY2SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
184 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
185 AllVariables = getDefaultAllVariables()
189 BPHY2SlimmingHelper.IncludeMuonTriggerContent =
True
190 BPHY2SlimmingHelper.IncludeBPhysTriggerContent =
True
193 SmartVar += [
"PrimaryVertices"]
194 StaticContent += [
"xAOD::VertexContainer#BPHY2RefittedPrimaryVertices"]
195 StaticContent += [
"xAOD::VertexAuxContainer#BPHY2RefittedPrimaryVerticesAux."]
198 AllVariables += [
"InDetTrackParticles"]
203 AllVariables += [
"CombinedMuonTrackParticles"]
206 SmartVar += [
"Muons"]
209 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY2JpsiSelectAndWrite.OutputVtxContainerName]
211 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY2JpsiSelectAndWrite.OutputVtxContainerName]
213 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY2BsKKSelectAndWrite.OutputVtxContainerName]
214 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY2BsKKSelectAndWrite.OutputVtxContainerName]
217 AllVariables += [
"MuonSpectrometerTrackParticles" ]
221 AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"MuonTruthParticles" ]
223 BPHY2SlimmingHelper.AllVariables = AllVariables
224 BPHY2SlimmingHelper.StaticContent = StaticContent
225 BPHY2SlimmingHelper.SmartCollections = SmartVar
226 BPHY2ItemList = BPHY2SlimmingHelper.GetItemList()
227 acc.merge(OutputStreamCfg(flags,
"DAOD_BPHY2", ItemList=BPHY2ItemList, AcceptAlgs=[
"BPHY2Kernel"]))
228 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY2", AcceptAlgs=[
"BPHY2Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
229 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)