Belle II Software  light-2212-foldex
pid_priors.py
1 #!/usr/bin/env python3
2 
3 
10 
11 from basf2 import set_random_seed, create_path, register_module, process, find_file
12 from b2test_utils import clean_working_directory, require_file, configure_logging_for_tests
13 import modularAnalysis as ma
14 import subprocess
15 
16 
17 configure_logging_for_tests()
18 set_random_seed('pid_priors')
19 
20 with clean_working_directory():
21 
22  main = create_path()
23 
24  inputfile = require_file('analysis/1000_B_DstD0Kpi_skimmed.root', 'validation')
25  ma.inputMdst(inputfile, path=main)
26 
27  ma.fillParticleList('pi+', '', path=main)
28  ma.matchMCTruth('pi+', path=main)
29 
30  ntupler = register_module('VariablesToNtuple')
31  ntupler.param('fileName', 'pid_priors.root')
32  ntupler.param('variables', ['cosTheta', 'p', 'mcPDG'])
33  ntupler.param('particleList', 'pi+')
34  main.add_module(ntupler)
35 
36  process(main)
37 
38  assert 0 == subprocess.run(['analysis-train-priors', '-i', 'pid_priors.root', '-k', 'ntuple', '-o',
39  'pid_priors.pth', '-p', '211', '321'], stdout=subprocess.DEVNULL).returncode
40 
41  assert 0 == subprocess.run(['basf2', find_file('analysis/tests/pid_priors.py_noexec')]).returncode