13 from basf2
import create_path, register_module
15 from modularAnalysis
import fillParticleListFromMC, reconstructMCDecay, inputMdst, findMCDecay
16 from ROOT
import TFile
23 """Reconstruct/search for an MC decay chain using the reconstructMCDecay tool."""
25 testFile = tempfile.NamedTemporaryFile()
30 'analysis/1000_B_DstD0Kpi_skimmed.root',
'validation', py_case=self)
31 inputMdst(inputfile, path=main)
33 fillParticleListFromMC(
'gamma:primaryMC',
'mcPrimary', path=main)
34 fillParticleListFromMC(
'K+:primaryMC',
'mcPrimary', path=main)
35 fillParticleListFromMC(
'pi+:primaryMC',
'mcPrimary', path=main)
38 'B0:DstD0Kpi =direct=> [D*+:MC =direct=> [D0:MC =direct=> K-:primaryMC pi+:primaryMC ] pi+:primaryMC] pi-:primaryMC',
42 ntupler = register_module(
'VariablesToNtuple')
43 ntupler.param(
'fileName', testFile.name)
44 ntupler.param(
'variables', [
'isSignal'])
45 ntupler.param(
'particleList',
'B0:DstD0Kpi')
46 main.add_module(ntupler)
50 ntuplefile = TFile(testFile.name)
51 ntuple = ntuplefile.Get(
'ntuple')
53 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
55 allBkg = ntuple.GetEntries(
"isSignal == 0")
56 allSig = ntuple.GetEntries(
"isSignal > 0")
58 print(f
"True candidates {allSig}")
59 print(f
"False candidates {allBkg}")
64 allSig == sig_expected,
65 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
66 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
68 print(
"Test passed, cleaning up.")
71 """Reconstruct/search for an MC decay chain using the findMCDecay tool."""
73 testFile = tempfile.NamedTemporaryFile()
78 'analysis/1000_B_DstD0Kpi_skimmed.root',
'validation', py_case=self)
79 inputMdst(inputfile, path=main)
83 'B0 =direct=> [D*+ =direct=> [D0 =direct=> K- pi+ ] pi+] pi-',
86 ntupler = register_module(
'VariablesToNtuple')
87 ntupler.param(
'fileName', testFile.name)
88 ntupler.param(
'variables', [
'isSignal'])
89 ntupler.param(
'particleList',
'B0:DstD0Kpi')
90 main.add_module(ntupler)
94 ntuplefile = TFile(testFile.name)
95 ntuple = ntuplefile.Get(
'ntuple')
97 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
99 allBkg = ntuple.GetEntries(
"isSignal == 0")
100 allSig = ntuple.GetEntries(
"isSignal > 0")
102 print(f
"True candidates {allSig}")
103 print(f
"False candidates {allBkg}")
108 allSig == sig_expected,
109 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
110 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
112 print(
"Test passed, cleaning up.")
115 if __name__ ==
'__main__':
def testMCDecayFinder(self)
def testReconstructMCDecay(self)
def require_file(filename, data_type="", py_case=None)
def clean_working_directory()
def safe_process(*args, **kwargs)