4from .categories
import get_available_categories
5from .helpers
import get_Belle_or_Belle2
8def fill_particle_lists(maskName='all', categories=[], path=None):
10 Fills the particle Lists for all categories.
13 from vertex
import kFit
14 import modularAnalysis
as ma
17 track_cut =
'isInRestOfEvent > 0.5 and passesROEMask(' + maskName +
') > 0.5 and p >= 0'
20 exp_type = get_Belle_or_Belle2()
23 for category
in categories:
24 particle_list = get_available_categories()[category].particleList
27 if particle_list
in ready_lists:
31 if particle_list ==
'Lambda0:inRoe':
32 if 'pi+:inRoe' not in ready_lists:
33 ma.fillParticleList(
'pi+:inRoe', track_cut, path=path)
34 ready_lists.append(
'pi+:inRoe')
36 ma.fillParticleList(
'p+:inRoe', track_cut, path=path)
37 ma.reconstructDecay(particle_list +
' -> pi-:inRoe p+:inRoe',
'1.00<=M<=1.23',
False, path=path)
38 kFit(particle_list, 0.01, path=path)
39 ma.matchMCTruth(particle_list, path=path)
40 ready_lists.append(particle_list)
44 ma.fillParticleList(particle_list, track_cut, path=path)
45 ready_lists.append(particle_list)
48 if exp_type ==
'Belle':
49 ma.cutAndCopyList(
'K_S0:inRoe',
'K_S0:mdst',
'extraInfo(ksnbStandard) == 1 and isInRestOfEvent == 1', path=path)
51 if 'pi+:inRoe' not in ready_lists:
52 ma.fillParticleList(
'pi+:inRoe', track_cut, path=path)
53 ma.reconstructDecay(
'K_S0:inRoe -> pi+:inRoe pi-:inRoe',
'0.40<=M<=0.60',
False, path=path)
54 kFit(
'K_S0:inRoe', 0.01, path=path)
57 default_list_for_lid_BDT = [
'e+:inRoe',
'mu+:inRoe']
if exp_type ==
'Belle2' else []
58 list_for_lid_BDT = list(set(default_list_for_lid_BDT) & set(ready_lists))
61 ma.applyChargedPidMVA(particleLists=list_for_lid_BDT, path=path,
63 binaryHypoPDGCodes=(11, 211))
64 ma.applyChargedPidMVA(particleLists=list_for_lid_BDT, path=path,
66 binaryHypoPDGCodes=(13, 211))
67 ma.applyChargedPidMVA(particleLists=list_for_lid_BDT, path=path,