Belle II Software  release-06-01-15
trainCurlTaggerClassifier.py
1 #!/usr/bin/env python3
2 
3 
10 
11 import basf2.core
12 from basf2 import process, statistics, register_module
13 from modularAnalysis import inputMdst, tagCurlTracks
14 from stdCharged import stdPi
15 import sys
16 import os
17 
18 try:
19  input_file_name = str(sys.argv[1])
20 except BaseException:
21  input_file_name = '/hsm/belle2/bdata/MC/release-02-00-01/DB00000411/MC11/prod00005678/'\
22  's00/e0000/4S/r00000/mixed/mdst/sub00/mdst_00000*_prod00005678_task0000000*.root'
23 
24 upload = False # upload to conditions database
25 remove_local_files = False # delete local db and training data
26 tag_name = 'development'
27 
28 # names used by the CurlTagger module:
29 training_file_name = 'CurlTagger_TrainingData_BelleII.root'
30 identifier = 'CurlTagger_FastBDT_BelleII'
31 
32 # --- create training data set and train the classifier ---
33 training_path = basf2.core.Path()
34 
35 inputMdst('default', input_file_name, path=training_path)
36 stdPi('all', path=training_path)
37 tagCurlTracks('pi+:all', train=True, selectorType='mva', path=training_path)
38 
39 training_path.add_module('ProgressBar')
40 
41 process(training_path, int(2e5))
42 print(statistics)
43 
44 
45 here = os.getcwd()
46 data_base_file = here + "/localdb/database.txt"
47 
48 # upload to global database
49 if upload:
50  os.system(f"b2conditionsdb-upload {tag_name} {data_base_file}")
51 
52 if remove_local_files:
53  os.system('rm -r {}'.format(here + '/localdb/'))
54  os.system(f'rm {here}/{training_file_name}')