13 import modularAnalysis
as ma
16 path = b2.create_path()
19 ma.inputMdst(filename=b2.find_file(
'mdst14.root',
'validation',
False),
23 b2.conditions.prepend_globaltag(ma.getAnalysisGlobaltag())
27 particles = fei.get_default_channels()
30 configuration = fei.config.FeiConfiguration(prefix=
'FEIv4_2021_MC14_release_05_01_12', training=
False, monitor=
False, cache=0)
33 feistate = fei.get_path(particles, configuration)
36 path.add_path(feistate.path)
39 path.add_module(
'MCMatcherParticles', listName=
'B+:generic', looseMCMatching=
True)
40 path.add_module(
'MCMatcherParticles', listName=
'B+:semileptonic', looseMCMatching=
True)
41 path.add_module(
'MCMatcherParticles', listName=
'B0:generic', looseMCMatching=
True)
42 path.add_module(
'MCMatcherParticles', listName=
'B0:semileptonic', looseMCMatching=
True)
45 ma.variablesToNtuple(
'B+:generic',
49 'extraInfo(decayModeID)',
50 'extraInfo(uniqueSignal)',
51 'extraInfo(SignalProbability)',
53 filename=
'B_charged_hadronic.root',
55 ma.variablesToNtuple(
'B+:semileptonic',
56 [
'cosThetaBetweenParticleAndNominalB',
58 'extraInfo(decayModeID)',
59 'extraInfo(uniqueSignal)',
60 'extraInfo(SignalProbability)',
61 'isSignalAcceptMissingNeutrino'],
62 filename=
'B_charged_semileptonic.root',
65 ma.variablesToNtuple(
'B0:generic',
69 'extraInfo(decayModeID)',
70 'extraInfo(uniqueSignal)',
71 'extraInfo(SignalProbability)',
73 filename=
'B_mixed_hadronic.root',
75 ma.variablesToNtuple(
'B0:semileptonic',
76 [
'cosThetaBetweenParticleAndNominalB',
78 'extraInfo(decayModeID)',
79 'extraInfo(uniqueSignal)',
80 'extraInfo(SignalProbability)',
81 'isSignalAcceptMissingNeutrino'],
82 filename=
'B_mixed_semileptonic.root',
86 b2.process(path, max_event=100)