14import modularAnalysis
as ma
16from vertex
import treeFit, kFit
24 environmentType='default',
31 main = b2.create_path()
33 if not os.path.exists(working_dir)
and working_dir !=
'':
34 os.makedirs(working_dir)
36 ma.inputMdstList(environmentType=environmentType, filelist=file_names, path=main)
38 ma.fillParticleListFromMC(
'nu_tau:MC',
'', path=main)
39 ma.reconstructMCDecay(
'B0:sig -> nu_tau:MC anti-nu_tau:MC',
'', writeOut=
True, path=main)
41 ma.buildRestOfEvent(
'B0:sig', path=main)
43 DeepFlavorTagger(
'B0:sig', mode, working_dir, identifier, variable_list, target=target, overwrite=overwrite,
44 path=main, *args, **kwargs)
46 main.add_module(
'ProgressBar')
48 b2.process(main, max_events)
51def test_expert(working_dir, file_names, identifier, output_variable='networkOutput', environmentType='default',
53 main = b2.create_path()
55 ma.inputMdstList(file_names, environmentType=environmentType, path=main)
57 ma.fillParticleListFromMC(
'nu_tau:MC',
'', path=main)
58 ma.reconstructMCDecay(
'B0:sig -> nu_tau:MC anti-nu_tau:MC',
'', writeOut=
True, path=main)
60 ma.buildRestOfEvent(
'B0:sig', path=main)
62 DeepFlavorTagger(
'B0:sig',
'expert', working_dir, identifier, path=main)
65 output_variable_name =
''.join(
'extraInfo(', output_variable,
')')
67 ma.variablesToNtuple(
'B0:sig', [
'extraInfo(qrCombined)', output_variable_name],
68 filename=os.path.join(working_dir, identifier +
'_test_output.root'),
71 main.add_module(
'ProgressBar')
73 b2.process(main, max_events)
76def test_expert_jpsi(working_dir, file_names, prefix, environmentType='default', max_events=0):
77 main = b2.create_path()
79 ma.inputMdstList(file_names, environmentType=environmentType, path=main)
81 ma.fillParticleList(
'pi+:highPID',
'pionID >= .1', path=main)
82 ma.fillParticleList(
'mu+:highPID',
'muonID >= .1', path=main)
86 ma.reconstructDecay(
'K_S0:pipi -> pi+:highPID pi-:highPID',
'.25 <= M <= .75', path=main)
89 treeFit(
'K_S0:pipi', 0., path=main)
92 ma.reconstructDecay(
'J/psi:mumu -> mu+:highPID mu-:highPID',
'3.0 <= M <= 3.2 ', path=main)
95 treeFit(
'J/psi:mumu', 0., massConstraint=[
'J/psi'], path=main)
98 ma.reconstructDecay(
'B0:jpsiks -> J/psi:mumu K_S0:pipi',
'5.2 <= M <= 5.4', path=main)
101 kFit(
'B0:jpsiks', 0.,
'vertex', decay_string=
'B0 -> [J/psi -> ^mu+ ^mu-] K_S0', path=main)
104 ma.matchMCTruth(
'B0:jpsiks', path=main)
107 ma.buildRestOfEvent(
'B0:jpsiks', path=main)
108 ma.applyCuts(
'B0:jpsiks',
'isSignal > 0.5', path=main)
110 DeepFlavorTagger(
'B0:jpsiks',
'Expert', working_dir, prefix, transform_to_probability=
True, path=main)
111 ma.variablesToNtuple(
'B0:jpsiks', [
'extraInfo(qrCombined)',
'extraInfo(qrMC)',
'extraInfo(B0Probability)',
112 'extraInfo(BOProbabilityMC)'],
113 filename=os.path.join(working_dir,
'test_output.root'), path=main)
115 main.add_module(
'ProgressBar')
117 b2.process(main, max_events)