12 from basf2
import process, statistics
13 from modularAnalysis
import inputMdst, matchMCTruth, variablesToNtuple
14 from stdV0s
import stdKshorts
19 input_file_name = str(sys.argv[1])
21 input_file_name =
'/hsm/belle2/bdata/MC/release-01-00-03/DB00000294/MC10/prod00004770/'\
22 's00/e0000/4S/r00000/mixed/mdst/sub00/mdst_00000*_prod00004770_task0000000*.root'
25 identifier = sys.argv[2]
27 identifier =
'Kshort_FastBDT.xml'
30 tree_name =
'ks_training_variables'
31 training_file_name =
'KshortClassifierTrainingData.root'
33 my_variables = [
'SigM',
34 'formula( E / E_uncertainty )',
35 'formula( flightTime / flightTimeErr)',
36 'cosAngleBetweenMomentumAndVertexVector',
37 'min(abs(daughter(0, d0)),abs(daughter(1, d0)))',
38 'formula(daughter(0, pionID) + daughter(1, pionID))'
41 target_variable =
'isSignal'
45 training_path = basf2.core.Path()
46 inputMdst(
'default', input_file_name, path=training_path)
47 stdKshorts(path=training_path)
48 matchMCTruth(
'K_S0:merged', path=training_path)
51 my_variables + [target_variable],
57 process(training_path, int(2e5))
62 training_string =
'basf2_mva_teacher --datafiles {data_files} --treename {tree_name}'\
63 ' --identifier {identifier} --variables {variables} --target_variable'\
64 ' {target_variable} --method FastBDT --nTrees 400 --nCutLevels 8 --nLevels 4'.format(
65 data_files=training_file_name,
67 identifier=identifier,
68 variables=
''.join([
' "%s" ' % var
for var
in my_variables]),
69 target_variable=target_variable)
71 os.system(training_string)
77 tag_name =
"development"
80 remove_local_files =
False
83 os.system(
'basf2_mva_upload --identifier {identifier} --db_identifier {identifier_db}'
84 ' --begin_experiment {ex_b} --end_experiment {ex_e} --begin_run {run_b} --end_run {run_e}'.format(
85 identifier=identifier,
86 identifier_db=identifier.split(
".xml")[0],
93 data_base_file = here +
"/localdb/database.txt"
97 os.system(f
"b2conditionsdb-upload {tag_name} {data_base_file}")
99 if remove_local_files:
100 os.system(
'rm -r {}'.format(here +
'/localdb/'))
101 os.system(f
'rm {here}/{training_file_name}')
102 os.system(f
'rm {here}/{identifier}')