14 from basf2
import create_path, register_module
16 from modularAnalysis
import fillParticleListFromMC, reconstructMCDecay, inputMdst, findMCDecay
17 from ROOT
import TFile
24 """Reconstruct/search for an MC decay chain using the reconstructMCDecay tool."""
26 testFile = tempfile.NamedTemporaryFile()
31 'analysis/1000_B_DstD0Kpi_skimmed.root',
'validation', py_case=self)
32 inputMdst(inputfile, path=main)
34 fillParticleListFromMC(
'gamma:primaryMC',
'mcPrimary', path=main)
35 fillParticleListFromMC(
'K+:primaryMC',
'mcPrimary', path=main)
36 fillParticleListFromMC(
'pi+:primaryMC',
'mcPrimary', path=main)
39 'B0:DstD0Kpi =direct=> [D*+:MC =direct=> [D0:MC =direct=> K-:primaryMC pi+:primaryMC ] pi+:primaryMC] pi-:primaryMC',
43 ntupler = register_module(
'VariablesToNtuple')
44 ntupler.param(
'fileName', testFile.name)
45 ntupler.param(
'treeName',
'ntuple')
46 ntupler.param(
'variables', [
'isSignal'])
47 ntupler.param(
'particleList',
'B0:DstD0Kpi')
48 main.add_module(ntupler)
52 ntuplefile = TFile(testFile.name)
53 ntuple = ntuplefile.Get(
'ntuple')
55 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
57 allBkg = ntuple.GetEntries(
"isSignal == 0")
58 allSig = ntuple.GetEntries(
"isSignal > 0")
60 print(f
"True candidates {allSig}")
61 print(f
"False candidates {allBkg}")
66 allSig == sig_expected,
67 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
68 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
70 print(
"Test passed, cleaning up.")
73 """Reconstruct/search for an MC decay chain using the reconstructMCDecay tool."""
75 testFile = tempfile.NamedTemporaryFile()
80 inputMdst(inputfile, path=main)
82 fillParticleListFromMC(
'pi+:primaryMC',
'mcPrimary', path=main)
86 ntuplerKS = register_module(
'VariablesToNtuple')
87 ntuplerKS.param(
'fileName', testFile.name)
88 ntuplerKS.param(
'treeName',
'ntuple')
89 ntuplerKS.param(
'variables', [
'isSignal'])
90 ntuplerKS.param(
'particleList',
'B0:3KS')
91 main.add_module(ntuplerKS)
95 ntuplefile = TFile(testFile.name)
96 ntuple = ntuplefile.Get(
'ntuple')
98 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
100 allBkg = ntuple.GetEntries(
"isSignal == 0")
101 allSig = ntuple.GetEntries(
"isSignal > 0")
103 print(f
"True candidates {allSig}")
104 print(f
"False candidates {allBkg}")
109 allSig == sig_expected,
110 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
111 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
113 print(
"Test passed, cleaning up.")
116 """Reconstruct/search for an MC decay chain using the findMCDecay tool."""
118 testFile = tempfile.NamedTemporaryFile()
123 'analysis/1000_B_DstD0Kpi_skimmed.root',
'validation', py_case=self)
124 inputMdst(inputfile, path=main)
128 'B0 =direct=> [D*+ =direct=> [D0 =direct=> K- pi+ ] pi+] pi-',
131 ntupler = register_module(
'VariablesToNtuple')
132 ntupler.param(
'fileName', testFile.name)
133 ntupler.param(
'variables', [
'isSignal'])
134 ntupler.param(
'particleList',
'B0:DstD0Kpi')
135 main.add_module(ntupler)
139 ntuplefile = TFile(testFile.name)
140 ntuple = ntuplefile.Get(
'ntuple')
142 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
144 allBkg = ntuple.GetEntries(
"isSignal == 0")
145 allSig = ntuple.GetEntries(
"isSignal > 0")
147 print(f
"True candidates {allSig}")
148 print(f
"False candidates {allBkg}")
153 allSig == sig_expected,
154 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
155 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
157 print(
"Test passed, cleaning up.")
160 """Reconstruct/search for an MC decay chain using the findMCDecay tool."""
162 testFile = tempfile.NamedTemporaryFile()
167 inputMdst(inputfile, path=main)
171 'B0 -> [K_S0 -> pi+ pi-] [K_S0 -> pi+ pi-] [K_S0 -> pi+ pi-]',
174 ntupler = register_module(
'VariablesToNtuple')
175 ntupler.param(
'fileName', testFile.name)
176 ntupler.param(
'variables', [
'isSignal'])
177 ntupler.param(
'particleList',
'B0:3KS')
178 main.add_module(ntupler)
182 ntuplefile = TFile(testFile.name)
183 ntuple = ntuplefile.Get(
'ntuple')
185 self.assertFalse(ntuple.GetEntries() == 0,
"Ntuple is empty.")
187 allBkg = ntuple.GetEntries(
"isSignal == 0")
188 allSig = ntuple.GetEntries(
"isSignal > 0")
190 print(f
"True candidates {allSig}")
191 print(f
"False candidates {allBkg}")
196 allSig == sig_expected,
197 f
"n_sig expected: {sig_expected} found: {sig_expected}.")
198 self.assertTrue(allBkg == 0, f
"n_bkg expected 0, found: {allBkg}.")
200 print(
"Test passed, cleaning up.")
203 if __name__ ==
'__main__':
def testMCDecayFinder(self)
def testReconstructMCDecay_3KS(self)
def testReconstructMCDecay(self)
def testMCDecayFinder_3KS(self)
def require_file(filename, data_type="", py_case=None)
def clean_working_directory()
def safe_process(*args, **kwargs)