Belle II Software  release-05-01-25
BtagBsigReconstruction.py
1 #!/usr/bin/env python3
2 
3 import basf2
4 import modularAnalysis as ma
5 from variables import variables as vm
6 import variables.collections as vc
7 import variables.utils as vu
8 from ROOT import Belle2
9 
10 
11 myMain = basf2.create_path()
12 
13 # Y(4S) -> B0:tag B0:sig
14 # anti-B0:tag -> D*+ pi-; D*+ -> D0 pi+; D0 -> K- pi+
15 # B0:sig -> anti-D0 pi0; anti-D0 -> K+ pi-
16 ma.inputMdst(environmentType='default',
17  filename=basf2.find_file('B02pi0D0_D2kpi_B2Dstarpi_Dstar2Dpi_D2kpi.root', 'examples', False),
18  path=myMain)
19 
20 
21 # create final state particle lists
22 kaons = ('K-', '')
23 pions = ('pi+', '')
24 photons = ('gamma', '')
25 
26 ma.fillParticleLists([kaons, pions, photons], path=myMain)
27 
28 # reconstruct pi0 -> gamma gamma decay
29 ma.reconstructDecay('pi0 -> gamma gamma', '0.05 < M < 1.7', path=myMain)
30 
31 # reconstruct D0 -> K- pi+ decay (and c.c.)
32 ma.reconstructDecay('D0 -> K- pi+', '1.800 < M < 1.900', path=myMain)
33 
34 # reconstruct D*+ -> D0 pi+ (and c.c.)
35 ma.reconstructDecay('D*+ -> D0 pi+', '0.0 <= Q < 0.02', path=myMain)
36 
37 # reconstruct Btag -> D*+ pi- (and c.c.)
38 ma.reconstructDecay('anti-B0:tag -> D*+ pi-', '5.000 < M < 6.000', path=myMain)
39 
40 # reconstruct Bsig -> D0 pi0 (and c.c.)
41 ma.reconstructDecay('B0:sig -> anti-D0 pi0', '0.000 < M < 6.000', path=myMain)
42 
43 # reconstruct Y(4S) -> Btag Bsig
44 ma.reconstructDecay('Upsilon(4S):B0barB0 -> anti-B0:tag B0:sig', '0.000 < M < 11.000', dmID=1, path=myMain)
45 ma.reconstructDecay('Upsilon(4S):B0B0 -> B0:tag B0:sig', '0.000 < M < 11.000', dmID=2, path=myMain)
46 ma.copyLists('Upsilon(4S):all', ['Upsilon(4S):B0barB0', 'Upsilon(4S):B0B0'], path=myMain)
47 
48 # perform MC matching
49 ma.matchMCTruth('Upsilon(4S):all', myMain)
50 
51 # create and fill RestOfEvent for Btag and Y(4S) particles
52 ma.buildRestOfEvent('B0:tag', path=myMain)
53 ma.buildRestOfEvent('Upsilon(4S):all', path=myMain)
54 
55 # define variables for Btag ntuple
56 commonVariables = vc.mc_truth + vc.deltae_mbc
57 BvariableList = commonVariables + vc.roe_multiplicities
58 
59 # define variables for Upsilon(4S) ntuple
60 Y4SvariableList = vc.mc_truth + vc.roe_multiplicities + vc.recoil_kinematics + vc.extra_energy
61 vm.addAlias('dmID', 'extraInfo(decayModeID)')
62 Y4SvariableList += ['dmID']
63 Y4SvariableList += vu.create_aliases(commonVariables, 'daughter(0, {variable})', 'Btag')
64 Y4SvariableList += vu.create_aliases(commonVariables, 'daughter(1, {variable})', 'Bsig')
65 
66 # write flat ntuples
67 ma.variablesToNtuple('B0:tag', variables=BvariableList, filename='ROE_BtagBsig.root', treename='btag', path=myMain)
68 ma.variablesToNtuple('Upsilon(4S):all', variables=Y4SvariableList, filename='ROE_BtagBsig.root', treename='btagbsig', path=myMain)
69 
70 basf2.process(myMain)
71 print(basf2.statistics)
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25
variables.utils
Definition: utils.py:1
variables.collections
Definition: collections.py:1