13 from basf2
import create_path, register_module
15 from modularAnalysis
import fillParticleListFromMC, reconstructMCDecay, inputMdst
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(
'default', 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 if __name__ ==
'__main__':
def testNewMCDecayFinder(self)
def require_file(filename, data_type="", py_case=None)
def safe_process(*args, **kwargs)