15 from AthenaServices.PartPropSvcConfig
import PartPropSvcCfg
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 acc.getPrimaryAndMerge(PartPropSvcCfg(flags))
23 PVrefit = acc.popToolsAndMerge(PrimaryVertexRefittingToolCfg(flags))
24 acc.addPublicTool(PVrefit)
25 isSimulation = flags.Input.isMC
27 V0Tools = acc.popToolsAndMerge(BPHY_V0ToolCfg(flags, BPHYDerivationName))
28 vkalvrt = acc.popToolsAndMerge(BPHY_TrkVKalVrtFitterCfg(flags, BPHYDerivationName))
29 acc.addPublicTool(vkalvrt)
30 acc.addPublicTool(V0Tools)
31 trackselect = acc.popToolsAndMerge(BPHY_InDetDetailedTrackSelectorToolCfg(flags, BPHYDerivationName))
32 acc.addPublicTool(trackselect)
33 vpest = acc.popToolsAndMerge(BPHY_VertexPointEstimatorCfg(flags, BPHYDerivationName))
34 acc.addPublicTool(vpest)
35 BPHY10JpsiFinder = CompFactory.Analysis.JpsiFinder(
36 name =
"BPHY10JpsiFinder",
39 TrackAndTrack =
False,
41 invMassUpper = 4000.0,
42 invMassLower = 2600.0,
44 oppChargesOnly =
True,
46 atLeastOneComb =
False,
47 useCombinedMeasurement =
False,
48 muonCollectionKey =
"Muons",
49 TrackParticleCollection =
"InDetTrackParticles",
50 TrkVertexFitterTool = vkalvrt,
51 TrackSelectorTool = trackselect,
52 VertexPointEstimator = vpest,
55 BPHY10JpsiSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
56 name =
"BPHY10JpsiSelectAndWrite",
57 VertexSearchTool = BPHY10JpsiFinder,
58 OutputVtxContainerName =
"BPHY10JpsiCandidates",
59 PVContainerName =
"PrimaryVertices",
62 RefPVContainerName =
"SHOULDNOTBEUSED",
64 BPHY10_Select_Jpsi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(
65 name =
"BPHY10_Select_Jpsi2mumu",
66 HypothesisName =
"Jpsi",
67 InputVtxContainerName =
"BPHY10JpsiCandidates",
69 VtxMassHypo = 3096.916,
75 BPHY10BdJpsiKst = CompFactory.Analysis.JpsiPlus2Tracks(
76 name =
"BPHY10BdJpsiKst",
77 kaonkaonHypothesis =
False,
78 pionpionHypothesis =
False,
79 kaonpionHypothesis =
True,
80 trkThresholdPt = 500.0,
85 JpsiContainerKey =
"BPHY10JpsiCandidates",
86 TrackParticleCollection =
"InDetTrackParticles",
87 ExcludeCrossJpsiTracks =
False,
88 TrkVertexFitterTool = vkalvrt,
89 TrackSelectorTool = trackselect,
90 UseMassConstraint =
True,
93 TrkQuadrupletMassLower = 3500.0,
94 TrkQuadrupletMassUpper = 6800.0,
97 BPHY10V0ContainerName =
"BPHY10RecoV0Candidates"
98 BPHY10KshortContainerName =
"BPHY10RecoKshortCandidates"
99 BPHY10LambdaContainerName =
"BPHY10RecoLambdaCandidates"
100 BPHY10LambdabarContainerName =
"BPHY10RecoLambdabarCandidates"
102 BPHY10BdKstSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
103 name =
"BPHY10BdKstSelectAndWrite",
104 VertexSearchTool = BPHY10BdJpsiKst,
105 OutputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
106 PVContainerName =
"PrimaryVertices",
108 PVRefitter = PVrefit,
109 RefPVContainerName =
"BPHY10RefittedPrimaryVertices1",
114 BPHY10_Select_Bd2JpsiKst = CompFactory.DerivationFramework.Select_onia2mumu(
115 name =
"BPHY10_Select_Bd2JpsiKst",
116 HypothesisName =
"Bd",
117 InputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
119 TrkMasses = [105.658, 105.658, 493.677, 139.570],
120 VtxMassHypo = 5279.6,
125 BPHY10_Select_Bd2JpsiKstbar = CompFactory.DerivationFramework.Select_onia2mumu(
126 name =
"BPHY10_Select_Bd2JpsiKstbar",
127 HypothesisName =
"Bdbar",
128 InputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
130 TrkMasses = [105.658, 105.658, 139.570, 493.677],
131 VtxMassHypo = 5279.6,
136 from DerivationFrameworkBPhys.V0ToolConfig
import BPHY_Reco_V0FinderCfg
137 BPHY10_Reco_V0Finder = acc.popToolsAndMerge(BPHY_Reco_V0FinderCfg(
138 flags, derivation = BPHYDerivationName,
139 V0ContainerName = BPHY10V0ContainerName,
140 KshortContainerName = BPHY10KshortContainerName,
141 LambdaContainerName = BPHY10LambdaContainerName,
142 LambdabarContainerName = BPHY10LambdabarContainerName,
143 CheckVertexContainers = [
'BPHY10JpsiCandidates']))
145 from TrkConfig.TrkVKalVrtFitterConfig
import JpsiV0VertexFitCfg
146 JpsiV0VertexFit = acc.popToolsAndMerge(JpsiV0VertexFitCfg(flags))
147 acc.addPublicTool(JpsiV0VertexFit)
149 BPHY10JpsiKshort = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
150 name =
"BPHY10JpsiKshort",
152 HypothesisName =
"Bd",
153 TrkVertexFitterTool = JpsiV0VertexFit,
155 PVRefitter = PVrefit,
156 JpsiMassLowerCut = 2800.,
157 JpsiMassUpperCut = 4000.,
158 V0MassLowerCut = 400.,
159 V0MassUpperCut = 600.,
160 MassLowerCut = 4300.,
161 MassUpperCut = 6300.,
163 RefPVContainerName =
"BPHY10RefittedPrimaryVertices2",
164 JpsiVertices =
"BPHY10JpsiCandidates",
165 CascadeVertexCollections= [
"BPHY10JpsiKshortCascadeSV2",
"BPHY10JpsiKshortCascadeSV1"],
166 V0Vertices = BPHY10V0ContainerName)
168 BPHY10JpsiLambda = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
169 name =
"BPHY10JpsiLambda",
171 HypothesisName =
"Lambda_b",
172 TrkVertexFitterTool = JpsiV0VertexFit,
173 PVRefitter = PVrefit,
175 JpsiMassLowerCut = 2800.,
176 JpsiMassUpperCut = 4000.,
177 V0MassLowerCut = 1050.,
178 V0MassUpperCut = 1250.,
179 MassLowerCut = 4600.,
180 MassUpperCut = 6600.,
182 RefPVContainerName =
"BPHY10RefittedPrimaryVertices3",
183 JpsiVertices =
"BPHY10JpsiCandidates",
184 CascadeVertexCollections= [
"BPHY10JpsiLambdaCascadeSV2",
"BPHY10JpsiLambdaCascadeSV1"],
185 V0Vertices = BPHY10V0ContainerName)
187 BPHY10JpsiLambdabar = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
188 name =
"BPHY10JpsiLambdabar",
189 HypothesisName =
"Lambda_bbar",
191 TrkVertexFitterTool = JpsiV0VertexFit,
192 PVRefitter = PVrefit,
193 V0Hypothesis = -3122,
194 JpsiMassLowerCut = 2800.,
195 JpsiMassUpperCut = 4000.,
196 V0MassLowerCut = 1050.,
197 V0MassUpperCut = 1250.,
198 MassLowerCut = 4600.,
199 MassUpperCut = 6600.,
201 RefPVContainerName =
"BPHY10RefittedPrimaryVertices4",
202 JpsiVertices =
"BPHY10JpsiCandidates",
203 CascadeVertexCollections= [
"BPHY10JpsiLambdabarCascadeSV2",
"BPHY10JpsiLambdabarCascadeSV1"],
204 V0Vertices = BPHY10V0ContainerName)
206 CascadeCollections = []
207 CascadeCollections += BPHY10JpsiKshort.CascadeVertexCollections
208 CascadeCollections += BPHY10JpsiLambda.CascadeVertexCollections
209 CascadeCollections += BPHY10JpsiLambdabar.CascadeVertexCollections
211 BPHY10_AugOriginalCounts = acc.popToolsAndMerge(
212 AugOriginalCountsCfg(flags, name =
"BPHY10_AugOriginalCounts"))
215 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import (
216 xAODStringSkimmingToolCfg)
217 BPHY10_SelectBdJpsiKstEvent = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
218 flags, name =
"BPHY10_SelectBdJpsiKstEvent",
219 expression =
"(count(BPHY10BdJpsiKstCandidates.passed_Bd > 0) + count(BPHY10BdJpsiKstCandidates.passed_Bdbar > 0)) >0"))
221 BPHY10_cascadeCheck = CompFactory.DerivationFramework.AnyVertexSkimmingTool(
222 "BPHY10_AnyVertexSkimmingTool",
223 VertexContainerNames =CascadeCollections )
224 BPHY10SkimmingOR = CompFactory.DerivationFramework.FilterCombinationOR(
226 FilterList = [BPHY10_cascadeCheck, BPHY10_SelectBdJpsiKstEvent])
227 acc.addPublicTool(BPHY10_cascadeCheck)
228 acc.addPublicTool(BPHY10SkimmingOR)
230 augTools = [BPHY10JpsiSelectAndWrite, BPHY10_Select_Jpsi2mumu,
231 BPHY10BdKstSelectAndWrite, BPHY10_Select_Bd2JpsiKst, BPHY10_Select_Bd2JpsiKstbar,
232 BPHY10_Reco_V0Finder, BPHY10JpsiKshort, BPHY10JpsiLambda, BPHY10JpsiLambdabar,
233 BPHY10_AugOriginalCounts]
234 for t
in augTools : acc.addPublicTool(t)
236 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"BPHY10Kernel",
237 AugmentationTools = augTools,
240 SkimmingTools = [BPHY10SkimmingOR]
if not isSimulation
else [],
242 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
243 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
244 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
245 BPHY10SlimmingHelper =
SlimmingHelper(
"BPHY10SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
246 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
247 AllVariables = getDefaultAllVariables()
251 BPHY10SlimmingHelper.IncludeMuonTriggerContent =
True
252 BPHY10SlimmingHelper.IncludeBPhysTriggerContent =
True
255 AllVariables += [
"PrimaryVertices"]
258 StaticContent += [
"xAOD::VertexContainer#BPHY10RefittedPrimaryVertices%s" %
str(x)]
259 StaticContent += [
"xAOD::VertexAuxContainer#BPHY10RefittedPrimaryVertices%sAux." %
str(x)]
262 AllVariables += [
"InDetTrackParticles"]
267 AllVariables += [
"CombinedMuonTrackParticles"]
268 AllVariables += [
"ExtrapolatedMuonTrackParticles"]
271 AllVariables += [
"Muons",
"MuonsLRT"]
275 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10JpsiSelectAndWrite.OutputVtxContainerName]
277 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10JpsiSelectAndWrite.OutputVtxContainerName]
279 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10BdKstSelectAndWrite.OutputVtxContainerName]
280 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10BdKstSelectAndWrite.OutputVtxContainerName]
282 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10V0ContainerName]
283 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10V0ContainerName]
284 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10KshortContainerName]
285 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10KshortContainerName]
286 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10LambdaContainerName]
287 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10LambdaContainerName]
288 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10LambdabarContainerName]
289 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10LambdabarContainerName]
291 for cascades
in CascadeCollections:
292 StaticContent += [
"xAOD::VertexContainer#%s" % cascades]
293 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % cascades]
296 AllVariables += [
"GSFTrackParticles",
"MuonSpectrometerTrackParticles" ]
300 AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"MuonTruthParticles"]
302 AllVariables = list(
set(AllVariables))
304 BPHY10SlimmingHelper.AllVariables = AllVariables
305 BPHY10SlimmingHelper.StaticContent = StaticContent
306 BPHY10SlimmingHelper.SmartCollections = []
307 BPHY10ItemList = BPHY10SlimmingHelper.GetItemList()
308 acc.merge(OutputStreamCfg(flags,
"DAOD_BPHY10", ItemList=BPHY10ItemList, AcceptAlgs=[
"BPHY10Kernel"]))
309 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY10", AcceptAlgs=[
"BPHY10Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
310 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)