Belle II Software  release-05-01-25
KlongDecayReconstructionExample.py
1 #!/usr/bin/env python3
2 
3 
12 
13 import basf2
14 import modularAnalysis as ma
15 from stdCharged import stdMu
16 from stdKlongs import stdKlongs
17 import variables.collections as vc
18 import variables.utils as vu
19 from variables import variables
20 from vertex import TagV
21 
22 
23 main = basf2.create_path()
24 
25 ma.inputMdstList('default', [basf2.find_file('B02JpsiKL_Jpsi2mumu.root', 'examples', False)], path=main)
26 
27 # Show progress of processing
28 main.add_module('ProgressBar')
29 
30 stdMu('loose', path=main)
31 stdKlongs('allklm', path=main)
32 
33 ma.reconstructDecay('J/psi:mumu -> mu-:loose mu+:loose', cut='3.08 < M < 3.12 and 1.45 < useCMSFrame(p) < 1.95', path=main)
34 
35 pcalc = basf2.register_module('KlongMomentumCalculatorExpert')
36 pcalc.set_name('KlongMomentumCalculatorExpert_' + 'B0 -> J/psi:mumu K_L0:allklm')
37 pcalc.param('decayString', 'B0 -> J/psi:mumu K_L0:allklm')
38 pcalc.param('cut', '')
39 pcalc.param('decayMode', 0)
40 pcalc.param('writeOut', False)
41 pcalc.param('recoList', "_reco")
42 main.add_module(pcalc)
43 
44 rmake = basf2.register_module('KlongDecayReconstructorExpert')
45 rmake.set_name('KlongDecayReconstructorExpert_' + 'B0 -> J/psi:mumu K_L0:allklm')
46 rmake.param('decayString', 'B0 -> J/psi:mumu K_L0:allklm')
47 rmake.param('cut', 'M > 0')
48 rmake.param('decayMode', 0)
49 rmake.param('writeOut', False)
50 rmake.param('recoList', "_reco")
51 main.add_module(rmake)
52 
53 ma.buildRestOfEvent('B0', path=main)
54 ma.matchMCTruth('B0', path=main)
55 
56 TagV('B0', constraintType='tube', confidenceLevel=0.0001, path=main)
57 
58 commonVariables = vc.inv_mass + vc.mc_truth
59 commonVariables += vc.kinematics + vc.mc_kinematics
60 commonVariables += vc.vertex + vc.mc_vertex
61 
62 variableList = [var for var in commonVariables]
63 variableList += vc.deltae_mbc + vc.tag_vertex + vc.mc_tag_vertex + vc.reco_stats
64 variableList += vu.create_aliases(commonVariables, 'daughter(0, {variable})', 'Jpsi')
65 variableList += vu.create_aliases(commonVariables, 'daughter(1, {variable})', 'KL0')
66 variableList += vu.create_aliases(vc.kinematics, 'useCMSFrame({variable})', 'CMS')
67 variableList += vu.create_aliases(vc.kinematics, 'daughter(0, useCMSFrame({variable}))', 'Jpsi_CMS')
68 variableList += vu.create_aliases(vc.kinematics, 'daughter(1, useCMSFrame({variable}))', 'KL0_CMS')
69 variables.addAlias('dmID', 'extraInfo(decayModeID)')
70 variableList += ['dmID']
71 
72 ma.variablesToNtuple('B0', variables=variableList, filename="Reconstruct_jpsi_kl_example.root", treename='tree', path=main)
73 
74 # Process all modules added to the main path
75 basf2.process(main)
76 
77 # Print out the summary
78 print(basf2.statistics)
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25
variables.utils
Definition: utils.py:1
stdKlongs
Definition: stdKlongs.py:1
variables.collections
Definition: collections.py:1