Belle II Software  release-06-01-15
charmless.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 import modularAnalysis as ma
13 from vertex import kFit
14 import stdPi0s
15 
16 
17 def loadStdVeryLooseTracks(particletype, path):
18  """
19  Function to prepare veryLoose charged particle lists. We require only fiducial the cuts
20  :b2:var:`thetaInCDCAcceptance` and :b2:var:`chiProb` :math:`> 0` and
21  abs(:b2:var:`dr`) :math:`< 0.5~{\\rm cm}` and abs(dz) :math:` < 3~{\\rm cm}`.
22 
23  @param particletype type of charged particle to make a list of
24  @param path modules are added to this path
25  """
26 
27  # basic quality cut strings
28  trackQuality = 'thetaInCDCAcceptance and chiProb > 0 '
29  ipCut = 'abs(dr) < 0.5 and abs(dz) < 3'
30  goodTrack = trackQuality + ' and ' + ipCut
31 
32  if particletype not in ['pi', 'K', 'p', 'e', 'mu']:
33  ma.B2ERROR("The requested list is not a standard charged particle. Use one of pi, K, e, mu, p.")
34 
35  ma.fillParticleList(particletype + '+:SkimVeryLoose', goodTrack, True, path=path)
36 
37 
38 def loadStdVeryLooseKstar0(path):
39  """
40  Create a list of 'K*0:veryLoose' list from 'pi-:SkimVeryLoose K+:SkimVeryLoose' with :math:`0.7 < M < 1.6~GeV`
41 
42  @param path modules are added to this path
43  """
44  ma.reconstructDecay('K*0:veryLoose -> K+:SkimVeryLoose pi-:SkimVeryLoose', '0.7 < M < 1.6', 1, path=path)
45  return 'K*0:veryLoose'
46 
47 
48 def loadStdVeryLooseRho0(path):
49  """
50  Create a list of 'rho0:veryLoose' list from 'pi-:SkimVeryLoose pi+:SkimVeryLoose' with :math:`0.47 < M < 1.15~GeV`
51 
52  @param path modules are added to this path
53  """
54  ma.reconstructDecay('rho0:veryLoose -> pi+:SkimVeryLoose pi-:SkimVeryLoose', '0.47 < M < 1.15', 1, path=path)
55  return 'rho0:veryLoose'
56 
57 
58 def loadStdVeryLooseRhoPlus(path):
59  """
60  Create a list of 'rho+:veryLoose' list from 'pi0:charmlessFit pi+:SkimVeryLoose' with :math:`0.47 < M < 1.15~GeV`
61 
62  @param path modules are added to this path
63  """
64  ma.reconstructDecay('rho+:veryLoose -> pi+:SkimVeryLoose pi0:charmlessFit', '0.47 < M < 1.15', 1, path=path)
65  return 'rho+:veryLoose'
66 
67 
68 def loadStdPi0ForBToCharmless(path):
69  """
70  Creates a list 'pi0:charmlessFit' for :math:`B\\to {\\rm charmless}` skims, based on recommendations of
71  the neutral group (avoiding ECL timing cuts) for May 2020. In addition, we require the mass to be
72  :math:`105 < M < 160~{\\rm MeV}/c^2` and a massKFit to converge.
73  """
74  stdPi0s.stdPi0s(listtype='eff60_May2020', path=path)
75  ma.cutAndCopyList('pi0:charmlessFit', 'pi0:eff60_May2020', 'M > 0.105 and M < 0.160', path=path)
76  kFit('pi0:charmlessFit', 0.0, fit_type='mass', path=path)
77 
78 
79 def loadStdVeryLooseKstarPlus(path):
80  """
81  Create a list of 'K*+:veryLoose' list from 'pi+:SkimVeryLoose K_S0:merged' with :math:`0.7 < M < 1.6~GeV`
82 
83  @param path modules are added to this path
84  """
85  ma.reconstructDecay('K*+:veryLoose -> K_S0:merged pi+:SkimVeryLoose', '0.7 < M < 1.6', 1, path=path)
86  return 'K*+:veryLoose'
87 
88 
89 def loadStdVeryLooseKstarPlusPi0(path):
90  """
91  Create a list of 'K*+:veryLoosePi0' list from 'K+:SkimVeryLoose pi0:charmlessFit' with :math:`0.7 < M < 1.6~GeV`
92 
93  @param path modules are added to this path
94  """
95  ma.reconstructDecay('K*+:veryLoosePi0 -> K+:SkimVeryLoose pi0:charmlessFit', '0.7 < M < 1.6', 1, path=path)
96  return 'K*+:veryLoosePi0'
def stdPi0s(listtype="eff60_May2020", path=None, loadPhotonBeamBackgroundMVA=False)
Definition: stdPi0s.py:17