15 from AthenaServices.PartPropSvcConfig
import PartPropSvcCfg
16 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import (BPHY_V0ToolCfg, BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
17 from JpsiUpsilonTools.JpsiUpsilonToolsConfig
import PrimaryVertexRefittingToolCfg
21 isSimulation = flags.Input.isMC
22 BPHY10_AugOriginalCounts = CompFactory.DerivationFramework.AugOriginalCounts(
23 name =
"BPHY10_AugOriginalCounts",
24 VertexContainer =
"PrimaryVertices",
25 TrackContainer =
"InDetTrackParticles" )
26 V0Tools = acc.popToolsAndMerge(
BPHY_V0ToolCfg(flags, BPHYDerivationName))
28 acc.addPublicTool(vkalvrt)
29 acc.addPublicTool(V0Tools)
31 acc.addPublicTool(trackselect)
33 acc.addPublicTool(vpest)
34 BPHY10JpsiFinder = CompFactory.Analysis.JpsiFinder(
35 name =
"BPHY10JpsiFinder",
38 TrackAndTrack =
False,
40 invMassUpper = 4000.0,
41 invMassLower = 2600.0,
43 oppChargesOnly =
True,
45 atLeastOneComb =
False,
46 useCombinedMeasurement =
False,
47 muonCollectionKey =
"Muons",
48 TrackParticleCollection =
"InDetTrackParticles",
49 V0VertexFitterTool =
None,
51 TrkVertexFitterTool = vkalvrt,
52 TrackSelectorTool = trackselect,
53 VertexPointEstimator = vpest,
56 BPHY10JpsiSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
57 name =
"BPHY10JpsiSelectAndWrite",
58 VertexSearchTool = BPHY10JpsiFinder,
59 OutputVtxContainerName =
"BPHY10JpsiCandidates",
60 PVContainerName =
"PrimaryVertices",
63 RefPVContainerName =
"SHOULDNOTBEUSED",
65 BPHY10_Select_Jpsi2mumu = CompFactory.DerivationFramework.Select_onia2mumu(
66 name =
"BPHY10_Select_Jpsi2mumu",
67 HypothesisName =
"Jpsi",
68 InputVtxContainerName =
"BPHY10JpsiCandidates",
70 VtxMassHypo = 3096.916,
76 BPHY10BdJpsiKst = CompFactory.Analysis.JpsiPlus2Tracks(
77 name =
"BPHY10BdJpsiKst",
78 kaonkaonHypothesis =
False,
79 pionpionHypothesis =
False,
80 kaonpionHypothesis =
True,
81 trkThresholdPt = 500.0,
86 JpsiContainerKey =
"BPHY10JpsiCandidates",
87 TrackParticleCollection =
"InDetTrackParticles",
88 ExcludeCrossJpsiTracks =
False,
89 TrkVertexFitterTool = vkalvrt,
90 TrackSelectorTool = trackselect,
91 UseMassConstraint =
True,
94 TrkQuadrupletMassLower = 3500.0,
95 TrkQuadrupletMassUpper = 6800.0,
98 BPHY10V0ContainerName =
"BPHY10RecoV0Candidates"
99 BPHY10KshortContainerName =
"BPHY10RecoKshortCandidates"
100 BPHY10LambdaContainerName =
"BPHY10RecoLambdaCandidates"
101 BPHY10LambdabarContainerName =
"BPHY10RecoLambdabarCandidates"
103 BPHY10BdKstSelectAndWrite = CompFactory.DerivationFramework.Reco_Vertex(
104 name =
"BPHY10BdKstSelectAndWrite",
105 VertexSearchTool = BPHY10BdJpsiKst,
106 OutputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
107 PVContainerName =
"PrimaryVertices",
110 RefPVContainerName =
"BPHY10RefittedPrimaryVertices1",
115 BPHY10_Select_Bd2JpsiKst = CompFactory.DerivationFramework.Select_onia2mumu(
116 name =
"BPHY10_Select_Bd2JpsiKst",
117 HypothesisName =
"Bd",
118 InputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
120 TrkMasses = [105.658, 105.658, 493.677, 139.570],
121 VtxMassHypo = 5279.6,
126 BPHY10_Select_Bd2JpsiKstbar = CompFactory.DerivationFramework.Select_onia2mumu(
127 name =
"BPHY10_Select_Bd2JpsiKstbar",
128 HypothesisName =
"Bdbar",
129 InputVtxContainerName =
"BPHY10BdJpsiKstCandidates",
131 TrkMasses = [105.658, 105.658, 139.570, 493.677],
132 VtxMassHypo = 5279.6,
137 from DerivationFrameworkBPhys.V0ToolConfig
import BPHY_Reco_V0FinderCfg
139 flags, derivation = BPHYDerivationName,
140 V0ContainerName = BPHY10V0ContainerName,
141 KshortContainerName = BPHY10KshortContainerName,
142 LambdaContainerName = BPHY10LambdaContainerName,
143 LambdabarContainerName = BPHY10LambdabarContainerName,
144 CheckVertexContainers = [
'BPHY10JpsiCandidates']))
146 from TrkConfig.TrkVKalVrtFitterConfig
import JpsiV0VertexFitCfg
148 acc.addPublicTool(JpsiV0VertexFit)
150 BPHY10JpsiKshort = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
151 name =
"BPHY10JpsiKshort",
153 HypothesisName =
"Bd",
154 TrkVertexFitterTool = JpsiV0VertexFit,
157 JpsiMassLowerCut = 2800.,
158 JpsiMassUpperCut = 4000.,
159 V0MassLowerCut = 400.,
160 V0MassUpperCut = 600.,
161 MassLowerCut = 4300.,
162 MassUpperCut = 6300.,
164 RefPVContainerName =
"BPHY10RefittedPrimaryVertices2",
165 JpsiVertices =
"BPHY10JpsiCandidates",
166 CascadeVertexCollections= [
"BPHY10JpsiKshortCascadeSV2",
"BPHY10JpsiKshortCascadeSV1"],
167 V0Vertices = BPHY10V0ContainerName)
169 BPHY10JpsiLambda = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
170 name =
"BPHY10JpsiLambda",
172 HypothesisName =
"Lambda_b",
173 TrkVertexFitterTool = JpsiV0VertexFit,
176 JpsiMassLowerCut = 2800.,
177 JpsiMassUpperCut = 4000.,
178 V0MassLowerCut = 1050.,
179 V0MassUpperCut = 1250.,
180 MassLowerCut = 4600.,
181 MassUpperCut = 6600.,
183 RefPVContainerName =
"BPHY10RefittedPrimaryVertices3",
184 JpsiVertices =
"BPHY10JpsiCandidates",
185 CascadeVertexCollections= [
"BPHY10JpsiLambdaCascadeSV2",
"BPHY10JpsiLambdaCascadeSV1"],
186 V0Vertices = BPHY10V0ContainerName)
188 BPHY10JpsiLambdabar = CompFactory.DerivationFramework.JpsiPlusV0Cascade(
189 name =
"BPHY10JpsiLambdabar",
190 HypothesisName =
"Lambda_bbar",
192 TrkVertexFitterTool = JpsiV0VertexFit,
194 V0Hypothesis = -3122,
195 JpsiMassLowerCut = 2800.,
196 JpsiMassUpperCut = 4000.,
197 V0MassLowerCut = 1050.,
198 V0MassUpperCut = 1250.,
199 MassLowerCut = 4600.,
200 MassUpperCut = 6600.,
202 RefPVContainerName =
"BPHY10RefittedPrimaryVertices4",
203 JpsiVertices =
"BPHY10JpsiCandidates",
204 CascadeVertexCollections= [
"BPHY10JpsiLambdabarCascadeSV2",
"BPHY10JpsiLambdabarCascadeSV1"],
205 V0Vertices = BPHY10V0ContainerName)
207 CascadeCollections = []
208 CascadeCollections += BPHY10JpsiKshort.CascadeVertexCollections
209 CascadeCollections += BPHY10JpsiLambda.CascadeVertexCollections
210 CascadeCollections += BPHY10JpsiLambdabar.CascadeVertexCollections
213 BPHY10_SelectBdJpsiKstEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(
214 name =
"BPHY10_SelectBdJpsiKstEvent",
215 expression =
"(count(BPHY10BdJpsiKstCandidates.passed_Bd > 0) + count(BPHY10BdJpsiKstCandidates.passed_Bdbar > 0)) >0")
217 BPHY10_cascadeCheck = CompFactory.DerivationFramework.AnyVertexSkimmingTool(
"BPHY10_AnyVertexSkimmingTool",
218 VertexContainerNames =CascadeCollections,
220 BPHY10SkimmingOR = CompFactory.DerivationFramework.FilterCombinationOR(
222 FilterList = [BPHY10_cascadeCheck, BPHY10_SelectBdJpsiKstEvent])
223 acc.addPublicTool(BPHY10_cascadeCheck)
224 acc.addPublicTool(BPHY10_SelectBdJpsiKstEvent)
225 acc.addPublicTool(BPHY10SkimmingOR)
228 augTools = [BPHY10JpsiSelectAndWrite, BPHY10_Select_Jpsi2mumu,
229 BPHY10BdKstSelectAndWrite, BPHY10_Select_Bd2JpsiKst, BPHY10_Select_Bd2JpsiKstbar,
230 BPHY10_Reco_V0Finder, BPHY10JpsiKshort, BPHY10JpsiLambda, BPHY10JpsiLambdabar,
231 BPHY10_AugOriginalCounts]
232 for t
in augTools : acc.addPublicTool(t)
234 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"BPHY10Kernel",
235 AugmentationTools = augTools,
238 SkimmingTools = [BPHY10SkimmingOR]
if not isSimulation
else [],
240 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
241 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
242 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
243 BPHY10SlimmingHelper =
SlimmingHelper(
"BPHY10SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
244 from DerivationFrameworkBPhys.commonBPHYMethodsCfg
import getDefaultAllVariables
249 BPHY10SlimmingHelper.IncludeMuonTriggerContent =
True
250 BPHY10SlimmingHelper.IncludeBPhysTriggerContent =
True
253 AllVariables += [
"PrimaryVertices"]
256 StaticContent += [
"xAOD::VertexContainer#BPHY10RefittedPrimaryVertices%s" %
str(x)]
257 StaticContent += [
"xAOD::VertexAuxContainer#BPHY10RefittedPrimaryVertices%sAux." %
str(x)]
260 AllVariables += [
"InDetTrackParticles"]
265 AllVariables += [
"CombinedMuonTrackParticles"]
266 AllVariables += [
"ExtrapolatedMuonTrackParticles"]
269 AllVariables += [
"Muons",
"MuonsLRT"]
273 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10JpsiSelectAndWrite.OutputVtxContainerName]
275 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10JpsiSelectAndWrite.OutputVtxContainerName]
277 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10BdKstSelectAndWrite.OutputVtxContainerName]
278 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10BdKstSelectAndWrite.OutputVtxContainerName]
280 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10V0ContainerName]
281 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10V0ContainerName]
282 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10KshortContainerName]
283 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10KshortContainerName]
284 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10LambdaContainerName]
285 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10LambdaContainerName]
286 StaticContent += [
"xAOD::VertexContainer#%s" % BPHY10LambdabarContainerName]
287 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % BPHY10LambdabarContainerName]
289 for cascades
in CascadeCollections:
290 StaticContent += [
"xAOD::VertexContainer#%s" % cascades]
291 StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % cascades]
294 AllVariables += [
"GSFTrackParticles",
"MuonSpectrometerTrackParticles" ]
298 AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"MuonTruthParticles"]
300 AllVariables =
list(
set(AllVariables))
302 BPHY10SlimmingHelper.AllVariables = AllVariables
303 BPHY10SlimmingHelper.StaticContent = StaticContent
304 BPHY10SlimmingHelper.SmartCollections = []
305 BPHY10ItemList = BPHY10SlimmingHelper.GetItemList()
306 acc.merge(
OutputStreamCfg(flags,
"DAOD_BPHY10", ItemList=BPHY10ItemList, AcceptAlgs=[
"BPHY10Kernel"]))
307 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_BPHY10", AcceptAlgs=[
"BPHY10Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
308 acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True, printComponentsOnly=
False)