Belle II Software  release-05-01-25
vertexfit.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 import os
5 import tempfile
6 import basf2
7 import b2test_utils
8 import modularAnalysis as ma
9 from vertex import kFit
10 from ROOT import Belle2
11 from ROOT import TFile
12 from ROOT import TNtuple
13 
14 
15 def check(filename):
16  """
17  Verify results make sense.
18  """
19  ntuplefile = TFile(filename)
20  ntuple = ntuplefile.Get('ntuple')
21 
22  if ntuple.GetEntries() == 0:
23  B2FATAL("No D0s saved")
24 
25  if ntuple.GetEntries("significanceOfDistance < 0 && significanceOfDistance != -1") > 0:
26  B2FATAL("Some entries have negative significanceOfDistance?")
27 
28  if ntuple.GetEntries("significanceOfDistance > 0") == 0:
29  B2FATAL("significanceOfDistance never positive?")
30 
31 
32 testFile = tempfile.NamedTemporaryFile()
33 
34 main = basf2.create_path()
35 
36 ma.inputMdst('default', b2test_utils.require_file('analysis/tests/mdst.root'), path=main)
37 
38 ma.fillParticleList('K-', '', path=main)
39 ma.fillParticleList('pi+', '', path=main)
40 
41 ma.fillParticleList('gamma', '', path=main)
42 ma.reconstructDecay('pi0 -> gamma gamma', '0.11 < M < 0.15', 0, path=main)
43 ma.matchMCTruth('pi0', path=main)
44 
45 # KFit
46 kFit('pi0', 0.0, path=main)
47 
48 ma.reconstructDecay('D0 -> K- pi+ pi0', '', 0, path=main)
49 ma.matchMCTruth('D0', path=main)
50 
51 kFit('D0', 0.0, decay_string='D0 -> ^K- ^pi+ pi0', path=main)
52 
53 ntupler = basf2.register_module('VariablesToNtuple')
54 ntupler.param('fileName', testFile.name)
55 ntupler.param('variables', ['M', 'isSignal', 'distance', 'dr', 'dz', 'significanceOfDistance', 'pValue'])
56 ntupler.param('particleList', 'D0')
57 main.add_module(ntupler)
58 
61  check(testFile.name)
b2test_utils.clean_working_directory
def clean_working_directory()
Definition: __init__.py:176
b2test_utils.safe_process
def safe_process(*args, **kwargs)
Definition: __init__.py:224
b2test_utils.require_file
def require_file(filename, data_type="", py_case=None)
Definition: __init__.py:47