Skip to content
Snippets Groups Projects

Test of FunTuple with v2 Composites and ChargedBasic

Merged Abhijit Mathad requested to merge AM_v2 into master
Files
4
###############################################################################
# (c) Copyright 2021-2022 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
# #
# In applying this licence, CERN does not waive the privileges and immunities #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
from PyConf.Algorithms import ChargedBasicsProducer, UniqueIDGeneratorAlg
from PyConf.Algorithms import ThOrCombiner__2ChargedBasics
from PyConf.Algorithms import ThOrCombiner__CompositesChargedBasics
from Configurables import LHCb__ParticlePropertySvc as ParticlePropertySvc
import Functors as F
from FunTuple import FunctorCollection
from FunTuple import FunTuple_Composites as Funtuple
from DaVinci import options
#set some properties of particles being used (Need to load the full default particle list, but not sure why it isn't loaded by default)
+3
ParticlePropertySvc().Particles = [
"B+ 521 521 1 5.279330 1.0e-10 B+ 521 0.0",
"B- -521 -521 -1 5.279330 1.0e-10 B- -521 0.0",
"mu+ -13 -13 1 0.105658 1.0e-10 mu+ -13 0.0",
"mu- 13 13 -1 0.105658 1.0e-10 mu- 13 0.0",
"K+ 321 321 1 0.493677 1.0e-10 K+ 321 0.0",
"K- -321 -321 -1 0.493677 1.0e-10 K- 321 0.0",
"J/psi(1S) 443 443 0 3.096900 92.899958e-6 J/psi 443 0.0",
]
#make unique_id_generator
unique_id_gen = UniqueIDGeneratorAlg()
#produce charged basic particles
produce_muons = ChargedBasicsProducer(
InputUniqueIDGenerator=unique_id_gen, ParticleID='muon')
produce_jpsi = ThOrCombiner__2ChargedBasics(
InputUniqueIDGenerator=unique_id_gen,
DecayDescriptor="[J/psi(1S) -> mu+ mu-]cc",
Input1=produce_muons.Particles,
Input2=produce_muons.Particles)
#print(produce_jpsi)
produce_kaons = ChargedBasicsProducer(
InputUniqueIDGenerator=unique_id_gen, ParticleID='kaon')
#print(produce_kaons)
produce_B = ThOrCombiner__CompositesChargedBasics(
InputUniqueIDGenerator=unique_id_gen,
DecayDescriptor="[B+ -> J/psi(1S) K+]cc",
Input1=produce_jpsi.Output,
Input2=produce_kaons.Particles)
#print(produce_B)
#define FunTuple instance
B_variables = FunctorCollection({"PX": F.PX, "PY": F.PY, "PZ": F.PZ})
#Note CC here and cc (small case) above in the decay descriptor. Needs to be uniform.
# Decay descriptor parsing is not yet available with v2 Composites.
# Hence, we are simply running over all particles in TES and not selecting any subset using the decay descriptor for the moment.
fields = {"B": "[B+ -> J/psi(1S) K+]CC"}
variables = {"B": B_variables}
ntuple = Funtuple(
name="Tuple",
tuple_name="DecayTree",
fields=fields,
variables=variables,
inputs=produce_B.Output)
#print(ntuple)
options.evt_max = 5
def main():
return {"UserAlgs": [ntuple]}, []
Loading