Belle II Software  release-06-00-14
charm.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 """
13 .. Note::
14  The charm standard skim lists here, are for B to charm physics skims. If you are looking
15  for charm physics skims, please check :ref:`skim_physics_charm`.
16 """
17 
18 import modularAnalysis as ma
19 
20 
21 def loadPiForBtoHadrons(path):
22  """
23  Creates a ``pi+:GoodTrack`` list, with cuts :math:`|dr|<2~{\\rm cm}` and :math:`|dz|<5~{\\rm cm}`.
24 
25  Parameters
26  path (basf2.Path): Skim path to be processed.
27  """
28  ma.fillParticleList("pi+:GoodTrack", "abs(dr) < 2 and abs(dz) < 5", path=path)
29 
30 
31 def loadPiSkimHighEff(path):
32  """
33  Creates a ``pi+:SkimHighEff`` list, with cuts :math:`|dr|<2~{\\rm cm}` and :math:`|dz|<5~{\\rm cm} and pionID >= 0.01`.
34 
35  Parameters
36  path (basf2.Path): Skim path to be processed.
37  """
38  ma.fillParticleList("pi+:SkimHighEff", "abs(dr) < 2 and abs(dz) < 5 and pionID >= 0.01", path=path)
39 
40 
41 def loadSlowPi(path):
42  """
43  Creates a ``pi+:slowPi`` list, with cuts :math:`|dr|<2~{\\rm cm}` and :math:`|dz|<5~{\\rm cm} and useCMSFrame(p) < 0.4`.
44 
45  Parameters
46  path (basf2.Path): Skim path to be processed.
47  """
48  ma.fillParticleList("pi+:slowPi", "abs(dr) < 2 and abs(dz) < 5 and useCMSFrame(p) < 0.4", path=path)
49 
50 
51 def loadKForBtoHadrons(path):
52  """
53  Creates a ``K+:GoodTrack`` list, with cuts :math:`|dr|<2~{\\rm cm}` and :math:`|dz|<5~{\\rm cm}`.
54 
55  Parameters
56  path (basf2.Path): Skim path to be processed.
57  """
58  ma.fillParticleList("K+:GoodTrack", "abs(dr) < 2 and abs(dz) < 5", path=path)
59 
60 
61 def loadKSkimHighEff(path):
62  """
63  Creates a ``K+:SkimHighEff`` list, with cuts :math:`|dr|<2~{\\rm cm}` and :math:`|dz|<5~{\\rm cm} and kaonID >= 0.01`.
64 
65  Parameters
66  path (basf2.Path): Skim path to be processed.
67  """
68  ma.fillParticleList("K+:SkimHighEff", "abs(dr) < 2 and abs(dz) < 5 and kaonID >= 0.01", path=path)
69 
70 
71 def loadStdD0(path):
72  """
73  Creates a 'D0:all' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
74  from the following particles lists:
75 
76  1. 'K-:GoodTrack pi+:GoodTrack',
77  2. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi-:GoodTrack',
78  3. 'K-:GoodTrack pi+:GoodTrack pi0:bth_skim',
79  4. 'K_S0:merged pi+:GoodTrack pi-:GoodTrack'.
80 
81  @param path modules are added to this path
82  """
83  D0Cuts = '1.7 < M < 2.0'
84  D0_Channels = ['K-:GoodTrack pi+:GoodTrack',
85  'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi-:GoodTrack',
86  'K-:GoodTrack pi+:GoodTrack pi0:bth_skim',
87  'K_S0:merged pi+:GoodTrack pi-:GoodTrack',
88  ]
89 
90  D0List = []
91  for chID, channel in enumerate(D0_Channels):
92  ma.reconstructDecay(decayString='D0:all' + str(chID) + ' -> ' + channel, cut=D0Cuts, dmID=chID, path=path)
93  D0List.append('D0:all' + str(chID))
94  ma.copyLists(outputListName='D0:all', inputListNames=D0List, path=path)
95  return D0List
96 
97 
98 def loadStdD0_Kpi(path=None):
99  """
100  Creates a 'D0:Kpi' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
101  from the following particles lists:
102 
103  1. 'K-:GoodTrack pi+:GoodTrack',
104 
105  @param path modules are added to this path
106  """
107  ma.reconstructDecay(decayString='D0:Kpi -> K-:GoodTrack pi+:GoodTrack', cut='1.7 < M < 2.0', dmID=1, path=path)
108  return ['D0:Kpi']
109 
110 
111 def loadSkimHighEffD0_Kpi(path=None):
112  """
113  Creates a 'D0:Kpi_skimhigheff' list, with an invariant mass in the range :math:`1.8 < M < 2.0~{\\rm GeV}/c^2`,
114  from the following particles lists:
115 
116  1. 'K-:SkimHighEff pi+:SkimHighEff',
117 
118  @param path modules are added to this path
119  """
120  ma.reconstructDecay(decayString='D0:Kpi_skimhigheff -> K-:SkimHighEff pi+:SkimHighEff', cut='1.8 < M < 2.0', dmID=1, path=path)
121  return ['D0:Kpi_skimhigheff']
122 
123 
124 def loadStdD0_Kpipipi(path=None):
125  """
126  Creates a 'D0:Kpipipi' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
127  from the following particles lists:
128 
129  2. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi-:GoodTrack',
130 
131  @param path modules are added to this path
132  """
133  ma.reconstructDecay(decayString='D0:Kpipipi -> K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi-:GoodTrack',
134  cut='1.7 < M < 2.0', dmID=2, path=path)
135  return ['D0:Kpipipi']
136 
137 
138 def loadSkimHighEffD0_Kpipipi(path=None):
139  """
140  Creates a 'D0:Kpipipi_skimhigheff' list, with an invariant mass in the range :math:`1.8 < M < 2.0~{\\rm GeV}/c^2`,
141  from the following particles lists:
142 
143  2. 'K-:SkimHighEff pi+:SkimHighEff pi+:SkimHighEff pi-:SkimHighEff',
144 
145  @param path modules are added to this path
146  """
147  ma.reconstructDecay(decayString='D0:Kpipipi_skimhigheff -> K-:SkimHighEff pi+:SkimHighEff pi+:SkimHighEff pi-:SkimHighEff',
148  cut='1.8 < M < 2.0', dmID=2, path=path)
149  return ['D0:Kpipipi_skimhigheff']
150 
151 
152 def loadStdD0_Kpipi0(path=None):
153  """
154  Creates a 'D0:Kpipi0' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
155  from the following particles lists:
156 
157  3. 'K-:GoodTrack pi+:GoodTrack pi0:bth_skim',
158 
159  @param path modules are added to this path
160  """
161  ma.reconstructDecay(decayString='D0:Kpipi0 -> K-:GoodTrack pi+:GoodTrack pi0:bth_skim', cut='1.7 < M < 2.0', dmID=3, path=path)
162  return ['D0:Kpipi0']
163 
164 
165 def loadStdD0_eff20_Kpipi0(path=None):
166  """
167  Creates a 'D0:Kpipi0_eff20' list, with an invariant mass in the range :math:`1.8 < M < 2.0~{\\rm GeV}/c^2`,
168  from the following particles lists:
169 
170  3. 'K-:SkimHighEff pi+:SkimHighEff pi0:eff20_May2020',
171 
172  @param path modules are added to this path
173  """
174  ma.reconstructDecay(
175  decayString='D0:Kpipi0_eff20 -> K-:SkimHighEff pi+:SkimHighEff pi0:eff20_May2020',
176  cut='1.8 < M < 2.0',
177  dmID=3,
178  path=path)
179  return ['D0:Kpipi0_eff20']
180 
181 
182 def loadStdD0_Kspipi(path=None):
183  """
184  Creates a 'D0:Kspipi' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
185  from the following particles lists:
186 
187  4. 'K_S0:merged pi+:GoodTrack pi-:GoodTrack'.
188 
189  @param path modules are added to this path
190  """
191  ma.reconstructDecay(decayString='D0:Kspipi -> K_S0:merged pi+:GoodTrack pi-:GoodTrack', cut='1.7 < M < 2.0', dmID=4, path=path)
192  return ['D0:Kspipi']
193 
194 
195 def loadD0_hh_loose(path):
196  """
197  Creates a 'D0:hh' list, with an invariant mass in the range :math:`1.5 < M < 2.2~{\\rm GeV}/c^2`,
198  from the following particles lists:
199 
200  1. 'K+:GoodTrack pi-:GoodTrack',
201  2. 'K-:GoodTrack pi+:GoodTrack',
202  3. 'pi+:GoodTrack pi-:GoodTrack',
203  4. 'K+:GoodTrack K-:GoodTrack'.
204 
205  @param path modules are added to this path
206  """
207 
208  Dcuts = '1.5 < M < 2.2'
209  D0_hh_Channels = [
210  'K+:GoodTrack pi-:GoodTrack',
211  'K-:GoodTrack pi+:GoodTrack',
212  'pi+:GoodTrack pi-:GoodTrack',
213  'K+:GoodTrack K-:GoodTrack'
214  ]
215  D0_hh_List = []
216  for chID, channel in enumerate(D0_hh_Channels):
217  ma.reconstructDecay(decayString='D0:D0Bar' + str(chID) + ' -> ' + channel, cut=Dcuts, dmID=chID, path=path)
218  D0_hh_List.append('D0:D0Bar' + str(chID))
219  ma.copyLists(outputListName='D0:hh', inputListNames=D0_hh_List, path=path)
220  return D0_hh_List
221 
222 
223 def loadD0_Kshh_loose(path):
224  """
225  Creates a 'D0:Kshh' list, with an invariant mass in the range :math:`1.5 < M < 2.2~{\\rm GeV}/c^2`,
226  from the following particles lists:
227 
228  1. 'K_S0:merged pi+:GoodTrack pi-:GoodTrack',
229  2. 'K_S0:merged K+:GoodTrack K-:GoodTrack'.
230 
231  @param path modules are added to this path
232  """
233 
234  Dcuts = '1.5 < M < 2.2'
235 
236  D0_Channels = [
237  'K_S0:merged pi+:GoodTrack pi-:GoodTrack',
238  'K_S0:merged K+:GoodTrack K-:GoodTrack'
239  ]
240  D0List = []
241  for chID, channel in enumerate(D0_Channels):
242  ma.reconstructDecay(decayString='D0:Kshh' + str(chID) + ' -> ' + channel, cut=Dcuts, dmID=chID, path=path)
243  D0List.append('D0:Kshh' + str(chID))
244  ma.copyLists(outputListName='D0:Kshh', inputListNames=D0List, path=path)
245  return D0List
246 
247 
248 def loadD0_Kspi0_loose(path):
249  """
250  Creates a 'D0:Kspi0' list, with an invariant mass in the range :math:`1.5 < M < 2.2~{\\rm GeV}/c^2`,
251  from the 'K_S0:merged' and the 'pi0:bth_skim' lists.
252 
253  @param path modules are added to this path
254  """
255 
256  Dcuts = '1.5 < M < 2.2'
257 
258  D0_Channels = [
259  'K_S0:merged pi0:bth_skim'
260  ]
261 
262  D0List = []
263  for chID, channel in enumerate(D0_Channels):
264  ma.reconstructDecay(decayString='D0:Kspi0' + str(chID) + ' -> ' + channel, cut=Dcuts, dmID=chID, path=path)
265  D0List.append('D0:Kspi0' + str(chID))
266  ma.copyLists(outputListName='D0:Kspi0', inputListNames=D0List, path=path)
267  return D0List
268 
269 
270 def loadD0_Kspipipi0(path):
271  """
272  Creates a 'D0:Kspipipi0' list, with an invariant mass in the range :math:`1.5 < M < 2.2~{\\rm GeV}/c^2`,
273  from the 'K_S0:merged', 'pi+:GoodTrack', 'pi-:GoodTrack' and 'pi0:bth_skim' lists.
274 
275  @param path modules are added to this path
276  """
277 
278  Dcuts = '1.8 < M < 1.9'
279 
280  D0_Channels = [
281  'K_S0:merged pi+:GoodTrack pi-:GoodTrack pi0:bth_skim'
282  ]
283  D0List = []
284  for chID, channel in enumerate(D0_Channels):
285  ma.reconstructDecay(decayString='D0:Kspipipi0' + str(chID) + ' -> ' + channel, cut=Dcuts, dmID=chID, path=path)
286  D0List.append('D0:Kspipipi0' + str(chID))
287  ma.copyLists(outputListName='D0:Kspipipi0', inputListNames=D0List, path=path)
288  return D0List
289 
290 
291 def loadStdDplus(path):
292  """
293  Creates a 'D+:all' list, with an invariant mass in the range :math:`1.8 < M < 1.9~{\\rm GeV}/c^2`,
294  from the following particles lists:
295 
296  1. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack',
297  2. 'K_S0:merged pi+:GoodTrack',
298  3. 'K_S0:merged pi+:GoodTrack pi0:bth_skim',
299  4. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi0:bth_skim'.
300 
301  @param path modules are added to this path
302  """
303  DplusCuts = '1.8 < M < 1.9'
304  Dplus_Channels = ['K-:GoodTrack pi+:GoodTrack pi+:GoodTrack',
305  'K_S0:merged pi+:GoodTrack',
306  'K_S0:merged pi+:GoodTrack pi0:bth_skim',
307  'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi0:bth_skim',
308  ]
309 
310  DplusList = []
311  for chID, channel in enumerate(Dplus_Channels):
312  ma.reconstructDecay(decayString='D+:all' + str(chID) + ' -> ' + channel, cut=DplusCuts, dmID=chID, path=path)
313  DplusList.append('D+:all' + str(chID))
314  ma.copyLists(outputListName='D+:all', inputListNames=DplusList, path=path)
315  return DplusList
316 
317 
318 def loadStdDplus_Kpipi(path=None):
319  """
320  Creates a 'D+:Kpipi' list, with an invariant mass in the range :math:`1.8 < M < 1.9~{\\rm GeV}/c^2`,
321  from the following particles lists:
322 
323  1. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack',
324 
325  @param path modules are added to this path
326  """
327  ma.reconstructDecay(decayString='D+:Kpipi -> K-:GoodTrack pi+:GoodTrack pi+:GoodTrack', cut='1.8 < M < 1.9', dmID=1, path=path)
328  return ['D+:Kpipi']
329 
330 
331 def loadStdDplus_Kspi(path=None):
332  """
333  Creates a 'D+:Kspi' list, with an invariant mass in the range :math:`1.8 < M < 1.9~{\\rm GeV}/c^2`,
334  from the following particles lists:
335 
336  2. 'K_S0:merged pi+:GoodTrack',
337 
338  @param path modules are added to this path
339  """
340  ma.reconstructDecay(decayString='D+:Kspi -> K_S0:merged pi+:GoodTrack', cut='1.8 < M < 1.9', dmID=2, path=path)
341  return ['D+:Kspi']
342 
343 
344 def loadStdDplus_Kspipi0(path=None):
345  """
346  Creates a 'D+:Kspipi0' list, with an invariant mass in the range :math:`1.8 < M < 1.9~{\\rm GeV}/c^2`,
347  from the following particles lists:
348 
349  3. 'K_S0:merged pi+:GoodTrack pi0:bth_skim',
350 
351  @param path modules are added to this path
352  """
353  ma.reconstructDecay(decayString='D+:Kspipi0 -> K_S0:merged pi+:GoodTrack pi0:bth_skim', cut='1.8 < M < 1.9',
354  dmID=3, path=path)
355  return ['D+:Kspipi0']
356 
357 
358 def loadStdDplus_Kpipipi0(path=None):
359  """
360  Creates a 'D+:Kpipipi0' list, with an invariant mass in the range :math:`1.8 < M < 1.9~{\\rm GeV}/c^2`,
361  from the following particles lists:
362 
363  4. 'K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi0:bth_skim'.
364 
365  @param path modules are added to this path
366  """
367  ma.reconstructDecay(decayString='D+:Kpipipi0 -> K-:GoodTrack pi+:GoodTrack pi+:GoodTrack pi0:bth_skim', cut='1.8 < M < 1.9',
368  dmID=3, path=path)
369  return ['D+:Kpipipi0']
370 
371 
372 def loadStdDstar0(path):
373  """
374  Create a list of 'D*0:all' list, with an invariant mass cut :math:`1.95 < M < 2.05 GeV`, from the following particles lists:
375 
376  - 'D0:all pi0:eff40_May2020'
377  - 'D0:all gamma:loose'
378 
379  @param path modules are added to this path
380  """
381  Dstar0Cuts = 'massDifference(0) < 0.16'
382  D_Channels = ['D0:all pi0:eff40_May2020',
383  'D0:all gamma:loose']
384 
385  DList = []
386  for chID, channel in enumerate(D_Channels):
387  ma.reconstructDecay(decayString='D*0:std' + str(chID) + ' -> ' + channel, cut=Dstar0Cuts, dmID=chID, path=path)
388  DList.append('D*0:std' + str(chID))
389  ma.copyLists(outputListName='D*0:all', inputListNames=DList, path=path)
390  return DList
391 
392 
393 def loadStdDstar0_D0pi0_all(path=None):
394  """
395  Creates a 'D*0:all' list combining the 'D0:all' and 'pi0:bth_skim' lists by requiring the mass difference between D*0 and D0
396  to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
397 
398  @param path modules are added to this path
399  """
400  Dstar0Cuts = 'massDifference(0) < 0.16'
401  Dstar0_Channels = ['D0:all pi0:bth_skim',
402  ]
403 
404  Dstar0List = []
405  for chID, channel in enumerate(Dstar0_Channels):
406  ma.reconstructDecay(decayString='D*0:all' + str(chID) + ' -> ' + channel, cut=Dstar0Cuts, dmID=chID, path=path)
407  Dstar0List.append('D*0:all' + str(chID))
408  ma.copyLists(outputListName='D*0:all', inputListNames=Dstar0List, path=path)
409  return Dstar0List
410 
411 
412 def loadStdDstar0_D0pi0_Kpi(path=None):
413  """
414  Creates a 'D*0:D0_Kpi' list combining the 'D0:Kpi' and 'pi0:bth_skim' lists by requiring the mass difference between D*0 and D0
415  to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
416 
417  @param path modules are added to this path
418  """
419  ma.reconstructDecay(decayString='D*0:D0_Kpi -> D0:Kpi pi0:bth_skim', cut='massDifference(0) < 0.16', dmID=1, path=path)
420  return ['D*0:D0_Kpi']
421 
422 
423 def loadStdDstar0_D0pi0_Kpipipi(path=None):
424  """
425  Creates a 'D*0:D0_Kpipipi' list combining the 'D0:Kpipipi' and 'pi0:bth_skim' lists by requiring the mass difference
426  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
427 
428  @param path modules are added to this path
429  """
430  ma.reconstructDecay(decayString='D*0:D0_Kpipipi -> D0:Kpipipi pi0:bth_skim', cut='massDifference(0) < 0.16', dmID=2, path=path)
431  return ['D*0:D0_Kpipipi']
432 
433 
434 def loadStdDstar0_D0pi0_Kpipi0(path=None):
435  """
436  Creates a 'D*0:D0_Kpipi0' list combining the 'D0:Kpipi0' and 'pi0:bth_skim' lists by requiring the mass difference
437  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
438 
439  @param path modules are added to this path
440  """
441  ma.reconstructDecay(decayString='D*0:D0_Kpipi0 -> D0:Kpipi0 pi0:bth_skim', cut='massDifference(0) < 0.16', dmID=3, path=path)
442  return ['D*0:D0_Kpipi0']
443 
444 
445 def loadStdDstar0_D0pi0_Kspipi(path=None):
446  """
447  Creates a 'D*0:D0_Kspipi' list combining the 'D0:Kspipi' and 'pi0:bth_skim' lists by requiring the mass difference
448  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
449 
450  @param path modules are added to this path
451  """
452  ma.reconstructDecay(decayString='D*0:D0_Kspipi -> D0:Kspipi pi0:bth_skim', cut='massDifference(0) < 0.16', dmID=4, path=path)
453  return ['D*0:D0_Kspipi']
454 
455 
456 def loadStdDstarPlus(path):
457  """
458  Create a list of 'D*++:all' list, with an invariant mass cut :math:`1.95 < M < 2.05 GeV`, from the following particles lists:
459  - 'D0:all pi+:GoodTrack'
460  - 'D+:all pi0:eff40_May2020'
461 
462  @param path modules are added to this path
463  """
464  DstarPlusCuts = 'massDifference(0) < 0.16'
465  D_Channels = ['D0:all pi+:GoodTrack',
466  'D+:all pi0:eff40_May2020']
467 
468  DList = []
469  for chID, channel in enumerate(D_Channels):
470  ma.reconstructDecay(decayString='D*+:std' + str(chID) + ' -> ' + channel, cut=DstarPlusCuts, dmID=chID, path=path)
471  DList.append('D*+:std' + str(chID))
472  ma.copyLists(outputListName='D*+:all', inputListNames=DList, path=path)
473  return DList
474 
475 
476 def loadStdDstarPlus_D0pi_all(path=None):
477  """
478  Creates a 'D*+:all' list combining the 'D0:all' and 'pi+:GoodTrack' list by requiring the mass difference between D*+ and D0
479  to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
480 
481  @param path modules are added to this path
482  """
483  DstarPlusCuts = 'massDifference(0) < 0.16'
484  DstarPlus_Channels = ['D0:all pi+:GoodTrack',
485  ]
486 
487  DstarPlusList = []
488  for chID, channel in enumerate(DstarPlus_Channels):
489  ma.reconstructDecay(decayString='D*+:std' + str(chID) + ' -> ' + channel, cut=DstarPlusCuts, dmID=chID, path=path)
490  DstarPlusList.append('D*+:std' + str(chID))
491  ma.copyLists(outputListName='D*+:all', inputListNames=DstarPlusList, path=path)
492  return DstarPlusList
493 
494 
495 def loadStdDstarPlus_D0pi_Kpi(path=None):
496  """
497  Creates a 'D*+:D0_Kpi' list combining the 'D0:Kpi' and 'pi+:GoodTrack' lists by requiring the mass difference between D*0 and D0
498  to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
499 
500  @param path modules are added to this path
501  """
502  ma.reconstructDecay(decayString='D*+:D0_Kpi -> D0:Kpi pi+:GoodTrack', cut='massDifference(0) < 0.16', dmID=1, path=path)
503  return ['D*+:D0_Kpi']
504 
505 
506 def loadSkimHighEffDstarPlus_D0pi_Kpi(path=None):
507  """
508  Creates a 'D*+:D0_Kpi_skimhigheff' list combining the 'D0:Kpi_skimhigheff' and 'pi+:slowPi' lists by requiring the
509  mass difference between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
510 
511  @param path modules are added to this path
512  """
513  ma.reconstructDecay(decayString='D*+:D0_Kpi_skimhigheff -> D0:Kpi_skimhigheff pi+:slowPi',
514  cut='massDifference(0) < 0.16', dmID=1, path=path)
515  return ['D*+:D0_Kpi_skimhigheff']
516 
517 
518 def loadStdDstarPlus_D0pi_Kpipipi(path=None):
519  """
520  Creates a 'D*+:D0_Kpipipi' list combining the 'D0:Kpipipi' and 'pi+:GoodTrack' lists by requiring the mass difference
521  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
522 
523  @param path modules are added to this path
524  """
525  ma.reconstructDecay(decayString='D*+:D0_Kpipipi -> D0:Kpipipi pi+:GoodTrack', cut='massDifference(0) < 0.16', dmID=2, path=path)
526  return ['D*+:D0_Kpipipi']
527 
528 
529 def loadSkimHighEffDstarPlus_D0pi_Kpipipi(path=None):
530  """
531  Creates a 'D*+:D0_Kpipipi_skimhigheff' list combining the 'D0:Kpipipi_skimhigheff' and 'pi+:slowPi' lists
532  by requiring the mass difference between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
533 
534  @param path modules are added to this path
535  """
536  ma.reconstructDecay(decayString='D*+:D0_Kpipipi_skimhigheff -> D0:Kpipipi_skimhigheff pi+:slowPi',
537  cut='massDifference(0) < 0.16', dmID=2, path=path)
538  return ['D*+:D0_Kpipipi_skimhigheff']
539 
540 
541 def loadStdDstarPlus_D0pi_Kpipi0(path=None):
542  """
543  Creates a 'D*+:D0_Kpipi0' list combining the 'D0:Kpipi0' and 'pi+:GoodTrack' lists by requiring the mass difference
544  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
545 
546  @param path modules are added to this path
547  """
548  ma.reconstructDecay(decayString='D*+:D0_Kpipi0 -> D0:Kpipi0 pi+:GoodTrack', cut='massDifference(0) < 0.16', dmID=3, path=path)
549  return ['D*+:D0_Kpipi0']
550 
551 
552 def loadStdDstarPlus_D0pi_Kpipi0_eff20(path=None):
553  """
554  Creates a 'D*+:D0_Kpipi0_eff20' list combining the 'D0:Kpipi0_eff20' and 'pi+:slowPi' lists by requiring the mass difference
555  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
556 
557  @param path modules are added to this path
558  """
559  ma.reconstructDecay(decayString='D*+:D0_Kpipi0_eff20 -> D0:Kpipi0_eff20 pi+:slowPi',
560  cut='massDifference(0) < 0.16', dmID=3, path=path)
561  return ['D*+:D0_Kpipi0_eff20']
562 
563 
564 def loadStdDstarPlus_D0pi_Kspipi(path=None):
565  """
566  Creates a 'D*+:D0_Kspipi' list combining the 'D0:Kspipi' and 'pi+:GoodTrack' lists by requiring the mass difference
567  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
568 
569  @param path modules are added to this path
570  """
571  ma.reconstructDecay(decayString='D*+:D0_Kspipi -> D0:Kspipi pi+:GoodTrack', cut='massDifference(0) < 0.16', dmID=4, path=path)
572  return ['D*+:D0_Kspipi']
573 
574 
575 def loadStdDstarPlus_Dpi0_Kpipi(path=None):
576  """
577  Creates a 'D*+:Dpi0_Kpipi' list combining the 'D+:Kpipi' and 'pi0:bth_skim' lists by requiring the mass difference
578  between D*0 and D0 to be in the range :math:`\\Delta M < 0.16~{\\rm GeV}/c^2`.
579 
580  @param path modules are added to this path
581  """
582  ma.reconstructDecay(decayString='D*+:Dpi0_Kpipi -> D+:Kpipi pi0:bth_skim', cut='massDifference(0) < 0.16', dmID=4, path=path)
583  return ['D*+:Dpi0_Kpipi']
584 
585 
586 def loadCharmlessD0_Kpipi0(path=None):
587  """
588  Creates a 'D0:Kpipi0' list, with an invariant mass in the range :math:`1.7 < M < 2.0~{\\rm GeV}/c^2`,
589  from the following particles lists:
590 
591  1. 'K-:SkimVeryLoose pi+:SkimVeryLoose pi0:SkimVeryLoose',
592 
593  @param path modules are added to this path
594  """
595  ma.reconstructDecay(
596  decayString='D0:Kpipi0 -> K-:SkimVeryLoose pi+:SkimVeryLoose pi0:charmlessFit',
597  cut='1.7 < M < 2.0',
598  path=path)
599 
600  return ['D0:Kpipi0']