From f8dcf29bc30f0f5d0a455ebaf9c62a3f1f2885e4 Mon Sep 17 00:00:00 2001 From: bshi <boan.shi@cern.ch> Date: Thu, 13 Jul 2023 21:35:26 +0800 Subject: [PATCH 1/3] build Xicb2Xic0Pim Line --- .../StrippingB2OC/Beauty2Charm_Lb2XBuilder.py | 306 +- .../StrippingB2OC/StrippingBeauty2Charm.py | 4799 ++++++++++------- 2 files changed, 3051 insertions(+), 2054 deletions(-) diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py index a288b2f4d..7e3d4de8c 100644 --- a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py +++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py @@ -20,19 +20,80 @@ from Beauty2Charm_Utils import * #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# +class XimBuilder(object): + '''Produces all Xim baryons for the Beauty2Charm module.''' + + def __init__(self, pions, kaons, protons, lambda0, config_Xim): + + #selections written in StrippingBeauty2Charm.py + self.pions = pions + self.kaons = kaons + self.protons = protons + self.lambda0 = lambda0 + self.config_Xim = config_Xim #Xi- selections written in StrippingBeauty2Charm.py + + #Xi- + self.xim_lmd0pim_LL = [self._makeXim2Lmd0Pim("LL")] + self.xim_lmd0pim_DD = [self._makeXim2Lmd0Pim("DD")] + + def _makeXim2Lmd0Pim(self, lmd): + '''Makes Xi- -> Lambda0 Pim + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xim['MASS_WINDOW']) + # Pre vertex fit + comboCuts = [ + "(ADAMASS('Xi-') < %s*%s) " % (dm + 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xim).code()) + comboCuts = LoKiCuts.combine(comboCuts) + # Post vertex fit + momCuts = [ + "(ADMASS('Xi-') < %s*%s) " % (dm + 40, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi- -> Lambda0 pi-", "Xi~+ -> Lambda~0 pi+"]) + return Selection( + 'Xim2Lambda0Pim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections= self.lambda0[lmd] + [self.pions]) + + +#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# + class LcBuilder(object): '''Produces all Lambda_c baryons for the Beauty2Charm module.''' - def __init__(self, pions, kaons, protons, lambda0, config, config_pid): + def __init__(self, pions, kaons, protons, lambda0, ks, xim, config, config_Xic0, config_pid): self.pions = pions self.kaons = kaons self.protons = protons self.lambda0 = lambda0 + self.ks = ks + self.xim_lmd0pim_LL = xim.xim_lmd0pim_LL + self.xim_lmd0pim_DD = xim.xim_lmd0pim_DD self.config = config self.pkpi = [self._makeLc2phh()] self.pkk = [self._makeLc2phh("PKK")] self.ppipi = [self._makeLc2phh("PPiPi")] + self.xic_pkpi = [self._makeXic2pKpi()] + self.xic0_pkkpi = [self._makeXic02pKKpi()] + self.omegac0_pkkpi = [self._makeOmegac02pKKpi()] + self.config_Xic0 = config_Xic0 + + # Xic0_XimPip + self.xic0_ximpip_LL = [self._makeXic02XimPip("LL")] + self.xic0_ximpip_DD = [self._makeXic02XimPip("DD")] + # xic0_Lambda0kmpip + self.xic0_lmd0kmpip_LL = [self._makeXic02Lambda0KmPip("LL")] + self.xic0_lmd0kmpip_DD = [self._makeXic02Lambda0KmPip("DD")] + # xic0_PKsKm + self.xic0_pkskm_LL = [self._makeXic02PKsKm("LL")] + self.xic0_pkskm_DD = [self._makeXic02PKsKm("DD")] + + # Filter with tighter PID self.lambdapiLL = [self._makeLc2Lambdapi("LL")] self.lambdapiDD = [self._makeLc2Lambdapi("DD")] self.xic_pkpi = [self._makeXic2pKpi()] @@ -240,6 +301,79 @@ class LcBuilder(object): Algorithm=cp, RequiredSelections=[self.pions, self.kaons, self.protons]) + def _makeXic02XimPip(self, lmd): + '''Makes Xi_c0 -> Xi- pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm + 30, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> Xi- pi+", "Xi_c~0 -> Xi~+ pi-"]) + used_xim = self.xim_lmd0pim_DD + if "LL" in lmd: + used_xim = self.xim_lmd0pim_LL + else: + pass + return Selection( + 'Xic02XimPip' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xim + [self.pions]) + + def _makeXic02Lambda0KmPip(self, lmd): + '''Makes Xi_c0 -> Lambda0 K- Pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm - 70, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> Lambda0 K- pi+", "Xi_c~0 -> Lambda~0 K+ pi-"]) + return Selection( + 'Xic02Lambda0KmPip' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=self.lambda0[lmd] + [self.kaons] + [self.pions]) + + def _makeXic02PKsKm(self, ks): + '''Makes Xi_c0 -> p Ks K- + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 90, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm - 110, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> p+ KS0 K-", "Xi_c~0 -> p~- KS0 K+"]) + return Selection( + 'Xic02PKsKm' + ks + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=self.ks[ks] + [self.protons, self.kaons]) #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# @@ -438,9 +572,6 @@ class LcstarBuilder(object): Algorithm=cp, RequiredSelections=inputs[mode]) - - - class XiccBuilder(object): '''Produces Xi_cc baryons for the Beauty2Charm module.''' @@ -613,7 +744,6 @@ class LooseXiccBuilder(object): #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - class XibcBuilder(object): '''Makes all Xibc -> X lines.''' @@ -851,18 +981,28 @@ class Lb2XBuilder(object): def __init__(self, lc, lcstar, xicc, d, hh, topoPions, topoPions_PID, topoKaons, topoKaons_PID, topoProtons, topoProtons_PID, pions, kaons, ks, - hhh, dst, lambda0, config): + hhh, dst, lambda0, config, config_xibm): self.lc = lc.pkpi self.lc_pkk = lc.pkk self.lc_ppipi = lc.ppipi - self.lc_lambdapiLL = lc.lambdapiLL + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + self.xic0_ximpip_LL = lc.xic0_ximpip_LL + self.xic0_ximpip_DD = lc.xic0_ximpip_DD + self.xic0_lmd0kmpip_LL = lc.xic0_lmd0kmpip_LL + self.xic0_lmd0kmpip_DD = lc.xic0_lmd0kmpip_DD + self.xic0_pkskm_LL = lc.xic0_pkskm_LL + self.xic0_pkskm_DD = lc.xic0_pkskm_DD + + self.lc_lambdapiLL = lc.lambdapiLL self.lc_lambdapiDD = lc.lambdapiDD self.lcstar2595 = lcstar.lcstar2595 self.lcstar2625 = lcstar.lcstar2625 self.xic = lc.xic_pkpi self.xic0 = lc.xic0_pkkpi - self.omegac0 = lc.omegac0_pkkpi + + self.omegac0 = lc.omegac0_pkkpi self.lc_tight = lc.pkpi_tight_win #tight Lc self.xic_tight = lc.xic_pkpi_tight_win #tight Xic self.xic_tightest = lc.xic_pkpi_tightest_win #tight Xic @@ -892,6 +1032,7 @@ class Lb2XBuilder(object): self.protons_pid = [topoProtons_PID] self.ks = ks self.config = deepcopy(config) + self.config_xibm = config_xibm self.config['AM_MIN'] = '5200*MeV' self.lines = [] # Lb -> Lc+- H-+ (+WS) @@ -918,13 +1059,21 @@ class Lb2XBuilder(object): ### Xib0 -> Xic+ HHH- (+WS) (HHH = 3pi, Kpipi) self._makeXib02XicHHH() ###Xib- -> Xic0 HHH- (+WS) (HHH = 3pi, Kpipi) - self._makeXib02Xic0PiPiFullDST() - ###Xib0 -> Xic0 pipi (!!+WS) self._makeXib2Xic0HHH() ### Xb- -> Lc+ D(s)- K- self._makeXib2LcDK() ### Xb- -> Lc+ Ds- K- Pi+ self._makeXib02LcDsKPi() + ### Xb- -> Xic0 Pim,,Xic0 -> Xim Pip + self._makeXibm2Xic0Pim2XimPipPim("LL") + self._makeXibm2Xic0Pim2XimPipPim("DD") + ### Xb- -> Xic0 Pim,,Xic0 -> Lambda0 Km pip + self._makeXibm2Xic0Pim2Lambda0KmPipPim("LL") + self._makeXibm2Xic0Pim2Lambda0KmPipPim("DD") + ### Xb- -> Xic0 Pim,,Xic0 -> p Ks Km + self._makeXibm2Xic0Pim2PKsKmPim("LL") + self._makeXibm2Xic0Pim2PKsKmPim("DD") + ### B- -> Lc+ Ds- pbar self._makeB2LcDspbar() @@ -972,10 +1121,7 @@ class Lb2XBuilder(object): ### bc baryon -> Lc HHHH (+WS) self._makeX2LcKPiPiPi() ### Xib,Omega_b -> Lc HH (+WS) - self._makeXib2XicHHFullDST() - ### Xib->XicHH FullDST - self._makeXib2XicHH() - ### Xib->XicHH + self._makeXib2XicHH() # Lb -> Lc D* (+WS) self._makeLb2LcDst() @@ -1294,7 +1440,6 @@ class Lb2XBuilder(object): ws = makeB2XSels(decays, dname, inputs, config) self.lines.append(ProtoLine(ws, 1.0)) - def _makeB2Lcpbar(self): '''Make RS and WS B -> Lc pbar + cc.''' protons = self.protons @@ -1458,6 +1603,87 @@ class Lb2XBuilder(object): self.lines.append(ProtoLine(rs, 1.0)) self.lines.append(ProtoLine(ws, 0.1)) + def _makeXibm2Xic0Pim2XimPipPim(self, lmd): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Xi- pi+ + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 90, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_ximpip_DD + if "LL" in lmd: + used_xic0 = self.xic0_ximpip_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2XimPipPim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibm2Xic0Pim2Lambda0KmPipPim(self, lmd): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Lmd0 K- pi+ + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_lmd0kmpip_DD + if "LL" in lmd: + used_xic0 = self.xic0_lmd0kmpip_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2Lambda0KmPipPim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibm2Xic0Pim2PKsKmPim(self, ks): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> p Ks K- + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_pkskm_DD + if "LL" in ks: + used_xic0 = self.xic0_pkskm_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2PKsKmPim' + ks + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + def _makeXib02XicHHH(self): '''Make RS and WS Xi_b0 -> Xi_c+ HHH (HHH=3pi,Kpipi) + cc.''' pipipi = self.hhh.pipipi @@ -1483,26 +1709,6 @@ class Lb2XBuilder(object): self.lines.append(ProtoLine(rs, 1.0)) self.lines.append(ProtoLine(ws, 0.1)) - def _makeXib02Xic0PiPiFullDST(self): - '''Make RS and WS Xi_b0 -> Xi_c0 pipi cc.''' - pions = self.pions - decays = { - 'Xib02Xic0PiPi': ["[Xi_b0 -> Xi_c0 pi+ pi-]cc"] - } - inputs = { - 'Xib02Xic0PiPi': self.xic0 + pions, - } - rs = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) - decays = { - 'Xib02Xic0PiPiWS': ["[Xi_b0 -> Xi_c0 pi+ pi+]cc"], - } - inputs = { - 'Xib02Xic0PiPiWS': self.xic0 + pions, - } - ws = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - def _makeXib2Xic0HHH(self): '''Make RS and WS Xi_b- -> Xi_c0 HHH- (HHH=3pi,Kpipi) + cc.''' pipipi = self.hhh.pipipi @@ -2006,6 +2212,7 @@ class Lb2XBuilder(object): inputs = {'X2LcKPiPiPiWS': self.lc + pipipi + kaons} ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) self.lines.append(ProtoLine(ws, 0.1)) + def _makeXib2XicHH(self): '''Makes RS + WS Xib -> Lc HH + c.c.''' pions = self.pions @@ -2034,35 +2241,6 @@ class Lb2XBuilder(object): } ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib2XicHHFullDST(self): - '''Makes RS + WS Xib -> Lc HH + c.c.''' - pions = self.pions - kaons = self.kaons - decays = { - 'Xib2XicPiPi': ["[Xi_b- -> Xi_c+ pi- pi-]cc"], - 'Xib2XicKPi': ["[Xi_b- -> Xi_c+ K- pi-]cc"], - 'Xib2XicKK': ["[Xi_b- -> Xi_c+ K- K-]cc"] - } - inputs = { - 'Xib2XicPiPi': self.xic + pions, - 'Xib2XicKPi': self.xic + kaons + pions, - 'Xib2XicKK': self.xic + kaons - } - rs = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = { - 'Xib2XicPiPiWS': ["[Xi_b- -> Xi_c+ pi+ pi+]cc"], - 'Xib2XicKPiWS': ["[Xi_b- -> Xi_c+ K+ pi+]cc"], - 'Xib2XicKKWS': ["[Xi_b- -> Xi_c+ K+ K+]cc"] - } - inputs = { - 'Xib2XicPiPiWS': self.xic + pions, - 'Xib2XicKPiWS': self.xic + kaons + pions, - 'Xib2XicKKWS': self.xic + kaons - } - ws = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) def _makeXib2LcDK(self): '''Makes RS + WS Xib -> Lc+ D(s)- K- + c.c.''' diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py index e8e66f05f..a66f22a3e 100644 --- a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py +++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py @@ -1,6 +1,5 @@ ############################################################################### # (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration # -# # # This software is distributed under the terms of the GNU General Public # # Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # # # @@ -9,2008 +8,2828 @@ # or submit itself to any jurisdiction. # ############################################################################### #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -''' -B->DX, Lb -> LcX, etc. -Author: M. Williams -''' -__author__ = ['Mike Williams'] +from copy import deepcopy +from Gaudi.Configuration import * +from GaudiConfUtils.ConfigurableGenerators import CombineParticles +from GaudiConfUtils.ConfigurableGenerators import DaVinci__N3BodyDecays, DaVinci__N4BodyDecays +from PhysSelPython.Wrappers import Selection +from Beauty2Charm_LoKiCuts import LoKiCuts +from Beauty2Charm_Utils import * + +#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# + +class XimBuilder(object): + '''Produces all Xim baryons for the Beauty2Charm module.''' + + def __init__(self, pions, kaons, protons, lambda0, config_Xim): + + #selections written in StrippingBeauty2Charm.py + self.pions = pions + self.kaons = kaons + self.protons = protons + self.lambda0 = lambda0 + self.config_Xim = config_Xim #Xi- selections written in StrippingBeauty2Charm.py + + #Xi- + self.xim_lmd0pim_LL = [self._makeXim2Lmd0Pim("LL")] + self.xim_lmd0pim_DD = [self._makeXim2Lmd0Pim("DD")] + + def _makeXim2Lmd0Pim(self, lmd): + '''Makes Xi- -> Lambda0 Pim + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xim['MASS_WINDOW']) + # Pre vertex fit + comboCuts = [ + "(ADAMASS('Xi-') < %s*%s) " % (dm + 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xim).code()) + comboCuts = LoKiCuts.combine(comboCuts) + # Post vertex fit + momCuts = [ + "(ADMASS('Xi-') < %s*%s) " % (dm + 40, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi- -> Lambda0 pi-", "Xi~+ -> Lambda~0 pi+"]) + return Selection( + 'Xim2Lambda0Pim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections= self.lambda0[lmd] + [self.pions]) -__all__ = ('Beauty2CharmConf', 'default_config') -moduleName = 'Beauty2Charm' #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -import re -from Gaudi.Configuration import * -from GaudiConfUtils.ConfigurableGenerators import FilterDesktop -from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection -from PhysSelPython.Wrappers import EventSelection -from StrippingConf.StrippingLine import StrippingLine -from StrippingUtils.Utils import LineBuilder -from Configurables import LoKi__VoidFilter -from StandardParticles import (StdAllNoPIDsPions, StdAllNoPIDsKaons, - StdAllNoPIDsProtons, StdNoPIDsUpPions, - StdLooseMuons, StdNoPIDsUpKaons, - StdLooseResolvedPi0, StdLooseMergedPi0) -from StandardParticles import StdLooseAllPhotons, StdVeryLooseAllPhotons -from Beauty2Charm_DBuilder import * -from Beauty2Charm_HHBuilder import * -from Beauty2Charm_HHHBuilder import * -from Beauty2Charm_B2DXBuilder import * -from Beauty2Charm_Lb2XBuilder import * -from Beauty2Charm_LTUnbiased import * -from Beauty2Charm_Bc2DDBuilder import * -from Beauty2Charm_Bc2BXBuilder import * -from Beauty2Charm_Bc2DXBuilder import * + +class LcBuilder(object): + '''Produces all Lambda_c baryons for the Beauty2Charm module.''' + + def __init__(self, pions, kaons, protons, lambda0, ks, xim, config, config_Xic0, config_pid): + self.pions = pions + self.kaons = kaons + self.protons = protons + self.lambda0 = lambda0 + self.ks = ks + self.xim_lmd0pim_LL = xim.xim_lmd0pim_LL + self.xim_lmd0pim_DD = xim.xim_lmd0pim_DD + self.config = config + self.pkpi = [self._makeLc2phh()] + self.pkk = [self._makeLc2phh("PKK")] + self.ppipi = [self._makeLc2phh("PPiPi")] + self.xic_pkpi = [self._makeXic2pKpi()] + self.xic0_pkkpi = [self._makeXic02pKKpi()] + self.omegac0_pkkpi = [self._makeOmegac02pKKpi()] + self.config_Xic0 = config_Xic0 + + # Xic0_XimPip + self.xic0_ximpip_LL = [self._makeXic02XimPip("LL")] + self.xic0_ximpip_DD = [self._makeXic02XimPip("DD")] + # xic0_Lambda0kmpip + self.xic0_lmd0kmpip_LL = [self._makeXic02Lambda0KmPip("LL")] + self.xic0_lmd0kmpip_DD = [self._makeXic02Lambda0KmPip("DD")] + # xic0_PKsKm + self.xic0_pkskm_LL = [self._makeXic02PKsKm("LL")] + self.xic0_pkskm_DD = [self._makeXic02PKsKm("DD")] + + # Filter with tighter PID + self.lambdapiLL = [self._makeLc2Lambdapi("LL")] + self.lambdapiDD = [self._makeLc2Lambdapi("DD")] + self.xic_pkpi = [self._makeXic2pKpi()] + self.xic0_pkkpi = [self._makeXic02pKKpi()] + self.omegac0_pkkpi = [self._makeOmegac02pKKpi()] + + # Filter with tighter PID + self.pkpi_tight = [ + filterPID('LC2PKPITIGHTER3PID', self.pkpi, config_pid['TIGHTER3']) + ] + self.xic_pkpi_tight = [ + filterPID('XIC2PKPITIGHTER3PID', self.xic_pkpi, + config_pid['TIGHTER3']) + ] + self.omegac0_pkkpi_tight = [ + filterPID('OMC02PKKPITIGHTER3PID', self.omegac0_pkkpi, + config_pid['TIGHTER3']) + ] + + # Now apply tighter mass window + mCutLc = "ADMASS('Lambda_c+') < 60.0" + mCutXic = "ADMASS('Xi_c+') < 60.0" + mCutXicTight = "ADMASS('Xi_c+') < 50.0" + mCutOmegac = "ADMASS('Omega_c0') < 60.0" + self.pkpi_tight_win = [ + filterSelection('LC2PKPITIGHTER3PIDMWIN', mCutLc, self.pkpi_tight) + ] + self.xic_pkpi_tight_win = [ + filterSelection('XIC2PKPITIGHTER3PIDMWIN', mCutXic, + self.xic_pkpi_tight) + ] + self.xic_pkpi_tightest_win = [ + filterSelection('XIC2PKPITIGHTEST3PIDMWIN', mCutXicTight, + self.xic_pkpi_tight) + ] + self.omegac0_pkkpi_tight_win = [ + filterSelection('OMC02PKPITIGHTER3PIDMWIN', mCutOmegac, + self.omegac0_pkkpi_tight) + ] + + def _makeLc2phh(self,mode="PKPi"): + '''Makes Lc -> p h h' + cc + mode: + "PKPi" : Lc -> p K pi + "PKK" : Lc -> p K K + "PPiPi": Lc -> p pi pi + ''' + decays = { + "PKPi" : "[Lambda_c+ -> p+ K- pi+]cc", + "PKK" : "[Lambda_c+ -> p+ K- K+]cc", + "PPiPi": "[Lambda_c+ -> p+ pi- pi+]cc" + } + inputs = { + "PKPi" : [self.pions, self.kaons, self.protons], + "PKK" : [self.kaons, self.protons], + "PPiPi": [self.pions, self.protons] + } + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N3BodyDecays( + Combination12Cut=comboCuts12, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=[decays[mode]]) + return Selection( + "Lc2%sBeauty2Charm" % mode, + Algorithm=cp, + RequiredSelections=inputs[mode]) + + def _makeLc2Lambdapi(self, lambda0): + '''Makes Lambda_c+ -> Lambda0 pi+''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + + decays = {'Lc2Lambdapi' + lambda0: ["[Lambda_c+ -> Lambda0 pi+]cc"]} + inputs = { + 'Lc2Lambdapi' + lambda0: + self.lambda0[lambda0] + [self.pions], + } + mode = 'Lc2Lambdapi' + lambda0 + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=decays[mode]) + return Selection( + "%sBeauty2Charm" % mode, + Algorithm=cp, + RequiredSelections=inputs[mode]) + + def _makeXic2pKpi(self): + '''Makes Xic -> p K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c+') < %s*%s) " % (dm + 10, units), + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N3BodyDecays( + Combination12Cut=comboCuts12, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_c+ -> p+ K- pi+]cc"]) + return Selection( + 'Xic2PKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeXic02pKKpi(self): + '''Makes Xic0 -> p K K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 10, units), + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] + comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts123 = LoKiCuts.combine(comboCuts123) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N4BodyDecays( + Combination12Cut=comboCuts12, + Combination123Cut=comboCuts123, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_c0 -> p+ K- K- pi+]cc"]) + return Selection( + 'Xic02PKKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeOmegac02pKKpi(self): + '''Makes Omegac0 -> p K K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Omega_c0') < %s*%s) " % (dm + 10, units), + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] + comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts123 = LoKiCuts.combine(comboCuts123) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Omega_c0') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N4BodyDecays( + Combination12Cut=comboCuts12, + Combination123Cut=comboCuts123, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Omega_c0 -> p+ K- K- pi+]cc"]) + return Selection( + 'Omegac02PKKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeXic02XimPip(self, lmd): + '''Makes Xi_c0 -> Xi- pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm + 30, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> Xi- pi+", "Xi_c~0 -> Xi~+ pi-"]) + used_xim = self.xim_lmd0pim_DD + if "LL" in lmd: + used_xim = self.xim_lmd0pim_LL + else: + pass + return Selection( + 'Xic02XimPip' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xim + [self.pions]) + + def _makeXic02Lambda0KmPip(self, lmd): + '''Makes Xi_c0 -> Lambda0 K- Pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 50, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm - 70, units) + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> Lambda0 K- pi+", "Xi_c~0 -> Lambda~0 K+ pi-"]) + return Selection( + 'Xic02Lambda0KmPip' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=self.lambda0[lmd] + [self.kaons] + [self.pions]) + + def _makeXic02PKsKm(self, ks): + '''Makes Xi_c0 -> p Ks K- + cc''' + dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 90, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm - 110, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_c0 -> p+ KS0 K-", "Xi_c~0 -> p~- KS0 K+"]) + return Selection( + 'Xic02PKsKm' + ks + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=self.ks[ks] + [self.protons, self.kaons]) + +#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# + + +class LooseLcBuilder(object): + '''Produces Loose Lambda_c baryons for the Beauty2Charm module.''' + + def __init__(self, pions, kaons, protons, config): + self.pions = pions + self.kaons = kaons + self.protons = protons + self.config = config + self.pkpi = [self._makeLooseLc2pKpi()] + self.xic_pkpi = [self._makeLooseXic2pKpi()] + self.xic0_pkkpi = [self._makeLooseXic02pKKpi()] + self.omegac0_pkkpi = [self._makeLooseOmegac02pKKpi()] + + def _makeLooseLc2pKpi(self): + '''Makes Lc -> p K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), + "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 2)", + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N3BodyDecays( + Combination12Cut=comboCuts12, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Lambda_c+ -> p+ K- pi+]cc"]) + return Selection( + 'LooseLc2PKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeLooseXic2pKpi(self): + '''Makes Xic -> p K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c+') < %s*%s) " % (dm + 10, units), + "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 2)", + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N3BodyDecays( + Combination12Cut=comboCuts12, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_c+ -> p+ K- pi+]cc"]) + return Selection( + 'LooseXic2PKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeLooseXic02pKKpi(self): + '''Makes Xic0 -> p K K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 10, units), + "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 3)", + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] + comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts123 = LoKiCuts.combine(comboCuts123) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_c0') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N4BodyDecays( + Combination12Cut=comboCuts12, + Combination123Cut=comboCuts123, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_c0 -> p+ K- K- pi+]cc"]) + return Selection( + 'LooseXic02PKKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + def _makeLooseOmegac02pKKpi(self): + '''Makes Omegac0 -> p K K pi + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Omega_c0') < %s*%s) " % (dm + 10, units), + "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 3)", + hasTopoChild() + ] + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] + comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) + comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts123 = LoKiCuts.combine(comboCuts123) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Omega_c0') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = DaVinci__N4BodyDecays( + Combination12Cut=comboCuts12, + Combination123Cut=comboCuts123, + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Omega_c0 -> p+ K- K- pi+]cc"]) + return Selection( + 'LooseOmegac02PKKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=[self.pions, self.kaons, self.protons]) + + +#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# +class LcstarBuilder(object): + '''Produces Lambda_c star baryons for the Beauty2Charm module''' + def __init__(self, lc, pions, config): + self.lc = lc.pkpi + self.pions = pions + self.config = config + self.lcstar2595 = [self._makeLcstar2Lcpipi("Lcstar2595")] + self.lcstar2625 = [self._makeLcstar2Lcpipi("Lcstar2625")] + + def _makeLcstar2Lcpipi(self, mode): + '''Makes Lambda_c(2595)+ -> Lambda_c+ pi+ pi-''' + '''Makes Lambda_c(2625)+ -> Lambda_c+ pi+ pi-''' + decays = { + "Lcstar2595" : "[Lambda_c(2595)+ -> Lambda_c+ pi+ pi-]cc", + "Lcstar2625" : "[Lambda_c(2625)+ -> Lambda_c+ pi+ pi-]cc", + } + inputs = { + "Lcstar2595" : self.lc+[self.pions], + "Lcstar2625" : self.lc+[self.pions], + } + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = { + "Lcstar2595":[ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Lambda_c(2595)+') < %s*%s) " % (dm + 10, units),], + "Lcstar2625":[ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Lambda_c(2625)+') < %s*%s) " % (dm + 10, units),], + } + comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] + comboCuts[mode].append(LoKiCuts(['ADOCA13'], self.config).code()) + comboCuts[mode].append(LoKiCuts(['ADOCA23'], self.config).code()) + comboCuts12 = LoKiCuts.combine(comboCuts12) + comboCuts[mode] = LoKiCuts.combine(comboCuts[mode]) + momCuts = { + "Lcstar2595": [ + "(ADMASS('Lambda_c(2595)+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code()], + "Lcstar2625": [ + "(ADMASS('Lambda_c(2625)+') < %s*%s) " % (dm, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code()], + } + momCuts[mode] = LoKiCuts.combine(momCuts[mode]) + cp = DaVinci__N3BodyDecays( + Combination12Cut=comboCuts12, + CombinationCut=comboCuts[mode], + MotherCut=momCuts[mode], + DecayDescriptors=[decays[mode]]) + return Selection( + "Lc2%sBeauty2Charm" % mode, + Algorithm=cp, + RequiredSelections=inputs[mode]) + +class XiccBuilder(object): + '''Produces Xi_cc baryons for the Beauty2Charm module.''' + + def __init__(self, lc, pions, config): + self.lc = lc.pkpi + self.pions = pions + self.config = config + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + self.xiccpp = [self._makeXiccpp2Xicpi()] + self.xiccp = [self._makeXiccp2Xic0pi()] + self.sigmacpp = [self._makeSigmacpp2LcPi()] + + def _makeXiccpp2Xicpi(self): + '''Makes Xi_cc++-> Xi_c+ pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_cc++') < %s*%s) " % (dm + 410, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_cc++') < %s*%s) " % (dm + 400, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_cc++ -> Xi_c+ pi+]cc"]) + return Selection( + 'Xiccpp2XicPiXic2PKPiPBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.xic + [self.pions]) + + def _makeXiccp2Xic0pi(self): + '''Makes Xi_cc+ -> Xi_c0 pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_cc+ -> Xi_c0 pi+]cc"]) + return Selection( + 'Xiccp2Xic0PiXic02PKKPiPBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.xic0 + [self.pions]) + + def _makeSigmacpp2LcPi(self): + '''Makes Sigma_c++-> Lc+ pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Sigma_c++') < %s*%s) " % (dm + 150, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Sigma_c++') < %s*%s) " % (dm + 120, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Sigma_c++ -> Lambda_c+ pi+]cc"]) + return Selection( + 'Sigmacpp2LcPiLc2PKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.lc + [self.pions]) + #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -# Default configuration dictionary -default_config = { - 'NAME': 'Beauty2Charm', - 'BUILDERTYPE': 'Beauty2CharmConf', - 'CONFIG': { - "ALL": - { # Cuts made on all charged input particles in all lines (expt. upstream) - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'TRGHP_MAX': 0.4 - }, - "PIDPION": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDK_MAX': 20., - 'TRGHP_MAX': 0.4 - }, - "PIDKAON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDK_MIN': -10., - 'TRGHP_MAX': 0.4 - }, - "PIDPROTON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDp_MIN': -10., - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xc_PION": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 1.0, - 'PIDK_MAX': 10., - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xc_KAON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '150*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 1.0, - 'PIDK_MIN': -5.0, - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xc_PROTON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '400*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 1.0, - 'PIDp_MIN': -5.0, - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xb_PION": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '300*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDK_MAX': 10., - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xb_KAON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '300*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDK_MIN': -5.0, - 'TRGHP_MAX': 0.4 - }, - "Xibc_Xb_PROTON": { - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '300*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4., - 'PIDp_MIN': -5.0, - 'TRGHP_MAX': 0.4 - }, - "UPSTREAM": { # Cuts made on all upstream particles - 'TRCHI2DOF_MAX': 4., - 'PT_MIN': '100*MeV', - 'P_MIN': '1000*MeV', - 'MIPCHI2DV_MIN': 4. - }, - "KS0": { # Cuts made on all K shorts - 'PT_MIN': '250*MeV', - 'BPVVDCHI2_MIN': 36, - 'MM_MIN': '467.*MeV', - 'MM_MAX': '527.*MeV' - }, - "VLKS0_LL": { # cuts for StdVeryLooseKsLL - 'PT_MIN': '0*MeV', - 'BPVVDCHI2_MIN': 36, - 'MM_MIN': '467.*MeV', - 'MM_MAX': '527.*MeV' - }, - "Lambda0": { # Cuts made on all Lambda0's - 'PT_MIN': '250*MeV', - 'BPVVDCHI2_MIN': 36, - 'MM_MIN': '1086.*MeV', - 'MM_MAX': '1146.*MeV' - }, - "Pi0": { # Cuts made on all pi0's - 'PT_MIN': '500*MeV', - 'P_MIN': '1000*MeV', - 'CHILDCL1_MIN': 0.25, - 'CHILDCL2_MIN': 0.25, - 'FROM_B_P_MIN': '2000*MeV', - 'TIGHT_PT_MIN': '1500*MeV' - }, - "gamma": { # Cuts made on all photons - 'PT_MIN': '400*MeV', - 'CL_MIN': 0.25, - 'ISNOTE_MIN': -999.0, - 'PT_VLAPH': '145*MeV' - }, - "D2X": { # Cuts made on all D's and Lc's used in all lines - 'ASUMPT_MIN': '1800*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'ADOCA13_MAX': '0.5*mm', - 'ADOCA23_MAX': '0.5*mm', - 'ADOCA14_MAX': '0.5*mm', - 'ADOCA24_MAX': '0.5*mm', - 'ADOCA34_MAX': '0.5*mm', - 'ADOCA15_MAX': '0.5*mm', - 'ADOCA25_MAX': '0.5*mm', - 'ADOCA35_MAX': '0.5*mm', - 'ADOCA45_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 10, - 'BPVVDCHI2_MIN': 36, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '100*MeV' - }, - "Lcstar": { # Cuts made on all Lcstar's used in all lines - 'ASUMPT_MIN': '1800*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'ADOCA13_MAX': '0.5*mm', - 'ADOCA23_MAX': '0.5*mm', - 'ADOCA14_MAX': '0.5*mm', - 'ADOCA24_MAX': '0.5*mm', - 'ADOCA34_MAX': '0.5*mm', - 'ADOCA15_MAX': '0.5*mm', - 'ADOCA25_MAX': '0.5*mm', - 'ADOCA35_MAX': '0.5*mm', - 'ADOCA45_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 10, - 'BPVVDCHI2_MIN': 36, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '500*MeV' - }, - "LC_FOR_XIBC": { # Cuts made on Lc's/Xic(0) used in Xibc lines - 'ASUMPT_MIN': '1800*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'ADOCA13_MAX': '0.5*mm', - 'ADOCA23_MAX': '0.5*mm', - 'ADOCA14_MAX': '0.5*mm', - 'ADOCA24_MAX': '0.5*mm', - 'ADOCA34_MAX': '0.5*mm', - 'ADOCA15_MAX': '0.5*mm', - 'ADOCA25_MAX': '0.5*mm', - 'ADOCA35_MAX': '0.5*mm', - 'ADOCA45_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 8, - 'BPVVDCHI2_MIN': 36, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '50*MeV' - }, - "D2X_FOR_DDX": { # Cuts made on all D's and Lc's used in B->DDX lines - 'ASUMPT_MIN': '1800*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'ADOCA13_MAX': '0.5*mm', - 'ADOCA23_MAX': '0.5*mm', - 'ADOCA14_MAX': '0.5*mm', - 'ADOCA24_MAX': '0.5*mm', - 'ADOCA34_MAX': '0.5*mm', - 'ADOCA15_MAX': '0.5*mm', - 'ADOCA25_MAX': '0.5*mm', - 'ADOCA35_MAX': '0.5*mm', - 'ADOCA45_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 8, - 'BPVVDCHI2_MIN': 50, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '100*MeV' - }, - "B2X": { # Cuts made on all B's and Lb's used in all lines - 'SUMPT_MIN': '5000*MeV', - 'VCHI2DOF_MAX': 10, - 'BPVIPCHI2_MAX': 25, - 'BPVLTIME_MIN': '0.2*ps', - 'BPVDIRA_MIN': 0.999, - 'AM_MIN': '4750*MeV', # Lb->X sets this to 5200*MeV - 'AM_MAX': '7000*MeV', # B->Dh+-h0 sets this to 5800*MeV - 'B2CBBDT_MIN': 0.05 - }, - "Bc2DD": { # Cuts made on Bc -> DD lines - 'SUMPT_MIN': '5000*MeV', - 'VCHI2DOF_MAX': 10, - 'BPVIPCHI2_MAX': 20, - 'BPVLTIME_MIN': '0.05*ps', - 'BPVDIRA_MIN': 0.999, - 'AM_MIN': '4800*MeV', - 'AM_MAX': '6800*MeV', - 'B2CBBDT_MIN': -999.9 - }, - "Xibc": { # Cuts made on Xibc -> Xc hh, LcD0, Xicc h lines - 'SUMPT_MIN': '5000*MeV', - 'VCHI2DOF_MAX': 8, - 'BPVIPCHI2_MAX': 20, - 'BPVLTIME_MIN': '0.05*ps', - 'BPVDIRA_MIN': 0.99, - 'AM_MIN': '5500*MeV', - 'AM_MAX': '9000*MeV', - 'B2CBBDT_MIN': -999.9 - }, - "XiccMu": { # Cuts made on Xibc -> Xc hh, LcD0, Xicc h lines - 'SUMPT_MIN': '4000*MeV', - 'VCHI2DOF_MAX': 10, - 'BPVIPCHI2_MAX': 200, - 'BPVLTIME_MIN': '0.0*ps', - 'BPVDIRA_MIN': 0.99, - 'AM_MIN': '3000*MeV', - 'AM_MAX': '8000*MeV', - 'B2CBBDT_MIN': -999.9 - }, - "Bc2BX": { # Cuts made on Bc -> BHH lines - 'SUMPT_MIN': '1000*MeV', - 'VCHI2DOF_MAX': 10, - 'BPVIPCHI2_MAX': 25, - 'BPVLTIME_MIN': '0.05*ps', - 'BPVDIRA_MIN': 0.999, - 'AM_MIN': '6000*MeV', - 'AM_MAX': '7200*MeV', - 'DZ1_MIN': '-1.5*mm', - 'B2CBBDT_MIN': -999.9 - }, - "Bc2DX": { # Cuts made on Bc -> DX lines - 'SUMPT_MIN': '5000*MeV', - 'VCHI2DOF_MAX': 10, - 'BPVIPCHI2_MAX': 25, - 'BPVLTIME_MIN': '0.05*ps', - 'BPVDIRA_MIN': 0.999, - 'AM_MIN': '5800*MeV', - 'AM_MAX': '6800*MeV', - 'B2CBBDT_MIN': -999.9 - }, - "Dstar": { # Cuts made on all D*'s used in all lines - 'ADOCA12_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 10, - 'BPVVDCHI2_MIN': 36, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '600*MeV', # was 50MeV - 'DELTAMASS_MAX': '200*MeV', - 'DELTAMASSLOOSE_MAX': '250*MeV', - 'DM_DSPH_MAX': '250*MeV', - 'DM_DSPH_MIN': '80*MeV' - }, - "HH": { # Cuts for rho, K*, phi, XHH Dalitz analyese, etc. - 'MASS_WINDOW': { - 'KST': '150*MeV', - 'RHO': '150*MeV', - 'PHI': '150*MeV', - 'SIGMA': '150*MeV' - }, - 'DAUGHTERS': { - 'PT_MIN': '100*MeV', - 'P_MIN': '2000*MeV' - }, - 'ADOCA12_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 16, - 'BPVVDCHI2_MIN': 16, - 'BPVDIRA_MIN': 0, - 'ASUMPT_MIN': '1000*MeV', - 'pP_MIN': '5000*MeV' # for pH only (obviously) - }, - "HHH": { # Cuts for PiPiPi, KPiPi analyese, etc. - 'MASS_WINDOW': { - 'A1': '3500*MeV', - 'K1': '4000*MeV', - 'PPH': '3600*MeV', - 'PHH': '4000*MeV' - }, - 'KDAUGHTERS': { - 'PT_MIN': '100*MeV', - 'P_MIN': '2000*MeV', - 'PIDK_MIN': '-2' - }, - 'PiDAUGHTERS': { - 'PT_MIN': '100*MeV', - 'P_MIN': '2000*MeV', - 'PIDK_MAX': '10' - }, - 'pDAUGHTERS': { - 'PT_MIN': '100*MeV', - 'P_MIN': '2000*MeV', - 'PIDp_MIN': '-2' - }, - 'ADOCA12_MAX': '0.40*mm', - 'ADOCA13_MAX': '0.40*mm', - 'ADOCA23_MAX': '0.40*mm', - 'ADOCA14_MAX': '0.40*mm', - 'ADOCA24_MAX': '0.40*mm', - 'ADOCA34_MAX': '0.40*mm', - 'VCHI2DOF_MAX': 8, - 'BPVVDCHI2_MIN': 16, - 'BPVDIRA_MIN': 0.98, - 'ASUMPT_MIN': '1250*MeV', - 'MIPCHI2DV_MIN': 0.0, - 'BPVVDRHO_MIN': '0.1*mm', - 'BPVVDZ_MIN': '2.0*mm', - 'PTMIN1': '300*MeV', - 'PID': { - 'TIGHTERPI': { - 'P': { - 'PIDp_MIN': -10 - }, - 'PI': { - 'PIDK_MAX': 8 - }, - 'K': { - 'PIDK_MIN': -10 - } - }, - 'REALTIGHTK': { - 'P': { - 'PIDp_MIN': -10 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': 4 - } - } - } - }, - 'PID': { - 'P': { - 'PIDp_MIN': -10 - }, - 'PI': { - 'PIDK_MAX': 20 - }, - 'K': { - 'PIDK_MIN': -10 - }, - 'TIGHT': { - 'P': { - 'PIDp_MIN': -5 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': -5 - } - }, - 'TIGHTER': { - 'P': { - 'PIDp_MIN': 0 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': 0 - } - }, - 'TIGHTPI': { - 'P': { - 'PIDp_MIN': -10 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': -10 - } - }, - 'TIGHTER1': { - 'P': { - 'PIDp_MIN': 0 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': -1 - } - }, - 'TIGHTER2': { - 'P': { - 'PIDp_MIN': 5 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': 0 - } - }, - 'TIGHTER3': { - 'P': { - 'PIDp_MIN': 0 - }, - 'PI': { - 'PIDK_MAX': 10 - }, - 'K': { - 'PIDK_MIN': -10 - } - }, - 'SPECIAL': { - 'P': { - 'PIDp_MIN': -5 - }, - 'PI': { - 'PIDK_MAX': 5 - }, - 'K': { - 'PIDK_MIN': 5 - } - }, - 'SPECIALPI': { - 'P': { - 'PIDp_MIN': -10 - }, - 'PI': { - 'PIDK_MAX': 12 - }, - 'K': { - 'PIDK_MIN': -10 - } - } - }, - 'FlavourTagging': [ - 'B02DstarMuNuDst2D0Pi_D2HHHHBeauty2CharmLine', - 'B02DstarMuNuWSDst2D0Pi_D2HHHHBeauty2CharmLine', - 'B02DstarMuNuDst2D0Pi_D2HHHHWSBeauty2CharmLine', - 'B02DstarMuNuWSDst2D0Pi_D2HHHHWSBeauty2CharmLine', - 'B2D0PiPiPiD2HHPIDBeauty2CharmLine', - 'B02DKD2Pi0HHHMergedBeauty2CharmLine', - 'B02DKD2Pi0HHHResolvedBeauty2CharmLine', - 'B02DPiD2Pi0HHHMergedBeauty2CharmLine', - 'B02DPiD2Pi0HHHResolvedBeauty2CharmLine', - 'B02D0KKD2HHBeauty2CharmLine', - 'B02D0KPiD2HHBeauty2CharmLine', - 'B02DHHWSD2HHBeauty2CharmLine', - 'B02D0PPbarD2HHBeauty2CharmLine', - 'B02D0PPbarWSD2HHBeauty2CharmLine', - 'B02D0KKD2HHWSBeauty2CharmLine', - 'B02D0PiPiD2HHWSBeauty2CharmLine', - 'B02D0KPiD2HHWSBeauty2CharmLine', - 'B02DHHWSD2HHWSBeauty2CharmLine', - 'B02D0KSDDD2HHBeauty2CharmLine', - 'B02D0KSLLD2HHBeauty2CharmLine', - 'B02DKD2PhiMuNuBeauty2CharmLine', - 'B02DPiD2PhiMuNuBeauty2CharmLine', - 'B02DKWSD2PhiMuNuBeauty2CharmLine', - 'B02DPiWSD2PhiMuNuBeauty2CharmLine', - #'B02DKD2HHHBeauty2CharmLine', - #'B02DPiD2HHHBeauty2CharmLine', - #'B02DKWSD2HHHBeauty2CharmLine', - #'B02DPiWSD2HHHBeauty2CharmLine', - 'B02DKD2HHHUPBeauty2CharmLine', - #'B02DPiD2HHHUPBeauty2CharmLine', - #'B02DKWSD2HHHUPBeauty2CharmLine', - #'B02DPiWSD2HHHUPBeauty2CharmLine', - #'B02DPiNoIPD2HHHCFPIDBeauty2CharmLine', - 'B02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine', - #'B02DPiNoIPDs2HHHPIDBeauty2CharmLine', - 'B02DPiWSNoIPDs2HHHPIDBeauty2CharmLine', - 'B02DKsKDDD2HHHCFPIDBeauty2CharmLine', - 'B02DKsKLLD2HHHCFPIDBeauty2CharmLine', - #'B02DKPi0ResolvedD2HHHCFPIDBeauty2CharmLine', - 'B02DKsPiDDD2HHHCFPIDBeauty2CharmLine', - #'B02DPiPi0MergedD2HHHCFPIDBeauty2CharmLine', - #'B02DKPi0MergedD2HHHCFPIDBeauty2CharmLine', - 'B02DPiPi0ResolvedD2HHHCFPIDBeauty2CharmLine', - 'B02DKsPiLLD2HHHCFPIDBeauty2CharmLine', - #'B02DKPi0MergedWSD2HHHCFPIDBeauty2CharmLine', - 'B02DKsPiDDWSD2HHHCFPIDBeauty2CharmLine', - #'B02DKPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', - #'B02DPiPi0MergedWSD2HHHCFPIDBeauty2CharmLine', - 'B02DKsPiLLWSD2HHHCFPIDBeauty2CharmLine', - 'B02DPiPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', - 'B02DKsKLLWSD2HHHCFPIDBeauty2CharmLine', - 'B02DKsKDDWSD2HHHCFPIDBeauty2CharmLine', - 'B02DRhoPMD2HHHCFPIDBeauty2CharmLine', - 'B02DKstarPMD2HHHCFPIDBeauty2CharmLine', - 'B02DKD2KSHLLBeauty2CharmLine', - 'B02DPiD2KSHLLBeauty2CharmLine', - 'B02DKWSD2KSHLLBeauty2CharmLine', - 'B02DPiWSD2KSHLLBeauty2CharmLine', - 'B02DKD2KSHDDBeauty2CharmLine', - 'B02DPiD2KSHDDBeauty2CharmLine', - 'B02DKWSD2KSHDDBeauty2CharmLine', - 'B02DPiWSD2KSHDDBeauty2CharmLine', - #'B02D0KKD2KSHHLLBeauty2CharmLine', - #'B02D0PiPiD2KSHHLLBeauty2CharmLine', - 'B02D0KPiD2KSHHLLBeauty2CharmLine', - 'B02DHHWSD2KSHHLLBeauty2CharmLine', - #'B02D0KKD2KSHHDDBeauty2CharmLine', - #'B02D0PiPiD2KSHHDDBeauty2CharmLine', - 'B02D0KPiD2KSHHDDBeauty2CharmLine', - 'B02DHHWSD2KSHHDDBeauty2CharmLine', - #'B02D0KKD2KSHHLLWSBeauty2CharmLine', - #'B02D0PiPiD2KSHHLLWSBeauty2CharmLine', - 'B02D0KPiD2KSHHLLWSBeauty2CharmLine', - 'B02DHHWSD2KSHHLLWSBeauty2CharmLine', - #'B02D0KKD2KSHHDDWSBeauty2CharmLine', - #'B02D0PiPiD2KSHHDDWSBeauty2CharmLine', - 'B02D0KPiD2KSHHDDWSBeauty2CharmLine', - 'B02DHHWSD2KSHHDDWSBeauty2CharmLine', - #'B02DstarKDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - #'B02DstarPiDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - #'B02DstarKDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - #'B02DstarPiDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - #'B02DstarKDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - #'B02DstarPiDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - #'B02DstarKDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - #'B02DstarPiDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'B02DstarKDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'B02DstarPiDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'B02DstarKDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'B02DstarPiDst2D0Pi_D2KSHHDDBeauty2CharmLine', - #'B02DstarMuNuDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - #'B02DstarMuNuDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - #'B02DstarMuNuDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - #'B02DstarMuNuDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'B02DstarMuNuDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'B02DstarMuNuWSDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'B02DstarMuNuDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'B02DstarMuNuWSDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'B02DstarKsPiDDDst2D0PiBeauty2CharmLine', - 'B02DstarKsKDDDst2D0PiBeauty2CharmLine', - 'B02DstarKsKLLDst2D0PiBeauty2CharmLine', - 'B02DstarKsPiLLDst2D0PiBeauty2CharmLine', - 'B02DstarKsKDDWSDst2D0PiBeauty2CharmLine', - 'B02DstarKsKLLWSDst2D0PiBeauty2CharmLine', - 'B02DstarKsPiDDWSDst2D0PiBeauty2CharmLine', - 'B02DstarKsPiLLWSDst2D0PiBeauty2CharmLine', - 'B02D0KKD2HHHHBeauty2CharmLine', - 'B02D0PiPiD2HHHHBeauty2CharmLine', - 'B02D0KPiD2HHHHBeauty2CharmLine', - 'B02DHHWSD2HHHHBeauty2CharmLine', - 'B02D0KKD2HHHHWSBeauty2CharmLine', - 'B02D0PiPiD2HHHHWSBeauty2CharmLine', - 'B02D0KPiD2HHHHWSBeauty2CharmLine', - 'B02DHHWSD2HHHHWSBeauty2CharmLine', - 'B02D0KSDDD2K3PiBeauty2CharmLine', - 'B02D0KSLLD2K3PiBeauty2CharmLine', - 'B02D0KKD2Pi0HHResolvedBeauty2CharmLine', - 'B02D0PiPiD2Pi0HHResolvedBeauty2CharmLine', - 'B02D0KPiD2Pi0HHResolvedBeauty2CharmLine', - 'B02DHHWSD2Pi0HHResolvedBeauty2CharmLine', - 'B02DKWSD2Pi0HHHResolvedBeauty2CharmLine', - 'B02DPiWSD2Pi0HHHResolvedBeauty2CharmLine', - 'B02DKWSD2Pi0HHHMergedBeauty2CharmLine', - 'B02DPiWSD2Pi0HHHMergedBeauty2CharmLine', - 'B02DKPiPiSSD2HHHPIDBeauty2CharmLine', - 'B02DKKPiD2HHHPIDBeauty2CharmLine', - 'B02DKPiPiSSWSD2HHHPIDBeauty2CharmLine', - 'B02DKKPiWSD2HHHPIDBeauty2CharmLine', - 'B02DKPiPiWSD2HHHPIDBeauty2CharmLine', - 'B02DPiPiPiWSD2HHHPIDBeauty2CharmLine', - #'B02DppbarKD2HHHBeauty2CharmLine', - #'B02DppbarPiD2HHHBeauty2CharmLine', - 'B02DstKKPiDstar2D0PiPIDBeauty2CharmLine', - 'B02DstKPiPiDstar2D0PiPIDBeauty2CharmLine', - 'B02DstPiPiPiDstar2D0PiPIDBeauty2CharmLine', - 'B02DstPiPiPiWSDstar2D0PiPIDBeauty2CharmLine', - 'B02DstKPiPiWSDstar2D0PiPIDBeauty2CharmLine', - 'B02DstKKPiWSDstar2D0PiPIDBeauty2CharmLine', - 'B02DDWSBeauty2CharmLine', - 'B02D0D0D02K3PiD02K3PiBeauty2CharmLine', - 'B02D0D0D02HHD02K3PiBeauty2CharmLine', - 'B02D0D0D02HHD02HHBeauty2CharmLine', - 'B02DstDstWSBeauty2CharmLine', - 'B02D0DKBeauty2CharmLine', - 'B02D0DKD02K3PiBeauty2CharmLine', - 'B02D0DKWSBeauty2CharmLine', - 'B02D0DKWSD02K3PiBeauty2CharmLine', - 'B02DstD0KBeauty2CharmLine', - 'B02DstD0KD02K3PiBeauty2CharmLine', - 'B02DstD0KDstarD02K3PiBeauty2CharmLine', - #'B02DstD0KDstarD02K3PiD02K3PiBeauty2CharmLine', - 'B02DstD0KWSBeauty2CharmLine', - 'B02DstD0KWSD02K3PiBeauty2CharmLine', - 'B02DstD0KWSDstarD02K3PiBeauty2CharmLine', - 'B02DstD0KWSDstarD02K3PiD02K3PiBeauty2CharmLine', - #'B02D0D0KstD02K3PiD02K3PiBeauty2CharmLine', - 'B02D0D0KstD02HHD02HHBeauty2CharmLine', - #'B02D0D0KstD02HHD02K3PiBeauty2CharmLine', - #'B02DDKstBeauty2CharmLine', - #'B02DstDKstBeauty2CharmLine', - #'B02DstDKstDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKstBeauty2CharmLine', - 'B02DstDstKstDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKstDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'B02DDKSDDBeauty2CharmLine', - 'B02DDKSWSDDBeauty2CharmLine', - 'B02DstDKSDDBeauty2CharmLine', - 'B02DstDKSDDDstarD02K3PiBeauty2CharmLine', - 'B02DstDKSWSDDBeauty2CharmLine', - 'B02DstDKSWSDDDstarD02K3PiBeauty2CharmLine', - 'B02D0D0KSD02K3PiD02K3PiDDBeauty2CharmLine', - 'B02D0D0KSD02HHD02HHDDBeauty2CharmLine', - 'B02D0D0KSD02HHD02K3PiDDBeauty2CharmLine', - 'B02DstDstKSDDBeauty2CharmLine', - 'B02DstDstKSDDDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSWSDDBeauty2CharmLine', - 'B02DstDstKSWSDDDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSWSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'B02DDKSLLBeauty2CharmLine', - 'B02DDKSWSLLBeauty2CharmLine', - 'B02DstDKSLLBeauty2CharmLine', - 'B02DstDKSLLDstarD02K3PiBeauty2CharmLine', - 'B02DstDKSWSLLBeauty2CharmLine', - 'B02DstDKSWSLLDstarD02K3PiBeauty2CharmLine', - 'B02D0D0KSD02K3PiD02K3PiLLBeauty2CharmLine', - 'B02D0D0KSD02HHD02HHLLBeauty2CharmLine', - 'B02D0D0KSD02HHD02K3PiLLBeauty2CharmLine', - 'B02DstDstKSLLBeauty2CharmLine', - 'B02DstDstKSLLDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSWSLLBeauty2CharmLine', - 'B02DstDstKSWSLLDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKSWSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - #'B02DDKKBeauty2CharmLine', - #'B02DstDKKBeauty2CharmLine', - #'B02DstDKKDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKKBeauty2CharmLine', - 'B02DstDstKKDstarD02K3PiBeauty2CharmLine', - 'B02DstDstKKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'B02LcpbarKKLc2PKPiBeauty2CharmLine', - 'B02LcpbarpbarpLc2PKPiBeauty2CharmLine', - 'B02LcpbarPiPiLc2PKPiBeauty2CharmLine', - 'B02LcpbarKPiLc2PKPiBeauty2CharmLine', - 'B02LcpbarPiPiWSLc2PKPiBeauty2CharmLine', - 'B02LcpbarpbarpWSLc2PKPiBeauty2CharmLine', - 'B02LcpbarKKWSLc2PKPiBeauty2CharmLine', - 'B02LcpbarKPiWSLc2PKPiBeauty2CharmLine', - 'B02LcpbarKSDDLc2PKPiBeauty2CharmLine', - 'B02LcpbarKSWSDDLc2PKPiBeauty2CharmLine', - 'B02LcpbarKSLLLc2PKPiBeauty2CharmLine', - 'B02LcpbarKSWSLLLc2PKPiBeauty2CharmLine', - 'B02LcLambda0KLc2PKPiBeauty2CharmLine', - 'B02LcLambda0PiLc2PKPiBeauty2CharmLine', - 'B02LcLambda0PiWSLc2PKPiBeauty2CharmLine', - 'B02LcLambda0KWSLc2PKPiBeauty2CharmLine', - 'B02DKLTUBD2HHHBeauty2CharmLine', - 'B02DsKPiPiLTUBD2HHHBeauty2CharmLine', - 'B02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine', - 'B02Dst0DKDst02D0Pi0ResolvedD2HHHBeauty2CharmLine', - 'B02Dst0DKDst02D0GammaD2HHHBeauty2CharmLine', - 'B02DsstKsPiLLDsst2DGammaD2HHHBeauty2CharmLine', - 'B02DsstKsPiDDDsst2DGammaD2HHHBeauty2CharmLine', - 'B02D0MuMuD2HHBeauty2CharmLine', - 'B02D0MuMuWSD2HHBeauty2CharmLine', - 'B02D0MuMuD2HHHHBeauty2CharmLine', - 'B02D0MuMuWSD2HHHHBeauty2CharmLine', - 'B02D0MuMuD2KSHHLLBeauty2CharmLine', - 'B02D0MuMuWSD2KSHHLLBeauty2CharmLine', - 'B02D0MuMuD2KSHHDDBeauty2CharmLine', - 'B02D0MuMuWSD2KSHHDDBeauty2CharmLine' - ], - 'RawEvents': [ - 'B02DKD2HHHBeauty2CharmLine', 'B02DPiD2HHHBeauty2CharmLine', - 'B02DsstarPiDsstar2DGammaD2HHHBeauty2CharmLine', - 'B02DsstarKDsstar2DGammaD2HHHBeauty2CharmLine', - 'B02DsstarKMCwNoPIDDsstar2DGammaD2HHHBeauty2CharmLine' - ], - 'MDSTChannels': [], - 'RelatedInfoTools': [ - { - "Type": "RelInfoConeVariables", - "ConeAngle": 1.5, - "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], - "Location": 'P2ConeVar1' - }, - { - "Type": "RelInfoConeVariables", - "ConeAngle": 1.7, - "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], - "Location": 'P2ConeVar2' - }, - { - "Type": "RelInfoConeVariables", - "ConeAngle": 1.0, - "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], - "Location": 'P2ConeVar3' - }, - ], - "Prescales": { # Prescales for individual lines - 'RUN_BY_DEFAULT': True, # False = lines off by default - 'RUN_RE': ['.*'], - # Defaults are defined in, eg, Beauty2Charm_B2DXBuilder.py. Put the full - # line name here to override. E.g. 'B2D0HD2HHBeauty2CharmTOSLine': 0.5. - 'B02DKLTUBD2HHHBeauty2CharmLine': 0.04, - 'B02DsKPiPiLTUBD2HHHBeauty2CharmLine': 0.004, - 'B02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine': 0.19, - 'B02DKWSD2HHHBeauty2CharmLine': 1.0, - 'B02DPiWSD2HHHBeauty2CharmLine': 1.0, - 'B02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine': 1.0, - 'B02DPiWSNoIPDs2HHHPIDBeauty2CharmLine': 1.0, - 'B02DPiPiPiWSD2HHHPIDBeauty2CharmLine': 1.0, - 'B02DKPiPiWSD2HHHPIDBeauty2CharmLine': 1.0, - 'B2Dstar0PiDst02D0Pi0D2KSHHLLWSBeauty2CharmLine': 0.1, - 'B2Dstar0PiDst02D0Pi0D2KSHHDDWSBeauty2CharmLine': 0.1, - 'B2Dstar0PiDst02D0GammaD2KSHHLLWSBeauty2CharmLine': 0.1, - 'B2Dstar0PiDst02D0GammaD2KSHHDDWSBeauty2CharmLine': 0.1, - 'B2Dstar0KDst02D0Pi0D2KSHHLLWSBeauty2CharmLine': 0.1, - 'B2Dstar0KDst02D0Pi0D2KSHHDDWSBeauty2CharmLine': 0.1, - 'B2Dstar0KDst02D0GammaD2KSHHLLWSBeauty2CharmLine': 0.1, - 'B2Dstar0KDst02D0GammaD2KSHHDDWSBeauty2CharmLine': 0.1 - }, - 'GECNTrkMax': - 500 - }, - 'STREAMS': { - 'BhadronCompleteEvent': [ - 'StrippingB02DKD2HHHBeauty2CharmLine', - 'StrippingB02DPiD2HHHBeauty2CharmLine', - 'StrippingB2D0KD2HHBeauty2CharmLine', - 'StrippingB2D0PiD2HHBeauty2CharmLine', - 'StrippingB2D0PiNoIPD2KPIPIDBeauty2CharmLine', - 'StrippingB02DPiNoIPD2HHHCFPIDBeauty2CharmLine', - 'StrippingLb2XicPiNoIPXic2PKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiNoIPXic02PKKPiBeauty2CharmLine', - 'StrippingLb2LcPiNoIPLc2PKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0PiNoIPOmegac02PKKPiBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2HHTIGHTBeauty2CharmLine', - 'StrippingB2D0PiD2HHHHTIGHTBeauty2CharmLine', - 'StrippingB02DsstarPiDsstar2DGammaD2HHHBeauty2CharmLine', - 'StrippingB02DsstarKDsstar2DGammaD2HHHBeauty2CharmLine', - 'StrippingB02DsstarKMCwNoPIDDsstar2DGammaD2HHHBeauty2CharmLine', - 'StrippingB02DDBeauty2CharmLine', 'StrippingB2D0DBeauty2CharmLine', - 'StrippingB02DstDBeauty2CharmLine', - 'StrippingB02DstDD02K3PiBeauty2CharmLine', - 'StrippingB02D0PiPiD2HHBeauty2CharmLine', - 'StrippingB02DstDstBeauty2CharmLine', - 'StrippingB02DKPiPiD2HHHPIDBeauty2CharmLine', - 'StrippingB02DPiPiPiD2HHHPIDBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHLLPartialDBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHDDPartialDBeauty2CharmLine', - 'StrippingB2D0KD2KSHHLLPartialDBeauty2CharmLine', - 'StrippingB2D0KD2KSHHDDPartialDBeauty2CharmLine', - 'StrippingB02D0KKDSTD2HHBeauty2CharmLine', - 'StrippingLb2LcPiPiPiLc2PKPiFullDSTBeauty2CharmLine', - 'StrippingXib02XicPiPiPiXic2PKPiFullDSTBeauty2CharmLine', - 'StrippingXib2XicPiPiXic2PKPiFullDSTBeauty2CharmLine', - 'StrippingXib2XicPiPiWSXic2PKPiFullDSTBeauty2CharmLine', - 'StrippingXib02Xic0PiPiXic02PKKPiFullDSTBeauty2CharmLine', - 'StrippingXib02Xic0PiPiWSXic02PKKPiFullDSTBeauty2CharmLine', - 'StrippingXib2Xic0PiPiPiXic02PKKPiFullDSTBeauty2CharmLine', - 'StrippingOmegab2Omegac0PiPiPiOmegac02PKKPiFullDSTBeauty2CharmLine' - ], - 'Bhadron': [ - 'StrippingB2Dstar0KDst02D0Pi0D2HHHHMergedBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHMergedBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2HHHHBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2HHHHBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB2D0PiD2HHmuDSTBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2HHWSBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2HHWSBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2KSHHDDWSBeauty2CharmLine', - 'StrippingUpsilon2BBBeauty2CharmLine', - 'StrippingBc2BPiPiB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BPiPiWSB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BPiKB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BPiKWSB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BKPiB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BKKB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BKKWSB2D0HD02HHBeauty2CharmLine', - 'StrippingBc2BPiPiB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BPiPiWSB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BPiKB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BPiKWSB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BKPiB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BKKB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BKKWSB2D0HD02HHHHBeauty2CharmLine', - 'StrippingBc2BPiPiB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BPiPiWSB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BPiKB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BPiKWSB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BKPiB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BKKB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BKKWSB2DHHD2HHHCFPIDBeauty2CharmLine', - 'StrippingBc2BPiPiB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BPiPiWSB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BPiKB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BPiKWSB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BKPiB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BKKB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BKKWSB2D0HHHD02HHPIDBeauty2CharmLine', - 'StrippingBc2BPiPiB2D0DBeauty2CharmLine', - 'StrippingBc2BPiPiWSB2D0DBeauty2CharmLine', - 'StrippingBc2BPiKB2D0DBeauty2CharmLine', - 'StrippingBc2BPiKWSB2D0DBeauty2CharmLine', - 'StrippingBc2BKPiB2D0DBeauty2CharmLine', - 'StrippingBc2BKKB2D0DBeauty2CharmLine', - 'StrippingBc2BKKWSB2D0DBeauty2CharmLine', - 'StrippingBc2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2D0KD02HHPIDBeauty2CharmLine', - 'StrippingBc2D0KD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DPiPiD2HHHPIDBeauty2CharmLine', - 'StrippingBc2DHHWSD2HHHPIDBeauty2CharmLine', - 'StrippingBc2DHHNPD2HHHPIDBeauty2CharmLine', - 'StrippingBc2DKPiD2HHHPIDBeauty2CharmLine', - 'StrippingBc2DKKD2HHHPIDBeauty2CharmLine', - 'StrippingBc2DstarPiPiDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarHHWSDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarHHNPDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarKPiDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarKKDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarPiKDstar2D0PiD02HHPIDBeauty2CharmLine', - 'StrippingBc2DstarPiPiDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DstarHHWSDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DstarHHNPDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DstarKPiDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DstarKKDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingBc2DstarPiKDstar2D0PiD02HHHHPIDBeauty2CharmLine', - 'StrippingB2D0KD2HHWSBeauty2CharmLine', - 'StrippingB2D0PiD2HHWSBeauty2CharmLine', - #'StrippingB2D0KD2HHUPBeauty2CharmLine', - 'StrippingB2D0PiD2HHUPBeauty2CharmLine', - 'StrippingB02DKWSD2HHHBeauty2CharmLine', - 'StrippingB02DPiWSD2HHHBeauty2CharmLine', - 'StrippingB02DPiNoIPDs2HHHPIDBeauty2CharmLine', - 'StrippingB02DKD2Pi0HHHMergedBeauty2CharmLine', - 'StrippingB02DKD2Pi0HHHResolvedBeauty2CharmLine', - 'StrippingB02DPiD2Pi0HHHMergedBeauty2CharmLine', - 'StrippingB02DPiD2Pi0HHHResolvedBeauty2CharmLine', - 'StrippingB02D0KKD2HHBeauty2CharmLine', - 'StrippingB02D0KPiD2HHBeauty2CharmLine', - 'StrippingB02DHHWSD2HHBeauty2CharmLine', - 'StrippingB02D0PPbarD2HHBeauty2CharmLine', - 'StrippingB02D0PPbarWSD2HHBeauty2CharmLine', - 'StrippingB02D0KKD2HHWSBeauty2CharmLine', - 'StrippingB02D0PiPiD2HHWSBeauty2CharmLine', - 'StrippingB02D0KPiD2HHWSBeauty2CharmLine', - 'StrippingB02DHHWSD2HHWSBeauty2CharmLine', - 'StrippingB02D0KSDDD2HHBeauty2CharmLine', - 'StrippingB02D0KSLLD2HHBeauty2CharmLine', - 'StrippingB02Dst0PiPiDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB02Dst0KPiDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB02Dst0KKDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB02Dst0HHWSDst02D0Pi0D2HHResolvedBeauty2CharmLine', - 'StrippingB02Dst0PiPiDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB02Dst0KPiDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB02Dst0KKDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB02Dst0HHWSDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2HHBeauty2CharmLine', - 'StrippingB2D0KPi0ResolvedD2HHBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2HHBeauty2CharmLine', - 'StrippingB2D0PiPi0ResolvedD2HHBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KPi0ResolvedD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0PiPi0ResolvedD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KPi0ResolvedD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0PiPi0ResolvedD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2HHHHBeauty2CharmLine', - 'StrippingB2D0KPi0ResolvedD2HHHHBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2HHHHBeauty2CharmLine', - 'StrippingB2D0PiPi0ResolvedD2HHHHBeauty2CharmLine', - 'StrippingB2D0KsPiDDD2HHHHWSBeauty2CharmLine', - 'StrippingB2D0KPi0ResolvedD2HHHHWSBeauty2CharmLine', - 'StrippingB2D0KsPiLLD2HHHHWSBeauty2CharmLine', - 'StrippingB2D0PiPi0ResolvedD2HHHHWSBeauty2CharmLine', - 'StrippingB2D0KsKDDD2HHBeauty2CharmLine', - 'StrippingB2D0KsKLLD2HHBeauty2CharmLine', - 'StrippingB2D0KsKDDD2HHHHBeauty2CharmLine', - 'StrippingB2D0KsKLLD2HHHHBeauty2CharmLine', - 'StrippingB02DKD2PhiMuNuBeauty2CharmLine', - 'StrippingB02DPiD2PhiMuNuBeauty2CharmLine', - 'StrippingB02DKWSD2PhiMuNuBeauty2CharmLine', - 'StrippingB02DPiWSD2PhiMuNuBeauty2CharmLine', - 'StrippingB02DKD2HHHUPBeauty2CharmLine', - #'StrippingB02DPiD2HHHUPBeauty2CharmLine', - #'StrippingB02DKWSD2HHHUPBeauty2CharmLine', - #'StrippingB02DPiWSD2HHHUPBeauty2CharmLine', - 'StrippingB02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DPiWSNoIPDs2HHHPIDBeauty2CharmLine', - 'StrippingB02DKsKDDD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsKLLD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKPi0ResolvedD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsPiDDD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DPiPi0MergedD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKPi0MergedD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DPiPi0ResolvedD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsPiLLD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKPi0MergedWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsPiDDWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DPiPi0MergedWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsPiLLWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DPiPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsKLLWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKsKDDWSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB2DKKD2HHHCFPIDBeauty2CharmLine', - 'StrippingB2DPPD2HHHPPBeauty2CharmLine', - 'StrippingB2DKPiD2HHHCFPIDBeauty2CharmLine', - 'StrippingB2DPiPiD2HHHCFPIDBeauty2CharmLine', - 'StrippingB2DHHOSD2HHHCFPIDBeauty2CharmLine', - 'StrippingB2DRho0D2HHHPIDBeauty2CharmLine', - 'StrippingB2DKstar0D2HHHPIDBeauty2CharmLine', - 'StrippingB2DPhiD2HHHPIDBeauty2CharmLine', - 'StrippingB2DKSDDD2HHHBeauty2CharmLine', - 'StrippingB2DKSLLD2HHHBeauty2CharmLine', - 'StrippingB02DRhoPMD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKstarPMD2HHHCFPIDBeauty2CharmLine', - 'StrippingB02DKD2KSHLLBeauty2CharmLine', - 'StrippingB02DPiD2KSHLLBeauty2CharmLine', - 'StrippingB02DKWSD2KSHLLBeauty2CharmLine', - 'StrippingB02DPiWSD2KSHLLBeauty2CharmLine', - 'StrippingB02DKD2KSHDDBeauty2CharmLine', - 'StrippingB02DPiD2KSHDDBeauty2CharmLine', - 'StrippingB02DKWSD2KSHDDBeauty2CharmLine', - 'StrippingB02DPiWSD2KSHDDBeauty2CharmLine', - 'StrippingB2D0KD2KSMuMuLLBeauty2CharmLine', - 'StrippingB2D0PiD2KSMuMuLLBeauty2CharmLine', - 'StrippingB2D0KD2KSMuMuDDBeauty2CharmLine', - 'StrippingB2D0PiD2KSMuMuDDBeauty2CharmLine', - 'StrippingB2D0MuNuD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0MuNuD2KSHHDDBeauty2CharmLine', - 'StrippingB02D0KKD2KSHHLLBeauty2CharmLine', - 'StrippingB02D0PiPiD2KSHHLLBeauty2CharmLine', - 'StrippingB02D0KPiD2KSHHLLBeauty2CharmLine', - 'StrippingB02DHHWSD2KSHHLLBeauty2CharmLine', - 'StrippingB02D0KKD2KSHHDDBeauty2CharmLine', - 'StrippingB02D0PiPiD2KSHHDDBeauty2CharmLine', - 'StrippingB02D0KPiD2KSHHDDBeauty2CharmLine', - 'StrippingB02DHHWSD2KSHHDDBeauty2CharmLine', - 'StrippingB02D0KKD2KSHHLLWSBeauty2CharmLine', - 'StrippingB02D0PiPiD2KSHHLLWSBeauty2CharmLine', - 'StrippingB02D0KPiD2KSHHLLWSBeauty2CharmLine', - 'StrippingB02DHHWSD2KSHHLLWSBeauty2CharmLine', - 'StrippingB02D0KKD2KSHHDDWSBeauty2CharmLine', - 'StrippingB02D0PiPiD2KSHHDDWSBeauty2CharmLine', - 'StrippingB02D0KPiD2KSHHDDWSBeauty2CharmLine', - 'StrippingB02DHHWSD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0KD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2D0KD2KSMuMuLLWSBeauty2CharmLine', - 'StrippingB2D0PiD2KSMuMuLLWSBeauty2CharmLine', - 'StrippingB2D0KD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0PiD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0KD2KSMuMuDDWSBeauty2CharmLine', - 'StrippingB2D0PiD2KSMuMuDDWSBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'StrippingB02DstarKDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'StrippingB02DstarPiDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSHHLLBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSHHDDBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2HHHHBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2HHHHBeauty2CharmLine', - 'StrippingB02DstarMuNuDst2D0Pi_D2HHHHWSBeauty2CharmLine', - 'StrippingB02DstarMuNuWSDst2D0Pi_D2HHHHWSBeauty2CharmLine', - 'StrippingB02DstarKsPiDDDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsKDDDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsKLLDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsPiLLDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsKDDWSDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsKLLWSDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsPiDDWSDst2D0PiBeauty2CharmLine', - 'StrippingB02DstarKsPiLLWSDst2D0PiBeauty2CharmLine', - 'StrippingB2D0KD2HHHHBeauty2CharmLine', - 'StrippingB2D0PiD2HHHHBeauty2CharmLine', - 'StrippingB2D0KD2HHHHWSBeauty2CharmLine', - 'StrippingB2D0PiD2HHHHWSBeauty2CharmLine', - #'StrippingB2D0KD2HHHHUPBeauty2CharmLine', - #'StrippingB2D0PiD2HHHHUPBeauty2CharmLine', - 'StrippingB02D0KKD2HHHHBeauty2CharmLine', - 'StrippingB02D0PiPiD2HHHHBeauty2CharmLine', - 'StrippingB02D0KPiD2HHHHBeauty2CharmLine', - 'StrippingB02DHHWSD2HHHHBeauty2CharmLine', - 'StrippingB02D0KKD2HHHHWSBeauty2CharmLine', - 'StrippingB02D0PiPiD2HHHHWSBeauty2CharmLine', - 'StrippingB02D0KPiD2HHHHWSBeauty2CharmLine', - 'StrippingB02DHHWSD2HHHHWSBeauty2CharmLine', - 'StrippingB02D0KSDDD2K3PiBeauty2CharmLine', - 'StrippingB02D0KSLLD2K3PiBeauty2CharmLine', - 'StrippingB2D0KD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB2D0PiD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB2D0KD2Pi0HHWSResolvedBeauty2CharmLine', - 'StrippingB2D0PiD2Pi0HHWSResolvedBeauty2CharmLine', - 'StrippingB2D0KD2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB2D0PiD2KSPi0HHLLResolvedBeauty2CharmLine', - 'StrippingB2D0KD2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB2D0PiD2KSPi0HHLLMergedBeauty2CharmLine', - 'StrippingB2D0KD2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB2D0PiD2KSPi0HHDDResolvedBeauty2CharmLine', - 'StrippingB2D0KD2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB2D0PiD2KSPi0HHDDMergedBeauty2CharmLine', - 'StrippingB2D0KD02KSPi0LLResolvedBeauty2CharmLine', - 'StrippingB2D0PiD02KSPi0LLResolvedBeauty2CharmLine', - 'StrippingB2D0KD02KSPi0LLMergedBeauty2CharmLine', - 'StrippingB2D0PiD02KSPi0LLMergedBeauty2CharmLine', - 'StrippingB2D0KD02KSPi0DDResolvedBeauty2CharmLine', - 'StrippingB2D0PiD02KSPi0DDResolvedBeauty2CharmLine', - 'StrippingB2D0KD02KSPi0DDMergedBeauty2CharmLine', - 'StrippingB2D0PiD02KSPi0DDMergedBeauty2CharmLine', - 'StrippingB02D0KKD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB02D0PiPiD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB02D0KPiD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB02DHHWSD2Pi0HHResolvedBeauty2CharmLine', - 'StrippingB02DKWSD2Pi0HHHResolvedBeauty2CharmLine', - 'StrippingB02DPiWSD2Pi0HHHResolvedBeauty2CharmLine', - 'StrippingB02DKWSD2Pi0HHHMergedBeauty2CharmLine', - 'StrippingB02DPiWSD2Pi0HHHMergedBeauty2CharmLine', - 'StrippingB2D0KKPiD2HHPIDBeauty2CharmLine', - 'StrippingB2D0KPiPiD2HHPIDBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2HHPIDBeauty2CharmLine', - 'StrippingB2D0KKPiD2HHHHPIDBeauty2CharmLine', - 'StrippingB2D0KPiPiD2HHHHPIDBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2HHHHPIDBeauty2CharmLine', - 'StrippingB2D0KKPiD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KPiPiD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0KPiPiD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2KSHHDDBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2D0KKPiD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KPiPiD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0KPiPiD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2KSHHLLBeauty2CharmLine', - 'StrippingB2D0PiPiPiD2KSHHLLWSBeauty2CharmLine', - 'StrippingB02DKPiPiSSD2HHHPIDBeauty2CharmLine', - 'StrippingB02DKKPiD2HHHPIDBeauty2CharmLine', - 'StrippingB02DKPiPiSSWSD2HHHPIDBeauty2CharmLine', - 'StrippingB02DKKPiWSD2HHHPIDBeauty2CharmLine', - 'StrippingB02DKPiPiWSD2HHHPIDBeauty2CharmLine', - 'StrippingB02DPiPiPiWSD2HHHPIDBeauty2CharmLine', - 'StrippingB2D0ppbarKD2HHBeauty2CharmLine', - 'StrippingB2D0ppbarPiD2HHBeauty2CharmLine', - 'StrippingB02DppbarKD2HHHBeauty2CharmLine', - 'StrippingB02DppbarPiD2HHHBeauty2CharmLine', - 'StrippingB2D0phiKD2HHPIDBeauty2CharmLine', - 'StrippingB2D0phiKD2HHHHPIDBeauty2CharmLine', - 'StrippingB02DstKKPiDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB02DstKPiPiDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB02DstPiPiPiDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB02DstPiPiPiWSDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB02DstKPiPiWSDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB02DstKKPiWSDstar2D0PiPIDBeauty2CharmLine', - 'StrippingB2DMuMuD2HHHBeauty2CharmLine', - 'StrippingB2DMuMuWSD2HHHBeauty2CharmLine', - 'StrippingB2DMuMuNPD2HHHBeauty2CharmLine', - 'StrippingB2DMuMuD2KSHLLBeauty2CharmLine', - 'StrippingB2DMuMuWSD2KSHLLBeauty2CharmLine', - 'StrippingB2DMuMuNPD2KSHLLBeauty2CharmLine', - 'StrippingB2DMuMuD2KSHDDBeauty2CharmLine', - 'StrippingB2DMuMuWSD2KSHDDBeauty2CharmLine', - 'StrippingB2DMuMuNPD2KSHDDBeauty2CharmLine', - 'StrippingB2DstarMuMuD0PiBeauty2CharmLine', - 'StrippingB2DstarMuMuWSD0PiBeauty2CharmLine', - 'StrippingB2DstarMuMuNPD0PiBeauty2CharmLine', - 'StrippingB2DstarMuMuD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstarMuMuWSD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstarMuMuNPD2HHHHPiBeauty2CharmLine', - 'StrippingB02D0MuMuD2HHBeauty2CharmLine', - 'StrippingB02D0MuMuWSD2HHBeauty2CharmLine', - 'StrippingB02D0MuMuD2HHHHBeauty2CharmLine', - 'StrippingB02D0MuMuWSD2HHHHBeauty2CharmLine', - 'StrippingB02D0MuMuD2KSHHLLBeauty2CharmLine', - 'StrippingB02D0MuMuWSD2KSHHLLBeauty2CharmLine', - 'StrippingB02D0MuMuD2KSHHDDBeauty2CharmLine', - 'StrippingB02D0MuMuWSD2KSHHDDBeauty2CharmLine', - 'StrippingB02DsstKsPiLLDsst2DGammaD2HHHBeauty2CharmLine', - 'StrippingB02DsstKsPiDDDsst2DGammaD2HHHBeauty2CharmLine', - 'StrippingB02DDWSBeauty2CharmLine', - 'StrippingB2D0DD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0D02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0D02HHD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0D02HHD02HHBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2KSHHLLBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2KSHHLLWSBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHLLBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHLLWSBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2KSHHDDBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0Pi0D2KSHHDDWSBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHDDBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHDDWSBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2KSHHLLBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2KSHHLLBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2KSHHLLWSBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2KSHHDDBeauty2CharmLine', - 'StrippingB2Dstar0KDst02D0GammaD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2KSHHDDBeauty2CharmLine', - 'StrippingB2Dstar0PiDst02D0GammaD2KSHHDDWSBeauty2CharmLine', - 'StrippingB2DstPiKFavD0PiBeauty2CharmLine', - 'StrippingB2DstPiKFavD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstPiKSupD0PiBeauty2CharmLine', - 'StrippingB2DstPiKSupD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstPipPipD0PiBeauty2CharmLine', - 'StrippingB2DstPipPipD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstPimPipD0PiBeauty2CharmLine', - 'StrippingB2DstPimPipD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstPiKWSD0PiBeauty2CharmLine', - 'StrippingB2DstPiKWSD2HHHHPiBeauty2CharmLine', - 'StrippingB2DstPiPiWSD0PiBeauty2CharmLine', - 'StrippingB2DstPiPiWSD2HHHHPiBeauty2CharmLine', - 'StrippingB2D0D0KD02HHD02HHBeauty2CharmLine', - 'StrippingB2D0D0PiD02HHD02HHBeauty2CharmLine', - 'StrippingB2DstD0Beauty2CharmLine', - 'StrippingB2DstD0D02K3PiBeauty2CharmLine', - 'StrippingB02DstDstWSBeauty2CharmLine', - 'StrippingB02DstDWSBeauty2CharmLine', - - ###################### - ###### DDX lines ##### - ###################### - #### DDK lines ### - 'StrippingB2DDKBeauty2CharmLine', - 'StrippingB2DDKWSBeauty2CharmLine', - 'StrippingB02D0DKBeauty2CharmLine', - 'StrippingB02D0DKD02K3PiBeauty2CharmLine', - 'StrippingB02D0DKWSBeauty2CharmLine', - 'StrippingB02D0DKWSD02K3PiBeauty2CharmLine', - 'StrippingB2DstDKBeauty2CharmLine', - 'StrippingB2DstDKDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDKWSBeauty2CharmLine', - 'StrippingB2DstDKWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB2D0D0KD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB2D0D0KD02HHD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KBeauty2CharmLine', - 'StrippingB02DstD0KD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KWSBeauty2CharmLine', - 'StrippingB02DstD0KWSD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0KWSDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstKBeauty2CharmLine', - 'StrippingB2DstDstKDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstKWSBeauty2CharmLine', - 'StrippingB2DstDstKWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstKWSDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2Dst2460DKBeauty2CharmLine', - 'StrippingB2Dst2460DKWSBeauty2CharmLine', - 'StrippingB2D0st2460D0KBeauty2CharmLine', - 'StrippingB2Dst0D0KDst02D0Pi0ResolvedD02HHBeauty2CharmLine', - 'StrippingB2Dst0D0KDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingB02Dst0DKDst02D0Pi0ResolvedD2HHHBeauty2CharmLine', - 'StrippingB02Dst0DKDst02D0GammaD2HHHBeauty2CharmLine', - ##### DDKS lines ### - 'StrippingB02DDKSDDBeauty2CharmLine', - 'StrippingB02DDKSWSDDBeauty2CharmLine', - 'StrippingB2D0DKSDDBeauty2CharmLine', - 'StrippingB2D0DKSDDD02K3PiBeauty2CharmLine', - 'StrippingB02DstDKSDDBeauty2CharmLine', - 'StrippingB02DstDKSDDDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDKSWSDDBeauty2CharmLine', - 'StrippingB02DstDKSWSDDDstarD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0KSD02K3PiD02K3PiDDBeauty2CharmLine', - 'StrippingB02D0D0KSD02HHD02HHDDBeauty2CharmLine', - 'StrippingB02D0D0KSD02HHD02K3PiDDBeauty2CharmLine', - 'StrippingB2DstD0KSDDBeauty2CharmLine', - 'StrippingB2DstD0KSDDD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KSDDDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KSDDDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSDDBeauty2CharmLine', - 'StrippingB02DstDstKSDDDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSWSDDBeauty2CharmLine', - 'StrippingB02DstDstKSWSDDDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSWSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DDKSLLBeauty2CharmLine', - 'StrippingB02DDKSWSLLBeauty2CharmLine', - 'StrippingB2D0DKSLLBeauty2CharmLine', - 'StrippingB2D0DKSLLD02K3PiBeauty2CharmLine', - 'StrippingB02DstDKSLLBeauty2CharmLine', - 'StrippingB02DstDKSLLDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDKSWSLLBeauty2CharmLine', - 'StrippingB02DstDKSWSLLDstarD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0KSD02K3PiD02K3PiLLBeauty2CharmLine', - 'StrippingB02D0D0KSD02HHD02HHLLBeauty2CharmLine', - 'StrippingB02D0D0KSD02HHD02K3PiLLBeauty2CharmLine', - 'StrippingB2DstD0KSLLBeauty2CharmLine', - 'StrippingB2DstD0KSLLD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KSLLDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KSLLDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSLLBeauty2CharmLine', - 'StrippingB02DstDstKSLLDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSWSLLBeauty2CharmLine', - 'StrippingB02DstDstKSWSLLDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKSWSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - ##### DDLambda lines ### - 'StrippingLb2DDLambdaDDBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02HHD02HHDDBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02HHD02K3PiDDBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02K3PiD02K3PiDDBeauty2CharmLine', - 'StrippingLb2DstDLambdaDDBeauty2CharmLine', - 'StrippingLb2DstDLambdaDDDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2DstDstLambdaDDBeauty2CharmLine', - 'StrippingLb2DstDstLambdaDDDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2DstDstLambdaDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2DDLambdaLLBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02HHD02HHLLBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02HHD02K3PiLLBeauty2CharmLine', - 'StrippingLb2D0D0LambdaD02K3PiD02K3PiLLBeauty2CharmLine', - 'StrippingLb2DstDLambdaLLBeauty2CharmLine', - 'StrippingLb2DstDLambdaLLDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2DstDstLambdaLLBeauty2CharmLine', - 'StrippingLb2DstDstLambdaLLDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2DstDstLambdaLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - ##### DDK* lines ### - 'StrippingB02D0D0KstD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02D0D0KstD02HHD02HHBeauty2CharmLine', - 'StrippingB02D0D0KstD02HHD02K3PiBeauty2CharmLine', - 'StrippingB02DDKstBeauty2CharmLine', - 'StrippingB02DstDKstBeauty2CharmLine', - 'StrippingB02DstDKstDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKstBeauty2CharmLine', - 'StrippingB02DstDstKstDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKstDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DD0KstBeauty2CharmLine', - 'StrippingB2DD0KstD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KstBeauty2CharmLine', - 'StrippingB2DstD0KstDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KstD02K3PiBeauty2CharmLine', - 'StrippingB2DstD0KstDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB2D0DKPiBeauty2CharmLine', - 'StrippingB2D0DKPiD02K3PiBeauty2CharmLine', - ##### DDPhi lines ### - 'StrippingB2D0DKKBeauty2CharmLine', - 'StrippingB2D0DKKD2K3PiBeauty2CharmLine', - #'StrippingB02DDKKBeauty2CharmLine', - #'StrippingB02DstDKKBeauty2CharmLine', - #'StrippingB02DstDKKDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKKBeauty2CharmLine', - 'StrippingB02DstDstKKDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstDstKKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - ##### DDspipi lines ### - 'StrippingB02DDspipiBeauty2CharmLine', - 'StrippingB2D0DspipiBeauty2CharmLine', - 'StrippingB2D0DspipiD02K3PiBeauty2CharmLine', - 'StrippingB02DstDspipiBeauty2CharmLine', - 'StrippingB02DstDspipiDstarD02K3PiBeauty2CharmLine', - ##### DDs2460 lines ### - 'StrippingB02DDs2460Beauty2CharmLine', - 'StrippingB2D0Ds2460Beauty2CharmLine', - 'StrippingB2D0Ds2460D02K3PiBeauty2CharmLine', - 'StrippingB02DstDs2460Beauty2CharmLine', - 'StrippingB02DstDs2460DstarD02K3PiBeauty2CharmLine', - #### DDPi lines ### - 'StrippingB2DDPiBeauty2CharmLine', - 'StrippingB2DDPiWSBeauty2CharmLine', - 'StrippingB02D0DPiBeauty2CharmLine', - 'StrippingB02D0DPiD02K3PiBeauty2CharmLine', - 'StrippingB02D0DPiWSBeauty2CharmLine', - 'StrippingB02D0DPiWSD02K3PiBeauty2CharmLine', - 'StrippingB2DstDPiBeauty2CharmLine', - 'StrippingB2DstDPiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDPiWSBeauty2CharmLine', - 'StrippingB2DstDPiWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB2D0D0PiD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB2D0D0PiD02HHD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiBeauty2CharmLine', - 'StrippingB02DstD0PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiWSBeauty2CharmLine', - 'StrippingB02DstD0PiWSD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB02DstD0PiWSDstarD02K3PiD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstPiBeauty2CharmLine', - 'StrippingB2DstDstPiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstPiDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstPiWSBeauty2CharmLine', - 'StrippingB2DstDstPiWSDstarD02K3PiBeauty2CharmLine', - 'StrippingB2DstDstPiWSDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - 'StrippingB2Dst2460DPiBeauty2CharmLine', - 'StrippingB2Dst2460DPiWSBeauty2CharmLine', - 'StrippingB2D0st2460D0PiBeauty2CharmLine', - ##### DDpK lines ### - 'StrippingLb2DDpKD2HHHPIDBeauty2CharmLine', - ######################### - #### End of DDX lines ### - ######################### - 'StrippingLb2LcKLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiLc2PKKBeauty2CharmLine', - 'StrippingLb2LcPiLc2PPiPiBeauty2CharmLine', - 'StrippingLb2LcKWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiWSLc2PKKBeauty2CharmLine', - 'StrippingLb2LcPiWSLc2PPiPiBeauty2CharmLine', - 'StrippingLb2LcPiNoIPWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcDLc2Lambda0LLPiD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDLc2Lambda0DDPiD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDstLc2Lambda0LLPiBeauty2CharmLine', - 'StrippingLb2LcDstLc2Lambda0DDPiBeauty2CharmLine', - 'StrippingLb2LcDstLc2Lambda0LLPiDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2LcDstLc2Lambda0DDPiDstarD02K3PiBeauty2CharmLine', - 'StrippingLb2LcDsstarLc2Lambda0LLPiDsstarD02HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDsstarLc2Lambda0DDPiDsstarD02HHHPIDBeauty2CharmLine', - 'StrippingLb2XicPiXic2PKPiBeauty2CharmLine', - 'StrippingLb2XicKXic2PKPiBeauty2CharmLine', - 'StrippingLb2XicKWSXic2PKPiBeauty2CharmLine', - 'StrippingLb2XicPiWSXic2PKPiBeauty2CharmLine', - 'StrippingLb2XicPiNoIPWSXic2PKPiBeauty2CharmLine', - 'StrippingXib2Xic0KXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiWSXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0KWSXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiNoIPWSXic02PKKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0PiOmegac02PKKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0KOmegac02PKKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0KWSOmegac02PKKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0PiWSOmegac02PKKPiBeauty2CharmLine', - 'StrippingOmegab2Omegac0PiNoIPWSOmegac02PKKPiBeauty2CharmLine', - 'StrippingOmegab2XicpKPiXicp2PKPiBeauty2CharmLine', - 'StrippingOmegab2LcKKLc2PKPiBeauty2CharmLine', - 'StrippingXib02XicDXic2PKPiBeauty2CharmLine', - 'StrippingXib02XicDWSXic2PKPiBeauty2CharmLine', - 'StrippingXib2Xic0DXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0DWSXic02PKKPiBeauty2CharmLine', - 'StrippingXib02XicKPiPiXic2PKPiBeauty2CharmLine', - 'StrippingXib02XicPiPiPiXic2PKPiBeauty2CharmLine', - 'StrippingXib02XicPiPiPiWSXic2PKPiBeauty2CharmLine', - 'StrippingXib02XicKPiPiWSXic2PKPiBeauty2CharmLine', - 'StrippingXib2Xic0KPiPiXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiPiPiXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0KPiPiWSXic02PKKPiBeauty2CharmLine', - 'StrippingXib2Xic0PiPiPiWSXic02PKKPiBeauty2CharmLine', - 'StrippingXib2LcDKLc2PKPiD2HHHBeauty2CharmLine', - 'StrippingXib2LcDKWSLc2PKPiD2HHHBeauty2CharmLine', - 'StrippingXib02LcDsKPiLc2PKPiDs2KKPiBeauty2CharmLine', - 'StrippingXib02LcDsKPiWSLc2PKPiDs2KKPiBeauty2CharmLine', - 'StrippingB2LcDspbarLc2PKPiDs2KKPiBeauty2CharmLine', - 'StrippingB2LcDspbarWSLc2PKPiDs2KKPiBeauty2CharmLine', - 'StrippingSb2D0PD2HHPIDBeauty2CharmLine', - 'StrippingSb02DPD2HHHPIDBeauty2CharmLine', - 'StrippingSb02DPWSD2HHHPIDBeauty2CharmLine', - 'StrippingLb2D0PHD02HHBeauty2CharmLine', - 'StrippingLb2D0PHWSD02HHBeauty2CharmLine', - 'StrippingLb2D0PHNoPIDD02HHBeauty2CharmLine', - 'StrippingLb2D0PHNoPIDWSD02HHBeauty2CharmLine', - 'StrippingLb2D0PHD02K3PiBeauty2CharmLine', - 'StrippingLb2D0PHWSD02K3PiBeauty2CharmLine', - 'StrippingLb2D0pKD02K3PiBeauty2CharmLine', - 'StrippingLb2D0pKD02HHHHPIDBeauty2CharmLine', - 'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', - 'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', - 'StrippingLb2D0pKD02K3PiWSBeauty2CharmLine', - 'StrippingLb2D0pKD02HHHHPIDWSBeauty2CharmLine', - 'StrippingLb2D0pKD02KsDDHHWSBeauty2CharmLine', - 'StrippingLb2D0pKD02KsLLHHWSBeauty2CharmLine', - 'StrippingLb2D0pPiD02K3PiBeauty2CharmLine', - 'StrippingLb2D0pPiD02HHHHPIDBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', - 'StrippingLb2D0pPiD02K3PiWSBeauty2CharmLine', - 'StrippingLb2D0pPiD02HHHHPIDWSBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsDDHHWSBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsLLHHWSBeauty2CharmLine', - 'StrippingLb2D0PPbarD02HHBeauty2CharmLine', - 'StrippingLb2D0PPbarWSD02HHBeauty2CharmLine', - 'StrippingLb2LcKSKLLLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcKSKDDLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcKKPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcppbarKLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcppbarPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcKPiPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiPiPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiPiPiLc2PKKBeauty2CharmLine', - 'StrippingLb2LcPiPiPiLc2PPiPiBeauty2CharmLine', - 'StrippingLb2LcKPiPiWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiPiPiWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcPiPiPiWSLc2PKKBeauty2CharmLine', - 'StrippingLb2LcPiPiPiWSLc2PPiPiBeauty2CharmLine', - 'StrippingLb2LcppbarKWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcppbarPiWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcKKPiWSLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKKLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarpbarpLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarPiPiLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKPiLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarPiPiWSLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarpbarpWSLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKKWSLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKPiWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcDD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDWSD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDsD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDsWSD2HHHPIDBeauty2CharmLine', - 'StrippingLb2Lc2595DsD2HHHPIDBeauty2CharmLine', - 'StrippingLb2Lc2595DsWSD2HHHPIDBeauty2CharmLine', - 'StrippingLb2Lc2625DsD2HHHPIDBeauty2CharmLine', - 'StrippingLb2Lc2625DsWSD2HHHPIDBeauty2CharmLine', - 'StrippingLb2LcDKstBeauty2CharmLine', - 'StrippingLb2LcDstKstBeauty2CharmLine', - 'StrippingLb2LcDst0KLc2PKPiDst02D0GammaD2HHBeauty2CharmLine', - 'StrippingLb2LcDst0KLc2PKPiDst02D0Pi0ResolvedD2HHBeauty2CharmLine', - 'StrippingLb2LcDst0KLc2PKPiDst02D0Pi0MergedD2HHBeauty2CharmLine', - 'StrippingX2LcD0D02KPiBeauty2CharmLine', - 'StrippingX2LcD0PiD02KPiBeauty2CharmLine', - 'StrippingX2LcD0KD02KPiBeauty2CharmLine', - 'StrippingX2LcD0PiWSD02KPiBeauty2CharmLine', - 'StrippingX2LcD0KWSD02KPiBeauty2CharmLine', - 'StrippingX02XiccpPiXiccp2Xic0PiBeauty2CharmLine', - 'StrippingX02XiccpKXiccp2Xic0PiBeauty2CharmLine', - 'StrippingX02XiccpPiWSXiccp2Xic0PiBeauty2CharmLine', - 'StrippingX02XiccpKWSXiccp2Xic0PiBeauty2CharmLine', - 'StrippingX2XiccppKXiccpp2XicPiBeauty2CharmLine', - 'StrippingX2XiccppPiXiccpp2XicPiBeauty2CharmLine', - 'StrippingX2XiccppKWSXiccpp2XicPiBeauty2CharmLine', - 'StrippingX2XiccppPiWSXiccpp2XicPiBeauty2CharmLine', - 'StrippingX2LcPiPiOSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcPiKOSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcPiPiSSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKKSSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKPiOSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKKOSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKPiSSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcPiPiWSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKPiWSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKKWSLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKPiPiPiLc2PKPiBeauty2CharmLine', - 'StrippingX2LcKPiPiPiWSLc2PKPiBeauty2CharmLine', - 'StrippingXib2XicPiPiXic2PKPiBeauty2CharmLine', - 'StrippingXib2XicKPiXic2PKPiBeauty2CharmLine', - 'StrippingXib2XicKKXic2PKPiBeauty2CharmLine', - 'StrippingXib2XicKKWSXic2PKPiBeauty2CharmLine', - 'StrippingXib2XicPiPiWSXic2PKPiBeauty2CharmLine', - 'StrippingXib2XicKPiWSXic2PKPiBeauty2CharmLine', - 'StrippingLb2LcDstDstar2D0PiPIDBeauty2CharmLine', - 'StrippingLb2LcDstWSDstar2D0PiPIDBeauty2CharmLine', - 'StrippingX2LcLcBeauty2CharmLine', - 'StrippingX2LcLcWSBeauty2CharmLine', - 'StrippingLb2LcLcnLc2PKPiBeauty2CharmLine', - 'StrippingLb2LcLcnWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2Lc5PiLc2PKPiPIDBeauty2CharmLine', - 'StrippingLb2D0Lambda0DDD02HHBeauty2CharmLine', - 'StrippingLb2D0Lambda0LLD02HHBeauty2CharmLine', - 'StrippingLb2D0Lambda0DDD02K3PiBeauty2CharmLine', - 'StrippingLb2D0Lambda0LLD02K3PiBeauty2CharmLine', - 'StrippingLb2DpKKD2HHHBeauty2CharmLine', - 'StrippingLb2DpPiPiD2HHHBeauty2CharmLine', - 'StrippingLb2DpKPiD2HHHBeauty2CharmLine', - 'StrippingXib2D0pKKD02HHBeauty2CharmLine', - 'StrippingXib2D0pPiPiD02HHBeauty2CharmLine', - 'StrippingXib2D0pKPiD02HHBeauty2CharmLine', - #'StrippingLb2D0pKD02K3PiBeauty2CharmLine', - #'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', - #'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', - #'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', - #'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', - 'StrippingLb2DD0pD2HHHD02K3PiBeauty2CharmLine', - 'StrippingLb2DD0pD2HHHD2HHBeauty2CharmLine', - 'StrippingXibc2DpKD2HHHBeauty2CharmLine', - 'StrippingB2LcpbarKSSLc2PKPiBeauty2CharmLine', - 'StrippingB2LcpbarPiSSLc2PKPiBeauty2CharmLine', - 'StrippingB2LcpbarKWSLc2PKPiBeauty2CharmLine', - 'StrippingB2LcpbarPiWSLc2PKPiBeauty2CharmLine', - 'StrippingB2LcpbarLc2PKPiBeauty2CharmLine', - 'StrippingB2LcpbarWSLc2PKPiBeauty2CharmLine', - 'StrippingB2LcLcKLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKSDDLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKSWSDDLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKSLLLc2PKPiBeauty2CharmLine', - 'StrippingB02LcpbarKSWSLLLc2PKPiBeauty2CharmLine', - 'StrippingLb2DLambda0DDpiD2HHHBeauty2CharmLine', - 'StrippingLb2DLambda0LLpiD2HHHBeauty2CharmLine', - 'StrippingLb2DLambda0DDpiWSD2HHHBeauty2CharmLine', - 'StrippingLb2DLambda0LLpiWSD2HHHBeauty2CharmLine', - 'StrippingXib2D0Lambda0DDpiD02HHBeauty2CharmLine', - 'StrippingXib2D0Lambda0LLpiD02HHBeauty2CharmLine', - 'StrippingXib2D0Lambda0DDpiWSD02HHBeauty2CharmLine', - 'StrippingXib2D0Lambda0LLpiWSD02HHBeauty2CharmLine', - 'StrippingB02LcLambda0KLc2PKPiBeauty2CharmLine', - 'StrippingB02LcLambda0PiLc2PKPiBeauty2CharmLine', - 'StrippingB02LcLambda0PiWSLc2PKPiBeauty2CharmLine', - 'StrippingB02LcLambda0KWSLc2PKPiBeauty2CharmLine', - 'StrippingLb2sigmacpp4PiSigmacpp2LcPiLc2PKPiBeauty2CharmLine', - 'StrippingLb2sigmacppD0KPiSigmacpp2LcPiLc2PKPiBeauty2CharmLine', - 'StrippingB02LcSigmacppKSigmacpp2LcPiLc2PKPiBeauty2CharmLine', - 'StrippingB2LcXicPiXic2PKPiLc2PKPiBeauty2CharmLine', - 'StrippingBs2LcSigmapLc2PKPiSigmap2PPizBeauty2CharmLine', - 'StrippingB02DKLTUBD2HHHBeauty2CharmLine', - 'StrippingB02DsKPiPiLTUBD2HHHBeauty2CharmLine', - 'StrippingB02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine', - 'StrippingDstarUPB02D0KPiD2HHBeauty2CharmLine', -# -# # Bc+ -> D+ D0 - 'StrippingBc2DD0D2KSHHHD02HHBeauty2CharmLine', - 'StrippingBc2DD0D2KSHHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DD0D2KSHHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DD0D2KSHHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DD0D2KSHD02HHBeauty2CharmLine', - 'StrippingBc2DD0D2KSHD02KHHHBeauty2CharmLine', - 'StrippingBc2DD0D2KSHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DD0D2KSHD02KSHHBeauty2CharmLine', - 'StrippingBc2DD0D2HHHD02HHBeauty2CharmLine', - 'StrippingBc2DD0D2HHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DD0D2HHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DD0D2HHHD02KSHHBeauty2CharmLine', -# -# # Bc+ -> D*+ D0 - 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2HHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2HHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KHHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KHHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KHHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KHHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2HHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2HHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2HHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DGammaD2HHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02HHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02HHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02HHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02HHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KSHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KSHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KSHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2D0PID02KSHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02KSHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHD02HHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHD02KHHHBeauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHD02HHPI0Beauty2CharmLine', - 'StrippingBc2DstD0Dst2DPI0D2KSHD02KSHHBeauty2CharmLine', -# -# # Bc+ -> D+ D*0 - 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2KSHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DDst0D2HHHDst02D0GammaD02HHBeauty2CharmLine', -# -# # Bc+ -> D*+ D*0 - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02HHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02KHHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02KSHHBeauty2CharmLine', - 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02HHBeauty2CharmLine', - - ##B_c+ - 'StrippingBc2DsppbarBeauty2CharmLine', - 'StrippingBc2D0KpipiD02KPIPIDBeauty2CharmLine', - 'StrippingBc2D0KpipiD02K3PIPIDBeauty2CharmLine', - 'StrippingBc2LcKpbarLC2PKPIBeauty2CharmLine', - - #Xibc - 'StrippingXibc2LcD0D02KPiBeauty2CharmLine', - 'StrippingXibc2LcD0PiD02KPiBeauty2CharmLine', - 'StrippingXibc2D0D0pD02KPiBeauty2CharmLine', - 'StrippingXibc2LcPiPiOSLc2PKPiBeauty2CharmLine', - 'StrippingXibc2LcKPiOSLc2PKPiBeauty2CharmLine', - 'StrippingXibc2LcPiKOSLc2PKPiBeauty2CharmLine', - 'StrippingXibc02XiccpPiXiccp2Xic0PiBeauty2CharmLine', - 'StrippingXibc2XiccppPiXiccpp2XicPiBeauty2CharmLine', - 'StrippingXibc2XiccppPiXiccpp2LcK2PiBeauty2CharmLine', - 'StrippingXibc2LcPiLc2PKPiBeauty2CharmLine', - 'StrippingXibc2LcKLc2PKPiBeauty2CharmLine', - 'StrippingXibc2XicPiXic2PKPiBeauty2CharmLine', - 'StrippingXibc2Xic0PiXic02PKKPiBeauty2CharmLine', - 'StrippingXibc02XiccpMuXiccp2Xic0PiBeauty2CharmLine', - 'StrippingXibc2XiccppMuXiccpp2XicPiBeauty2CharmLine', - 'StrippingXibc02XiccpMuWSXiccp2Xic0PiBeauty2CharmLine', - 'StrippingXibc2XiccppMuWSXiccpp2XicPiBeauty2CharmLine', - 'StrippingX2Omegac0PiOmegac02PKKPiBeauty2CharmLine', - 'StrippingX2Omegac0KOmegac02PKKPiBeauty2CharmLine', - 'StrippingX2Omegac0KOSOmegac02PKKPiBeauty2CharmLine', - 'StrippingXibc2LcD0MuD02KPiBeauty2CharmLine', - 'StrippingXibc2LcD0MuWSD02KPiBeauty2CharmLine', - 'StrippingXibc2LcDMuD2KPiPiBeauty2CharmLine', - 'StrippingXibc2LcDMuWSD2KPiPiBeauty2CharmLine', -# - 'StrippingB2XicpbarPiXic2PKPiBeauty2CharmLine', - 'StrippingB02XicpbarPiPiXic2PKPiBeauty2CharmLine', - 'StrippingB02XicpbarKPiXic2PKPiBeauty2CharmLine', - 'StrippingB02DpbarLambdaDDD2HHHBeauty2CharmLine', - 'StrippingB02DpbarLambdaLLD2HHHBeauty2CharmLine', - 'StrippingB02DstpbarLambdaDDDst2D0PiBeauty2CharmLine', - 'StrippingB02DstpbarLambdaLLDst2D0PiBeauty2CharmLine', - 'StrippingB02DstpbarLambdaDDDst2D0PiD02K3PiBeauty2CharmLine', - 'StrippingB02DstpbarLambdaLLDst2D0PiD02K3PiBeauty2CharmLine', - 'StrippingB2D0pbarLambdaDDD02HHBeauty2CharmLine', - 'StrippingB2D0pbarLambdaLLD02HHBeauty2CharmLine', - 'StrippingB2D0pbarLambdaDDD02K3PiBeauty2CharmLine', - 'StrippingB2D0pbarLambdaLLD02K3PiBeauty2CharmLine', - 'StrippingB02D0pbarKLambdaDDD02HHBeauty2CharmLine', - 'StrippingB02D0pbarKLambdaLLD02HHBeauty2CharmLine', - 'StrippingB02D0pbarKLambdaDDD02K3PiBeauty2CharmLine', - 'StrippingB02D0pbarKLambdaLLD02K3PiBeauty2CharmLine', - 'StrippingXib2Xic0D0KD02KPiBeauty2CharmLine', - 'StrippingXib2XicDKD2HHHBeauty2CharmLine', - 'StrippingXib2XicDKDst2D0PiBeauty2CharmLine', - 'StrippingXib02XicD0KD02KPiBeauty2CharmLine', - 'StrippingXib02XicD0KD02K3PiBeauty2CharmLine', - 'StrippingOmegab2Xic0KPiPiXic02PKKPiBeauty2CharmLine', - 'StrippingXib02D0LambdaPiPiLLD02KPiBeauty2CharmLine', - 'StrippingXib02D0LambdaPiPiLLD02K3PiBeauty2CharmLine', - 'StrippingXib02D0LambdaPiPiDDD02KPiBeauty2CharmLine', - 'StrippingXib02D0LambdaPiPiDDD02K3PiBeauty2CharmLine', - 'StrippingXib2LcKHHHLc2PKPiBeauty2CharmLine', - 'StrippingXib2XicHHHHXic2PKPiBeauty2CharmLine' + +class LooseXiccBuilder(object): + '''Produces Xi_cc baryons for the Beauty2Charm module.''' + + def __init__(self, lc, pions, kaons, config): + self.lc = lc.pkpi + self.pions = pions + self.kaons = kaons + self.config = config + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + self.xiccpp = [self._makeLooseXiccpp2Xicpi()] + self.xiccpp2lck2pi = [self._makeLooseXiccpp2LcK2Pi()] + self.xiccp = [self._makeLooseXiccp2Xic0pi()] + + def _makeLooseXiccpp2Xicpi(self): + '''Makes Xi_cc++-> Xi_c+ pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_cc++') < %s*%s) " % (dm + 410, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_cc++') < %s*%s) " % (dm + 400, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_cc++ -> Xi_c+ pi+]cc"]) + return Selection( + 'LooseXiccpp2XicPiXic2PKPiPBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.xic + [self.pions]) + + def _makeLooseXiccp2Xic0pi(self): + '''Makes Xi_cc+ -> Xi_c0 pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_cc+ -> Xi_c0 pi+]cc"]) + return Selection( + 'LooseXiccp2Xic0PiXic02PKKPiPBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.xic0 + [self.pions]) + + def _makeLooseXiccpp2LcK2Pi(self): + '''Makes Xi_cc++ -> Lambda_c+ K- pi+ pi+ + cc''' + dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) + comboCuts = [ + LoKiCuts(['ASUMPT'], self.config).code(), + "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), + LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() ] - }, - 'WGs': ['B2OC'] -} + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["[Xi_cc++ -> Lambda_c+ K- pi+ pi+]cc"]) + return Selection( + 'LooseXiccpp2LcK2PiLc2PKPiBeauty2Charm', + Algorithm=cp, + RequiredSelections=self.lc + [self.kaons] + [self.pions]) + #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# +class XibcBuilder(object): + '''Makes all Xibc -> X lines.''' + + def __init__(self, lc, xicc, d, topoPions_PID, topoKaons_PID, + topoProtons_PID, pions, kaons, protons, muons, config, + configSL): + self.lc = lc.pkpi + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + self.omegac0 = lc.omegac0_pkkpi + self.xiccp = xicc.xiccp + self.xiccpp = xicc.xiccpp + self.xiccpp2lck2pi = xicc.xiccpp2lck2pi + #self.d = d + self.dp = d.d_cf_hhh_pid_tightpi + self.d0 = d.kpi_pid_tighter1_narrow #Tight PID cuts, 60 MeV mass window + self.pions = [pions] + self.kaons = [kaons] + self.protons = [protons] + self.muons = [muons] + self.topoPions_pid = [topoPions_PID] + self.topoKaons_pid = [topoKaons_PID] + self.protons_pid = [topoProtons_PID] + self.config = deepcopy(config) + self.configSL = deepcopy(configSL) + #self.config['AM_MIN'] = '5200*MeV' + self.lines = [] + + #----------------------- + # --- Hadronic Modes --- + #----------------------- + ### bc baryon -> Lc D0 + self._makeXibc2LcD0() + ### bc baryon -> Lc D0 H + self._makeXibc2LcD0H() + ### bc baryon -> Xi_cc+ pi- + self._makeXibc02XiccH() + ### bc baryon -> Xi_cc++ pi- (Xicc -> XicPi/LcK2Pi) + self._makeXibc2XiccH('Xiccpp2XicPi', self.xiccpp) + self._makeXibc2XiccH('Xiccpp2LcK2Pi', self.xiccpp2lck2pi) + ### bc baryon -> Lc H+H-, + self._makeXibc2LcHH() + # Xibc -> Lc+- H- + self._makeXibc2LcH() + # Xibc -> Xic+- Pi + self._makeXibc2XicH() + ### Xibc -> Xic0 Pi + self._makeXibc2Xic0H() + ### Xibc -> D0 D0 p + self._makeXibc2D0D0p() + # X -> Omega_c0 {Pi,K} + self._makeX2Omegac0H() + + #--------------------------- + # --- Semileptonic Modes --- + #--------------------------- + ### bc baryon -> Xi_cc+ mu- + self._makeXibc02XiccMu() + ### bc baryon -> Xi_cc++ mu- + self._makeXibc2XiccMu() + ### bc baryon -> Lc D0 H + self._makeXibc2LcD0Mu() + ### bc baryon -> Lc D0 H + self._makeXibc2LcDMu() + + def _makeXibc2D0D0p(self): + '''Makes Xibc -> D0 D0 p''' + decays = {'Xibc2D0D0p': ["Xi_bc+ -> D0 D0 p+", "Xi_bc~- -> D0 D0 p~-"]} + inputs = {'Xibc2D0D0p': self.d0 + self.protons} + b2d0d0p = makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(b2d0d0p, 1.0)) + + def _makeXibc2LcD0(self): + '''Makes RS Xibc -> Lc D0 + c.c.''' + decays = { + 'Xibc2LcD0': + ["Xi_bc+ -> Lambda_c+ D0", "Xi_bc~- -> Lambda_c~- D0"] + } + inputs = {'Xibc2LcD0': self.d0 + self.lc} + rs = makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2LcD0H(self): + '''Makes RS Xibc -> Lc D0 H + c.c. Need loose pions here as they may be soft''' + pions = self.pions + #kaons = self.kaons + decays = { + 'Xibc2LcD0Pi': + ["Xi_bc0 -> Lambda_c+ D0 pi-", "Xi_bc0 -> Lambda_c~- D0 pi+"] + } + inputs = {'Xibc2LcD0Pi': self.d0 + self.lc + pions} + rs = makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2LcHH(self): + '''Makes RS Xibc -> Lc H+H-, LC H-H- + c.c.''' + pions = self.pions + kaons = self.kaons + decays = { + 'Xibc2LcPiPiOS': ["[Xi_bc+ -> Lambda_c+ pi- pi+]cc"], + 'Xibc2LcKPiOS': ["[Xi_bc+ -> Lambda_c+ K- pi+]cc"], + 'Xibc2LcPiKOS': ["[Xi_bc+ -> Lambda_c+ K+ pi-]cc"], + } + inputs = { + 'Xibc2LcPiPiOS': self.lc + pions, + 'Xibc2LcKPiOS': self.lc + kaons + pions, + 'Xibc2LcPiKOS': self.lc + kaons + pions, + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc02XiccH(self): + '''Make RS Xi_bcd -> Xi_cc+ H (H=pi) + cc.''' + pions = self.topoPions_pid + #kaons = self.kaons + decays = {'Xibc02XiccpPi': ["[Xi_bc0 -> Xi_cc+ pi-]cc"]} + inputs = {'Xibc02XiccpPi': self.xiccp + pions} + rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2XiccH(self, dname, xiccpp2x): + '''Make RS and WS Xi_bcu -> Xi_cc++ H (H=pi) + cc.''' + pions = self.topoPions_pid + decays = {'Xibc2XiccppPi': ["[Xi_bc+ -> Xi_cc++ pi-]cc"]} + inputs = {'Xibc2XiccppPi': xiccpp2x + pions} + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2LcH(self): + '''Make RS Xibc -> Lc H (H=pi,K) + cc.''' + pions = self.topoPions_pid + kaons = self.topoKaons_pid + decays = { + 'Xibc2LcPi': ["[Xi_bc0 -> Lambda_c+ pi-]cc"], + 'Xibc2LcK': ["[Xi_bc0 -> Lambda_c+ K-]cc"] + } + inputs = {'Xibc2LcPi': self.lc + pions, 'Xibc2LcK': self.lc + kaons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2XicH(self): + '''Make RS Xibc -> Xi_c+ H (H=pi) + cc.''' + pions = self.topoPions_pid + #kaons = self.topoKaons + decays = {'Xibc2XicPi': ["[Xi_bc0 -> Xi_c+ pi-]cc"]} + inputs = {'Xibc2XicPi': self.xic + pions} + rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2Xic0H(self): + '''Make RS and WS Xi_bc -> Xi_c0 H (H=pi) + cc.''' + pions = self.topoPions_pid + decays = {'Xibc2Xic0Pi': ["[Xi_bc+ -> Xi_c0 pi+]cc"]} + inputs = {'Xibc2Xic0Pi': self.xic0 + pions} + rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeX2Omegac0H(self): + '''Make Omega_b --> Omega_c {pi,K} and Xibc+ --> Omega_c0 K+ + cc.''' + pions = self.topoPions_pid + kaons = self.topoKaons_pid + decays = {'X2Omegac0Pi': ["[Omega_b- -> Omega_c0 pi-]cc"]} + inputs = {'X2Omegac0Pi': self.omegac0 + pions} + rspi = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) + decays = {'X2Omegac0K': ["[Omega_b- -> Omega_c0 K-]cc"]} + inputs = {'X2Omegac0K': self.omegac0 + kaons} + rsk = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) + decays = {'X2Omegac0KOS': ["[Xi_bc+ -> Omega_c0 K+]cc"]} + inputs = {'X2Omegac0KOS': self.omegac0 + kaons} + osk = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) + self.lines.append(ProtoLine(rspi, 1.0)) + self.lines.append(ProtoLine(rsk, 1.0)) + self.lines.append(ProtoLine(osk, 1.0)) + + def _makeXibc02XiccMu(self): + '''Make RS+WS Xi_bcd -> Xi_cc+ mu- + cc.''' + muons = self.muons + decays = {'Xibc02XiccpMu': ["[Xi_bc0 -> Xi_cc+ mu-]cc"]} + inputs = {'Xibc02XiccpMu': self.xiccp + muons} + rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.configSL) + decays = {'Xibc02XiccpMuWS': ["[Xi_bc0 -> Xi_cc+ mu+]cc"]} + inputs = {'Xibc02XiccpMuWS': self.xiccp + muons} + ws = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.configSL) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 1.0)) + + def _makeXibc2XiccMu(self): + '''Make RS+WS Xi_bcu -> Xi_cc++ mu- + cc.''' + muons = self.muons + decays = {'Xibc2XiccppMu': ["[Xi_bc+ -> Xi_cc++ mu-]cc"]} + inputs = {'Xibc2XiccppMu': self.xiccpp + muons} + rs = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, self.configSL) + decays = {'Xibc2XiccppMuWS': ["[Xi_bc+ -> Xi_cc++ mu+]cc"]} + inputs = {'Xibc2XiccppMuWS': self.xiccpp + muons} + ws = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, self.configSL) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 1.0)) + + def _makeXibc2LcD0Mu(self): + '''Makes RS Xibc -> Lc D0 mu + c.c. Need loose pions here as they may be soft''' + muons = self.muons + decays = { + 'Xibc2LcD0Mu': + ["Xi_bc0 -> Lambda_c+ D0 mu-", "Xi_bc0 -> Lambda_c~- D0 mu+"] + } + inputs = {'Xibc2LcD0Mu': self.d0 + self.lc + muons} + rs = makeB2XSels(decays, 'D02KPi', inputs, self.configSL) + decays = { + 'Xibc2LcD0MuWS': + ["Xi_bc0 -> Lambda_c+ D0 mu+", "Xi_bc0 -> Lambda_c~- D0 mu-"] + } + inputs = {'Xibc2LcD0MuWS': self.d0 + self.lc + muons} + ws = makeB2XSels(decays, 'D02KPi', inputs, self.configSL) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 1.0)) + + def _makeXibc2LcDMu(self): + '''Makes RS Xibc -> Lc D+ mu + c.c. Need loose muons here as they may be soft''' + muons = self.muons + decays = {'Xibc2LcDMu': ["[Xi_bc+ -> Lambda_c+ D+ mu-]cc"]} + inputs = {'Xibc2LcDMu': self.dp + self.lc + muons} + rs = makeB2XSels(decays, 'D2KPiPi', inputs, self.configSL) + decays = {'Xibc2LcDMuWS': ["[Xi_bc+ -> Lambda_c+ D+ mu+]cc"]} + inputs = {'Xibc2LcDMuWS': self.dp + self.lc + muons} + ws = makeB2XSels(decays, 'D2KPiPi', inputs, self.configSL) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 1.0)) + + +#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# + + +class Lb2XBuilder(object): + '''Makes all Lambda_b -> X lines.''' + + def __init__(self, lc, lcstar, xicc, d, hh, topoPions, topoPions_PID, topoKaons, + topoKaons_PID, topoProtons, topoProtons_PID, pions, kaons, ks, + hhh, dst, lambda0, config, config_xibm): + + self.lc = lc.pkpi + self.lc_pkk = lc.pkk + self.lc_ppipi = lc.ppipi + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + self.xic0_ximpip_LL = lc.xic0_ximpip_LL + self.xic0_ximpip_DD = lc.xic0_ximpip_DD + self.xic0_lmd0kmpip_LL = lc.xic0_lmd0kmpip_LL + self.xic0_lmd0kmpip_DD = lc.xic0_lmd0kmpip_DD + self.xic0_pkskm_LL = lc.xic0_pkskm_LL + self.xic0_pkskm_DD = lc.xic0_pkskm_DD + + self.lc_lambdapiLL = lc.lambdapiLL + self.lc_lambdapiDD = lc.lambdapiDD + self.lcstar2595 = lcstar.lcstar2595 + self.lcstar2625 = lcstar.lcstar2625 + self.xic = lc.xic_pkpi + self.xic0 = lc.xic0_pkkpi + + self.omegac0 = lc.omegac0_pkkpi + self.lc_tight = lc.pkpi_tight_win #tight Lc + self.xic_tight = lc.xic_pkpi_tight_win #tight Xic + self.xic_tightest = lc.xic_pkpi_tightest_win #tight Xic + self.omegac0_tight = lc.omegac0_pkkpi_tight_win #tight Omegac0 + self.xiccp = xicc.xiccp + self.xiccpp = xicc.xiccpp + self.sigmacpp = xicc.sigmacpp + self.d = d + self.d0_pid = d.hh_pid + self.d0_k3pi_pid = d.k3pi_pid + self.d0_k3pi = d.k3pi_pid_tighter1_narrow #Tight PID cuts, 60 MeV mass window + self.d0_kshh_dd = d.kshh_dd_pid + self.d0_kshh_ll = d.kshh_ll_pid + self.hh = hh + self.hhh = hhh + self.dst = dst + self.ds = d.ds_hhh_pid_tight + self.dds = d.hhh_pid_tight + self.lambda0 = lambda0 + self.pions = [pions] + self.kaons = [kaons] + self.topoPions = [topoPions] + self.topoPions_pid = [topoPions_PID] + self.topoKaons = [topoKaons] + self.topoKaons_pid = [topoKaons_PID] + self.protons = [topoProtons] + self.protons_pid = [topoProtons_PID] + self.ks = ks + self.config = deepcopy(config) + self.config_xibm = config_xibm + self.config['AM_MIN'] = '5200*MeV' + self.lines = [] + # Lb -> Lc+- H-+ (+WS) + self._makeLb2LcH() + # Lb -> Lc+ D-/D_s-/D*-/D_s*- + self._makeLb2LcDm() + # Lb -> Lc+/Lc(2595)+/Lc(2625)+ D_s- + self._makeLb2LcDs() + # Lb -> Xic+- H-+ (+WS) + self._makeLb2XicH() + + ### Xib- -> Xic0 H- (+WS) + self._makeXib2Xic0H() + ### Omegab- -> Omegac0 H- (+WS) + self._makeOmegab2Omegac0H() + ### Omega_b- -> Xic+ K- pi-, Xic+ -> pKpi + self._makeOmegab2XicpKPi() + ### Omega_b- -> Lambda_c+ K- K- + self._makeOmegab2LcKK() + ### Xib0 -> Xic+ D- (+WS) + self._makeXib02XicD() + ### Xib- -> Xic0 D- (+WS) + self._makeXib2Xic0D() + ### Xib0 -> Xic+ HHH- (+WS) (HHH = 3pi, Kpipi) + self._makeXib02XicHHH() + ###Xib- -> Xic0 HHH- (+WS) (HHH = 3pi, Kpipi) + self._makeXib2Xic0HHH() + ### Xb- -> Lc+ D(s)- K- + self._makeXib2LcDK() + ### Xb- -> Lc+ Ds- K- Pi+ + self._makeXib02LcDsKPi() + ### Xb- -> Xic0 Pim,,Xic0 -> Xim Pip + self._makeXibm2Xic0Pim2XimPipPim("LL") + self._makeXibm2Xic0Pim2XimPipPim("DD") + ### Xb- -> Xic0 Pim,,Xic0 -> Lambda0 Km pip + self._makeXibm2Xic0Pim2Lambda0KmPipPim("LL") + self._makeXibm2Xic0Pim2Lambda0KmPipPim("DD") + ### Xb- -> Xic0 Pim,,Xic0 -> p Ks Km + self._makeXibm2Xic0Pim2PKsKmPim("LL") + self._makeXibm2Xic0Pim2PKsKmPim("DD") + + ### B- -> Lc+ Ds- pbar + self._makeB2LcDspbar() + + # Sb+- -> D0(HH) p+- + self._makeSb2D0P() + # Sb -> D-+(HHH) p+- + self._makeSb02DP() + # Lb -> D0(HH/K3Pi) p+- H-+ + self._makeLb2D0HHPH() + # Lb -> D0(HH) p+- p-+ (+WS) + self._makeLb2D0PPbar() + # Lb -> Lc+- 3Pi, KPiPi, ppbarPi, ppbarK (+WS) + self._makeLb2LcHHH() + # Lb -> Lc D (+WS) + self._makeLb2LcD() + # Lb -> Lc+ KS K- + self._makeLb2LcKSK("LL") + self._makeLb2LcKSK("DD") + + # Lb -> Lc D K* + MMSeld2hhh = [ + filterSelection( + 'D2HHH4LcDKst', + "(MM > (1864.84-50.)*MeV) & (MM < (1968.49+50.)*MeV)", + self.d.hhh_pid) + ] + self._makeLb2LcDKst(MMSeld2hhh) + self._makeLb2LcDstKst() + # Lb -> Lc D*0 K, D*0 -> D0 gamma/Pi0_resolved/merged + self._makeLb2Dst0K('Dst02D0GammaD2HH', self.dst.d0gamma_hh_pid) + self._makeLb2Dst0K('Dst02D0Pi0ResolvedD2HH', + self.dst.d0pi0_resolved_pid) + self._makeLb2Dst0K('Dst02D0Pi0MergedD2HH', self.dst.d0pi0_merged_pid) + + ### bc baryon -> Lc D0 + self._makeX2LcD0() + ### bc baryon -> Lc D0 H (+WS) + self._makeX2LcD0H() + ### bc baryon -> Xi_cc+ pi- + self._makeX02XiccH() + ### bc baryon -> Xi_cc++ pi- + self._makeX2XiccH() + ### Xib -> Lc H+H-, LcH-H- (+WS) + self._makeX2LcHH() + ### bc baryon -> Lc HHHH (+WS) + self._makeX2LcKPiPiPi() + ### Xib,Omega_b -> Lc HH (+WS) + self._makeXib2XicHH() + + # Lb -> Lc D* (+WS) + self._makeLb2LcDst() + # X -> Lc Lc (+WS) + self._makeX2LcLc() + # Lb -> Lc Lc n (+WS) + self._makeLb2LcLcn() + # Lb -> Lc 5pi + self._makeLb2Lc5Pi() + # Lb -> D0 Lambda0, D0(HH/K3Pi) + self._makeLb2D0Lambda0() + + # Lb -> D+ p h- h- + self._makeLb2DpHH() + # Xib -> D0 p h- h- + self._makeXib2D0pHH() + + # B -> Lc pbar h- + self._makeB2LcpbarH() + # B-> Lc pbar + self._makeB2Lcpbar() + # B- -> Lc Lc K- + self._makeB2LcLcK() + + # B0->Lc pbar Ks + self._makeB02LcpbarKS('DD') + self._makeB02LcpbarKS('LL') + + # Lb -> D(s)+ Lambda0 pi- + self._makeLb2DLambda0pi() + # Xib -> D0 Lambda0 pi- + self._makeXib2D0Lambda0pi() + # B0 -> Lambdac+ Lambda0bar h- + self._makeB2LcLambda0barH() + + # Lb -> D0 p h (D02K3Pi/D02KsDDHH/D02KsLLHH) + self._makeLb2D0ph('D02K3Pi', self.d.k3pi_pid) + self._makeLb2D0ph('D02HHHHPID', self.d.hhhh_pid) + self._makeLb2D0ph('D02KsDDHH', self.d.kshh_dd_pid) + self._makeLb2D0ph('D02KsLLHH', self.d.kshh_ll_pid) + # Lb -> D0 p h WS + self._makeLb2D0phWS('D02K3PiWS', self.d.k3pi_pid) + self._makeLb2D0phWS('D02HHHHPIDWS', self.d.hhhh_pid) + self._makeLb2D0phWS('D02KsDDHHWS', self.d.kshh_dd_pid) + self._makeLb2D0phWS('D02KsLLHHWS', self.d.kshh_ll_pid) + + # Lb -> D(s)- D0(K3Pi/HH) p + self._makeLb2DD0p('D02K3Pi', self.d.k3pi_pid) + self._makeLb2DD0p('D2HH', self.d.hh_pid) + # Xi_bc+ --> D+ p K- + self._makeXibc2DpK() + + # Lb -> Lc+- 3Pi + self._makeLb2LcPiPiPiFullDST() + # Xib -> Xic+- 3Pi + self._makeXib02XicPiPiPiFullDST() + # Xib- -> Xic+- 3Pi + self._makeXib2Xic0PiPiPiFullDST() + # Omegab- -> Omegac0- 3Pi + self._makeOmegab2Omegac0PiPiPiFullDST() + + # Lb->sigmacpp(LcPi)4Pi + self._makeLb2sigmacpp4Pi() + # Lb->sigmacpp(LcPi)D0(KPi)KPi + self._makeLb2sigmacppD0KPi() + + # Lb -> D D Lambda0 (+18 lines) + self._makeLb2DDLambda('DD') + self._makeLb2D0D0Lambda('DD') + self._makeLb2DstDLambda('DD') + self._makeLb2DstDstLambda('DD') + self._makeLb2DDLambda('LL') + self._makeLb2D0D0Lambda('LL') + self._makeLb2DstDLambda('LL') + self._makeLb2DstDstLambda('LL') + + # Lb -> D+ D- p K- + self._makeLb2DDpK() + + # B0 -> Lc+ Sigmacpp(LcPi) K+ + self._makeB02LcSigmacppK() + + # Bs -> Lc- Sigma+ + self._makeBs2LcSigma() + + # B+ -> Lc+ Xic- pi+ + self._makeB2LcXicPi() + + # B- -> Xic+ pi- pbar + self._makeB2XicpbarPi() + # B0 -> Xic+ pi+ pi- pbar + self._makeB02XicpbarPiPi() + # B0 -> Xic+ K+ pi- pbar + self._makeB02XicpbarKPi() + # B0 -> Lambda0 D(*)+ pbar + self._makeB02DpbarLambda('DD') + self._makeB02DpbarLambda('LL') + # B- -> Lambda0 D0 pbar + self._makeB2D0pbarLambda('DD') + self._makeB2D0pbarLambda('LL') + # B0 -> Lambda0 D0 pbar K + self._makeB02D0pbarKLambda('DD') + self._makeB02D0pbarKLambda('LL') + + # Xib- -> Xic0 D~0 K-, Xib- -> Xic+ D- K-, Xib- -> Xic+ D*- K- + self._makeXib2XicDK() + # Xib0 -> Xic+ D~0 K- + self._makeXib02XicD0K() + # Omegab- -> Xic0 K Pi Pi + self._makeOmegab2Xic0KPiPi() + # Xib0 -> D0 Lambda0 pi+ pi- + self._makeXib02D0LambdaPiPi() + # Xib- -> Lambdac+ pi+ K- pi- pi- + self._makeXib2LcKHHH() + # Xib- -> Xic+ pi+ pi- pi- pi- + self._makeXib2XicHHHH() + + def _makeLb2LcH(self): + '''Make RS and WS Lb -> Lc H (H=pi,K) + cc.''' + pions = self.topoPions + kaons = self.topoKaons + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = { + 'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"], + 'Lb2LcK': ["[Lambda_b0 -> Lambda_c+ K-]cc"] + } + inputs = {'Lb2LcPi': self.lc + pions, 'Lb2LcK': self.lc + kaons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = { + 'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"], + 'Lb2LcKWS': ["[Lambda_b0 -> Lambda_c+ K+]cc"] + } + inputs = {'Lb2LcPiWS': self.lc + pions, 'Lb2LcKWS': self.lc + kaons} + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = {'Lb2LcPiNoIP': ["[Lambda_b0 -> Lambda_c+ pi-]cc"]} + #inputs = {'Lb2LcPiNoIP': self.lc+pions} + inputs = {'Lb2LcPiNoIP': self.lc_tight + pions} # use TightLc + noip = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config, False) + decays = {'Lb2LcPiNoIPWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"]} + #inputs = {'Lb2LcPiNoIPWS': self.lc+pions} + inputs = {'Lb2LcPiNoIPWS': self.lc_tight + pions} + noip_ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config, False) + decays = {'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"] } + inputs = {'Lb2LcPi': self.lc_pkk + pions} + rs_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) + decays = {'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"] } + inputs = {'Lb2LcPiWS': self.lc_pkk + pions} + ws_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) + decays = {'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"] } + inputs = {'Lb2LcPi': self.lc_ppipi + pions} + rs_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) + decays = {'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"] } + inputs = {'Lb2LcPiWS': self.lc_ppipi + pions} + ws_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + self.lines.append(ProtoLine(noip, 1.0)) + self.lines.append(ProtoLine(noip_ws, 0.1)) + self.lines.append(ProtoLine(rs_pkk, 1.0)) + self.lines.append(ProtoLine(ws_pkk, 0.1)) + self.lines.append(ProtoLine(rs_ppipi, 1.0)) + self.lines.append(ProtoLine(ws_ppipi, 0.1)) + + def _makeLb2LcDm(self): + '''Make Lb0 -> Lc+ D-/D_s- + cc.''' + '''Make Lb0 -> Lc+ D*- + cc.''' + '''Make Lb0 -> Lc+ D_s*- + cc.''' + lcLL = self.lc_lambdapiLL + lcDD = self.lc_lambdapiDD + d2x = self.d.hhh_pid + decays = { + 'Lb2LcDLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D-]cc"], + 'Lb2LcDLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D-]cc"], + } + inputs = { + 'Lb2LcDLc2Lambda0LLPi': lcLL + d2x, + 'Lb2LcDLc2Lambda0DDPi': lcDD + d2x, + } + dname = "D2HHHPID" + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + #comboCuts = [ + # LoKiCuts(['AM'], self.config).code(), + #] + #comboCuts = LoKiCuts.combine(comboCuts) + #momCuts = [ + # #LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() + # 'ALL', + #] + #momCuts = LoKiCuts.combine(momCuts) + + d2x = self.dst.d0pi_pid + decays = { + 'Lb2LcDstLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], + 'Lb2LcDstLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], + } + inputs = { + 'Lb2LcDstLc2Lambda0LLPi': lcLL + d2x, + 'Lb2LcDstLc2Lambda0DDPi': lcDD + d2x, + } + + dname = "" + #names = list(decays.keys()) + #rs = [] + #sname = names[0] + dname + 'Beauty2Charm' + #cp = CombineParticles( + # CombinationCut=comboCuts, + # MotherCut=momCuts, + # DecayDescriptors=decays[names[0]]) + #r = Selection( + # sname, + # Algorithm=cp, + # RequiredSelections=inputs[names[0]]) + #rs.append(r) + #sname = names[1] + dname + 'Beauty2Charm' + #cp = CombineParticles( + # CombinationCut=comboCuts, + # MotherCut=momCuts, + # DecayDescriptors=decays[names[1]]) + #r = Selection( + # sname, + # Algorithm=cp, + # RequiredSelections=inputs[names[1]]) + #rs.append(r) + #self.lines.append(ProtoLine(rs, 1.0)) + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + d2x = self.dst.d0pi_k3pi_pid + decays = { + 'Lb2LcDstLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], + 'Lb2LcDstLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], + } + inputs = { + 'Lb2LcDstLc2Lambda0LLPi': lcLL + d2x, + 'Lb2LcDstLc2Lambda0DDPi': lcDD + d2x, + } + dname = "DstarD02K3Pi" + #names = list(decays.keys()) + #rs = [] + #sname = names[0] + dname + 'Beauty2Charm' + #cp = CombineParticles( + # CombinationCut=comboCuts, + # MotherCut=momCuts, + # DecayDescriptors=decays[names[0]]) + #r = Selection( + # sname, + # Algorithm=cp, + # RequiredSelections=inputs[names[0]]) + #rs.append(r) + #sname = names[1] + dname + 'Beauty2Charm' + #cp = CombineParticles( + # CombinationCut=comboCuts, + # MotherCut=momCuts, + # DecayDescriptors=decays[names[1]]) + #r = Selection( + # sname, + # Algorithm=cp, + # RequiredSelections=inputs[names[1]]) + #rs.append(r) + #self.lines.append(ProtoLine(rs, 1.0)) + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + d2x = self.dst.dgamma_hhh_pid + decays = { + 'Lb2LcDsstarLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*_s-]cc"], + 'Lb2LcDsstarLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*_s-]cc"], + } + inputs = { + 'Lb2LcDsstarLc2Lambda0LLPi': lcLL + d2x, + 'Lb2LcDsstarLc2Lambda0DDPi': lcDD + d2x, + } + dname = "DsstarD02HHHPID" + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2LcDs(self): + '''Make Lambda_b0 -> Lambda_c+ D_s-''' + '''Make Lambda_b0 -> Lambda_c(2595)+ D_s-''' + '''Make Lambda_b0 -> Lambda_c(2625)+ D_s-''' + + config = deepcopy(self.config) + config['AM_MIN'] = '4700*MeV' + config['AM_MAX'] = '6500*MeV' + + lc = self.lc + lcstar2595 = self.lcstar2595 + lcstar2625 = self.lcstar2625 + d2x = self.d.hhh_pid + decays = { + 'Lb2LcDs': ["[Lambda_b0 -> Lambda_c+ D-]cc"], + 'Lb2Lc2595Ds': ["[Lambda_b0 -> Lambda_c(2595)+ D-]cc"], + 'Lb2Lc2625Ds': ["[Lambda_b0 -> Lambda_c(2625)+ D-]cc"], + } + inputs = { + 'Lb2LcDs': lc + d2x, + 'Lb2Lc2595Ds': lcstar2595 + d2x, + 'Lb2Lc2625Ds': lcstar2625 + d2x, + } + dname = "D2HHHPID" + rs = makeB2XSels(decays, dname, inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = { + 'Lb2LcDsWS': ["[Lambda_b0 -> Lambda_c+ D+]cc"], + 'Lb2Lc2595DsWS': ["[Lambda_b0 -> Lambda_c(2595)+ D+]cc"], + 'Lb2Lc2625DsWS': ["[Lambda_b0 -> Lambda_c(2625)+ D+]cc"], + } + inputs = { + 'Lb2LcDsWS': lc + d2x, + 'Lb2Lc2595DsWS': lcstar2595 + d2x, + 'Lb2Lc2625DsWS': lcstar2625 + d2x, + } + ws = makeB2XSels(decays, dname, inputs, config) + self.lines.append(ProtoLine(ws, 1.0)) + + def _makeB2Lcpbar(self): + '''Make RS and WS B -> Lc pbar + cc.''' + protons = self.protons + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = {'B2Lcpbar': ["[B0 -> Lambda_c+ p~-]cc"]} + inputs = {'B2Lcpbar': self.lc + protons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = {'B2LcpbarWS': ["[B0 -> Lambda_c+ p+]cc"]} + inputs = {'B2LcpbarWS': self.lc + protons} + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeB2LcLcK(self): + '''Make B- -> Lc- Lc+ K- + cc.''' + config = deepcopy(self.config) + config['BPVIPCHI2_MAX'] = '50' + decays = {'B2LcLcK': ["[B- -> Lambda_c~- Lambda_c+ K-]cc"]} + inputs = {'B2LcLcK': self.lc + self.topoKaons_pid} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2XicH(self): + '''Make RS and WS Lb -> Xi_c+ H (H=pi,K) + cc.''' + pions = self.topoPions + kaons = self.topoKaons + decays = { + 'Lb2XicPi': ["[Lambda_b0 -> Xi_c+ pi-]cc"], + 'Lb2XicK': ["[Lambda_b0 -> Xi_c+ K-]cc"] + } + inputs = {'Lb2XicPi': self.xic + pions, 'Lb2XicK': self.xic + kaons} + rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + decays = { + 'Lb2XicPiWS': ["[Lambda_b0 -> Xi_c+ pi+]cc"], + 'Lb2XicKWS': ["[Lambda_b0 -> Xi_c+ K+]cc"] + } + inputs = { + 'Lb2XicPiWS': self.xic + pions, + 'Lb2XicKWS': self.xic + kaons + } + ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + decays = {'Lb2XicPiNoIP': ["[Lambda_b0 -> Xi_c+ pi-]cc"]} + inputs = {'Lb2XicPiNoIP': self.xic + pions} + inputs = {'Lb2XicPiNoIP': self.xic_tight + pions} + noip = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config, False) + decays = {'Lb2XicPiNoIPWS': ["[Lambda_b0 -> Xi_c+ pi+]cc"]} + inputs = {'Lb2XicPiNoIPWS': self.xic_tight + pions} + #inputs = {'Lb2XicPiNoIPWS':self.xic+pions} + noip_ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config, False) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + self.lines.append(ProtoLine(noip, 1.0)) + self.lines.append(ProtoLine(noip_ws, 0.1)) + + def _makeXib2Xic0H(self): + '''Make RS and WS Xi_b- -> Xi_c0 H (H=pi,K) + cc.''' + pions = self.topoPions + kaons = self.topoKaons + decays = { + 'Xib2Xic0Pi': ["[Xi_b- -> Xi_c0 pi-]cc"], + 'Xib2Xic0K': ["[Xi_b- -> Xi_c0 K-]cc"] + } + inputs = { + 'Xib2Xic0Pi': self.xic0 + pions, + 'Xib2Xic0K': self.xic0 + kaons + } + rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + decays = { + 'Xib2Xic0PiWS': ["[Xi_b- -> Xi_c0 pi+]cc"], + 'Xib2Xic0KWS': ["[Xi_b- -> Xi_c0 K+]cc"] + } + inputs = { + 'Xib2Xic0PiWS': self.xic0 + pions, + 'Xib2Xic0KWS': self.xic0 + kaons + } + ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + decays = {'Xib2Xic0PiNoIP': ["[Xi_b- -> Xi_c0 pi-]cc"]} + inputs = {'Xib2Xic0PiNoIP': self.xic0 + pions} + noip = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config, False) + decays = {'Xib2Xic0PiNoIPWS': ["[Xi_b- -> Xi_c0 pi+]cc"]} + inputs = {'Xib2Xic0PiNoIPWS': self.xic0 + pions} + noip_ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config, False) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + self.lines.append(ProtoLine(noip, 1.0)) + self.lines.append(ProtoLine(noip_ws, 0.1)) + + def _makeOmegab2Omegac0H(self): + '''Make RS and WS Omega_b- -> Omega_c0 H (H=pi,K) + cc.''' + pions = self.topoPions + kaons = self.topoKaons + decays = { + 'Omegab2Omegac0Pi': ["[Omega_b- -> Omega_c0 pi-]cc"], + 'Omegab2Omegac0K': ["[Omega_b- -> Omega_c0 K-]cc"] + } + inputs = { + 'Omegab2Omegac0Pi': self.omegac0 + pions, + 'Omegab2Omegac0K': self.omegac0 + kaons + } + rs = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) + decays = { + 'Omegab2Omegac0PiWS': ["[Omega_b- -> Omega_c0 pi+]cc"], + 'Omegab2Omegac0KWS': ["[Omega_b- -> Omega_c0 K+]cc"] + } + inputs = { + 'Omegab2Omegac0PiWS': self.omegac0 + pions, + 'Omegab2Omegac0KWS': self.omegac0 + kaons + } + ws = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) + decays = {'Omegab2Omegac0PiNoIP': ["[Omega_b- -> Omega_c0 pi-]cc"]} + #inputs = {'Omegab2Omegac0PiNoIP': self.omegac0+pions} + inputs = {'Omegab2Omegac0PiNoIP': self.omegac0_tight + pions} + noip = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config, False) + decays = {'Omegab2Omegac0PiNoIPWS': ["[Omega_b- -> Omega_c0 pi+]cc"]} + #inputs = {'Omegab2Omegac0PiNoIPWS':self.omegac0+pions} + inputs = {'Omegab2Omegac0PiNoIPWS': self.omegac0_tight + pions} + noip_ws = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config, + False) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + self.lines.append(ProtoLine(noip, 1.0)) + self.lines.append(ProtoLine(noip_ws, 0.1)) + + def _makeOmegab2XicpKPi(self): + '''Make Omega_b- -> Xic+ K- pi-, Xic+ -> pKpi''' + pions = self.pions + kaons = self.kaons + decays = {'Omegab2XicpKPi': ["[Omega_b- -> Xi_c+ K- pi-]cc"]} + inputs = {'Omegab2XicpKPi': self.xic + kaons + pions} + rs = makeB2XSels(decays, 'Xicp2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeOmegab2LcKK(self): + '''Make Omega_b- -> Lambda_c+ K- K-''' + kaons = self.kaons + decays = {'Omegab2LcKK': ["[Omega_b- -> Lambda_c+ K- K-]cc"]} + inputs = {'Omegab2LcKK': self.lc + kaons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXib02XicD(self): + '''Make RS and WS Xi_b0 -> Xi_c+ D (D=D-,Ds) + cc.''' + decays = {'Xib02XicD': ["[Xi_b0 -> Xi_c+ D-]cc"]} + inputs = {'Xib02XicD': self.xic + self.d.hhh_cf_pid} + rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + decays = {'Xib02XicDWS': ["[Xi_b0 -> Xi_c+ D+]cc"]} + inputs = {'Xib02XicDWS': self.xic + self.d.hhh_cf_pid} + ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib2Xic0D(self): + '''Make RS and WS Xi_b- -> Xi_c0 D (D=D-,Ds) + cc.''' + decays = {'Xib2Xic0D': ["[Xi_b- -> Xi_c0 D-]cc"]} + inputs = {'Xib2Xic0D': self.xic0 + self.d.hhh_cf_pid} + rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + decays = {'Xib2Xic0DWS': ["[Xi_b- -> Xi_c0 D+]cc"]} + inputs = {'Xib2Xic0DWS': self.xic0 + self.d.hhh_cf_pid} + ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXibm2Xic0Pim2XimPipPim(self, lmd): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Xi- pi+ + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 90, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_ximpip_DD + if "LL" in lmd: + used_xic0 = self.xic0_ximpip_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2XimPipPim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibm2Xic0Pim2Lambda0KmPipPim(self, lmd): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Lmd0 K- pi+ + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_lmd0kmpip_DD + if "LL" in lmd: + used_xic0 = self.xic0_lmd0kmpip_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2Lambda0KmPipPim' + lmd + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibm2Xic0Pim2PKsKmPim(self, ks): + #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> p Ks K- + cc + dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) + comboCuts = [ + "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) + ] + comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) + comboCuts = LoKiCuts.combine(comboCuts) + momCuts = [ + "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), + ] + momCuts = LoKiCuts.combine(momCuts) + cp = CombineParticles( + CombinationCut=comboCuts, + MotherCut=momCuts, + DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) + used_xic0 = self.xic0_pkskm_DD + if "LL" in ks: + used_xic0 = self.xic0_pkskm_LL + else: + pass + rs = [Selection( + 'Xibm2Xic0Pim2PKsKmPim' + ks + 'Beauty2Charm', + Algorithm=cp, + RequiredSelections=used_xic0 + self.pions )] + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXib02XicHHH(self): + '''Make RS and WS Xi_b0 -> Xi_c+ HHH (HHH=3pi,Kpipi) + cc.''' + pipipi = self.hhh.pipipi + kpipi = self.hhh.kpipi + decays = { + 'Xib02XicPiPiPi': ["[Xi_b0 -> Xi_c+ a_1(1260)-]cc"], + 'Xib02XicKPiPi': ["[Xi_b0 -> Xi_c+ K_1(1270)-]cc"] + } + inputs = { + 'Xib02XicPiPiPi': self.xic + pipipi, + 'Xib02XicKPiPi': self.xic + kpipi + } + rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + decays = { + 'Xib02XicPiPiPiWS': ["[Xi_b0 -> Xi_c+ a_1(1260)+]cc"], + 'Xib02XicKPiPiWS': ["[Xi_b0 -> Xi_c+ K_1(1270)+]cc"] + } + inputs = { + 'Xib02XicPiPiPiWS': self.xic + pipipi, + 'Xib02XicKPiPiWS': self.xic + kpipi + } + ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib2Xic0HHH(self): + '''Make RS and WS Xi_b- -> Xi_c0 HHH- (HHH=3pi,Kpipi) + cc.''' + pipipi = self.hhh.pipipi + kpipi = self.hhh.kpipi + decays = { + 'Xib2Xic0PiPiPi': ["[Xi_b- -> Xi_c0 a_1(1260)-]cc"], + 'Xib2Xic0KPiPi': ["[Xi_b- -> Xi_c0 K_1(1270)-]cc"] + } + inputs = { + 'Xib2Xic0PiPiPi': self.xic0 + pipipi, + 'Xib2Xic0KPiPi': self.xic0 + kpipi + } + rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + decays = { + 'Xib2Xic0PiPiPiWS': ["[Xi_b- -> Xi_c0 a_1(1260)+]cc"], + 'Xib2Xic0KPiPiWS': ["[Xi_b- -> Xi_c0 K_1(1270)+]cc"] + } + inputs = { + 'Xib2Xic0PiPiPiWS': self.xic0 + pipipi, + 'Xib2Xic0KPiPiWS': self.xic0 + kpipi + } + ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2LcHHH(self): + '''Make RS and WS X_b ->Lc HHH (H=pi,K) + cc.''' + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + pipipi = self.hhh.pipipi + kpipi = self.hhh.kpipi + kkpi = self.hhh.kkpi + ppbarpi = self.hhh.ppbarpi + ppbark = self.hhh.ppbark + pppbar = self.hhh.pppbar + + ppipi = self.hhh.ppipiOS + pkpi = self.hhh.pkpiOS + pkk = self.hhh.pkkOS + + decays = { + 'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], + 'Lb2LcKPiPi': ["[Lambda_b0 -> Lambda_c+ K_1(1270)-]cc"], + 'Lb2LcppbarPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], + 'Lb2LcppbarK': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], + 'Lb2LcKKPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"] + } + inputs = { + 'Lb2LcPiPiPi': self.lc + pipipi, + 'Lb2LcKPiPi': self.lc + kpipi, + 'Lb2LcppbarPi': self.lc + ppbarpi, + 'Lb2LcppbarK': self.lc + ppbark, + 'Lb2LcKKPi': self.lc + kkpi + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = { + 'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], + 'Lb2LcKPiPiWS': ["[Lambda_b0 -> Lambda_c+ K_1(1270)+]cc"], + 'Lb2LcppbarPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], + 'Lb2LcppbarKWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], + 'Lb2LcKKPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"] + } + inputs = { + 'Lb2LcPiPiPiWS': self.lc + pipipi, + 'Lb2LcKPiPiWS': self.lc + kpipi, + 'Lb2LcppbarPiWS': self.lc + ppbarpi, + 'Lb2LcppbarKWS': self.lc + ppbark, + 'Lb2LcKKPiWS': self.lc + kkpi + } + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} + inputs = {'Lb2LcPiPiPi': self.lc_pkk + pipipi} + rs_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) + decays = {'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"]} + inputs = {'Lb2LcPiPiPiWS': self.lc_pkk + pipipi} + ws_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) + decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} + inputs = {'Lb2LcPiPiPi': self.lc_ppipi + pipipi} + rs_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) + decays = {'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"]} + inputs = {'Lb2LcPiPiPiWS': self.lc_ppipi + pipipi} + ws_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + self.lines.append(ProtoLine(rs_pkk, 1.0)) + self.lines.append(ProtoLine(ws_pkk, 0.1)) + self.lines.append(ProtoLine(rs_ppipi, 1.0)) + self.lines.append(ProtoLine(ws_ppipi, 0.1)) + + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = { + 'B02Lcpbarpbarp': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], + 'B02LcpbarPiPi': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], + 'B02LcpbarKPi': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], + 'B02LcpbarKK': ["[B0 -> Lambda_c+ a_1(1260)-]cc"] + } + inputs = { + 'B02Lcpbarpbarp': self.lc + pppbar, + 'B02LcpbarPiPi': self.lc + ppipi, + 'B02LcpbarKPi': self.lc + pkpi, + 'B02LcpbarKK': self.lc + pkk, + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + decays = { + 'B02LcpbarpbarpWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], + 'B02LcpbarPiPiWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], + 'B02LcpbarKPiWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], + 'B02LcpbarKKWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], + } + inputs = { + 'B02LcpbarpbarpWS': self.lc + pppbar, + 'B02LcpbarPiPiWS': self.lc + ppipi, + 'B02LcpbarKPiWS': self.lc + pkpi, + 'B02LcpbarKKWS': self.lc + pkk, + } + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2D0HHPH(self): + '''Makes RS Lb -> D0(HH/HHHH) p+- H-+ + c.c. and WS lines''' + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decs = ["Lambda_b0 -> D0 Lambda0", "Lambda_b0 -> D0 Lambda~0"] + decays = {'Lb2D0PH': decs} + inputs = {'Lb2D0PH': self.d0_pid + self.hh.ph_pid} + rs = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + inputs_k3pi = {'Lb2D0PH': self.d0_k3pi_pid + self.hh.ph_pid} + rs_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, config) + self.lines.append(ProtoLine(rs_k3pi, 1.0)) + decays = {'Lb2D0PHWS': decs} + inputs = {'Lb2D0PHWS': self.d0_pid + self.hh.ph_ws} + ws = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + inputs_k3pi = {'Lb2D0PHWS': self.d0_k3pi_pid + self.hh.ph_ws} + ws_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, config) + self.lines.append(ProtoLine(ws_k3pi, 0.1)) + config['B2CBBDT_MIN'] = '-0.1' + decays = {'Lb2D0PHNoPID': decs} + inputs = {'Lb2D0PHNoPID': self.d0_pid + self.hh.ph_nopid} + rs = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'Lb2D0PHNoPIDWS': decs} + inputs = {'Lb2D0PHNoPIDWS': self.d0_pid + self.hh.ph_nopid_ws} + ws = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2D0PPbar(self): + ''' Makes RS Lb->D0(HH) p+- p-+ and WS lines (mass window for a missing neutron)''' + config = deepcopy(self.config) + config['AM_MAX'] = '6000*MeV' + config['AM_MIN'] = '3000*MeV' + decs = ["Lambda_b0 -> D0 rho(770)0"] + decays = {'Lb2D0PPbar': decs} + inputs = {'Lb2D0PPbar': self.d0_pid + self.hh.ppbar_pid} + rs = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decs = ["Lambda_b0 -> D0 rho(770)-", "Lambda_b0 -> D0 rho(770)+"] + decays = {'Lb2D0PPbarWS': decs} + inputs = {'Lb2D0PPbarWS': self.d0_pid + self.hh.ppbar_ws_pid} + ws = makeB2XSels(decays, 'D02HH', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2D0Lambda0(self): + '''Makes RS Lb -> D0(HH/K3Pi) Lambda0 + c.c.''' + decs = ["Lambda_b0 -> D0 Lambda0", "Lambda_b0 -> D0 Lambda~0"] + decays = {'Lb2D0Lambda0DD': decs} + inputs = {'Lb2D0Lambda0DD': self.d0_pid + self.lambda0["DD"]} + lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_dd, 1.0)) + inputs_k3pi = {'Lb2D0Lambda0DD': self.d0_k3pi + self.lambda0["DD"]} + lb_dd_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, self.config) + self.lines.append(ProtoLine(lb_dd_k3pi, 1.0)) + decays = {'Lb2D0Lambda0LL': decs} + inputs = {'Lb2D0Lambda0LL': self.d0_pid + self.lambda0["LL"]} + lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_ll, 1.0)) + inputs_k3pi = {'Lb2D0Lambda0LL': self.d0_k3pi + self.lambda0["LL"]} + lb_ll_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, self.config) + self.lines.append(ProtoLine(lb_ll_k3pi, 1.0)) + + def _makeLb2DLambda0pi(self): + '''Makes RS/WS Lb -> D+(HHH) Lambda0 pi- + c.c.''' + decays = {'Lb2DLambda0DDpi': ["[Lambda_b0 -> D+ Lambda0 pi-]cc"]} + inputs = { + 'Lb2DLambda0DDpi': + self.d.hhh_cf_pid + self.lambda0["DD"] + self.pions + } + lb_dd = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(lb_dd, 1.0)) + decays = {'Lb2DLambda0LLpi': ["[Lambda_b0 -> D+ Lambda0 pi-]cc"]} + inputs = { + 'Lb2DLambda0LLpi': + self.d.hhh_cf_pid + self.lambda0["LL"] + self.pions + } + lb_ll = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(lb_ll, 1.0)) + decays = {'Lb2DLambda0DDpiWS': ["[Lambda_b0 -> D+ Lambda0 pi+]cc"]} + inputs = { + 'Lb2DLambda0DDpiWS': + self.d.hhh_cf_pid + self.lambda0["DD"] + self.pions + } + lb_dd = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(lb_dd, 0.1)) + decays = {'Lb2DLambda0LLpiWS': ["[Lambda_b0 -> D+ Lambda0 pi+]cc"]} + inputs = { + 'Lb2DLambda0LLpiWS': + self.d.hhh_cf_pid + self.lambda0["LL"] + self.pions + } + lb_ll = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(lb_ll, 0.1)) + + def _makeXib2D0Lambda0pi(self): + '''Makes Xib -> D0(HH) Lambda0 pi- + c.c.''' + decays = { + 'Xib2D0Lambda0DDpi': + ["Xi_b- -> D0 Lambda0 pi-", "Xi_b~+ -> D0 Lambda~0 pi+"] + } + inputs = { + 'Xib2D0Lambda0DDpi': self.d0_pid + self.lambda0["DD"] + self.pions + } + lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_dd, 1.0)) + decays = { + 'Xib2D0Lambda0LLpi': + ["Xi_b- -> D0 Lambda0 pi-", "Xi_b~+ -> D0 Lambda~0 pi+"] + } + inputs = { + 'Xib2D0Lambda0LLpi': self.d0_pid + self.lambda0["LL"] + self.pions + } + lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_ll, 1.0)) + decays = { + 'Xib2D0Lambda0DDpiWS': + ["Xi_b- -> D0 Lambda~0 pi-", "Xi_b~+ -> D0 Lambda0 pi+"] + } + inputs = { + 'Xib2D0Lambda0DDpiWS': + self.d0_pid + self.lambda0["DD"] + self.pions + } + lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_dd, 0.1)) + decays = { + 'Xib2D0Lambda0LLpiWS': + ["Xi_b- -> D0 Lambda~0 pi-", "Xi_b~+ -> D0 Lambda0 pi+"] + } + inputs = { + 'Xib2D0Lambda0LLpiWS': + self.d0_pid + self.lambda0["LL"] + self.pions + } + lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(lb_ll, 0.1)) + + def _makeSb02DP(self): + '''Make RS and WS Sb0 -> D+- p-+ + cc.''' + protons = self.protons + decays = {'Sb02DP': ["[Sigma_b0 -> D- p+]cc"]} + inputs = {'Sb02DP': self.d.hhh_pid + protons} + rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) + decays = {'Sb02DPWS': ["[Sigma_b0 -> D+ p+]cc"]} + inputs = {'Sb02DPWS': self.d.hhh_pid + protons} + ws = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeSb2D0P(self): + '''Make Sb+- -> D0 p+- + cc.''' + protons = self.protons + decays = {'Sb2D0P': ["Sigma_b+ -> D0 p+", "Sigma_b- -> D0 p~-"]} + inputs = {'Sb2D0P': self.d.hh_pid + protons} + rs = makeB2XSels(decays, 'D2HHPID', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2LcKSK(self,ks): + '''Make Lb -> Lc+ Ks K- c.c.''' + kaons = self.kaons + decays = {'Lb2LcKSK' + ks: ["Lambda_b0 -> Lambda_c+ KS0 K-", "Lambda_b~0 -> Lambda_c~- KS0 K+"]} + inputs = {'Lb2LcKSK' + ks: self.lc + self.ks[ks] + kaons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2LcD(self): + '''Makes RS + WS Lb -> Lc D + c.c.''' + config = deepcopy(self.config) + config['AM_MIN'] = '4000*MeV' + config['AM_MAX'] = '6000*MeV' + decays = {'Lb2LcD': ["[Lambda_b0 -> Lambda_c+ D-]cc"]} + inputs = {'Lb2LcD': self.d.hhh_pid + self.lc} + rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'Lb2LcDWS': ["[Lambda_b0 -> Lambda_c+ D+]cc"]} + inputs = {'Lb2LcDWS': self.d.hhh_pid + self.lc} + ws = makeB2XSels(decays, 'D2HHHPID', inputs, config) + self.lines.append(ProtoLine(ws, 1.0)) + + def _makeLb2LcDKst(self, d2x): + '''Makes RS Lb -> Lc D+ Kst c.c.''' + config = deepcopy(self.config) + config['AM_MAX'] = '6400*MeV' + config['AM_MIN'] = '5200*MeV' + decays = {'Lb2LcDKst': ["[Lambda_b0 -> Lambda_c+ D- K*(892)~0]cc"]} + inputs = { + 'Lb2LcDKst': d2x + self.lc_tight + self.hh.kpi_loose_ProbNNpid + } + rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2LcDstKst(self): + '''Makes RS Lb -> Lc D*(2010)+ Kst c.c.''' + config = deepcopy(self.config) + config['AM_MAX'] = '6400*MeV' + config['AM_MIN'] = '5200*MeV' + decays = { + 'Lb2LcDstKst': ["[Lambda_b0 -> Lambda_c+ D*(2010)- K*(892)~0]cc"] + } + inputs = { + 'Lb2LcDstKst': + self.dst.d0pi_pid + self.lc_tight + self.hh.kpi_loose_ProbNNpid + } + rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2Dst0K(self, dname, d2x): + '''Makes Lb -> Lc+ D*0 K-, D*0 -> D0 gamma/Pi0_resolved/merged''' + kaons = self.kaons + decays = { + 'Lb2LcDst0KLc2PKPi': ["[Lambda_b0 -> Lambda_c+ D*(2007)0 K-]cc"] + } + inputs = {'Lb2LcDst0KLc2PKPi': self.lc + d2x + kaons} + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeX2LcD0(self): + '''Makes RS X -> Lc D0 + c.c.''' + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = {'X2LcD0': ["B+ -> Lambda_c+ D0", "B- -> Lambda_c~- D0"]} + inputs = {'X2LcD0': self.d.kpi_pid + self.lc} + rs = makeB2XSels(decays, 'D02KPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeX2LcD0H(self): + '''Makes RS + WS X -> Lc D0 H + c.c. Need loose pions here as they may be soft''' + pions = self.pions + kaons = self.kaons + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = { + 'X2LcD0Pi': ["B0 -> Lambda_c+ D0 pi-", "B0 -> Lambda_c~- D0 pi+"], + 'X2LcD0K': ["B0 -> Lambda_c+ D0 K-", "B0 -> Lambda_c~- D0 K+"] + } + inputs = { + 'X2LcD0Pi': self.d.kpi_pid + self.lc + pions, + 'X2LcD0K': self.d.kpi_pid + self.lc + kaons + } + rs = makeB2XSels(decays, 'D02KPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = { + 'X2LcD0PiWS': + ["B0 -> Lambda_c+ D0 pi+", "B0 -> Lambda_c~- D0 pi-"], + 'X2LcD0KWS': ["B0 -> Lambda_c+ D0 K+", "B0 -> Lambda_c~- D0 K-"] + } + inputs = { + 'X2LcD0PiWS': self.d.kpi_pid + self.lc + pions, + 'X2LcD0KWS': self.d.kpi_pid + self.lc + kaons + } + ws = makeB2XSels(decays, 'D02KPi', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeX2LcHH(self): + '''Makes RS + WS Xib -> Lc H+H-, LC H-H- + c.c.''' + pions = self.pions + kaons = self.kaons + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = { + 'X2LcPiPiSS': ["[B- -> Lambda_c+ pi- pi-]cc"], + 'X2LcKPiSS': ["[B- -> Lambda_c+ K- pi-]cc"], + 'X2LcKKSS': ["[B- -> Lambda_c+ K- K-]cc"], + 'X2LcPiPiOS': ["[B+ -> Lambda_c+ pi- pi+]cc"], + 'X2LcKPiOS': ["[B+ -> Lambda_c+ K- pi+]cc"], + 'X2LcPiKOS': ["[B+ -> Lambda_c+ K+ pi-]cc"], + 'X2LcKKOS': ["[B+ -> Lambda_c+ K- K+]cc"] + } + inputs = { + 'X2LcPiPiSS': self.lc + pions, + 'X2LcKPiSS': self.lc + kaons + pions, + 'X2LcKKSS': self.lc + kaons, + 'X2LcPiPiOS': self.lc + pions, + 'X2LcKPiOS': self.lc + kaons + pions, + 'X2LcPiKOS': self.lc + kaons + pions, + 'X2LcKKOS': self.lc + kaons + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + decays = { + 'X2LcPiPiWS': ["[B+ -> Lambda_c+ pi+ pi+]cc"], + 'X2LcKPiWS': ["[B+ -> Lambda_c+ K+ pi+]cc"], + 'X2LcKKWS': ["[B+ -> Lambda_c+ K+ K+]cc"] + } + inputs = { + 'X2LcPiPiWS': self.lc + pions, + 'X2LcKPiWS': self.lc + kaons + pions, + 'X2LcKKWS': self.lc + kaons + } + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeB2LcpbarH(self): + '''Makes RS + WS B- -> Lc+ pbar- h- + c.c.''' + pions = self.pions + kaons = self.kaons + protons = self.protons + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = { + 'B2LcpbarPiSS': ["[B- -> Lambda_c+ p~- pi-]cc"], + 'B2LcpbarKSS': ["[B- -> Lambda_c+ p~- K-]cc"], + } + inputs = { + 'B2LcpbarPiSS': self.lc + pions + protons, + 'B2LcpbarKSS': self.lc + kaons + protons + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + decays = { + 'B2LcpbarPiWS': + ["[B+ -> Lambda_c+ p~- pi+]cc", "[B+ -> Lambda_c+ p+ pi-]cc"], + 'B2LcpbarKWS': + ["[B+ -> Lambda_c+ p~- K+]cc", "[B+ -> Lambda_c+ p+ K-]cc"], + } + inputs = { + 'B2LcpbarPiWS': self.lc + pions + protons, + 'B2LcpbarKWS': self.lc + kaons + protons + } + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeB02LcpbarKS(self, ks): + '''Makes RS + WS B0 -> Lc+ pbar- Ks + c.c.''' + protons = self.protons + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = {'B02LcpbarKS' + ks: ["[B0 -> Lambda_c+ p~- KS0]cc"]} + inputs = {'B02LcpbarKS' + ks: self.lc + self.ks[ks] + protons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'B02LcpbarKSWS' + ks: ["[B0 -> Lambda_c+ p+ KS0]cc"]} + inputs = {'B02LcpbarKSWS' + ks: self.lc + self.ks[ks] + protons} + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeB2LcLambda0barH(self): + '''Makes RS + WS B0 -> Lc+ Lambda0bar h- + c.c.''' + pions = self.pions + kaons = self.kaons + lambdadd = self.lambda0["DD"] + lambdall = self.lambda0["LL"] + lambdas = lambdadd + lambdall + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = { + 'B02LcLambda0Pi': ["[B0 -> Lambda_c+ Lambda~0 pi-]cc"], + 'B02LcLambda0K': ["[B0 -> Lambda_c+ Lambda~0 K-]cc"], + } + inputs = { + 'B02LcLambda0Pi': self.lc + pions + lambdas, + 'B02LcLambda0K': self.lc + kaons + lambdas + } + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + decays = { + 'B02LcLambda0PiWS': ["[B0 -> Lambda_c+ Lambda~0 pi+]cc"], + 'B02LcLambda0KWS': ["[B0 -> Lambda_c+ Lambda~0 K+]cc"], + } + inputs = { + 'B02LcLambda0PiWS': self.lc + pions + lambdas, + 'B02LcLambda0KWS': self.lc + kaons + lambdas + } + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeX2LcKPiPiPi(self): + '''Makes RS + WS Xib -> Lc HH + c.c.''' + pions = self.pions + kaons = self.kaons + pipipi = self.hhh.pipipi + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = {'X2LcKPiPiPi': ["[B+ -> Lambda_c+ a_1(1260)+ K- ]cc"]} + inputs = {'X2LcKPiPiPi': self.lc + pipipi + kaons} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + decays = {'X2LcKPiPiPiWS': ["[B+ -> Lambda_c+ a_1(1260)+ K+]cc"]} + inputs = {'X2LcKPiPiPiWS': self.lc + pipipi + kaons} + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib2XicHH(self): + '''Makes RS + WS Xib -> Lc HH + c.c.''' + pions = self.pions + kaons = self.kaons + decays = { + 'Xib2XicPiPi': ["[Xi_b- -> Xi_c+ pi- pi-]cc"], + 'Xib2XicKPi': ["[Xi_b- -> Xi_c+ K- pi-]cc"], + 'Xib2XicKK': ["[Xi_b- -> Xi_c+ K- K-]cc"] + } + inputs = { + 'Xib2XicPiPi': self.xic + pions, + 'Xib2XicKPi': self.xic + kaons + pions, + 'Xib2XicKK': self.xic + kaons + } + rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = { + 'Xib2XicPiPiWS': ["[Xi_b- -> Xi_c+ pi+ pi+]cc"], + 'Xib2XicKPiWS': ["[Xi_b- -> Xi_c+ K+ pi+]cc"], + 'Xib2XicKKWS': ["[Xi_b- -> Xi_c+ K+ K+]cc"] + } + inputs = { + 'Xib2XicPiPiWS': self.xic + pions, + 'Xib2XicKPiWS': self.xic + kaons + pions, + 'Xib2XicKKWS': self.xic + kaons + } + ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib2LcDK(self): + '''Makes RS + WS Xib -> Lc+ D(s)- K- + c.c.''' + kaons = self.kaons + config = deepcopy(self.config) + config['AM_MIN'] = '5000.*MeV' + decays = {'Xib2LcDK': ["[Xi_b- -> Lambda_c+ D- K-]cc"]} + inputs = {'Xib2LcDK': self.lc + self.d.hhh_pid + kaons} + rs = makeB2XSels(decays, 'Lc2PKPiD2HHH', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'Xib2LcDKWS': ["[Xi_b- -> Lambda_c+ D+ K-]cc"]} + inputs = {'Xib2LcDKWS': self.lc + self.d.hhh_pid + kaons} + ws = makeB2XSels(decays, 'Lc2PKPiD2HHH', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib02LcDsKPi(self): + '''Makes RS + WS Xib -> Lc+ Ds- K- Pi+ + c.c.''' + pions = self.pions + kaons = self.kaons + decays = {'Xib02LcDsKPi': ["[Xi_b0 -> Lambda_c+ D- K- pi+]cc"]} + inputs = {'Xib02LcDsKPi': self.lc + self.ds + kaons + pions} + rs = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'Xib02LcDsKPiWS': ["[Xi_b0 -> Lambda_c+ D- K+ pi+]cc"]} + inputs = {'Xib02LcDsKPiWS': self.lc + self.ds + kaons + pions} + ws = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeB2LcDspbar(self): + '''Makes RS + WS B- -> Lc+ Ds- pbar- + c.c.''' + protons = self.protons + config = deepcopy(self.config) + config['AM_MIN'] = '4750.*MeV' + decays = {'B2LcDspbar': ["[B- -> Lambda_c+ D- p~-]cc"]} + inputs = {'B2LcDspbar': self.lc + self.d.hhh_pid + protons} + rs = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'B2LcDspbarWS': ["[B- -> Lambda_c+ D+ p~-]cc"]} + inputs = {'B2LcDspbarWS': self.lc + self.d.hhh_pid + protons} + ws = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeX02XiccH(self): + '''Make RS and WS Xi_bcd -> Xi_cc+ H (H=pi,K) + cc.''' + pions = self.pions + kaons = self.kaons + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = { + 'X02XiccpPi': ["[B0 -> Xi_cc+ pi-]cc"], + 'X02XiccpK': ["[B0 -> Xi_cc+ K-]cc"] + } + inputs = { + 'X02XiccpPi': self.xiccp + pions, + 'X02XiccpK': self.xiccp + kaons + } + rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, config) + + decays = { + 'X02XiccpPiWS': ["[B0 -> Xi_cc+ pi+]cc"], + 'X02XiccpKWS': ["[B0 -> Xi_cc+ K+]cc"] + } + inputs = { + 'X02XiccpPiWS': self.xiccp + pions, + 'X02XiccpKWS': self.xiccp + kaons + } + ws = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, config) + + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeX2XiccH(self): + '''Make RS and WS Xi_bcu -> LXi_cc++ H (H=pi,K) + cc.''' + pions = self.pions + kaons = self.kaons + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + decays = { + 'X2XiccppPi': ["[B+ -> Xi_cc++ pi-]cc"], + 'X2XiccppK': ["[B+ -> Xi_cc++ K-]cc"] + } + inputs = { + 'X2XiccppPi': self.xiccpp + pions, + 'X2XiccppK': self.xiccpp + kaons + } + rs = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, config) + + decays = { + 'X2XiccppPiWS': ["[B+ -> Xi_cc++ pi+]cc"], + 'X2XiccppKWS': ["[B+ -> Xi_cc++ K+]cc"] + } + inputs = { + 'X2XiccppPiWS': self.xiccpp + pions, + 'X2XiccppKWS': self.xiccpp + kaons + } + ws = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, config) + + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2LcDst(self): + '''Makes RS + WS Lb -> Lc D* + c.c.''' + decays = {'Lb2LcDst': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"]} + inputs = {'Lb2LcDst': self.dst.d0pi_pid + self.lc} + rs = makeB2XSels(decays, 'Dstar2D0PiPID', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'Lb2LcDstWS': ["[Lambda_b0 -> Lambda_c+ D*(2010)+]cc"]} + inputs = {'Lb2LcDstWS': self.dst.d0pi_pid + self.lc} + ws = makeB2XSels(decays, 'Dstar2D0PiPID', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeX2LcLc(self): + config = deepcopy(self.config) + config['AM_MIN'] = '4800*MeV' + decays = {'X2LcLc': ["B0 -> Lambda_c+ Lambda_c~-"]} + inputs = {'X2LcLc': self.lc} + rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = {'X2LcLcWS': ["[B0 -> Lambda_c+ Lambda_c+]cc"]} + inputs = {'X2LcLcWS': self.lc} + ws = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2LcLcn(self): + """ + Makes Lb -> Lc Lc~ n (Lc->p K pi) + c.c. + The neutron is not reconstructed. + """ + config = deepcopy(self.config) + config['AM_MIN'] = '4000*MeV' + config['BPVIPCHI2_MAX'] = '50' + + decays = {'Lb2LcLcn': ["Lambda_b0 -> Lambda_c+ Lambda_c~-"]} + inputs = {'Lb2LcLcn': self.lc} + rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + decays = {'Lb2LcLcnWS': ["[Lambda_b0 -> Lambda_c+ Lambda_c+]cc"]} + inputs = {'Lb2LcLcnWS': self.lc} + ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) + self.lines.append(ProtoLine(ws, 0.1)) + + def _makeLb2Lc5Pi(self): + decays = { + 'Lb2Lc5Pi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)- rho(770)0]cc"] + } + inputs = {'Lb2Lc5Pi': self.lc + self.hhh.pipipi + self.hh.pipi_pid} + lb2lc5pi = makeB2XSels(decays, 'Lc2PKPiPID', inputs, self.config) + self.lines.append(ProtoLine(lb2lc5pi, 1.0)) + + def _makeLb2DpHH(self): + '''Make RS and WS Lb ->DpHH (H=pi,K) + cc.''' + config = deepcopy(self.config) + config['AM_MAX'] = '7000*MeV' + ppipi = self.hhh.ppipi_pid + pkpi = self.hhh.pkpi_pid + pkk = self.hhh.pkk_pid + decays = { + 'Lb2DpPiPi': ["[Lambda_b0 -> D+ a_1(1260)-]cc"], + 'Lb2DpKPi': ["[Lambda_b0 -> D+ a_1(1260)-]cc"], + 'Lb2DpKK': ["[Lambda_b0 -> D+ a_1(1260)-]cc"] + } + inputs = { + 'Lb2DpPiPi': self.d.hhh_cf_pid + ppipi, + 'Lb2DpKPi': self.d.hhh_cf_pid + pkpi, + 'Lb2DpKK': self.d.hhh_cf_pid + pkk + } + rs = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXib2D0pHH(self): + '''Make RS and WS Xi_b ->DpHH (H=pi,K) + cc.''' + config = deepcopy(self.config) + config['AM_MAX'] = '7000*MeV' + ppipi = self.hhh.ppipi_pid + pkpi = self.hhh.pkpi_pid + pkk = self.hhh.pkk_pid + decays = { + 'Xib2D0pPiPi': + ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"], + 'Xib2D0pKPi': + ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"], + 'Xib2D0pKK': ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"] + } + inputs = { + 'Xib2D0pPiPi': self.d0_pid + ppipi, + 'Xib2D0pKPi': self.d0_pid + pkpi, + 'Xib2D0pKK': self.d0_pid + pkk + } + rs = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2D0ph(self, dname, d2x): + '''Make RS Lb -> D0(K3pi) p h + cc.''' + protons_pid = self.protons_pid + kaons_pid = self.topoKaons_pid + pions_pid = self.topoPions_pid + decays_k = {'Lb2D0pK': ["Lambda_b0 -> D0 p+ K-", "Lambda_b~0 -> D0 p~- K+"]} + inputs_k = {'Lb2D0pK': d2x + protons_pid + kaons_pid} + rs_k = makeB2XSels(decays_k, dname, inputs_k, self.config) + self.lines.append(ProtoLine(rs_k, 1.0)) + decays_pi = {'Lb2D0pPi': ["Lambda_b0 -> D0 p+ pi-", "Lambda_b~0 -> D0 p~- pi+"]} + inputs_pi = {'Lb2D0pPi': d2x + protons_pid + pions_pid} + rs_pi = makeB2XSels(decays_pi, dname, inputs_pi, self.config) + self.lines.append(ProtoLine(rs_pi, 1.0)) + + def _makeLb2D0phWS(self, dname, d2x): + '''Make RS Lb -> D0(K3pi) p h + cc.''' + protons_pid = self.protons_pid + kaons_pid = self.topoKaons_pid + pions_pid = self.topoPions_pid + decays_k = {'Lb2D0pK': ["Lambda_b0 -> D0 p+ K+", "Lambda_b~0 -> D0 p~- K-"]} + inputs_k = {'Lb2D0pK': d2x + protons_pid + kaons_pid} + rs_k = makeB2XSels(decays_k, dname, inputs_k, self.config) + self.lines.append(ProtoLine(rs_k, 1.0)) + decays_pi = {'Lb2D0pPi': ["Lambda_b0 -> D0 p+ pi+", "Lambda_b~0 -> D0 p~- pi-"]} + inputs_pi = {'Lb2D0pPi': d2x + protons_pid + pions_pid} + rs_pi = makeB2XSels(decays_pi, dname, inputs_pi, self.config) + self.lines.append(ProtoLine(rs_pi, 1.0)) + + def _makeLb2DD0p(self, dname, d2x): + '''Make Lb -> D(s)- D0(K3pi) p + cc.''' + decays = {'Lb2DD0pD2HHH': ["Lambda_b0 -> D- D0 p+", "Lambda_b~0 -> D+ D0 p~-"]} + inputs = {'Lb2DD0pD2HHH': self.d.hhh_cf_pid + d2x + self.protons_pid} + rs = makeB2XSels(decays, dname, inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXibc2DpK(self): + '''Make Xi_bc+ --> D+ p K- + cc.''' + config = deepcopy(self.config) + config['AM_MAX'] = '9000*MeV' + config['AM_MIN'] = '5800*MeV' + config['BPVLTIME_MIN'] = '0.05*ps' + protons_pid = self.protons_pid + kaons_pid = self.topoKaons_pid + decays = {'Xibc2DpK': ["[Xi_bc+ -> D+ p+ K-]cc"]} + inputs = {'Xibc2DpK': self.d.hhh_cf_pid + protons_pid + kaons_pid} + rs = makeB2XSels(decays, 'D2HHH', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2LcPiPiPiFullDST(self): + '''Make RS L_b ->Lc 3pi + cc.''' + config = deepcopy(self.config) + config['AM_MIN'] = '5400*MeV' + config['AM_MAX'] = '5900*MeV' + config['BPVIPCHI2_MAX'] = '16' + pipipi = self.hhh.pipipi_tightersel + Lc = self.lc_tight + decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} + inputs = {'Lb2LcPiPiPi': Lc + pipipi} + rs = makeB2XSels(decays, 'Lc2PKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXib02XicPiPiPiFullDST(self): + '''Make RS Xi_b0 -> Xi_c+ 3pi + cc.''' + config = deepcopy(self.config) + config['AM_MIN'] = '5600*MeV' + config['AM_MAX'] = '6000*MeV' + config['BPVIPCHI2_MAX'] = '16' + pipipi = self.hhh.pipipi_tightersel + Xic = self.xic_tightest + decays = {'Xib02XicPiPiPi': ["[Xi_b0 -> Xi_c+ a_1(1260)-]cc"]} + inputs = {'Xib02XicPiPiPi': Xic + pipipi} + rs = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeXib2Xic0PiPiPiFullDST(self): + '''Make RS Xi_b- -> Xi_c0 PiPiPi- ''' + config = deepcopy(self.config) + config['AM_MIN'] = '5600*MeV' + config['AM_MAX'] = '6100*MeV' + config['BPVIPCHI2_MAX'] = '16' + pipipi = self.hhh.pipipi_tightersel + decays = {'Xib2Xic0PiPiPi': ["[Xi_b- -> Xi_c0 a_1(1260)-]cc"]} + inputs = {'Xib2Xic0PiPiPi': self.xic0 + pipipi} + rs = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeOmegab2Omegac0PiPiPiFullDST(self): + '''Make RS Omega_b- -> Omega_c0 PiPiPi- ''' + config = deepcopy(self.config) + config['AM_MIN'] = '5800*MeV' + config['AM_MAX'] = '6300*MeV' + config['BPVIPCHI2_MAX'] = '16' + pipipi = self.hhh.pipipi_tightersel + Omegac = self.omegac0_tight + decays = { + 'Omegab2Omegac0PiPiPi': ["[Omega_b- -> Omega_c0 a_1(1260)-]cc"] + } + inputs = {'Omegab2Omegac0PiPiPi': Omegac + pipipi} + rs = makeB2XSels(decays, 'Omegac02PKKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2sigmacpp4Pi(self): + '''Make Lambda_b0 -> Sigma_c++ Pi+ 3Pi- cc.''' + config = deepcopy(self.config) + config['AM_MAX'] = '6000*MeV' + config['AM_MIN'] = '4900*MeV' + pions = self.pions + decays = { + 'Lb2sigmacpp4Pi': ["[Lambda_b0 -> Sigma_c++ pi+ pi- pi- pi-]cc"] + } + inputs = {'Lb2sigmacpp4Pi': self.sigmacpp + pions} + rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2sigmacppD0KPi(self): + '''Makes Lambda_b0 -> Sigma_c++ D0 K- pi- + c.c.''' + config = deepcopy(self.config) + config['AM_MAX'] = '6000*MeV' + config['AM_MIN'] = '4900*MeV' + pions = self.pions + kaons = self.kaons + decays = { + 'Lb2sigmacppD0KPi': [ + "Lambda_b0 -> Sigma_c++ D0 K- pi-", + "Lambda_b~0 -> Sigma_c~-- D0 K+ pi+" + ] + } + inputs = { + 'Lb2sigmacppD0KPi': self.d.kpi_pid + self.sigmacpp + pions + kaons + } + rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2DDLambda(self, lambda0): + '''Makes Lambda_b0 -> D+ D- Lambda0''' + config = deepcopy(self.config) + config['AM_MAX'] = '6219*MeV' + '''1870*2+1115=4855''' + config['AM_MIN'] = '4900*MeV' + decays = {'Lb2DDLambda' + lambda0: ["[Lambda_b0 -> D- D+ Lambda0]cc"]} + inputs = { + 'Lb2DDLambda' + lambda0: + self.dds + self.lambda0[lambda0] + } + lb2ddlambda_rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(lb2ddlambda_rs, 1.0)) + + def _makeLb2D0D0Lambda(self, lambda0): + '''Makes Lambda_b0 -> D0 D0 Lambda0''' + config = deepcopy(self.config) + config['AM_MAX'] = '6219*MeV' + config['AM_MIN'] = '4300*MeV' + dec = ["Lambda_b0 -> D0 D0 Lambda0", "Lambda_b~0 -> D0 D0 Lambda~0"] + decays = { + 'Lb2D0D0LambdaD02HHD02HH' + lambda0: dec, + 'Lb2D0D0LambdaD02HHD02K3Pi' + lambda0: dec, + 'Lb2D0D0LambdaD02K3PiD02K3Pi' + lambda0: dec + } + inputs = { + 'Lb2D0D0LambdaD02HHD02HH' + lambda0: + self.d.hh_pid_tight + self.lambda0[lambda0], + 'Lb2D0D0LambdaD02HHD02K3Pi' + lambda0: + self.d.hh_pid_tight + self.d.k3pi_pid_tight + + self.lambda0[lambda0], + 'Lb2D0D0LambdaD02K3PiD02K3Pi' + lambda0: + self.d.k3pi_pid_tight + self.lambda0[lambda0] + } + lb2d0d0lambda = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(lb2d0d0lambda, 1.0)) + + def _makeLb2DstDLambda(self, lambda0): + '''Makes the Lambda_b0 -> D*+- D-+ Lambda0 + c.c.''' + config = deepcopy(self.config) + config['AM_MAX'] = '6219*MeV' + config['AM_MIN'] = '4300*MeV' + decays = { + 'Lb2DstDLambda' + lambda0: + ["[Lambda_b0 -> D*(2010)- D+ Lambda0]cc","[Lambda_b0 -> D- D*(2010)+ Lambda0]cc"] + } + inputs = { + 'Lb2DstDLambda' + lambda0: + self.d.d_and_ds_cf_pid + self.dst.d0pi_pid + self.lambda0[lambda0] + } + lb2dstdlambda_rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(lb2dstdlambda_rs, 1.0)) + inputs = { + 'Lb2DstDLambda' + lambda0: + self.d.d_and_ds_cf_pid + self.dst.d0pi_k3pi_pid + + self.lambda0[lambda0] + } + lb2dstdlambda_rs = makeB2XSels(decays, 'DstarD02K3Pi', inputs, config) + self.lines.append(ProtoLine(lb2dstdlambda_rs, 1.0)) + + def _makeLb2DstDstLambda(self, lambda0): + '''Makes Lambda_b0 -> D*+- D*-+ Lambda0''' + config = deepcopy(self.config) + config['AM_MAX'] = '6219*MeV' + config['AM_MIN'] = '4300*MeV' + decays = { + 'Lb2DstDstLambda' + lambda0: + ["[Lambda_b0 -> D*(2010)- D*(2010)+ Lambda0]cc"] + } + inputs = { + 'Lb2DstDstLambda' + lambda0: + self.dst.d0pi_pid + self.lambda0[lambda0] + } + lb2dstdstlambda_rs = makeB2XSels(decays, '', inputs, config) + self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) + inputs = { + 'Lb2DstDstLambda' + lambda0: + self.dst.d0pi_pid + self.dst.d0pi_k3pi_pid + self.lambda0[lambda0] + } + lb2dstdstlambda_rs = makeB2XSels(decays, 'DstarD02K3Pi', inputs, + config) + self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) + inputs = { + 'Lb2DstDstLambda' + lambda0: + self.dst.d0pi_k3pi_pid + self.lambda0[lambda0] + } + lb2dstdstlambda_rs = makeB2XSels(decays, 'DstarD02K3PiDstarD02K3Pi', + inputs, config) + self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) + + def _makeB02LcSigmacppK(self): + '''Makes B0 -> Lc+ Sigma_c-- K+ + c.c.''' + kaons = self.topoKaons_pid + decays = {'B02LcSigmacppK': ["[B0 -> Lambda_c+ Sigma_c~-- K+]cc"]} + inputs = {'B02LcSigmacppK': self.lc_tight + self.sigmacpp + kaons} + rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeBs2LcSigma(self): + '''Make Bs0 -> Lambda_c~- Sigma+''' + sigma = self.hh.sigmapm + decays = {'Bs2LcSigmap': ["[B_s0 -> Lambda_c~- Sigma+]cc"]} + inputs = {'Bs2LcSigmap': self.lc + sigma} + rs = makeB2XSels(decays, 'Lc2PKPiSigmap2PPiz', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeLb2DDpK(self): + '''Make Lb -> D+ D- p K- + cc.''' + protons = self.protons_pid + kaons = self.topoKaons_pid + decays = {'Lb2DDpK': ["[Lambda_b0 -> D+ D- p+ K-]cc"]} + inputs = {'Lb2DDpK': self.d.hhh_ds_rejection + protons + kaons} + rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeB2LcXicPi(self): + '''Make B+ -> Lc+ Xic- pi+ + cc.''' + pions = self.pions + config = deepcopy(self.config) + config['AM_MIN'] = '5000.*MeV' + decays = {'B2LcXicPi': ["[B+ -> Lambda_c+ Xi_c~- pi+]cc"]} + inputs = {'B2LcXicPi': self.lc_tight + self.xic_tight + pions} + rs = makeB2XSels(decays, 'Xic2PKPiLc2PKPi', inputs, config) + self.lines.append(ProtoLine(rs, 1.0)) + + def _makeB2XicpbarPi(self): + '''Make B- -> Xic+ pbar pi-''' + pions = self.topoPions_pid + decays = {'B2XicpbarPi': ["[B- -> Xi_c+ p~- pi-]cc"]} + inputs = {'B2XicpbarPi': self.xic + self.protons_pid + pions} + make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(make_xic, 1.0)) + + def _makeB02XicpbarPiPi(self): + '''Make B0 -> Xic+ pi+ pi- pbar''' + pions = self.topoPions_pid + decays = {'B02XicpbarPiPi': ["[B0 -> Xi_c+ pi+ pi- p~-]cc"]} + inputs = {'B02XicpbarPiPi': self.xic + self.protons_pid + pions} + make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(make_xic, 1.0)) + + def _makeB02XicpbarKPi(self): + '''Make B0 -> Xic+ K+ pi- pbar''' + pions = self.topoPions_pid + kaons = self.topoKaons_pid + decays = {'B02XicpbarKPi': ["[B0 -> Xi_c+ K+ pi- p~-]cc"]} + inputs = {'B02XicpbarKPi': self.xic + self.protons_pid + pions + kaons} + make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(make_xic, 1.0)) + + def _makeB02DpbarLambda(self, lambda0): + '''Make B0 -> Lambda0 D(*)+ pbar''' + decays = {'B02DpbarLambda' + lambda0: ["[B0 -> D+ p~- Lambda0]cc"]} + inputs = {'B02DpbarLambda' + lambda0: self.d.hh_pid_tight + self.protons_pid + self.lambda0[lambda0]} + make_d = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(make_d, 1.0)) + decays = {'B02DstpbarLambda' + lambda0: ["[B0 -> D*(2010)+ p~- Lambda0]cc"]} + inputs = {'B02DstpbarLambda' + lambda0: self.dst.d0pi_pid + self.protons_pid + self.lambda0[lambda0]} + make_dst = makeB2XSels(decays, 'Dst2D0Pi', inputs, self.config) + self.lines.append(ProtoLine(make_dst, 1.0)) + inputs = {'B02DstpbarLambda' + lambda0: self.dst.d0pi_k3pi_pid + self.protons_pid + self.lambda0[lambda0]} + make_dst_k3pi = makeB2XSels(decays, 'Dst2D0PiD02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_dst_k3pi, 1.0)) + + def _makeB2D0pbarLambda(self, lambda0): + '''Make B- -> Lambda0 D0 pbar''' + decays = {'B2D0pbarLambda' + lambda0: ["B- -> D0 p~- Lambda0", "B+ -> D0 p+ Lambda~0"]} + inputs = {'B2D0pbarLambda' + lambda0: self.d0_pid + self.protons_pid + self.lambda0[lambda0]} + make_d0 = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(make_d0, 1.0)) + inputs = {'B2D0pbarLambda' + lambda0: self.d0_k3pi_pid + self.protons_pid + self.lambda0[lambda0]} + make_d0_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_d0_k3pi, 1.0)) + + def _makeB02D0pbarKLambda(self, lambda0): + '''Make B0 -> Lambda0 D0 pbar K+''' + kaons = self.topoKaons_pid + decays = {'B02D0pbarKLambda' + lambda0: ["B0 -> D0 p~- Lambda0 K+", "B0 -> D0 p+ Lambda~0 K-"]} + inputs = {'B02D0pbarKLambda' + lambda0: self.d0_pid + self.protons_pid + self.lambda0[lambda0] + kaons} + make_d0 = makeB2XSels(decays, 'D02HH', inputs, self.config) + self.lines.append(ProtoLine(make_d0, 1.0)) + inputs = {'B02D0pbarKLambda' + lambda0: self.d0_k3pi_pid + self.protons_pid + self.lambda0[lambda0] + kaons} + make_d0_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_d0_k3pi, 1.0)) + + def _makeXib2XicHHHH(self): + '''Make Xib- -> Xic+ pi+ pi- pi- pi-''' + pipipipi = self.hhh.pipipipi + decays = {'Xib2XicHHHH': ["[Xi_b- -> Xi_c+ a_1(1260)-]cc"]} + inputs = {'Xib2XicHHHH': self.xic + pipipipi} + make_Xic4h = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) + self.lines.append(ProtoLine(make_Xic4h, 1.0)) + + def _makeXib2LcKHHH(self): + '''Make Xib- -> Lambdac+ pi+ K- pi- pi-''' + kpipipi = self.hhh.kpipipi + decays = {'Xib2LcKHHH': ["[Xi_b- -> Lambda_c+ K_1(1270)-]cc"]} + inputs = {'Xib2LcKHHH': self.lc + kpipipi} + make_LcKhhh = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) + self.lines.append(ProtoLine(make_LcKhhh, 1.0)) + + def _makeXib02D0LambdaPiPi(self): + '''Make Xib0 -> D0 Lambda0 pi+ pi-''' + pipi = self.hh.pipi + lambda0="LL" + decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} + inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_pid + pipi+ self.lambda0[lambda0]} + make_D0L0PiPiLLKPi= makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(make_D0L0PiPiLLKPi, 1.0)) + decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} + inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_k3pi_pid + pipi+ self.lambda0[lambda0]} + make_D0L0PiPiLLK3Pi= makeB2XSels(decays, 'D02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_D0L0PiPiLLK3Pi, 1.0)) + + lambda0="DD" + decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} + inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_pid + pipi+ self.lambda0[lambda0]} + make_D0L0PiPiDDKPi= makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(make_D0L0PiPiDDKPi, 1.0)) + decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} + inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_k3pi_pid + pipi+ self.lambda0[lambda0]} + make_D0L0PiPiDDK3Pi= makeB2XSels(decays, 'D02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_D0L0PiPiDDK3Pi, 1.0)) + + def _makeOmegab2Xic0KPiPi(self): + '''Make Omegab- -> Xic0 K Pi Pi''' + kpipi = self.hhh.kpipi + decays = {'Omegab2Xic0KPiPi': ["[Omega_b- -> Xi_c0 K_1(1270)-]cc"]} + inputs = {'Omegab2Xic0KPiPi': self.xic0 + kpipi} + make_rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) + self.lines.append(ProtoLine(make_rs, 1.0)) + + + def _makeXib02XicD0K(self): + '''Make Xib0 -> Xic+ D~0 K-''' + kaons = self.topoKaons_pid + decays = {'Xib02XicD0K': ["Xi_b0 -> Xi_c+ D0 K-","Xi_b0 -> Xi_c~- D0 K+"]} + inputs = {'Xib02XicD0K': self.xic + self.d0_pid + kaons} + make_d2KPi = makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(make_d2KPi, 1.0)) + + decays = {'Xib02XicD0K': ["Xi_b0 -> Xi_c+ D0 K-","Xi_b0 -> Xi_c~- D0 K+"]} + inputs = {'Xib02XicD0K': self.xic + self.d0_k3pi_pid + kaons} + make_d2K3Pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) + self.lines.append(ProtoLine(make_d2K3Pi, 1.0)) + + + def _makeXib2XicDK(self): + '''Make Xib- -> Xic0 D~0 K-, Xib- -> Xic+ D- K-, Xib- -> Xic+ D*- K-''' + kaons = self.topoKaons_pid + + decays = {'Xib2Xic0D0K': ["Xi_b- -> Xi_c0 D0 K-","Xi_b~+ -> Xi_c~0 D0 K+"]} + inputs = {'Xib2Xic0D0K': self.xic0 + self.d0_pid + kaons} + make_d2KPi = makeB2XSels(decays, 'D02KPi', inputs, self.config) + self.lines.append(ProtoLine(make_d2KPi, 1.0)) + + decays = {'Xib2XicDK': ["[Xi_b- -> Xi_c+ D- K-]cc"]} + inputs = {'Xib2XicDK': self.xic + self.d.hhh_cf_pid + kaons} + make_d2hhh = makeB2XSels(decays, 'D2HHH', inputs, self.config) + self.lines.append(ProtoLine(make_d2hhh, 1.0)) -class Beauty2CharmConf(LineBuilder): - - __configuration_keys__ = default_config['CONFIG'].keys() - - def __init__(self, moduleName, config): - - LineBuilder.__init__(self, moduleName, config) - - # pre-filter inputs - pions = filterInputs('Pi', [StdAllNoPIDsPions], config['ALL']) - pions_pid = filterInputs('Pi_PID', [pions], config['PIDPION']) - uppions = filterInputs('PiUP', [StdNoPIDsUpPions], config['UPSTREAM']) - kaons = filterInputs('K', [StdAllNoPIDsKaons], config['ALL']) - kaons_pid = filterInputs('K_PID', [kaons], config['PIDKAON']) - upkaons = filterInputs('KaUP', [StdNoPIDsUpKaons], config['UPSTREAM']) - protons = filterInputs('P', [StdAllNoPIDsProtons], config['ALL']) - protons_pid = filterInputs('P_PID', [protons], config['PIDPROTON']) - - #pions,kaons, protons for Lc, Xic from Xibc - pions_Xc_Xibc = filterInputs('Pi_Xc_Xibc', [StdAllNoPIDsPions], - config['Xibc_Xc_PION']) - kaons_Xc_Xibc = filterInputs('K_Xc_Xibc', [StdAllNoPIDsKaons], - config['Xibc_Xc_KAON']) - protons_Xc_Xibc = filterInputs('P_Xc_Xibc', [StdAllNoPIDsProtons], - config['Xibc_Xc_PROTON']) - #pions,kaons, from Xicc or Xib vertex (filter from PID pions, above, as all cuts are tighter) - pions_Xb_Xibc = filterInputs('Pi_Xb_Xibc', [pions_pid], - config['Xibc_Xb_PION']) - kaons_Xb_Xibc = filterInputs('K_Xb_Xibc', [kaons_pid], - config['Xibc_Xb_KAON']) - protons_Xb_Xibc = filterInputs('P_Xb_Xibc', [protons_pid], - config['Xibc_Xb_PROTON']) - - ks_dd = filterInputs('KS0_DD', [dataOnDemand("StdLooseKsDD")], - config['KS0']) - ks_ll = filterInputs('KS0_LL', [dataOnDemand("StdVeryLooseKsLL")], - config['VLKS0_LL']) - ks = {"DD": [ks_dd], "LL": [ks_ll]} - lambda0_dd = filterInputs('Lambda0_DD', - [dataOnDemand("StdLooseLambdaDD")], - config['Lambda0']) - lambda0_ll = filterInputs('Lambda0_LL', - [dataOnDemand("StdLooseLambdaLL")], - config['Lambda0']) - lambda0 = {"DD": [lambda0_dd], "LL": [lambda0_ll]} - pi0_merged = filterPi0s('Merged', [StdLooseMergedPi0], config['Pi0']) - pi0_resolved = filterPi0s('Resolved', [StdLooseResolvedPi0], - config['Pi0']) - pi0_all = MergedSelection( - 'Pi0AllBeauty2Charm', - RequiredSelections=[pi0_merged, pi0_resolved]) - - pi0 = { - 'Merged': [pi0_merged], - 'Resolved': [pi0_resolved], - 'all': [pi0_all] - } - - pcut = 'P > %s' % config['Pi0']['FROM_B_P_MIN'] - pi0_fromB_merged = filterSelection('Pi0FromBMerged', pcut, - [pi0_merged]) - pi0_fromB_resolved = filterSelection('Pi0FromBResolved', pcut, - [pi0_resolved]) - pi0_fromB = { - 'Merged': [pi0_fromB_merged], - 'Resolved': [pi0_fromB_resolved] - } - muons = filterInputs('MU', [StdLooseMuons], - config['ALL']) # make muons (for D -> phi mu nu) - - # Jordi: photon selection. - gammacut = '(PT > %(PT_MIN)s) & (CL > %(CL_MIN)f) & (PPINFO(LHCb.ProtoParticle.IsNotE,-1) > %(ISNOTE_MIN)f)' % config[ - 'gamma'] - photons = filterSelection('Gamma', gammacut, [StdLooseAllPhotons]) - # Alessandro Bertolin: very loose all photons. - vlagammacut = '(PT > %(PT_VLAPH)s) & (CL > %(CL_MIN)f) & (PPINFO(LHCb.ProtoParticle.IsNotE,-1) > %(ISNOTE_MIN)f)' % config[ - 'gamma'] - vlaphotons = filterSelection('VLAGamma', vlagammacut, - [StdVeryLooseAllPhotons]) - - # pre-filter hard inputs (these could have been used in HLT2) - topoPions = topoInputs('Pi', [pions]) - topoPions_PID = topoInputs('Pi_PID', [pions_pid]) - topoPionsLoose = topoInputsLoose('PiLoose', [pions]) - topoKaons = topoInputs('K', [kaons]) - topoKaons_PID = topoInputs('K_PID', [kaons_pid]) - topoKaonsLoose = topoInputsLoose('KLoose', [kaons]) - topoProtons = topoInputs('P', [protons]) - topoProtons_PID = topoInputs('P_PID', [protons_pid]) - - # X -> hh - hh = HHBuilder(pions, kaons, protons, ks, pi0_fromB, config['HH'], - config['PID']) - - # X -> hhh - hhh = HHHBuilder(pions, kaons, protons, config['HHH'], config['PID']) - - # make D->X, etc. inputs - d = DBuilder(pions, kaons, ks, pi0, uppions, upkaons, muons, hh, - config['D2X'], config['D2X_FOR_DDX'], config['PID'], - config['Pi0']) - dst = DstarBuilder(d, pions, uppions, pi0, photons, vlaphotons, - config['Dstar'], config['PID']) - - # Lc -> X - lc = LcBuilder(pions_pid, kaons_pid, protons_pid, lambda0, config['D2X'], - config['PID']) - lcstar = LcstarBuilder(lc, pions_pid, config['Lcstar']) - xicc = XiccBuilder(lc, pions_pid, config['D2X']) - # Loose Lc, for Xibc - lcLoose = LooseLcBuilder(pions_Xc_Xibc, kaons_Xc_Xibc, protons_Xc_Xibc, - config['LC_FOR_XIBC']) - xiccLoose = LooseXiccBuilder(lcLoose, pions_Xb_Xibc, kaons_Xb_Xibc, - config['LC_FOR_XIBC']) - - # make B->DX - b2dx = B2DXBuilder(d, dst, topoPions, topoPionsLoose, topoKaons, topoKaonsLoose, - topoKaons_PID, topoPions_PID, topoProtons_PID, muons, ks, pi0_fromB, - hh, hhh, config['B2X']) - self._makeLines(b2dx.lines, config) - - # Bc -> DD lines - bc2dd = Bc2DDBuilder(d, dst, config['Bc2DD']) - self._makeLines(bc2dd.lines, config) - - # Bc->Buhh lines - bc2bx = Bc2BXBuilder(b2dx, topoPionsLoose, topoKaonsLoose, - config['Bc2BX']) - self._makeLines(bc2bx.lines, config) - - #Bc -> DX lines - bc2dx = Bc2DXBuilder(lc, topoProtons_PID, d, dst, hh, topoPionsLoose, topoPions_PID, topoKaonsLoose, topoKaons_PID, - config['Bc2DX']) - self._makeLines(bc2dx.lines, config) - - # Lb -> X - lb2x = Lb2XBuilder(lc, lcstar, xicc, d, hh, topoPions, topoPions_PID, - topoKaons, topoKaons_PID, topoProtons, - topoProtons_PID, pions, kaons, ks, hhh, dst, - lambda0, config['B2X']) - self._makeLines(lb2x.lines, config) - - # Xibc -> Xc hh, LcD0, Xicc h - xibc = XibcBuilder(lcLoose, xiccLoose, d, topoPions_PID, topoKaons_PID, - topoProtons_PID, pions_Xb_Xibc, kaons_Xb_Xibc, - protons_Xb_Xibc, muons, config['Xibc'], - config['XiccMu']) - self._makeLines(xibc.lines, config) - - # Unbiased lines - ltub = LTUnbiasedBuilder(d, dst, config['B2X']) - self._makeLines(ltub.lines, config) - - # UP D* lines - for line in b2dx.lines: - for sel in line.selections: - if sel.name().find('WS') > 0: continue - dstar_sel = makeB2DstarX(sel, uppions, config['B2X']) - self._makeLine(ProtoLine([dstar_sel], line.pre), config) - - # UNKNOWN line - # # B->D0X inclusive line - # cuts = "(PT > %d*MeV) & (ADMASS('D0') < 25*MeV) & (MIPCHI2DV(PRIMARY)>%d)" \ - # % (config['D0INC']['PT_MIN'],config['D0INC']['IPCHI2_MIN']) - # sel = filterSelection('D02KPIPIDMTIGHT',cuts,d.kpi_pid_tight) - # sel = tosSelection(sel,{'Hlt2Topo2.*Decision%TOS':0}) - # hlt = "HLT_PASS_RE('Hlt2Topo2.*Decision')" - # sline = StrippingLine('D02HHTopoTOSLine',1.0,selection=sel,HLT2=hlt) - # self.registerLine(sline) - - def _makeLine(self, protoLine, config): - tag = 'B2CBBDTBeauty2CharmFilter' - default = config['Prescales']['RUN_BY_DEFAULT'] - run_re = config['Prescales']['RUN_RE'] - prescale_keys = config['Prescales'].keys() - for line in protoLine.selections: - name = line.name().replace(tag, '') + 'Line' - match = False - for r in run_re: - if re.match(r, name): - match = True - break - if (not default) and (not match) and (not (name in prescale_keys)): - continue - tmpSel = Selection( - line.name() + 'FilterALL', - Algorithm=FilterDesktop(Code='ALL'), - RequiredSelections=[line]) - filter = {'Code' : - "(recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG)"\ - " < %s )" \ - % config['GECNTrkMax'], - 'Preambulo' : [ "from LoKiTracks.decorators import *", - 'from LoKiCore.functions import *' ] - } - # Hlt2IncPhi untill 2015, since 2016 Hlt2PhiIncPhi - hlt = "(HLT_PASS_RE('Hlt2Topo.*Decision') | "\ - "HLT_PASS_RE('Hlt2.*IncPhi.*Decision'))" - - if ((name in config['RawEvents'])): - rawevent = [ - "Trigger", "Muon", "Calo", "Rich", "Velo", "Tracker" - ] - else: - rawevent = [] - - checkPV_option = True - - sline = StrippingLine( - name, - protoLine.prescale(line, name, config), - selection=tmpSel, - checkPV=checkPV_option, - FILTER=filter, - HLT2=hlt, - EnableFlavourTagging=(name in config['FlavourTagging']), - RequiredRawEvents=rawevent, - MDSTFlag=(name in config['MDSTChannels']), - RelatedInfoTools=config['RelatedInfoTools']) - - self.registerLine(sline) - - def _makeLines(self, lines, config): - for line in lines: - self._makeLine(line, config) + decays = {'Xib2XicDK': ["[Xi_b- -> Xi_c+ D*(2010)- K-]cc"]} + inputs = {'Xib2XicDK': self.xic + self.dst.d0pi_pid + kaons} + make_dst2d0h = makeB2XSels(decays, 'Dst2D0Pi', inputs, self.config) + self.lines.append(ProtoLine(make_dst2d0h, 1.0)) #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -- GitLab From 741ecb188c3c751aae155b520d6a8cedad8fb353 Mon Sep 17 00:00:00 2001 From: bshi <boan.shi@cern.ch> Date: Thu, 13 Jul 2023 21:56:33 +0800 Subject: [PATCH 2/3] amend StrippingBeauty2Charm.py --- .../StrippingB2OC/StrippingBeauty2Charm.py | 4756 +++++++---------- 1 file changed, 1946 insertions(+), 2810 deletions(-) diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py index a66f22a3e..8842d46e8 100644 --- a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py +++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py @@ -1,5 +1,6 @@ ############################################################################### -# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration # +# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration # +# # # This software is distributed under the terms of the GNU General Public # # Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # # # @@ -8,2828 +9,1963 @@ # or submit itself to any jurisdiction. # ############################################################################### #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# +''' +B->DX, Lb -> LcX, etc. -from copy import deepcopy -from Gaudi.Configuration import * -from GaudiConfUtils.ConfigurableGenerators import CombineParticles -from GaudiConfUtils.ConfigurableGenerators import DaVinci__N3BodyDecays, DaVinci__N4BodyDecays -from PhysSelPython.Wrappers import Selection -from Beauty2Charm_LoKiCuts import LoKiCuts -from Beauty2Charm_Utils import * - -#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - -class XimBuilder(object): - '''Produces all Xim baryons for the Beauty2Charm module.''' - - def __init__(self, pions, kaons, protons, lambda0, config_Xim): - - #selections written in StrippingBeauty2Charm.py - self.pions = pions - self.kaons = kaons - self.protons = protons - self.lambda0 = lambda0 - self.config_Xim = config_Xim #Xi- selections written in StrippingBeauty2Charm.py - - #Xi- - self.xim_lmd0pim_LL = [self._makeXim2Lmd0Pim("LL")] - self.xim_lmd0pim_DD = [self._makeXim2Lmd0Pim("DD")] - - def _makeXim2Lmd0Pim(self, lmd): - '''Makes Xi- -> Lambda0 Pim + cc''' - dm, units = LoKiCuts.cutValue(self.config_Xim['MASS_WINDOW']) - # Pre vertex fit - comboCuts = [ - "(ADAMASS('Xi-') < %s*%s) " % (dm + 50, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xim).code()) - comboCuts = LoKiCuts.combine(comboCuts) - # Post vertex fit - momCuts = [ - "(ADMASS('Xi-') < %s*%s) " % (dm + 40, units) - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi- -> Lambda0 pi-", "Xi~+ -> Lambda~0 pi+"]) - return Selection( - 'Xim2Lambda0Pim' + lmd + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections= self.lambda0[lmd] + [self.pions]) +Author: M. Williams +''' +__author__ = ['Mike Williams'] +__all__ = ('Beauty2CharmConf', 'default_config') +moduleName = 'Beauty2Charm' #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - -class LcBuilder(object): - '''Produces all Lambda_c baryons for the Beauty2Charm module.''' - - def __init__(self, pions, kaons, protons, lambda0, ks, xim, config, config_Xic0, config_pid): - self.pions = pions - self.kaons = kaons - self.protons = protons - self.lambda0 = lambda0 - self.ks = ks - self.xim_lmd0pim_LL = xim.xim_lmd0pim_LL - self.xim_lmd0pim_DD = xim.xim_lmd0pim_DD - self.config = config - self.pkpi = [self._makeLc2phh()] - self.pkk = [self._makeLc2phh("PKK")] - self.ppipi = [self._makeLc2phh("PPiPi")] - self.xic_pkpi = [self._makeXic2pKpi()] - self.xic0_pkkpi = [self._makeXic02pKKpi()] - self.omegac0_pkkpi = [self._makeOmegac02pKKpi()] - self.config_Xic0 = config_Xic0 - - # Xic0_XimPip - self.xic0_ximpip_LL = [self._makeXic02XimPip("LL")] - self.xic0_ximpip_DD = [self._makeXic02XimPip("DD")] - # xic0_Lambda0kmpip - self.xic0_lmd0kmpip_LL = [self._makeXic02Lambda0KmPip("LL")] - self.xic0_lmd0kmpip_DD = [self._makeXic02Lambda0KmPip("DD")] - # xic0_PKsKm - self.xic0_pkskm_LL = [self._makeXic02PKsKm("LL")] - self.xic0_pkskm_DD = [self._makeXic02PKsKm("DD")] - - # Filter with tighter PID - self.lambdapiLL = [self._makeLc2Lambdapi("LL")] - self.lambdapiDD = [self._makeLc2Lambdapi("DD")] - self.xic_pkpi = [self._makeXic2pKpi()] - self.xic0_pkkpi = [self._makeXic02pKKpi()] - self.omegac0_pkkpi = [self._makeOmegac02pKKpi()] - - # Filter with tighter PID - self.pkpi_tight = [ - filterPID('LC2PKPITIGHTER3PID', self.pkpi, config_pid['TIGHTER3']) - ] - self.xic_pkpi_tight = [ - filterPID('XIC2PKPITIGHTER3PID', self.xic_pkpi, - config_pid['TIGHTER3']) - ] - self.omegac0_pkkpi_tight = [ - filterPID('OMC02PKKPITIGHTER3PID', self.omegac0_pkkpi, - config_pid['TIGHTER3']) - ] - - # Now apply tighter mass window - mCutLc = "ADMASS('Lambda_c+') < 60.0" - mCutXic = "ADMASS('Xi_c+') < 60.0" - mCutXicTight = "ADMASS('Xi_c+') < 50.0" - mCutOmegac = "ADMASS('Omega_c0') < 60.0" - self.pkpi_tight_win = [ - filterSelection('LC2PKPITIGHTER3PIDMWIN', mCutLc, self.pkpi_tight) - ] - self.xic_pkpi_tight_win = [ - filterSelection('XIC2PKPITIGHTER3PIDMWIN', mCutXic, - self.xic_pkpi_tight) - ] - self.xic_pkpi_tightest_win = [ - filterSelection('XIC2PKPITIGHTEST3PIDMWIN', mCutXicTight, - self.xic_pkpi_tight) - ] - self.omegac0_pkkpi_tight_win = [ - filterSelection('OMC02PKPITIGHTER3PIDMWIN', mCutOmegac, - self.omegac0_pkkpi_tight) - ] - - def _makeLc2phh(self,mode="PKPi"): - '''Makes Lc -> p h h' + cc - mode: - "PKPi" : Lc -> p K pi - "PKK" : Lc -> p K K - "PPiPi": Lc -> p pi pi - ''' - decays = { - "PKPi" : "[Lambda_c+ -> p+ K- pi+]cc", - "PKK" : "[Lambda_c+ -> p+ K- K+]cc", - "PPiPi": "[Lambda_c+ -> p+ pi- pi+]cc" - } - inputs = { - "PKPi" : [self.pions, self.kaons, self.protons], - "PKK" : [self.kaons, self.protons], - "PPiPi": [self.pions, self.protons] - } - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N3BodyDecays( - Combination12Cut=comboCuts12, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=[decays[mode]]) - return Selection( - "Lc2%sBeauty2Charm" % mode, - Algorithm=cp, - RequiredSelections=inputs[mode]) - - def _makeLc2Lambdapi(self, lambda0): - '''Makes Lambda_c+ -> Lambda0 pi+''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - - decays = {'Lc2Lambdapi' + lambda0: ["[Lambda_c+ -> Lambda0 pi+]cc"]} - inputs = { - 'Lc2Lambdapi' + lambda0: - self.lambda0[lambda0] + [self.pions], - } - mode = 'Lc2Lambdapi' + lambda0 - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=decays[mode]) - return Selection( - "%sBeauty2Charm" % mode, - Algorithm=cp, - RequiredSelections=inputs[mode]) - - def _makeXic2pKpi(self): - '''Makes Xic -> p K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_c+') < %s*%s) " % (dm + 10, units), - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N3BodyDecays( - Combination12Cut=comboCuts12, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_c+ -> p+ K- pi+]cc"]) - return Selection( - 'Xic2PKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeXic02pKKpi(self): - '''Makes Xic0 -> p K K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 10, units), - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] - comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts123 = LoKiCuts.combine(comboCuts123) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c0') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N4BodyDecays( - Combination12Cut=comboCuts12, - Combination123Cut=comboCuts123, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_c0 -> p+ K- K- pi+]cc"]) - return Selection( - 'Xic02PKKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeOmegac02pKKpi(self): - '''Makes Omegac0 -> p K K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Omega_c0') < %s*%s) " % (dm + 10, units), - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] - comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts123 = LoKiCuts.combine(comboCuts123) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Omega_c0') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N4BodyDecays( - Combination12Cut=comboCuts12, - Combination123Cut=comboCuts123, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Omega_c0 -> p+ K- K- pi+]cc"]) - return Selection( - 'Omegac02PKKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeXic02XimPip(self, lmd): - '''Makes Xi_c0 -> Xi- pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) - comboCuts = [ - "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 50, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c0') < %s*%s) " % (dm + 30, units) - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_c0 -> Xi- pi+", "Xi_c~0 -> Xi~+ pi-"]) - used_xim = self.xim_lmd0pim_DD - if "LL" in lmd: - used_xim = self.xim_lmd0pim_LL - else: - pass - return Selection( - 'Xic02XimPip' + lmd + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=used_xim + [self.pions]) - - def _makeXic02Lambda0KmPip(self, lmd): - '''Makes Xi_c0 -> Lambda0 K- Pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) - comboCuts = [ - "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 50, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) - comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c0') < %s*%s) " % (dm - 70, units) - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_c0 -> Lambda0 K- pi+", "Xi_c~0 -> Lambda~0 K+ pi-"]) - return Selection( - 'Xic02Lambda0KmPip' + lmd + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=self.lambda0[lmd] + [self.kaons] + [self.pions]) - - def _makeXic02PKsKm(self, ks): - '''Makes Xi_c0 -> p Ks K- + cc''' - dm, units = LoKiCuts.cutValue(self.config_Xic0['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_c0') < %s*%s) " % (dm - 90, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_Xic0).code()) - comboCuts.append(LoKiCuts(['ADOCA13'], self.config_Xic0).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config_Xic0).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c0') < %s*%s) " % (dm - 110, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_c0 -> p+ KS0 K-", "Xi_c~0 -> p~- KS0 K+"]) - return Selection( - 'Xic02PKsKm' + ks + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=self.ks[ks] + [self.protons, self.kaons]) - -#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - - -class LooseLcBuilder(object): - '''Produces Loose Lambda_c baryons for the Beauty2Charm module.''' - - def __init__(self, pions, kaons, protons, config): - self.pions = pions - self.kaons = kaons - self.protons = protons - self.config = config - self.pkpi = [self._makeLooseLc2pKpi()] - self.xic_pkpi = [self._makeLooseXic2pKpi()] - self.xic0_pkkpi = [self._makeLooseXic02pKKpi()] - self.omegac0_pkkpi = [self._makeLooseOmegac02pKKpi()] - - def _makeLooseLc2pKpi(self): - '''Makes Lc -> p K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Lambda_c+') < %s*%s) " % (dm + 10, units), - "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 2)", - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Lambda_c+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N3BodyDecays( - Combination12Cut=comboCuts12, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Lambda_c+ -> p+ K- pi+]cc"]) - return Selection( - 'LooseLc2PKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeLooseXic2pKpi(self): - '''Makes Xic -> p K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_c+') < %s*%s) " % (dm + 10, units), - "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 2)", - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts.append(LoKiCuts(['ADOCA13'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N3BodyDecays( - Combination12Cut=comboCuts12, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_c+ -> p+ K- pi+]cc"]) - return Selection( - 'LooseXic2PKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeLooseXic02pKKpi(self): - '''Makes Xic0 -> p K K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_c0') < %s*%s) " % (dm + 10, units), - "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 3)", - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] - comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts123 = LoKiCuts.combine(comboCuts123) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_c0') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N4BodyDecays( - Combination12Cut=comboCuts12, - Combination123Cut=comboCuts123, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_c0 -> p+ K- K- pi+]cc"]) - return Selection( - 'LooseXic02PKKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - def _makeLooseOmegac02pKKpi(self): - '''Makes Omegac0 -> p K K pi + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Omega_c0') < %s*%s) " % (dm + 10, units), - "(ANUM(MIPCHI2DV(PRIMARY)>4) >= 3)", - hasTopoChild() - ] - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts123 = [LoKiCuts(['ADOCA13'], self.config).code()] - comboCuts123.append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA14'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA24'], self.config).code()) - comboCuts.append(LoKiCuts(['ADOCA34'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts123 = LoKiCuts.combine(comboCuts123) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Omega_c0') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = DaVinci__N4BodyDecays( - Combination12Cut=comboCuts12, - Combination123Cut=comboCuts123, - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Omega_c0 -> p+ K- K- pi+]cc"]) - return Selection( - 'LooseOmegac02PKKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=[self.pions, self.kaons, self.protons]) - - -#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -class LcstarBuilder(object): - '''Produces Lambda_c star baryons for the Beauty2Charm module''' - def __init__(self, lc, pions, config): - self.lc = lc.pkpi - self.pions = pions - self.config = config - self.lcstar2595 = [self._makeLcstar2Lcpipi("Lcstar2595")] - self.lcstar2625 = [self._makeLcstar2Lcpipi("Lcstar2625")] - - def _makeLcstar2Lcpipi(self, mode): - '''Makes Lambda_c(2595)+ -> Lambda_c+ pi+ pi-''' - '''Makes Lambda_c(2625)+ -> Lambda_c+ pi+ pi-''' - decays = { - "Lcstar2595" : "[Lambda_c(2595)+ -> Lambda_c+ pi+ pi-]cc", - "Lcstar2625" : "[Lambda_c(2625)+ -> Lambda_c+ pi+ pi-]cc", - } - inputs = { - "Lcstar2595" : self.lc+[self.pions], - "Lcstar2625" : self.lc+[self.pions], - } - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = { - "Lcstar2595":[ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Lambda_c(2595)+') < %s*%s) " % (dm + 10, units),], - "Lcstar2625":[ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Lambda_c(2625)+') < %s*%s) " % (dm + 10, units),], - } - comboCuts12 = [LoKiCuts(['ADOCA12'], self.config).code()] - comboCuts[mode].append(LoKiCuts(['ADOCA13'], self.config).code()) - comboCuts[mode].append(LoKiCuts(['ADOCA23'], self.config).code()) - comboCuts12 = LoKiCuts.combine(comboCuts12) - comboCuts[mode] = LoKiCuts.combine(comboCuts[mode]) - momCuts = { - "Lcstar2595": [ - "(ADMASS('Lambda_c(2595)+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code()], - "Lcstar2625": [ - "(ADMASS('Lambda_c(2625)+') < %s*%s) " % (dm, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code()], - } - momCuts[mode] = LoKiCuts.combine(momCuts[mode]) - cp = DaVinci__N3BodyDecays( - Combination12Cut=comboCuts12, - CombinationCut=comboCuts[mode], - MotherCut=momCuts[mode], - DecayDescriptors=[decays[mode]]) - return Selection( - "Lc2%sBeauty2Charm" % mode, - Algorithm=cp, - RequiredSelections=inputs[mode]) - -class XiccBuilder(object): - '''Produces Xi_cc baryons for the Beauty2Charm module.''' - - def __init__(self, lc, pions, config): - self.lc = lc.pkpi - self.pions = pions - self.config = config - self.xic = lc.xic_pkpi - self.xic0 = lc.xic0_pkkpi - self.xiccpp = [self._makeXiccpp2Xicpi()] - self.xiccp = [self._makeXiccp2Xic0pi()] - self.sigmacpp = [self._makeSigmacpp2LcPi()] - - def _makeXiccpp2Xicpi(self): - '''Makes Xi_cc++-> Xi_c+ pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_cc++') < %s*%s) " % (dm + 410, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_cc++') < %s*%s) " % (dm + 400, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_cc++ -> Xi_c+ pi+]cc"]) - return Selection( - 'Xiccpp2XicPiXic2PKPiPBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.xic + [self.pions]) - - def _makeXiccp2Xic0pi(self): - '''Makes Xi_cc+ -> Xi_c0 pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_cc+ -> Xi_c0 pi+]cc"]) - return Selection( - 'Xiccp2Xic0PiXic02PKKPiPBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.xic0 + [self.pions]) - - def _makeSigmacpp2LcPi(self): - '''Makes Sigma_c++-> Lc+ pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Sigma_c++') < %s*%s) " % (dm + 150, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Sigma_c++') < %s*%s) " % (dm + 120, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Sigma_c++ -> Lambda_c+ pi+]cc"]) - return Selection( - 'Sigmacpp2LcPiLc2PKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.lc + [self.pions]) - +import re +from Gaudi.Configuration import * +from GaudiConfUtils.ConfigurableGenerators import FilterDesktop +from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection +from PhysSelPython.Wrappers import EventSelection +from StrippingConf.StrippingLine import StrippingLine +from StrippingUtils.Utils import LineBuilder +from Configurables import LoKi__VoidFilter +from StandardParticles import (StdAllNoPIDsPions, StdAllNoPIDsKaons, + StdAllNoPIDsProtons, StdNoPIDsUpPions, + StdLooseMuons, StdNoPIDsUpKaons, + StdLooseResolvedPi0, StdLooseMergedPi0) +from StandardParticles import StdLooseAllPhotons, StdVeryLooseAllPhotons +from Beauty2Charm_DBuilder import * +from Beauty2Charm_HHBuilder import * +from Beauty2Charm_HHHBuilder import * +from Beauty2Charm_B2DXBuilder import * +from Beauty2Charm_Lb2XBuilder import * +from Beauty2Charm_LTUnbiased import * +from Beauty2Charm_Bc2DDBuilder import * +from Beauty2Charm_Bc2BXBuilder import * +from Beauty2Charm_Bc2DXBuilder import * #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - -class LooseXiccBuilder(object): - '''Produces Xi_cc baryons for the Beauty2Charm module.''' - - def __init__(self, lc, pions, kaons, config): - self.lc = lc.pkpi - self.pions = pions - self.kaons = kaons - self.config = config - self.xic = lc.xic_pkpi - self.xic0 = lc.xic0_pkkpi - self.xiccpp = [self._makeLooseXiccpp2Xicpi()] - self.xiccpp2lck2pi = [self._makeLooseXiccpp2LcK2Pi()] - self.xiccp = [self._makeLooseXiccp2Xic0pi()] - - def _makeLooseXiccpp2Xicpi(self): - '''Makes Xi_cc++-> Xi_c+ pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_cc++') < %s*%s) " % (dm + 410, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_cc++') < %s*%s) " % (dm + 400, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_cc++ -> Xi_c+ pi+]cc"]) - return Selection( - 'LooseXiccpp2XicPiXic2PKPiPBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.xic + [self.pions]) - - def _makeLooseXiccp2Xic0pi(self): - '''Makes Xi_cc+ -> Xi_c0 pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_cc+ -> Xi_c0 pi+]cc"]) - return Selection( - 'LooseXiccp2Xic0PiXic02PKKPiPBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.xic0 + [self.pions]) - - def _makeLooseXiccpp2LcK2Pi(self): - '''Makes Xi_cc++ -> Lambda_c+ K- pi+ pi+ + cc''' - dm, units = LoKiCuts.cutValue(self.config['MASS_WINDOW']) - comboCuts = [ - LoKiCuts(['ASUMPT'], self.config).code(), - "(ADAMASS('Xi_cc+') < %s*%s) " % (dm + 410, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_cc+') < %s*%s) " % (dm + 400, units), - LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() +# Default configuration dictionary +default_config = { + 'NAME': 'Beauty2Charm', + 'BUILDERTYPE': 'Beauty2CharmConf', + 'CONFIG': { + "ALL": + { # Cuts made on all charged input particles in all lines (expt. upstream) + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'TRGHP_MAX': 0.4 + }, + "PIDPION": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDK_MAX': 20., + 'TRGHP_MAX': 0.4 + }, + "PIDKAON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDK_MIN': -10., + 'TRGHP_MAX': 0.4 + }, + "PIDPROTON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDp_MIN': -10., + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xc_PION": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 1.0, + 'PIDK_MAX': 10., + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xc_KAON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '150*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 1.0, + 'PIDK_MIN': -5.0, + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xc_PROTON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '400*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 1.0, + 'PIDp_MIN': -5.0, + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xb_PION": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '300*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDK_MAX': 10., + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xb_KAON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '300*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDK_MIN': -5.0, + 'TRGHP_MAX': 0.4 + }, + "Xibc_Xb_PROTON": { + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '300*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4., + 'PIDp_MIN': -5.0, + 'TRGHP_MAX': 0.4 + }, + "UPSTREAM": { # Cuts made on all upstream particles + 'TRCHI2DOF_MAX': 4., + 'PT_MIN': '100*MeV', + 'P_MIN': '1000*MeV', + 'MIPCHI2DV_MIN': 4. + }, + "KS0": { # Cuts made on all K shorts + 'PT_MIN': '250*MeV', + 'BPVVDCHI2_MIN': 36, + 'MM_MIN': '467.*MeV', + 'MM_MAX': '527.*MeV' + }, + "VLKS0_LL": { # cuts for StdVeryLooseKsLL + 'PT_MIN': '0*MeV', + 'BPVVDCHI2_MIN': 36, + 'MM_MIN': '467.*MeV', + 'MM_MAX': '527.*MeV' + }, + "Lambda0": { # Cuts made on all Lambda0's + 'PT_MIN': '250*MeV', + 'BPVVDCHI2_MIN': 36, + 'MM_MIN': '1086.*MeV', + 'MM_MAX': '1146.*MeV' + }, + "Pi0": { # Cuts made on all pi0's + 'PT_MIN': '500*MeV', + 'P_MIN': '1000*MeV', + 'CHILDCL1_MIN': 0.25, + 'CHILDCL2_MIN': 0.25, + 'FROM_B_P_MIN': '2000*MeV', + 'TIGHT_PT_MIN': '1500*MeV' + }, + "gamma": { # Cuts made on all photons + 'PT_MIN': '400*MeV', + 'CL_MIN': 0.25, + 'ISNOTE_MIN': -999.0, + 'PT_VLAPH': '145*MeV' + }, + "Xim": { # Cuts made on charged Xi baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 25, + 'BPVVDCHI2_MIN': 50, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '100*MeV' + }, + "Xic0": { # Cuts made on charged Xic0 baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'ADOCA13_MAX': '0.5*mm', + 'ADOCA23_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 20, + 'BPVVDCHI2_MIN': 30, + 'BPVDIRA_MIN': 0.9, + 'MASS_WINDOW': '200*MeV' + }, + "Xibm": { # Cuts made on charged Xibm baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 20, + 'BPVVDCHI2_MIN': 30, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '200*MeV' + }, + "D2X": { # Cuts made on all D's and Lc's used in all lines + 'ASUMPT_MIN': '1800*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'ADOCA13_MAX': '0.5*mm', + 'ADOCA23_MAX': '0.5*mm', + 'ADOCA14_MAX': '0.5*mm', + 'ADOCA24_MAX': '0.5*mm', + 'ADOCA34_MAX': '0.5*mm', + 'ADOCA15_MAX': '0.5*mm', + 'ADOCA25_MAX': '0.5*mm', + 'ADOCA35_MAX': '0.5*mm', + 'ADOCA45_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 10, + 'BPVVDCHI2_MIN': 36, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '100*MeV' + }, + "LC_FOR_XIBC": { # Cuts made on Lc's/Xic(0) used in Xibc lines + 'ASUMPT_MIN': '1800*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'ADOCA13_MAX': '0.5*mm', + 'ADOCA23_MAX': '0.5*mm', + 'ADOCA14_MAX': '0.5*mm', + 'ADOCA24_MAX': '0.5*mm', + 'ADOCA34_MAX': '0.5*mm', + 'ADOCA15_MAX': '0.5*mm', + 'ADOCA25_MAX': '0.5*mm', + 'ADOCA35_MAX': '0.5*mm', + 'ADOCA45_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 8, + 'BPVVDCHI2_MIN': 36, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '50*MeV' + }, + "D2X_FOR_DDX": { # Cuts made on all D's and Lc's used in B->DDX lines + 'ASUMPT_MIN': '1800*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'ADOCA13_MAX': '0.5*mm', + 'ADOCA23_MAX': '0.5*mm', + 'ADOCA14_MAX': '0.5*mm', + 'ADOCA24_MAX': '0.5*mm', + 'ADOCA34_MAX': '0.5*mm', + 'ADOCA15_MAX': '0.5*mm', + 'ADOCA25_MAX': '0.5*mm', + 'ADOCA35_MAX': '0.5*mm', + 'ADOCA45_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 8, + 'BPVVDCHI2_MIN': 50, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '100*MeV' + }, + "B2X": { # Cuts made on all B's and Lb's used in all lines + 'SUMPT_MIN': '5000*MeV', + 'VCHI2DOF_MAX': 10, + 'BPVIPCHI2_MAX': 25, + 'BPVLTIME_MIN': '0.2*ps', + 'BPVDIRA_MIN': 0.999, + 'AM_MIN': '4750*MeV', # Lb->X sets this to 5200*MeV + 'AM_MAX': '7000*MeV', # B->Dh+-h0 sets this to 5800*MeV + 'B2CBBDT_MIN': 0.05 + }, + "Bc2DD": { # Cuts made on Bc -> DD lines + 'SUMPT_MIN': '5000*MeV', + 'VCHI2DOF_MAX': 10, + 'BPVIPCHI2_MAX': 20, + 'BPVLTIME_MIN': '0.05*ps', + 'BPVDIRA_MIN': 0.999, + 'AM_MIN': '4800*MeV', + 'AM_MAX': '6800*MeV', + 'B2CBBDT_MIN': -999.9 + }, + "Xibc": { # Cuts made on Xibc -> Xc hh, LcD0, Xicc h lines + 'SUMPT_MIN': '5000*MeV', + 'VCHI2DOF_MAX': 8, + 'BPVIPCHI2_MAX': 20, + 'BPVLTIME_MIN': '0.05*ps', + 'BPVDIRA_MIN': 0.99, + 'AM_MIN': '5500*MeV', + 'AM_MAX': '9000*MeV', + 'B2CBBDT_MIN': -999.9 + }, + "XiccMu": { # Cuts made on Xibc -> Xc hh, LcD0, Xicc h lines + 'SUMPT_MIN': '4000*MeV', + 'VCHI2DOF_MAX': 10, + 'BPVIPCHI2_MAX': 200, + 'BPVLTIME_MIN': '0.0*ps', + 'BPVDIRA_MIN': 0.99, + 'AM_MIN': '3000*MeV', + 'AM_MAX': '8000*MeV', + 'B2CBBDT_MIN': -999.9 + }, + "Bc2BX": { # Cuts made on Bc -> BHH lines + 'SUMPT_MIN': '1000*MeV', + 'VCHI2DOF_MAX': 10, + 'BPVIPCHI2_MAX': 25, + 'BPVLTIME_MIN': '0.05*ps', + 'BPVDIRA_MIN': 0.999, + 'AM_MIN': '6000*MeV', + 'AM_MAX': '7200*MeV', + 'DZ1_MIN': '-1.5*mm', + 'B2CBBDT_MIN': -999.9 + }, + "Bc2DX": { # Cuts made on Bc -> DX lines + 'SUMPT_MIN': '5000*MeV', + 'VCHI2DOF_MAX': 10, + 'BPVIPCHI2_MAX': 25, + 'BPVLTIME_MIN': '0.05*ps', + 'BPVDIRA_MIN': 0.999, + 'AM_MIN': '5800*MeV', + 'AM_MAX': '6800*MeV', + 'B2CBBDT_MIN': -999.9 + }, + "Dstar": { # Cuts made on all D*'s used in all lines + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 10, + 'BPVVDCHI2_MIN': 36, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '600*MeV', # was 50MeV + 'DELTAMASS_MAX': '200*MeV', + 'DELTAMASSLOOSE_MAX': '250*MeV', + 'DM_DSPH_MAX': '250*MeV', + 'DM_DSPH_MIN': '80*MeV' + }, + "HH": { # Cuts for rho, K*, phi, XHH Dalitz analyese, etc. + 'MASS_WINDOW': { + 'KST': '150*MeV', + 'RHO': '150*MeV', + 'PHI': '150*MeV' + }, + 'DAUGHTERS': { + 'PT_MIN': '100*MeV', + 'P_MIN': '2000*MeV' + }, + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 16, + 'BPVVDCHI2_MIN': 16, + 'BPVDIRA_MIN': 0, + 'ASUMPT_MIN': '1000*MeV', + 'pP_MIN': '5000*MeV' # for pH only (obviously) + }, + "HHH": { # Cuts for PiPiPi, KPiPi analyese, etc. + 'MASS_WINDOW': { + 'A1': '3500*MeV', + 'K1': '4000*MeV', + 'PPH': '3600*MeV', + 'PHH': '4000*MeV' + }, + 'KDAUGHTERS': { + 'PT_MIN': '100*MeV', + 'P_MIN': '2000*MeV', + 'PIDK_MIN': '-2' + }, + 'PiDAUGHTERS': { + 'PT_MIN': '100*MeV', + 'P_MIN': '2000*MeV', + 'PIDK_MAX': '10' + }, + 'pDAUGHTERS': { + 'PT_MIN': '100*MeV', + 'P_MIN': '2000*MeV', + 'PIDp_MIN': '-2' + }, + 'ADOCA12_MAX': '0.40*mm', + 'ADOCA13_MAX': '0.40*mm', + 'ADOCA23_MAX': '0.40*mm', + 'ADOCA14_MAX': '0.40*mm', + 'ADOCA24_MAX': '0.40*mm', + 'ADOCA34_MAX': '0.40*mm', + 'VCHI2DOF_MAX': 8, + 'BPVVDCHI2_MIN': 16, + 'BPVDIRA_MIN': 0.98, + 'ASUMPT_MIN': '1250*MeV', + 'MIPCHI2DV_MIN': 0.0, + 'BPVVDRHO_MIN': '0.1*mm', + 'BPVVDZ_MIN': '2.0*mm', + 'PTMIN1': '300*MeV', + 'PID': { + 'TIGHTERPI': { + 'P': { + 'PIDp_MIN': -10 + }, + 'PI': { + 'PIDK_MAX': 8 + }, + 'K': { + 'PIDK_MIN': -10 + } + }, + 'REALTIGHTK': { + 'P': { + 'PIDp_MIN': -10 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': 4 + } + } + } + }, + 'PID': { + 'P': { + 'PIDp_MIN': -10 + }, + 'PI': { + 'PIDK_MAX': 20 + }, + 'K': { + 'PIDK_MIN': -10 + }, + 'TIGHT': { + 'P': { + 'PIDp_MIN': -5 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': -5 + } + }, + 'TIGHTER': { + 'P': { + 'PIDp_MIN': 0 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': 0 + } + }, + 'TIGHTPI': { + 'P': { + 'PIDp_MIN': -10 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': -10 + } + }, + 'TIGHTER1': { + 'P': { + 'PIDp_MIN': 0 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': -1 + } + }, + 'TIGHTER2': { + 'P': { + 'PIDp_MIN': 5 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': 0 + } + }, + 'TIGHTER3': { + 'P': { + 'PIDp_MIN': 0 + }, + 'PI': { + 'PIDK_MAX': 10 + }, + 'K': { + 'PIDK_MIN': -10 + } + }, + 'SPECIAL': { + 'P': { + 'PIDp_MIN': -5 + }, + 'PI': { + 'PIDK_MAX': 5 + }, + 'K': { + 'PIDK_MIN': 5 + } + }, + 'SPECIALPI': { + 'P': { + 'PIDp_MIN': -10 + }, + 'PI': { + 'PIDK_MAX': 12 + }, + 'K': { + 'PIDK_MIN': -10 + } + } + }, + 'FlavourTagging': [ + 'B02DstarMuNuDst2D0Pi_D2HHHHBeauty2CharmLine', + 'B02DstarMuNuWSDst2D0Pi_D2HHHHBeauty2CharmLine', + 'B02DstarMuNuDst2D0Pi_D2HHHHWSBeauty2CharmLine', + 'B02DstarMuNuWSDst2D0Pi_D2HHHHWSBeauty2CharmLine', + 'B2D0PiPiPiD2HHPIDBeauty2CharmLine', + 'B02DKD2Pi0HHHMergedBeauty2CharmLine', + 'B02DKD2Pi0HHHResolvedBeauty2CharmLine', + 'B02DPiD2Pi0HHHMergedBeauty2CharmLine', + 'B02DPiD2Pi0HHHResolvedBeauty2CharmLine', + 'B02D0KKD2HHBeauty2CharmLine', + 'B02D0KPiD2HHBeauty2CharmLine', + 'B02DHHWSD2HHBeauty2CharmLine', + 'B02D0PPbarD2HHBeauty2CharmLine', + 'B02D0PPbarWSD2HHBeauty2CharmLine', + 'B02D0KKD2HHWSBeauty2CharmLine', + 'B02D0PiPiD2HHWSBeauty2CharmLine', + 'B02D0KPiD2HHWSBeauty2CharmLine', + 'B02DHHWSD2HHWSBeauty2CharmLine', + 'B02D0KSDDD2HHBeauty2CharmLine', + 'B02D0KSLLD2HHBeauty2CharmLine', + 'B02DKD2PhiMuNuBeauty2CharmLine', + 'B02DPiD2PhiMuNuBeauty2CharmLine', + 'B02DKWSD2PhiMuNuBeauty2CharmLine', + 'B02DPiWSD2PhiMuNuBeauty2CharmLine', + #'B02DKD2HHHBeauty2CharmLine', + #'B02DPiD2HHHBeauty2CharmLine', + #'B02DKWSD2HHHBeauty2CharmLine', + #'B02DPiWSD2HHHBeauty2CharmLine', + 'B02DKD2HHHUPBeauty2CharmLine', + #'B02DPiD2HHHUPBeauty2CharmLine', + #'B02DKWSD2HHHUPBeauty2CharmLine', + #'B02DPiWSD2HHHUPBeauty2CharmLine', + #'B02DPiNoIPD2HHHCFPIDBeauty2CharmLine', + 'B02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine', + #'B02DPiNoIPDs2HHHPIDBeauty2CharmLine', + 'B02DPiWSNoIPDs2HHHPIDBeauty2CharmLine', + 'B02DKsKDDD2HHHCFPIDBeauty2CharmLine', + 'B02DKsKLLD2HHHCFPIDBeauty2CharmLine', + #'B02DKPi0ResolvedD2HHHCFPIDBeauty2CharmLine', + 'B02DKsPiDDD2HHHCFPIDBeauty2CharmLine', + #'B02DPiPi0MergedD2HHHCFPIDBeauty2CharmLine', + #'B02DKPi0MergedD2HHHCFPIDBeauty2CharmLine', + 'B02DPiPi0ResolvedD2HHHCFPIDBeauty2CharmLine', + 'B02DKsPiLLD2HHHCFPIDBeauty2CharmLine', + #'B02DKPi0MergedWSD2HHHCFPIDBeauty2CharmLine', + 'B02DKsPiDDWSD2HHHCFPIDBeauty2CharmLine', + #'B02DKPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', + #'B02DPiPi0MergedWSD2HHHCFPIDBeauty2CharmLine', + 'B02DKsPiLLWSD2HHHCFPIDBeauty2CharmLine', + 'B02DPiPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', + 'B02DKsKLLWSD2HHHCFPIDBeauty2CharmLine', + 'B02DKsKDDWSD2HHHCFPIDBeauty2CharmLine', + 'B02DRhoPMD2HHHCFPIDBeauty2CharmLine', + 'B02DKstarPMD2HHHCFPIDBeauty2CharmLine', + 'B02DKD2KSHLLBeauty2CharmLine', + 'B02DPiD2KSHLLBeauty2CharmLine', + 'B02DKWSD2KSHLLBeauty2CharmLine', + 'B02DPiWSD2KSHLLBeauty2CharmLine', + 'B02DKD2KSHDDBeauty2CharmLine', + 'B02DPiD2KSHDDBeauty2CharmLine', + 'B02DKWSD2KSHDDBeauty2CharmLine', + 'B02DPiWSD2KSHDDBeauty2CharmLine', + #'B02D0KKD2KSHHLLBeauty2CharmLine', + #'B02D0PiPiD2KSHHLLBeauty2CharmLine', + 'B02D0KPiD2KSHHLLBeauty2CharmLine', + 'B02DHHWSD2KSHHLLBeauty2CharmLine', + #'B02D0KKD2KSHHDDBeauty2CharmLine', + #'B02D0PiPiD2KSHHDDBeauty2CharmLine', + 'B02D0KPiD2KSHHDDBeauty2CharmLine', + 'B02DHHWSD2KSHHDDBeauty2CharmLine', + #'B02D0KKD2KSHHLLWSBeauty2CharmLine', + #'B02D0PiPiD2KSHHLLWSBeauty2CharmLine', + 'B02D0KPiD2KSHHLLWSBeauty2CharmLine', + 'B02DHHWSD2KSHHLLWSBeauty2CharmLine', + #'B02D0KKD2KSHHDDWSBeauty2CharmLine', + #'B02D0PiPiD2KSHHDDWSBeauty2CharmLine', + 'B02D0KPiD2KSHHDDWSBeauty2CharmLine', + 'B02DHHWSD2KSHHDDWSBeauty2CharmLine', + #'B02DstarKDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + #'B02DstarPiDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + #'B02DstarKDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + #'B02DstarPiDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + #'B02DstarKDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + #'B02DstarPiDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + #'B02DstarKDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + #'B02DstarPiDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'B02DstarKDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'B02DstarPiDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'B02DstarKDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'B02DstarPiDst2D0Pi_D2KSHHDDBeauty2CharmLine', + #'B02DstarMuNuDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + #'B02DstarMuNuDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + #'B02DstarMuNuDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + #'B02DstarMuNuDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + #'B02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'B02DstarMuNuDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'B02DstarMuNuWSDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'B02DstarMuNuDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'B02DstarMuNuWSDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'B02DstarKsPiDDDst2D0PiBeauty2CharmLine', + 'B02DstarKsKDDDst2D0PiBeauty2CharmLine', + 'B02DstarKsKLLDst2D0PiBeauty2CharmLine', + 'B02DstarKsPiLLDst2D0PiBeauty2CharmLine', + 'B02DstarKsKDDWSDst2D0PiBeauty2CharmLine', + 'B02DstarKsKLLWSDst2D0PiBeauty2CharmLine', + 'B02DstarKsPiDDWSDst2D0PiBeauty2CharmLine', + 'B02DstarKsPiLLWSDst2D0PiBeauty2CharmLine', + 'B02D0KKD2HHHHBeauty2CharmLine', + 'B02D0PiPiD2HHHHBeauty2CharmLine', + 'B02D0KPiD2HHHHBeauty2CharmLine', + 'B02DHHWSD2HHHHBeauty2CharmLine', + 'B02D0KKD2HHHHWSBeauty2CharmLine', + 'B02D0PiPiD2HHHHWSBeauty2CharmLine', + 'B02D0KPiD2HHHHWSBeauty2CharmLine', + 'B02DHHWSD2HHHHWSBeauty2CharmLine', + 'B02D0KSDDD2K3PiBeauty2CharmLine', + 'B02D0KSLLD2K3PiBeauty2CharmLine', + 'B02D0KKD2Pi0HHResolvedBeauty2CharmLine', + 'B02D0PiPiD2Pi0HHResolvedBeauty2CharmLine', + 'B02D0KPiD2Pi0HHResolvedBeauty2CharmLine', + 'B02DHHWSD2Pi0HHResolvedBeauty2CharmLine', + 'B02DKWSD2Pi0HHHResolvedBeauty2CharmLine', + 'B02DPiWSD2Pi0HHHResolvedBeauty2CharmLine', + 'B02DKWSD2Pi0HHHMergedBeauty2CharmLine', + 'B02DPiWSD2Pi0HHHMergedBeauty2CharmLine', + 'B02DKPiPiSSD2HHHPIDBeauty2CharmLine', + 'B02DKKPiD2HHHPIDBeauty2CharmLine', + 'B02DKPiPiSSWSD2HHHPIDBeauty2CharmLine', + 'B02DKKPiWSD2HHHPIDBeauty2CharmLine', + 'B02DKPiPiWSD2HHHPIDBeauty2CharmLine', + 'B02DPiPiPiWSD2HHHPIDBeauty2CharmLine', + #'B02DppbarKD2HHHBeauty2CharmLine', + #'B02DppbarPiD2HHHBeauty2CharmLine', + 'B02DstKKPiDstar2D0PiPIDBeauty2CharmLine', + 'B02DstKPiPiDstar2D0PiPIDBeauty2CharmLine', + 'B02DstPiPiPiDstar2D0PiPIDBeauty2CharmLine', + 'B02DstPiPiPiWSDstar2D0PiPIDBeauty2CharmLine', + 'B02DstKPiPiWSDstar2D0PiPIDBeauty2CharmLine', + 'B02DstKKPiWSDstar2D0PiPIDBeauty2CharmLine', + 'B02DDWSBeauty2CharmLine', + 'B02D0D0D02K3PiD02K3PiBeauty2CharmLine', + 'B02D0D0D02HHD02K3PiBeauty2CharmLine', + 'B02D0D0D02HHD02HHBeauty2CharmLine', + 'B02DstDstWSBeauty2CharmLine', + 'B02D0DKBeauty2CharmLine', + 'B02D0DKD02K3PiBeauty2CharmLine', + 'B02D0DKWSBeauty2CharmLine', + 'B02D0DKWSD02K3PiBeauty2CharmLine', + 'B02DstD0KBeauty2CharmLine', + 'B02DstD0KD02K3PiBeauty2CharmLine', + 'B02DstD0KDstarD02K3PiBeauty2CharmLine', + #'B02DstD0KDstarD02K3PiD02K3PiBeauty2CharmLine', + 'B02DstD0KWSBeauty2CharmLine', + 'B02DstD0KWSD02K3PiBeauty2CharmLine', + 'B02DstD0KWSDstarD02K3PiBeauty2CharmLine', + 'B02DstD0KWSDstarD02K3PiD02K3PiBeauty2CharmLine', + #'B02D0D0KstD02K3PiD02K3PiBeauty2CharmLine', + 'B02D0D0KstD02HHD02HHBeauty2CharmLine', + #'B02D0D0KstD02HHD02K3PiBeauty2CharmLine', + #'B02DDKstBeauty2CharmLine', + #'B02DstDKstBeauty2CharmLine', + #'B02DstDKstDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKstBeauty2CharmLine', + 'B02DstDstKstDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKstDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'B02DDKSDDBeauty2CharmLine', + 'B02DDKSWSDDBeauty2CharmLine', + 'B02DstDKSDDBeauty2CharmLine', + 'B02DstDKSDDDstarD02K3PiBeauty2CharmLine', + 'B02DstDKSWSDDBeauty2CharmLine', + 'B02DstDKSWSDDDstarD02K3PiBeauty2CharmLine', + 'B02D0D0KSD02K3PiD02K3PiDDBeauty2CharmLine', + 'B02D0D0KSD02HHD02HHDDBeauty2CharmLine', + 'B02D0D0KSD02HHD02K3PiDDBeauty2CharmLine', + 'B02DstDstKSDDBeauty2CharmLine', + 'B02DstDstKSDDDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSWSDDBeauty2CharmLine', + 'B02DstDstKSWSDDDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSWSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'B02DDKSLLBeauty2CharmLine', + 'B02DDKSWSLLBeauty2CharmLine', + 'B02DstDKSLLBeauty2CharmLine', + 'B02DstDKSLLDstarD02K3PiBeauty2CharmLine', + 'B02DstDKSWSLLBeauty2CharmLine', + 'B02DstDKSWSLLDstarD02K3PiBeauty2CharmLine', + 'B02D0D0KSD02K3PiD02K3PiLLBeauty2CharmLine', + 'B02D0D0KSD02HHD02HHLLBeauty2CharmLine', + 'B02D0D0KSD02HHD02K3PiLLBeauty2CharmLine', + 'B02DstDstKSLLBeauty2CharmLine', + 'B02DstDstKSLLDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSWSLLBeauty2CharmLine', + 'B02DstDstKSWSLLDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKSWSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + #'B02DDKKBeauty2CharmLine', + #'B02DstDKKBeauty2CharmLine', + #'B02DstDKKDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKKBeauty2CharmLine', + 'B02DstDstKKDstarD02K3PiBeauty2CharmLine', + 'B02DstDstKKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'B02LcpbarKKLc2PKPiBeauty2CharmLine', + 'B02LcpbarpbarpLc2PKPiBeauty2CharmLine', + 'B02LcpbarPiPiLc2PKPiBeauty2CharmLine', + 'B02LcpbarKPiLc2PKPiBeauty2CharmLine', + 'B02LcpbarPiPiWSLc2PKPiBeauty2CharmLine', + 'B02LcpbarpbarpWSLc2PKPiBeauty2CharmLine', + 'B02LcpbarKKWSLc2PKPiBeauty2CharmLine', + 'B02LcpbarKPiWSLc2PKPiBeauty2CharmLine', + 'B02LcpbarKSDDLc2PKPiBeauty2CharmLine', + 'B02LcpbarKSWSDDLc2PKPiBeauty2CharmLine', + 'B02LcpbarKSLLLc2PKPiBeauty2CharmLine', + 'B02LcpbarKSWSLLLc2PKPiBeauty2CharmLine', + 'B02LcLambda0KLc2PKPiBeauty2CharmLine', + 'B02LcLambda0PiLc2PKPiBeauty2CharmLine', + 'B02LcLambda0PiWSLc2PKPiBeauty2CharmLine', + 'B02LcLambda0KWSLc2PKPiBeauty2CharmLine', + 'B02DKLTUBD2HHHBeauty2CharmLine', + 'B02DsKPiPiLTUBD2HHHBeauty2CharmLine', + 'B02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine', + 'B02Dst0DKDst02D0Pi0ResolvedD2HHHBeauty2CharmLine', + 'B02Dst0DKDst02D0GammaD2HHHBeauty2CharmLine', + 'B02DsstKsPiLLDsst2DGammaD2HHHBeauty2CharmLine', + 'B02DsstKsPiDDDsst2DGammaD2HHHBeauty2CharmLine', + 'B02D0MuMuD2HHBeauty2CharmLine', + 'B02D0MuMuWSD2HHBeauty2CharmLine', + 'B02D0MuMuD2HHHHBeauty2CharmLine', + 'B02D0MuMuWSD2HHHHBeauty2CharmLine', + 'B02D0MuMuD2KSHHLLBeauty2CharmLine', + 'B02D0MuMuWSD2KSHHLLBeauty2CharmLine', + 'B02D0MuMuD2KSHHDDBeauty2CharmLine', + 'B02D0MuMuWSD2KSHHDDBeauty2CharmLine' + ], + 'RawEvents': [ + 'B02DKD2HHHBeauty2CharmLine', 'B02DPiD2HHHBeauty2CharmLine', + 'B02DsstarPiDsstar2DGammaD2HHHBeauty2CharmLine', + 'B02DsstarKDsstar2DGammaD2HHHBeauty2CharmLine', + 'B02DsstarKMCwNoPIDDsstar2DGammaD2HHHBeauty2CharmLine' + ], + 'MDSTChannels': [], + 'RelatedInfoTools': [ + { + "Type": "RelInfoConeVariables", + "ConeAngle": 1.5, + "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], + "Location": 'P2ConeVar1' + }, + { + "Type": "RelInfoConeVariables", + "ConeAngle": 1.7, + "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], + "Location": 'P2ConeVar2' + }, + { + "Type": "RelInfoConeVariables", + "ConeAngle": 1.0, + "Variables": ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'], + "Location": 'P2ConeVar3' + }, + ], + "Prescales": { # Prescales for individual lines + 'RUN_BY_DEFAULT': True, # False = lines off by default + 'RUN_RE': ['.*'], + # Defaults are defined in, eg, Beauty2Charm_B2DXBuilder.py. Put the full + # line name here to override. E.g. 'B2D0HD2HHBeauty2CharmTOSLine': 0.5. + 'B02DKLTUBD2HHHBeauty2CharmLine': 0.04, + 'B02DsKPiPiLTUBD2HHHBeauty2CharmLine': 0.004, + 'B02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine': 0.19, + 'B02DKWSD2HHHBeauty2CharmLine': 1.0, + 'B02DPiWSD2HHHBeauty2CharmLine': 1.0, + 'B02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine': 1.0, + 'B02DPiWSNoIPDs2HHHPIDBeauty2CharmLine': 1.0, + 'B02DPiPiPiWSD2HHHPIDBeauty2CharmLine': 1.0, + 'B02DKPiPiWSD2HHHPIDBeauty2CharmLine': 1.0, + 'B2Dstar0PiDst02D0Pi0D2KSHHLLWSBeauty2CharmLine': 0.1, + 'B2Dstar0PiDst02D0Pi0D2KSHHDDWSBeauty2CharmLine': 0.1, + 'B2Dstar0PiDst02D0GammaD2KSHHLLWSBeauty2CharmLine': 0.1, + 'B2Dstar0PiDst02D0GammaD2KSHHDDWSBeauty2CharmLine': 0.1, + 'B2Dstar0KDst02D0Pi0D2KSHHLLWSBeauty2CharmLine': 0.1, + 'B2Dstar0KDst02D0Pi0D2KSHHDDWSBeauty2CharmLine': 0.1, + 'B2Dstar0KDst02D0GammaD2KSHHLLWSBeauty2CharmLine': 0.1, + 'B2Dstar0KDst02D0GammaD2KSHHDDWSBeauty2CharmLine': 0.1 + }, + 'GECNTrkMax': + 500 + }, + 'STREAMS': { + 'BhadronCompleteEvent': [ + 'StrippingB02DKD2HHHBeauty2CharmLine', + 'StrippingB02DPiD2HHHBeauty2CharmLine', + 'StrippingB2D0KD2HHBeauty2CharmLine', + 'StrippingB2D0PiD2HHBeauty2CharmLine', + 'StrippingB2D0PiNoIPD2KPIPIDBeauty2CharmLine', + 'StrippingB02DPiNoIPD2HHHCFPIDBeauty2CharmLine', + 'StrippingLb2XicPiNoIPXic2PKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiNoIPXic02PKKPiBeauty2CharmLine', + 'StrippingLb2LcPiNoIPLc2PKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0PiNoIPOmegac02PKKPiBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2HHTIGHTBeauty2CharmLine', + 'StrippingB2D0PiD2HHHHTIGHTBeauty2CharmLine', + 'StrippingB02DsstarPiDsstar2DGammaD2HHHBeauty2CharmLine', + 'StrippingB02DsstarKDsstar2DGammaD2HHHBeauty2CharmLine', + 'StrippingB02DsstarKMCwNoPIDDsstar2DGammaD2HHHBeauty2CharmLine', + 'StrippingB02DDBeauty2CharmLine', 'StrippingB2D0DBeauty2CharmLine', + 'StrippingB02DstDBeauty2CharmLine', + 'StrippingB02DstDD02K3PiBeauty2CharmLine', + 'StrippingB02D0PiPiD2HHBeauty2CharmLine', + 'StrippingB02DstDstBeauty2CharmLine', + 'StrippingB02DKPiPiD2HHHPIDBeauty2CharmLine', + 'StrippingB02DPiPiPiD2HHHPIDBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHLLPartialDBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHDDPartialDBeauty2CharmLine', + 'StrippingB2D0KD2KSHHLLPartialDBeauty2CharmLine', + 'StrippingB2D0KD2KSHHDDPartialDBeauty2CharmLine', + 'StrippingB02D0KKDSTD2HHBeauty2CharmLine', + 'StrippingLb2LcPiPiPiLc2PKPiFullDSTBeauty2CharmLine', + 'StrippingXib02XicPiPiPiXic2PKPiFullDSTBeauty2CharmLine', + 'StrippingXib2Xic0PiPiPiXic02PKKPiFullDSTBeauty2CharmLine', + 'StrippingOmegab2Omegac0PiPiPiOmegac02PKKPiFullDSTBeauty2CharmLine' + ], + 'Bhadron': [ + 'StrippingB2Dstar0KDst02D0Pi0D2HHHHMergedBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHMergedBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2HHHHBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2HHHHBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB2D0PiD2HHmuDSTBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2HHWSBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2HHWSBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2KSHHDDWSBeauty2CharmLine', + 'StrippingUpsilon2BBBeauty2CharmLine', + 'StrippingBc2BPiPiB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BPiPiWSB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BPiKB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BPiKWSB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BKPiB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BKKB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BKKWSB2D0HD02HHBeauty2CharmLine', + 'StrippingBc2BPiPiB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BPiPiWSB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BPiKB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BPiKWSB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BKPiB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BKKB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BKKWSB2D0HD02HHHHBeauty2CharmLine', + 'StrippingBc2BPiPiB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BPiPiWSB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BPiKB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BPiKWSB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BKPiB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BKKB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BKKWSB2DHHD2HHHCFPIDBeauty2CharmLine', + 'StrippingBc2BPiPiB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BPiPiWSB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BPiKB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BPiKWSB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BKPiB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BKKB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BKKWSB2D0HHHD02HHPIDBeauty2CharmLine', + 'StrippingBc2BPiPiB2D0DBeauty2CharmLine', + 'StrippingBc2BPiPiWSB2D0DBeauty2CharmLine', + 'StrippingBc2BPiKB2D0DBeauty2CharmLine', + 'StrippingBc2BPiKWSB2D0DBeauty2CharmLine', + 'StrippingBc2BKPiB2D0DBeauty2CharmLine', + 'StrippingBc2BKKB2D0DBeauty2CharmLine', + 'StrippingBc2BKKWSB2D0DBeauty2CharmLine', + 'StrippingBc2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2D0KD02HHPIDBeauty2CharmLine', + 'StrippingBc2D0KD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DPiPiD2HHHPIDBeauty2CharmLine', + 'StrippingBc2DHHWSD2HHHPIDBeauty2CharmLine', + 'StrippingBc2DHHNPD2HHHPIDBeauty2CharmLine', + 'StrippingBc2DKPiD2HHHPIDBeauty2CharmLine', + 'StrippingBc2DKKD2HHHPIDBeauty2CharmLine', + 'StrippingBc2DstarPiPiDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarHHWSDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarHHNPDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarKPiDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarKKDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarPiKDstar2D0PiD02HHPIDBeauty2CharmLine', + 'StrippingBc2DstarPiPiDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DstarHHWSDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DstarHHNPDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DstarKPiDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DstarKKDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingBc2DstarPiKDstar2D0PiD02HHHHPIDBeauty2CharmLine', + 'StrippingB2D0KD2HHWSBeauty2CharmLine', + 'StrippingB2D0PiD2HHWSBeauty2CharmLine', + #'StrippingB2D0KD2HHUPBeauty2CharmLine', + 'StrippingB2D0PiD2HHUPBeauty2CharmLine', + 'StrippingB02DKWSD2HHHBeauty2CharmLine', + 'StrippingB02DPiWSD2HHHBeauty2CharmLine', + 'StrippingB02DPiNoIPDs2HHHPIDBeauty2CharmLine', + 'StrippingB02DKD2Pi0HHHMergedBeauty2CharmLine', + 'StrippingB02DKD2Pi0HHHResolvedBeauty2CharmLine', + 'StrippingB02DPiD2Pi0HHHMergedBeauty2CharmLine', + 'StrippingB02DPiD2Pi0HHHResolvedBeauty2CharmLine', + 'StrippingB02D0KKD2HHBeauty2CharmLine', + 'StrippingB02D0KPiD2HHBeauty2CharmLine', + 'StrippingB02DHHWSD2HHBeauty2CharmLine', + 'StrippingB02D0PPbarD2HHBeauty2CharmLine', + 'StrippingB02D0PPbarWSD2HHBeauty2CharmLine', + 'StrippingB02D0KKD2HHWSBeauty2CharmLine', + 'StrippingB02D0PiPiD2HHWSBeauty2CharmLine', + 'StrippingB02D0KPiD2HHWSBeauty2CharmLine', + 'StrippingB02DHHWSD2HHWSBeauty2CharmLine', + 'StrippingB02D0KSDDD2HHBeauty2CharmLine', + 'StrippingB02D0KSLLD2HHBeauty2CharmLine', + 'StrippingB02Dst0PiPiDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB02Dst0KPiDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB02Dst0KKDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB02Dst0HHWSDst02D0Pi0D2HHResolvedBeauty2CharmLine', + 'StrippingB02Dst0PiPiDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB02Dst0KPiDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB02Dst0KKDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB02Dst0HHWSDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2HHBeauty2CharmLine', + 'StrippingB2D0KPi0ResolvedD2HHBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2HHBeauty2CharmLine', + 'StrippingB2D0PiPi0ResolvedD2HHBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KPi0ResolvedD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0PiPi0ResolvedD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KPi0ResolvedD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0PiPi0ResolvedD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2HHHHBeauty2CharmLine', + 'StrippingB2D0KPi0ResolvedD2HHHHBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2HHHHBeauty2CharmLine', + 'StrippingB2D0PiPi0ResolvedD2HHHHBeauty2CharmLine', + 'StrippingB2D0KsPiDDD2HHHHWSBeauty2CharmLine', + 'StrippingB2D0KPi0ResolvedD2HHHHWSBeauty2CharmLine', + 'StrippingB2D0KsPiLLD2HHHHWSBeauty2CharmLine', + 'StrippingB2D0PiPi0ResolvedD2HHHHWSBeauty2CharmLine', + 'StrippingB02DKD2PhiMuNuBeauty2CharmLine', + 'StrippingB02DPiD2PhiMuNuBeauty2CharmLine', + 'StrippingB02DKWSD2PhiMuNuBeauty2CharmLine', + 'StrippingB02DPiWSD2PhiMuNuBeauty2CharmLine', + 'StrippingB02DKD2HHHUPBeauty2CharmLine', + #'StrippingB02DPiD2HHHUPBeauty2CharmLine', + #'StrippingB02DKWSD2HHHUPBeauty2CharmLine', + #'StrippingB02DPiWSD2HHHUPBeauty2CharmLine', + 'StrippingB02DPiWSNoIPD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DPiWSNoIPDs2HHHPIDBeauty2CharmLine', + 'StrippingB02DKsKDDD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsKLLD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKPi0ResolvedD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsPiDDD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DPiPi0MergedD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKPi0MergedD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DPiPi0ResolvedD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsPiLLD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKPi0MergedWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsPiDDWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DPiPi0MergedWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsPiLLWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DPiPi0ResolvedWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsKLLWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKsKDDWSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DKKD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DKPiD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DPiPiD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DHHOSD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DRho0D2HHHPIDBeauty2CharmLine', + 'StrippingB2DKstar0D2HHHPIDBeauty2CharmLine', + 'StrippingB2DPhiD2HHHPIDBeauty2CharmLine', + 'StrippingB2DKSDDD2HHHBeauty2CharmLine', + 'StrippingB2DKSLLD2HHHBeauty2CharmLine', + 'StrippingB02DRhoPMD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKstarPMD2HHHCFPIDBeauty2CharmLine', + 'StrippingB02DKD2KSHLLBeauty2CharmLine', + 'StrippingB02DPiD2KSHLLBeauty2CharmLine', + 'StrippingB02DKWSD2KSHLLBeauty2CharmLine', + 'StrippingB02DPiWSD2KSHLLBeauty2CharmLine', + 'StrippingB02DKD2KSHDDBeauty2CharmLine', + 'StrippingB02DPiD2KSHDDBeauty2CharmLine', + 'StrippingB02DKWSD2KSHDDBeauty2CharmLine', + 'StrippingB02DPiWSD2KSHDDBeauty2CharmLine', + 'StrippingB2D0KD2KSMuMuLLBeauty2CharmLine', + 'StrippingB2D0PiD2KSMuMuLLBeauty2CharmLine', + 'StrippingB2D0KD2KSMuMuDDBeauty2CharmLine', + 'StrippingB2D0PiD2KSMuMuDDBeauty2CharmLine', + 'StrippingB2D0MuNuD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0MuNuD2KSHHDDBeauty2CharmLine', + 'StrippingB02D0KKD2KSHHLLBeauty2CharmLine', + 'StrippingB02D0PiPiD2KSHHLLBeauty2CharmLine', + 'StrippingB02D0KPiD2KSHHLLBeauty2CharmLine', + 'StrippingB02DHHWSD2KSHHLLBeauty2CharmLine', + 'StrippingB02D0KKD2KSHHDDBeauty2CharmLine', + 'StrippingB02D0PiPiD2KSHHDDBeauty2CharmLine', + 'StrippingB02D0KPiD2KSHHDDBeauty2CharmLine', + 'StrippingB02DHHWSD2KSHHDDBeauty2CharmLine', + 'StrippingB02D0KKD2KSHHLLWSBeauty2CharmLine', + 'StrippingB02D0PiPiD2KSHHLLWSBeauty2CharmLine', + 'StrippingB02D0KPiD2KSHHLLWSBeauty2CharmLine', + 'StrippingB02DHHWSD2KSHHLLWSBeauty2CharmLine', + 'StrippingB02D0KKD2KSHHDDWSBeauty2CharmLine', + 'StrippingB02D0PiPiD2KSHHDDWSBeauty2CharmLine', + 'StrippingB02D0KPiD2KSHHDDWSBeauty2CharmLine', + 'StrippingB02DHHWSD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0KD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2D0KD2KSMuMuLLWSBeauty2CharmLine', + 'StrippingB2D0PiD2KSMuMuLLWSBeauty2CharmLine', + 'StrippingB2D0KD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0PiD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0KD2KSMuMuDDWSBeauty2CharmLine', + 'StrippingB2D0PiD2KSMuMuDDWSBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarKWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarPiWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'StrippingB02DstarKDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'StrippingB02DstarPiDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSHHLLBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2KSHHDDBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2HHHHBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2HHHHBeauty2CharmLine', + 'StrippingB02DstarMuNuDst2D0Pi_D2HHHHWSBeauty2CharmLine', + 'StrippingB02DstarMuNuWSDst2D0Pi_D2HHHHWSBeauty2CharmLine', + 'StrippingB02DstarKsPiDDDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsKDDDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsKLLDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsPiLLDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsKDDWSDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsKLLWSDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsPiDDWSDst2D0PiBeauty2CharmLine', + 'StrippingB02DstarKsPiLLWSDst2D0PiBeauty2CharmLine', + 'StrippingB2D0KD2HHHHBeauty2CharmLine', + 'StrippingB2D0PiD2HHHHBeauty2CharmLine', + 'StrippingB2D0KD2HHHHWSBeauty2CharmLine', + 'StrippingB2D0PiD2HHHHWSBeauty2CharmLine', + #'StrippingB2D0KD2HHHHUPBeauty2CharmLine', + #'StrippingB2D0PiD2HHHHUPBeauty2CharmLine', + 'StrippingB02D0KKD2HHHHBeauty2CharmLine', + 'StrippingB02D0PiPiD2HHHHBeauty2CharmLine', + 'StrippingB02D0KPiD2HHHHBeauty2CharmLine', + 'StrippingB02DHHWSD2HHHHBeauty2CharmLine', + 'StrippingB02D0KKD2HHHHWSBeauty2CharmLine', + 'StrippingB02D0PiPiD2HHHHWSBeauty2CharmLine', + 'StrippingB02D0KPiD2HHHHWSBeauty2CharmLine', + 'StrippingB02DHHWSD2HHHHWSBeauty2CharmLine', + 'StrippingB02D0KSDDD2K3PiBeauty2CharmLine', + 'StrippingB02D0KSLLD2K3PiBeauty2CharmLine', + 'StrippingB2D0KD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB2D0PiD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB2D0KD2Pi0HHWSResolvedBeauty2CharmLine', + 'StrippingB2D0PiD2Pi0HHWSResolvedBeauty2CharmLine', + 'StrippingB2D0KD2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB2D0PiD2KSPi0HHLLResolvedBeauty2CharmLine', + 'StrippingB2D0KD2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB2D0PiD2KSPi0HHLLMergedBeauty2CharmLine', + 'StrippingB2D0KD2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB2D0PiD2KSPi0HHDDResolvedBeauty2CharmLine', + 'StrippingB2D0KD2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB2D0PiD2KSPi0HHDDMergedBeauty2CharmLine', + 'StrippingB2D0KD02KSPi0LLResolvedBeauty2CharmLine', + 'StrippingB2D0PiD02KSPi0LLResolvedBeauty2CharmLine', + 'StrippingB2D0KD02KSPi0LLMergedBeauty2CharmLine', + 'StrippingB2D0PiD02KSPi0LLMergedBeauty2CharmLine', + 'StrippingB2D0KD02KSPi0DDResolvedBeauty2CharmLine', + 'StrippingB2D0PiD02KSPi0DDResolvedBeauty2CharmLine', + 'StrippingB2D0KD02KSPi0DDMergedBeauty2CharmLine', + 'StrippingB2D0PiD02KSPi0DDMergedBeauty2CharmLine', + 'StrippingB02D0KKD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB02D0PiPiD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB02D0KPiD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB02DHHWSD2Pi0HHResolvedBeauty2CharmLine', + 'StrippingB02DKWSD2Pi0HHHResolvedBeauty2CharmLine', + 'StrippingB02DPiWSD2Pi0HHHResolvedBeauty2CharmLine', + 'StrippingB02DKWSD2Pi0HHHMergedBeauty2CharmLine', + 'StrippingB02DPiWSD2Pi0HHHMergedBeauty2CharmLine', + 'StrippingB2D0KKPiD2HHPIDBeauty2CharmLine', + 'StrippingB2D0KPiPiD2HHPIDBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2HHPIDBeauty2CharmLine', + 'StrippingB2D0KKPiD2HHHHPIDBeauty2CharmLine', + 'StrippingB2D0KPiPiD2HHHHPIDBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2HHHHPIDBeauty2CharmLine', + 'StrippingB2D0KKPiD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KPiPiD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0KPiPiD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2KSHHDDBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2D0KKPiD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KPiPiD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0KPiPiD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2KSHHLLBeauty2CharmLine', + 'StrippingB2D0PiPiPiD2KSHHLLWSBeauty2CharmLine', + 'StrippingB02DKPiPiSSD2HHHPIDBeauty2CharmLine', + 'StrippingB02DKKPiD2HHHPIDBeauty2CharmLine', + 'StrippingB02DKPiPiSSWSD2HHHPIDBeauty2CharmLine', + 'StrippingB02DKKPiWSD2HHHPIDBeauty2CharmLine', + 'StrippingB02DKPiPiWSD2HHHPIDBeauty2CharmLine', + 'StrippingB02DPiPiPiWSD2HHHPIDBeauty2CharmLine', + 'StrippingB2D0ppbarKD2HHBeauty2CharmLine', + 'StrippingB2D0ppbarPiD2HHBeauty2CharmLine', + 'StrippingB02DppbarKD2HHHBeauty2CharmLine', + 'StrippingB02DppbarPiD2HHHBeauty2CharmLine', + 'StrippingB02DstKKPiDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB02DstKPiPiDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB02DstPiPiPiDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB02DstPiPiPiWSDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB02DstKPiPiWSDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB02DstKKPiWSDstar2D0PiPIDBeauty2CharmLine', + 'StrippingB2DMuMuD2HHHBeauty2CharmLine', + 'StrippingB2DMuMuWSD2HHHBeauty2CharmLine', + 'StrippingB2DMuMuNPD2HHHBeauty2CharmLine', + 'StrippingB2DMuMuD2KSHLLBeauty2CharmLine', + 'StrippingB2DMuMuWSD2KSHLLBeauty2CharmLine', + 'StrippingB2DMuMuNPD2KSHLLBeauty2CharmLine', + 'StrippingB2DMuMuD2KSHDDBeauty2CharmLine', + 'StrippingB2DMuMuWSD2KSHDDBeauty2CharmLine', + 'StrippingB2DMuMuNPD2KSHDDBeauty2CharmLine', + 'StrippingB2DstarMuMuD0PiBeauty2CharmLine', + 'StrippingB2DstarMuMuWSD0PiBeauty2CharmLine', + 'StrippingB2DstarMuMuNPD0PiBeauty2CharmLine', + 'StrippingB2DstarMuMuD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstarMuMuWSD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstarMuMuNPD2HHHHPiBeauty2CharmLine', + 'StrippingB02D0MuMuD2HHBeauty2CharmLine', + 'StrippingB02D0MuMuWSD2HHBeauty2CharmLine', + 'StrippingB02D0MuMuD2HHHHBeauty2CharmLine', + 'StrippingB02D0MuMuWSD2HHHHBeauty2CharmLine', + 'StrippingB02D0MuMuD2KSHHLLBeauty2CharmLine', + 'StrippingB02D0MuMuWSD2KSHHLLBeauty2CharmLine', + 'StrippingB02D0MuMuD2KSHHDDBeauty2CharmLine', + 'StrippingB02D0MuMuWSD2KSHHDDBeauty2CharmLine', + 'StrippingB02DsstKsPiLLDsst2DGammaD2HHHBeauty2CharmLine', + 'StrippingB02DsstKsPiDDDsst2DGammaD2HHHBeauty2CharmLine', + 'StrippingB02DDWSBeauty2CharmLine', + 'StrippingB2D0DD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0D02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0D02HHD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0D02HHD02HHBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2KSHHLLBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2KSHHLLWSBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHLLBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHLLWSBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2KSHHDDBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2KSHHDDWSBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHDDBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0Pi0D2KSHHDDWSBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2KSHHLLBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2KSHHLLBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2KSHHLLWSBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2KSHHDDBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0GammaD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2KSHHDDBeauty2CharmLine', + 'StrippingB2Dstar0PiDst02D0GammaD2KSHHDDWSBeauty2CharmLine', + 'StrippingB2DstPiKFavD0PiBeauty2CharmLine', + 'StrippingB2DstPiKFavD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstPiKSupD0PiBeauty2CharmLine', + 'StrippingB2DstPiKSupD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstPipPipD0PiBeauty2CharmLine', + 'StrippingB2DstPipPipD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstPimPipD0PiBeauty2CharmLine', + 'StrippingB2DstPimPipD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstPiKWSD0PiBeauty2CharmLine', + 'StrippingB2DstPiKWSD2HHHHPiBeauty2CharmLine', + 'StrippingB2DstPiPiWSD0PiBeauty2CharmLine', + 'StrippingB2DstPiPiWSD2HHHHPiBeauty2CharmLine', + 'StrippingB2D0D0KD02HHD02HHBeauty2CharmLine', + 'StrippingB2D0D0PiD02HHD02HHBeauty2CharmLine', + 'StrippingB2DstD0Beauty2CharmLine', + 'StrippingB2DstD0D02K3PiBeauty2CharmLine', + 'StrippingB02DstDstWSBeauty2CharmLine', + 'StrippingB02DstDWSBeauty2CharmLine', + + ###################### + ###### DDX lines ##### + ###################### + #### DDK lines ### + 'StrippingB2DDKBeauty2CharmLine', + 'StrippingB2DDKWSBeauty2CharmLine', + 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine', + 'StrippingB02D0DKWSBeauty2CharmLine', + 'StrippingB02D0DKWSD02K3PiBeauty2CharmLine', + 'StrippingB2DstDKBeauty2CharmLine', + 'StrippingB2DstDKDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDKWSBeauty2CharmLine', + 'StrippingB2DstDKWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB2D0D0KD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB2D0D0KD02HHD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KBeauty2CharmLine', + 'StrippingB02DstD0KD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KWSBeauty2CharmLine', + 'StrippingB02DstD0KWSD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0KWSDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstKBeauty2CharmLine', + 'StrippingB2DstDstKDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstKWSBeauty2CharmLine', + 'StrippingB2DstDstKWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstKWSDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2Dst2460DKBeauty2CharmLine', + 'StrippingB2Dst2460DKWSBeauty2CharmLine', + 'StrippingB2D0st2460D0KBeauty2CharmLine', + 'StrippingB2Dst0D0KDst02D0Pi0ResolvedD02HHBeauty2CharmLine', + 'StrippingB2Dst0D0KDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingB02Dst0DKDst02D0Pi0ResolvedD2HHHBeauty2CharmLine', + 'StrippingB02Dst0DKDst02D0GammaD2HHHBeauty2CharmLine', + #### DDKS lines ### + 'StrippingB02DDKSDDBeauty2CharmLine', + 'StrippingB02DDKSWSDDBeauty2CharmLine', + 'StrippingB2D0DKSDDBeauty2CharmLine', + 'StrippingB2D0DKSDDD02K3PiBeauty2CharmLine', + 'StrippingB02DstDKSDDBeauty2CharmLine', + 'StrippingB02DstDKSDDDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDKSWSDDBeauty2CharmLine', + 'StrippingB02DstDKSWSDDDstarD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0KSD02K3PiD02K3PiDDBeauty2CharmLine', + 'StrippingB02D0D0KSD02HHD02HHDDBeauty2CharmLine', + 'StrippingB02D0D0KSD02HHD02K3PiDDBeauty2CharmLine', + 'StrippingB2DstD0KSDDBeauty2CharmLine', + 'StrippingB2DstD0KSDDD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KSDDDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KSDDDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSDDBeauty2CharmLine', + 'StrippingB02DstDstKSDDDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSWSDDBeauty2CharmLine', + 'StrippingB02DstDstKSWSDDDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSWSDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DDKSLLBeauty2CharmLine', + 'StrippingB02DDKSWSLLBeauty2CharmLine', + 'StrippingB2D0DKSLLBeauty2CharmLine', + 'StrippingB2D0DKSLLD02K3PiBeauty2CharmLine', + 'StrippingB02DstDKSLLBeauty2CharmLine', + 'StrippingB02DstDKSLLDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDKSWSLLBeauty2CharmLine', + 'StrippingB02DstDKSWSLLDstarD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0KSD02K3PiD02K3PiLLBeauty2CharmLine', + 'StrippingB02D0D0KSD02HHD02HHLLBeauty2CharmLine', + 'StrippingB02D0D0KSD02HHD02K3PiLLBeauty2CharmLine', + 'StrippingB2DstD0KSLLBeauty2CharmLine', + 'StrippingB2DstD0KSLLD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KSLLDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KSLLDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSLLBeauty2CharmLine', + 'StrippingB02DstDstKSLLDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSWSLLBeauty2CharmLine', + 'StrippingB02DstDstKSWSLLDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKSWSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + #### DDLambda lines ### + 'StrippingLb2DDLambdaDDBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02HHD02HHDDBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02HHD02K3PiDDBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02K3PiD02K3PiDDBeauty2CharmLine', + 'StrippingLb2DstDLambdaDDBeauty2CharmLine', + 'StrippingLb2DstDLambdaDDDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2DstDstLambdaDDBeauty2CharmLine', + 'StrippingLb2DstDstLambdaDDDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2DstDstLambdaDDDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2DDLambdaLLBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02HHD02HHLLBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02HHD02K3PiLLBeauty2CharmLine', + 'StrippingLb2D0D0LambdaD02K3PiD02K3PiLLBeauty2CharmLine', + 'StrippingLb2DstDLambdaLLBeauty2CharmLine', + 'StrippingLb2DstDLambdaLLDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2DstDstLambdaLLBeauty2CharmLine', + 'StrippingLb2DstDstLambdaLLDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2DstDstLambdaLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + #### DDK* lines ### + 'StrippingB02D0D0KstD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02D0D0KstD02HHD02HHBeauty2CharmLine', + 'StrippingB02D0D0KstD02HHD02K3PiBeauty2CharmLine', + 'StrippingB02DDKstBeauty2CharmLine', + 'StrippingB02DstDKstBeauty2CharmLine', + 'StrippingB02DstDKstDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKstBeauty2CharmLine', + 'StrippingB02DstDstKstDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKstDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DD0KstBeauty2CharmLine', + 'StrippingB2DD0KstD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KstBeauty2CharmLine', + 'StrippingB2DstD0KstDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KstD02K3PiBeauty2CharmLine', + 'StrippingB2DstD0KstDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB2D0DKPiBeauty2CharmLine', + 'StrippingB2D0DKPiD02K3PiBeauty2CharmLine', + #### DDPhi lines ### + 'StrippingB2D0DKKBeauty2CharmLine', + 'StrippingB2D0DKKD2K3PiBeauty2CharmLine', + #'StrippingB02DDKKBeauty2CharmLine', + #'StrippingB02DstDKKBeauty2CharmLine', + #'StrippingB02DstDKKDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKKBeauty2CharmLine', + 'StrippingB02DstDstKKDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstDstKKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + #### DDPi lines ### + 'StrippingB2DDPiBeauty2CharmLine', + 'StrippingB2DDPiWSBeauty2CharmLine', + 'StrippingB02D0DPiBeauty2CharmLine', + 'StrippingB02D0DPiD02K3PiBeauty2CharmLine', + 'StrippingB02D0DPiWSBeauty2CharmLine', + 'StrippingB02D0DPiWSD02K3PiBeauty2CharmLine', + 'StrippingB2DstDPiBeauty2CharmLine', + 'StrippingB2DstDPiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDPiWSBeauty2CharmLine', + 'StrippingB2DstDPiWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB2D0D0PiD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB2D0D0PiD02HHD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiBeauty2CharmLine', + 'StrippingB02DstD0PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiWSBeauty2CharmLine', + 'StrippingB02DstD0PiWSD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB02DstD0PiWSDstarD02K3PiD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstPiBeauty2CharmLine', + 'StrippingB2DstDstPiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstPiDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstPiWSBeauty2CharmLine', + 'StrippingB2DstDstPiWSDstarD02K3PiBeauty2CharmLine', + 'StrippingB2DstDstPiWSDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + 'StrippingB2Dst2460DPiBeauty2CharmLine', + 'StrippingB2Dst2460DPiWSBeauty2CharmLine', + 'StrippingB2D0st2460D0PiBeauty2CharmLine', + #### DDpK lines ### + 'StrippingLb2DDpKD2HHHPIDBeauty2CharmLine', + ######################### + #### End of DDX lines ### + ######################### + 'StrippingLb2LcKLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiLc2PKKBeauty2CharmLine', + 'StrippingLb2LcPiLc2PPiPiBeauty2CharmLine', + 'StrippingLb2LcKWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiWSLc2PKKBeauty2CharmLine', + 'StrippingLb2LcPiWSLc2PPiPiBeauty2CharmLine', + 'StrippingLb2LcPiNoIPWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2XicPiXic2PKPiBeauty2CharmLine', + 'StrippingLb2XicKXic2PKPiBeauty2CharmLine', + 'StrippingLb2XicKWSXic2PKPiBeauty2CharmLine', + 'StrippingLb2XicPiWSXic2PKPiBeauty2CharmLine', + 'StrippingLb2XicPiNoIPWSXic2PKPiBeauty2CharmLine', + 'StrippingXib2Xic0KXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiWSXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0KWSXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiNoIPWSXic02PKKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0PiOmegac02PKKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0KOmegac02PKKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0KWSOmegac02PKKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0PiWSOmegac02PKKPiBeauty2CharmLine', + 'StrippingOmegab2Omegac0PiNoIPWSOmegac02PKKPiBeauty2CharmLine', + 'StrippingOmegab2XicpKPiXicp2PKPiBeauty2CharmLine', + 'StrippingOmegab2LcKKLc2PKPiBeauty2CharmLine', + 'StrippingXib02XicDXic2PKPiBeauty2CharmLine', + 'StrippingXib02XicDWSXic2PKPiBeauty2CharmLine', + 'StrippingXib2Xic0DXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0DWSXic02PKKPiBeauty2CharmLine', + 'StrippingXib02XicKPiPiXic2PKPiBeauty2CharmLine', + 'StrippingXib02XicPiPiPiXic2PKPiBeauty2CharmLine', + 'StrippingXib02XicPiPiPiWSXic2PKPiBeauty2CharmLine', + 'StrippingXib02XicKPiPiWSXic2PKPiBeauty2CharmLine', + 'StrippingXib2Xic0KPiPiXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiPiPiXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0KPiPiWSXic02PKKPiBeauty2CharmLine', + 'StrippingXib2Xic0PiPiPiWSXic02PKKPiBeauty2CharmLine', + 'StrippingXib2LcDKLc2PKPiD2HHHBeauty2CharmLine', + 'StrippingXib2LcDKWSLc2PKPiD2HHHBeauty2CharmLine', + 'StrippingXib02LcDsKPiLc2PKPiDs2KKPiBeauty2CharmLine', + 'StrippingXib02LcDsKPiWSLc2PKPiDs2KKPiBeauty2CharmLine', + 'StrippingB2LcDspbarLc2PKPiDs2KKPiBeauty2CharmLine', + 'StrippingB2LcDspbarWSLc2PKPiDs2KKPiBeauty2CharmLine', + 'StrippingSb2D0PD2HHPIDBeauty2CharmLine', + 'StrippingSb02DPD2HHHPIDBeauty2CharmLine', + 'StrippingSb02DPWSD2HHHPIDBeauty2CharmLine', + 'StrippingLb2D0PHD02HHBeauty2CharmLine', + 'StrippingLb2D0PHWSD02HHBeauty2CharmLine', + 'StrippingLb2D0PHNoPIDD02HHBeauty2CharmLine', + 'StrippingLb2D0PHNoPIDWSD02HHBeauty2CharmLine', + 'StrippingLb2D0PHD02K3PiBeauty2CharmLine', + 'StrippingLb2D0PHWSD02K3PiBeauty2CharmLine', + 'StrippingLb2D0PPbarD02HHBeauty2CharmLine', + 'StrippingLb2D0PPbarWSD02HHBeauty2CharmLine', + 'StrippingLb2LcKSKLLLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcKSKDDLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcKKPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcppbarKLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcppbarPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcKPiPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiPiPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiPiPiLc2PKKBeauty2CharmLine', + 'StrippingLb2LcPiPiPiLc2PPiPiBeauty2CharmLine', + 'StrippingLb2LcKPiPiWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiPiPiWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcPiPiPiWSLc2PKKBeauty2CharmLine', + 'StrippingLb2LcPiPiPiWSLc2PPiPiBeauty2CharmLine', + 'StrippingLb2LcppbarKWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcppbarPiWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcKKPiWSLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKKLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarpbarpLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarPiPiLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKPiLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarPiPiWSLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarpbarpWSLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKKWSLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKPiWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcDD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDWSD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDKstBeauty2CharmLine', + 'StrippingLb2LcDstKstBeauty2CharmLine', + 'StrippingLb2LcDst0KLc2PKPiDst02D0GammaD2HHBeauty2CharmLine', + 'StrippingLb2LcDst0KLc2PKPiDst02D0Pi0ResolvedD2HHBeauty2CharmLine', + 'StrippingLb2LcDst0KLc2PKPiDst02D0Pi0MergedD2HHBeauty2CharmLine', + 'StrippingX2LcD0D02KPiBeauty2CharmLine', + 'StrippingX2LcD0PiD02KPiBeauty2CharmLine', + 'StrippingX2LcD0KD02KPiBeauty2CharmLine', + 'StrippingX2LcD0PiWSD02KPiBeauty2CharmLine', + 'StrippingX2LcD0KWSD02KPiBeauty2CharmLine', + 'StrippingX02XiccpPiXiccp2Xic0PiBeauty2CharmLine', + 'StrippingX02XiccpKXiccp2Xic0PiBeauty2CharmLine', + 'StrippingX02XiccpPiWSXiccp2Xic0PiBeauty2CharmLine', + 'StrippingX02XiccpKWSXiccp2Xic0PiBeauty2CharmLine', + 'StrippingX2XiccppKXiccpp2XicPiBeauty2CharmLine', + 'StrippingX2XiccppPiXiccpp2XicPiBeauty2CharmLine', + 'StrippingX2XiccppKWSXiccpp2XicPiBeauty2CharmLine', + 'StrippingX2XiccppPiWSXiccpp2XicPiBeauty2CharmLine', + 'StrippingX2LcPiPiOSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcPiKOSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcPiPiSSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKKSSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKPiOSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKKOSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKPiSSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcPiPiWSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKPiWSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKKWSLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKPiPiPiLc2PKPiBeauty2CharmLine', + 'StrippingX2LcKPiPiPiWSLc2PKPiBeauty2CharmLine', + 'StrippingXib2XicPiPiXic2PKPiBeauty2CharmLine', + 'StrippingXib2XicKPiXic2PKPiBeauty2CharmLine', + 'StrippingXib2XicKKXic2PKPiBeauty2CharmLine', + 'StrippingXib2XicKKWSXic2PKPiBeauty2CharmLine', + 'StrippingXib2XicPiPiWSXic2PKPiBeauty2CharmLine', + 'StrippingXib2XicKPiWSXic2PKPiBeauty2CharmLine', + 'StrippingLb2LcDstDstar2D0PiPIDBeauty2CharmLine', + 'StrippingLb2LcDstWSDstar2D0PiPIDBeauty2CharmLine', + 'StrippingX2LcLcBeauty2CharmLine', + 'StrippingX2LcLcWSBeauty2CharmLine', + 'StrippingLb2Lc5PiLc2PKPiPIDBeauty2CharmLine', + 'StrippingLb2D0Lambda0DDD02HHBeauty2CharmLine', + 'StrippingLb2D0Lambda0LLD02HHBeauty2CharmLine', + 'StrippingLb2D0Lambda0DDD02K3PiBeauty2CharmLine', + 'StrippingLb2D0Lambda0LLD02K3PiBeauty2CharmLine', + 'StrippingLb2DpKKD2HHHBeauty2CharmLine', + 'StrippingLb2DpPiPiD2HHHBeauty2CharmLine', + 'StrippingLb2DpKPiD2HHHBeauty2CharmLine', + 'StrippingXib2D0pKKD02HHBeauty2CharmLine', + 'StrippingXib2D0pPiPiD02HHBeauty2CharmLine', + 'StrippingXib2D0pKPiD02HHBeauty2CharmLine', + 'StrippingLb2D0pKD02K3PiBeauty2CharmLine', + 'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', + 'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD02K3PiBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD2HHBeauty2CharmLine', + 'StrippingXibc2DpKD2HHHBeauty2CharmLine', + 'StrippingB2LcpbarKSSLc2PKPiBeauty2CharmLine', + 'StrippingB2LcpbarPiSSLc2PKPiBeauty2CharmLine', + 'StrippingB2LcpbarKWSLc2PKPiBeauty2CharmLine', + 'StrippingB2LcpbarPiWSLc2PKPiBeauty2CharmLine', + 'StrippingB2LcpbarLc2PKPiBeauty2CharmLine', + 'StrippingB2LcpbarWSLc2PKPiBeauty2CharmLine', + 'StrippingB2LcLcKLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKSDDLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKSWSDDLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKSLLLc2PKPiBeauty2CharmLine', + 'StrippingB02LcpbarKSWSLLLc2PKPiBeauty2CharmLine', + 'StrippingLb2DLambda0DDpiD2HHHBeauty2CharmLine', + 'StrippingLb2DLambda0LLpiD2HHHBeauty2CharmLine', + 'StrippingLb2DLambda0DDpiWSD2HHHBeauty2CharmLine', + 'StrippingLb2DLambda0LLpiWSD2HHHBeauty2CharmLine', + 'StrippingXib2D0Lambda0DDpiD02HHBeauty2CharmLine', + 'StrippingXib2D0Lambda0LLpiD02HHBeauty2CharmLine', + 'StrippingXib2D0Lambda0DDpiWSD02HHBeauty2CharmLine', + 'StrippingXib2D0Lambda0LLpiWSD02HHBeauty2CharmLine', + 'StrippingB02LcLambda0KLc2PKPiBeauty2CharmLine', + 'StrippingB02LcLambda0PiLc2PKPiBeauty2CharmLine', + 'StrippingB02LcLambda0PiWSLc2PKPiBeauty2CharmLine', + 'StrippingB02LcLambda0KWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2sigmacpp4PiSigmacpp2LcPiLc2PKPiBeauty2CharmLine', + 'StrippingLb2sigmacppD0KPiSigmacpp2LcPiLc2PKPiBeauty2CharmLine', + 'StrippingB02LcSigmacppKSigmacpp2LcPiLc2PKPiBeauty2CharmLine', + 'StrippingB2LcXicPiXic2PKPiLc2PKPiBeauty2CharmLine', + 'StrippingB02DKLTUBD2HHHBeauty2CharmLine', + 'StrippingB02DsKPiPiLTUBD2HHHBeauty2CharmLine', + 'StrippingB02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine', + 'StrippingDstarUPB02D0KPiD2HHBeauty2CharmLine', + + # Bc+ -> D+ D0 + 'StrippingBc2DD0D2KSHHHD02HHBeauty2CharmLine', + 'StrippingBc2DD0D2KSHHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DD0D2KSHHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DD0D2KSHHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DD0D2KSHD02HHBeauty2CharmLine', + 'StrippingBc2DD0D2KSHD02KHHHBeauty2CharmLine', + 'StrippingBc2DD0D2KSHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DD0D2KSHD02KSHHBeauty2CharmLine', + 'StrippingBc2DD0D2HHHD02HHBeauty2CharmLine', + 'StrippingBc2DD0D2HHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DD0D2HHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DD0D2HHHD02KSHHBeauty2CharmLine', + + # Bc+ -> D*+ D0 + 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2HHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2HHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KHHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KHHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KHHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KHHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2KSHHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2HHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2HHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2HHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DGammaD2HHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02HHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02HHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02HHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02HHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KSHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KSHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KSHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2D0PID02KSHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHHHD02KSHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHD02HHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHD02KHHHBeauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHD02HHPI0Beauty2CharmLine', + 'StrippingBc2DstD0Dst2DPI0D2KSHD02KSHHBeauty2CharmLine', + + # Bc+ -> D+ D*0 + 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2KSHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DDst0D2HHHDst02D0GammaD02HHBeauty2CharmLine', + + # Bc+ -> D*+ D*0 + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KHHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2KSHHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DGammaD2HHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02HHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2D0PID02KSHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHHHDst02D0GammaD02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02HHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02KHHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02KSHHBeauty2CharmLine', + 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02HHBeauty2CharmLine', + + #Xibc + 'StrippingXibc2LcD0D02KPiBeauty2CharmLine', + 'StrippingXibc2LcD0PiD02KPiBeauty2CharmLine', + 'StrippingXibc2D0D0pD02KPiBeauty2CharmLine', + 'StrippingXibc2LcPiPiOSLc2PKPiBeauty2CharmLine', + 'StrippingXibc2LcKPiOSLc2PKPiBeauty2CharmLine', + 'StrippingXibc2LcPiKOSLc2PKPiBeauty2CharmLine', + 'StrippingXibc02XiccpPiXiccp2Xic0PiBeauty2CharmLine', + 'StrippingXibc2XiccppPiXiccpp2XicPiBeauty2CharmLine', + 'StrippingXibc2XiccppPiXiccpp2LcK2PiBeauty2CharmLine', + 'StrippingXibc2LcPiLc2PKPiBeauty2CharmLine', + 'StrippingXibc2LcKLc2PKPiBeauty2CharmLine', + 'StrippingXibc2XicPiXic2PKPiBeauty2CharmLine', + 'StrippingXibc2Xic0PiXic02PKKPiBeauty2CharmLine', + 'StrippingXibc02XiccpMuXiccp2Xic0PiBeauty2CharmLine', + 'StrippingXibc2XiccppMuXiccpp2XicPiBeauty2CharmLine', + 'StrippingXibc02XiccpMuWSXiccp2Xic0PiBeauty2CharmLine', + 'StrippingXibc2XiccppMuWSXiccpp2XicPiBeauty2CharmLine', + 'StrippingX2Omegac0PiOmegac02PKKPiBeauty2CharmLine', + 'StrippingX2Omegac0KOmegac02PKKPiBeauty2CharmLine', + 'StrippingX2Omegac0KOSOmegac02PKKPiBeauty2CharmLine', + 'StrippingXibc2LcD0MuD02KPiBeauty2CharmLine', + 'StrippingXibc2LcD0MuWSD02KPiBeauty2CharmLine', + 'StrippingXibc2LcDMuD2KPiPiBeauty2CharmLine', + 'StrippingXibc2LcDMuWSD2KPiPiBeauty2CharmLine', + + 'StrippingB2XicpbarPiXic2PKPiBeauty2CharmLine', + 'StrippingB02XicpbarPiPiXic2PKPiBeauty2CharmLine', + 'StrippingB02XicpbarKPiXic2PKPiBeauty2CharmLine', + 'StrippingB02DpbarLambdaDDD2HHHBeauty2CharmLine', + 'StrippingB02DpbarLambdaLLD2HHHBeauty2CharmLine', + 'StrippingB02DstpbarLambdaDDDst2D0PiBeauty2CharmLine', + 'StrippingB02DstpbarLambdaLLDst2D0PiBeauty2CharmLine', + 'StrippingB02DstpbarLambdaDDDst2D0PiD02K3PiBeauty2CharmLine', + 'StrippingB02DstpbarLambdaLLDst2D0PiD02K3PiBeauty2CharmLine', + 'StrippingB2D0pbarLambdaDDD02HHBeauty2CharmLine', + 'StrippingB2D0pbarLambdaLLD02HHBeauty2CharmLine', + 'StrippingB2D0pbarLambdaDDD02K3PiBeauty2CharmLine', + 'StrippingB2D0pbarLambdaLLD02K3PiBeauty2CharmLine', + 'StrippingB02D0pbarKLambdaDDD02HHBeauty2CharmLine', + 'StrippingB02D0pbarKLambdaLLD02HHBeauty2CharmLine', + 'StrippingB02D0pbarKLambdaDDD02K3PiBeauty2CharmLine', + 'StrippingB02D0pbarKLambdaLLD02K3PiBeauty2CharmLine', + 'StrippingXib2Xic0D0KD02KPiBeauty2CharmLine', + 'StrippingXib2XicDKD2HHHBeauty2CharmLine', + 'StrippingXib2XicDKDst2D0PiBeauty2CharmLine', + 'StrippingXib02XicD0KD02KPiBeauty2CharmLine', + 'StrippingXib02XicD0KD02K3PiBeauty2CharmLine', + 'StrippingOmegab2Xic0KPiPiXic02PKKPiBeauty2CharmLine', + 'StrippingXib02D0LambdaPiPiLLD02KPiBeauty2CharmLine', + 'StrippingXib02D0LambdaPiPiLLD02K3PiBeauty2CharmLine', + 'StrippingXib02D0LambdaPiPiDDD02KPiBeauty2CharmLine', + 'StrippingXib02D0LambdaPiPiDDD02K3PiBeauty2CharmLine', + 'StrippingXib2LcKHHHLc2PKPiBeauty2CharmLine', + 'StrippingXib2XicHHHHXic2PKPiBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2XimPipPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2XimPipPimDDBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2Lambda0KmPipPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2Lambda0KmPipPimDDBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2PKsKmPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2PKsKmPimDDBeauty2CharmLine' ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["[Xi_cc++ -> Lambda_c+ K- pi+ pi+]cc"]) - return Selection( - 'LooseXiccpp2LcK2PiLc2PKPiBeauty2Charm', - Algorithm=cp, - RequiredSelections=self.lc + [self.kaons] + [self.pions]) - + }, + 'WGs': ['B2OC'] +} #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -class XibcBuilder(object): - '''Makes all Xibc -> X lines.''' - - def __init__(self, lc, xicc, d, topoPions_PID, topoKaons_PID, - topoProtons_PID, pions, kaons, protons, muons, config, - configSL): - self.lc = lc.pkpi - self.xic = lc.xic_pkpi - self.xic0 = lc.xic0_pkkpi - self.omegac0 = lc.omegac0_pkkpi - self.xiccp = xicc.xiccp - self.xiccpp = xicc.xiccpp - self.xiccpp2lck2pi = xicc.xiccpp2lck2pi - #self.d = d - self.dp = d.d_cf_hhh_pid_tightpi - self.d0 = d.kpi_pid_tighter1_narrow #Tight PID cuts, 60 MeV mass window - self.pions = [pions] - self.kaons = [kaons] - self.protons = [protons] - self.muons = [muons] - self.topoPions_pid = [topoPions_PID] - self.topoKaons_pid = [topoKaons_PID] - self.protons_pid = [topoProtons_PID] - self.config = deepcopy(config) - self.configSL = deepcopy(configSL) - #self.config['AM_MIN'] = '5200*MeV' - self.lines = [] - - #----------------------- - # --- Hadronic Modes --- - #----------------------- - ### bc baryon -> Lc D0 - self._makeXibc2LcD0() - ### bc baryon -> Lc D0 H - self._makeXibc2LcD0H() - ### bc baryon -> Xi_cc+ pi- - self._makeXibc02XiccH() - ### bc baryon -> Xi_cc++ pi- (Xicc -> XicPi/LcK2Pi) - self._makeXibc2XiccH('Xiccpp2XicPi', self.xiccpp) - self._makeXibc2XiccH('Xiccpp2LcK2Pi', self.xiccpp2lck2pi) - ### bc baryon -> Lc H+H-, - self._makeXibc2LcHH() - # Xibc -> Lc+- H- - self._makeXibc2LcH() - # Xibc -> Xic+- Pi - self._makeXibc2XicH() - ### Xibc -> Xic0 Pi - self._makeXibc2Xic0H() - ### Xibc -> D0 D0 p - self._makeXibc2D0D0p() - # X -> Omega_c0 {Pi,K} - self._makeX2Omegac0H() - - #--------------------------- - # --- Semileptonic Modes --- - #--------------------------- - ### bc baryon -> Xi_cc+ mu- - self._makeXibc02XiccMu() - ### bc baryon -> Xi_cc++ mu- - self._makeXibc2XiccMu() - ### bc baryon -> Lc D0 H - self._makeXibc2LcD0Mu() - ### bc baryon -> Lc D0 H - self._makeXibc2LcDMu() - - def _makeXibc2D0D0p(self): - '''Makes Xibc -> D0 D0 p''' - decays = {'Xibc2D0D0p': ["Xi_bc+ -> D0 D0 p+", "Xi_bc~- -> D0 D0 p~-"]} - inputs = {'Xibc2D0D0p': self.d0 + self.protons} - b2d0d0p = makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(b2d0d0p, 1.0)) - - def _makeXibc2LcD0(self): - '''Makes RS Xibc -> Lc D0 + c.c.''' - decays = { - 'Xibc2LcD0': - ["Xi_bc+ -> Lambda_c+ D0", "Xi_bc~- -> Lambda_c~- D0"] - } - inputs = {'Xibc2LcD0': self.d0 + self.lc} - rs = makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2LcD0H(self): - '''Makes RS Xibc -> Lc D0 H + c.c. Need loose pions here as they may be soft''' - pions = self.pions - #kaons = self.kaons - decays = { - 'Xibc2LcD0Pi': - ["Xi_bc0 -> Lambda_c+ D0 pi-", "Xi_bc0 -> Lambda_c~- D0 pi+"] - } - inputs = {'Xibc2LcD0Pi': self.d0 + self.lc + pions} - rs = makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2LcHH(self): - '''Makes RS Xibc -> Lc H+H-, LC H-H- + c.c.''' - pions = self.pions - kaons = self.kaons - decays = { - 'Xibc2LcPiPiOS': ["[Xi_bc+ -> Lambda_c+ pi- pi+]cc"], - 'Xibc2LcKPiOS': ["[Xi_bc+ -> Lambda_c+ K- pi+]cc"], - 'Xibc2LcPiKOS': ["[Xi_bc+ -> Lambda_c+ K+ pi-]cc"], - } - inputs = { - 'Xibc2LcPiPiOS': self.lc + pions, - 'Xibc2LcKPiOS': self.lc + kaons + pions, - 'Xibc2LcPiKOS': self.lc + kaons + pions, - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc02XiccH(self): - '''Make RS Xi_bcd -> Xi_cc+ H (H=pi) + cc.''' - pions = self.topoPions_pid - #kaons = self.kaons - decays = {'Xibc02XiccpPi': ["[Xi_bc0 -> Xi_cc+ pi-]cc"]} - inputs = {'Xibc02XiccpPi': self.xiccp + pions} - rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2XiccH(self, dname, xiccpp2x): - '''Make RS and WS Xi_bcu -> Xi_cc++ H (H=pi) + cc.''' - pions = self.topoPions_pid - decays = {'Xibc2XiccppPi': ["[Xi_bc+ -> Xi_cc++ pi-]cc"]} - inputs = {'Xibc2XiccppPi': xiccpp2x + pions} - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2LcH(self): - '''Make RS Xibc -> Lc H (H=pi,K) + cc.''' - pions = self.topoPions_pid - kaons = self.topoKaons_pid - decays = { - 'Xibc2LcPi': ["[Xi_bc0 -> Lambda_c+ pi-]cc"], - 'Xibc2LcK': ["[Xi_bc0 -> Lambda_c+ K-]cc"] - } - inputs = {'Xibc2LcPi': self.lc + pions, 'Xibc2LcK': self.lc + kaons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2XicH(self): - '''Make RS Xibc -> Xi_c+ H (H=pi) + cc.''' - pions = self.topoPions_pid - #kaons = self.topoKaons - decays = {'Xibc2XicPi': ["[Xi_bc0 -> Xi_c+ pi-]cc"]} - inputs = {'Xibc2XicPi': self.xic + pions} - rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2Xic0H(self): - '''Make RS and WS Xi_bc -> Xi_c0 H (H=pi) + cc.''' - pions = self.topoPions_pid - decays = {'Xibc2Xic0Pi': ["[Xi_bc+ -> Xi_c0 pi+]cc"]} - inputs = {'Xibc2Xic0Pi': self.xic0 + pions} - rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeX2Omegac0H(self): - '''Make Omega_b --> Omega_c {pi,K} and Xibc+ --> Omega_c0 K+ + cc.''' - pions = self.topoPions_pid - kaons = self.topoKaons_pid - decays = {'X2Omegac0Pi': ["[Omega_b- -> Omega_c0 pi-]cc"]} - inputs = {'X2Omegac0Pi': self.omegac0 + pions} - rspi = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) - decays = {'X2Omegac0K': ["[Omega_b- -> Omega_c0 K-]cc"]} - inputs = {'X2Omegac0K': self.omegac0 + kaons} - rsk = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) - decays = {'X2Omegac0KOS': ["[Xi_bc+ -> Omega_c0 K+]cc"]} - inputs = {'X2Omegac0KOS': self.omegac0 + kaons} - osk = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) - self.lines.append(ProtoLine(rspi, 1.0)) - self.lines.append(ProtoLine(rsk, 1.0)) - self.lines.append(ProtoLine(osk, 1.0)) - - def _makeXibc02XiccMu(self): - '''Make RS+WS Xi_bcd -> Xi_cc+ mu- + cc.''' - muons = self.muons - decays = {'Xibc02XiccpMu': ["[Xi_bc0 -> Xi_cc+ mu-]cc"]} - inputs = {'Xibc02XiccpMu': self.xiccp + muons} - rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.configSL) - decays = {'Xibc02XiccpMuWS': ["[Xi_bc0 -> Xi_cc+ mu+]cc"]} - inputs = {'Xibc02XiccpMuWS': self.xiccp + muons} - ws = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, self.configSL) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 1.0)) - - def _makeXibc2XiccMu(self): - '''Make RS+WS Xi_bcu -> Xi_cc++ mu- + cc.''' - muons = self.muons - decays = {'Xibc2XiccppMu': ["[Xi_bc+ -> Xi_cc++ mu-]cc"]} - inputs = {'Xibc2XiccppMu': self.xiccpp + muons} - rs = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, self.configSL) - decays = {'Xibc2XiccppMuWS': ["[Xi_bc+ -> Xi_cc++ mu+]cc"]} - inputs = {'Xibc2XiccppMuWS': self.xiccpp + muons} - ws = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, self.configSL) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 1.0)) - - def _makeXibc2LcD0Mu(self): - '''Makes RS Xibc -> Lc D0 mu + c.c. Need loose pions here as they may be soft''' - muons = self.muons - decays = { - 'Xibc2LcD0Mu': - ["Xi_bc0 -> Lambda_c+ D0 mu-", "Xi_bc0 -> Lambda_c~- D0 mu+"] - } - inputs = {'Xibc2LcD0Mu': self.d0 + self.lc + muons} - rs = makeB2XSels(decays, 'D02KPi', inputs, self.configSL) - decays = { - 'Xibc2LcD0MuWS': - ["Xi_bc0 -> Lambda_c+ D0 mu+", "Xi_bc0 -> Lambda_c~- D0 mu-"] - } - inputs = {'Xibc2LcD0MuWS': self.d0 + self.lc + muons} - ws = makeB2XSels(decays, 'D02KPi', inputs, self.configSL) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 1.0)) - - def _makeXibc2LcDMu(self): - '''Makes RS Xibc -> Lc D+ mu + c.c. Need loose muons here as they may be soft''' - muons = self.muons - decays = {'Xibc2LcDMu': ["[Xi_bc+ -> Lambda_c+ D+ mu-]cc"]} - inputs = {'Xibc2LcDMu': self.dp + self.lc + muons} - rs = makeB2XSels(decays, 'D2KPiPi', inputs, self.configSL) - decays = {'Xibc2LcDMuWS': ["[Xi_bc+ -> Lambda_c+ D+ mu+]cc"]} - inputs = {'Xibc2LcDMuWS': self.dp + self.lc + muons} - ws = makeB2XSels(decays, 'D2KPiPi', inputs, self.configSL) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 1.0)) - - -#\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - - -class Lb2XBuilder(object): - '''Makes all Lambda_b -> X lines.''' - - def __init__(self, lc, lcstar, xicc, d, hh, topoPions, topoPions_PID, topoKaons, - topoKaons_PID, topoProtons, topoProtons_PID, pions, kaons, ks, - hhh, dst, lambda0, config, config_xibm): - - self.lc = lc.pkpi - self.lc_pkk = lc.pkk - self.lc_ppipi = lc.ppipi - self.xic = lc.xic_pkpi - self.xic0 = lc.xic0_pkkpi - self.xic0_ximpip_LL = lc.xic0_ximpip_LL - self.xic0_ximpip_DD = lc.xic0_ximpip_DD - self.xic0_lmd0kmpip_LL = lc.xic0_lmd0kmpip_LL - self.xic0_lmd0kmpip_DD = lc.xic0_lmd0kmpip_DD - self.xic0_pkskm_LL = lc.xic0_pkskm_LL - self.xic0_pkskm_DD = lc.xic0_pkskm_DD - - self.lc_lambdapiLL = lc.lambdapiLL - self.lc_lambdapiDD = lc.lambdapiDD - self.lcstar2595 = lcstar.lcstar2595 - self.lcstar2625 = lcstar.lcstar2625 - self.xic = lc.xic_pkpi - self.xic0 = lc.xic0_pkkpi - - self.omegac0 = lc.omegac0_pkkpi - self.lc_tight = lc.pkpi_tight_win #tight Lc - self.xic_tight = lc.xic_pkpi_tight_win #tight Xic - self.xic_tightest = lc.xic_pkpi_tightest_win #tight Xic - self.omegac0_tight = lc.omegac0_pkkpi_tight_win #tight Omegac0 - self.xiccp = xicc.xiccp - self.xiccpp = xicc.xiccpp - self.sigmacpp = xicc.sigmacpp - self.d = d - self.d0_pid = d.hh_pid - self.d0_k3pi_pid = d.k3pi_pid - self.d0_k3pi = d.k3pi_pid_tighter1_narrow #Tight PID cuts, 60 MeV mass window - self.d0_kshh_dd = d.kshh_dd_pid - self.d0_kshh_ll = d.kshh_ll_pid - self.hh = hh - self.hhh = hhh - self.dst = dst - self.ds = d.ds_hhh_pid_tight - self.dds = d.hhh_pid_tight - self.lambda0 = lambda0 - self.pions = [pions] - self.kaons = [kaons] - self.topoPions = [topoPions] - self.topoPions_pid = [topoPions_PID] - self.topoKaons = [topoKaons] - self.topoKaons_pid = [topoKaons_PID] - self.protons = [topoProtons] - self.protons_pid = [topoProtons_PID] - self.ks = ks - self.config = deepcopy(config) - self.config_xibm = config_xibm - self.config['AM_MIN'] = '5200*MeV' - self.lines = [] - # Lb -> Lc+- H-+ (+WS) - self._makeLb2LcH() - # Lb -> Lc+ D-/D_s-/D*-/D_s*- - self._makeLb2LcDm() - # Lb -> Lc+/Lc(2595)+/Lc(2625)+ D_s- - self._makeLb2LcDs() - # Lb -> Xic+- H-+ (+WS) - self._makeLb2XicH() - - ### Xib- -> Xic0 H- (+WS) - self._makeXib2Xic0H() - ### Omegab- -> Omegac0 H- (+WS) - self._makeOmegab2Omegac0H() - ### Omega_b- -> Xic+ K- pi-, Xic+ -> pKpi - self._makeOmegab2XicpKPi() - ### Omega_b- -> Lambda_c+ K- K- - self._makeOmegab2LcKK() - ### Xib0 -> Xic+ D- (+WS) - self._makeXib02XicD() - ### Xib- -> Xic0 D- (+WS) - self._makeXib2Xic0D() - ### Xib0 -> Xic+ HHH- (+WS) (HHH = 3pi, Kpipi) - self._makeXib02XicHHH() - ###Xib- -> Xic0 HHH- (+WS) (HHH = 3pi, Kpipi) - self._makeXib2Xic0HHH() - ### Xb- -> Lc+ D(s)- K- - self._makeXib2LcDK() - ### Xb- -> Lc+ Ds- K- Pi+ - self._makeXib02LcDsKPi() - ### Xb- -> Xic0 Pim,,Xic0 -> Xim Pip - self._makeXibm2Xic0Pim2XimPipPim("LL") - self._makeXibm2Xic0Pim2XimPipPim("DD") - ### Xb- -> Xic0 Pim,,Xic0 -> Lambda0 Km pip - self._makeXibm2Xic0Pim2Lambda0KmPipPim("LL") - self._makeXibm2Xic0Pim2Lambda0KmPipPim("DD") - ### Xb- -> Xic0 Pim,,Xic0 -> p Ks Km - self._makeXibm2Xic0Pim2PKsKmPim("LL") - self._makeXibm2Xic0Pim2PKsKmPim("DD") - - ### B- -> Lc+ Ds- pbar - self._makeB2LcDspbar() - - # Sb+- -> D0(HH) p+- - self._makeSb2D0P() - # Sb -> D-+(HHH) p+- - self._makeSb02DP() - # Lb -> D0(HH/K3Pi) p+- H-+ - self._makeLb2D0HHPH() - # Lb -> D0(HH) p+- p-+ (+WS) - self._makeLb2D0PPbar() - # Lb -> Lc+- 3Pi, KPiPi, ppbarPi, ppbarK (+WS) - self._makeLb2LcHHH() - # Lb -> Lc D (+WS) - self._makeLb2LcD() - # Lb -> Lc+ KS K- - self._makeLb2LcKSK("LL") - self._makeLb2LcKSK("DD") - - # Lb -> Lc D K* - MMSeld2hhh = [ - filterSelection( - 'D2HHH4LcDKst', - "(MM > (1864.84-50.)*MeV) & (MM < (1968.49+50.)*MeV)", - self.d.hhh_pid) - ] - self._makeLb2LcDKst(MMSeld2hhh) - self._makeLb2LcDstKst() - # Lb -> Lc D*0 K, D*0 -> D0 gamma/Pi0_resolved/merged - self._makeLb2Dst0K('Dst02D0GammaD2HH', self.dst.d0gamma_hh_pid) - self._makeLb2Dst0K('Dst02D0Pi0ResolvedD2HH', - self.dst.d0pi0_resolved_pid) - self._makeLb2Dst0K('Dst02D0Pi0MergedD2HH', self.dst.d0pi0_merged_pid) - - ### bc baryon -> Lc D0 - self._makeX2LcD0() - ### bc baryon -> Lc D0 H (+WS) - self._makeX2LcD0H() - ### bc baryon -> Xi_cc+ pi- - self._makeX02XiccH() - ### bc baryon -> Xi_cc++ pi- - self._makeX2XiccH() - ### Xib -> Lc H+H-, LcH-H- (+WS) - self._makeX2LcHH() - ### bc baryon -> Lc HHHH (+WS) - self._makeX2LcKPiPiPi() - ### Xib,Omega_b -> Lc HH (+WS) - self._makeXib2XicHH() - - # Lb -> Lc D* (+WS) - self._makeLb2LcDst() - # X -> Lc Lc (+WS) - self._makeX2LcLc() - # Lb -> Lc Lc n (+WS) - self._makeLb2LcLcn() - # Lb -> Lc 5pi - self._makeLb2Lc5Pi() - # Lb -> D0 Lambda0, D0(HH/K3Pi) - self._makeLb2D0Lambda0() - - # Lb -> D+ p h- h- - self._makeLb2DpHH() - # Xib -> D0 p h- h- - self._makeXib2D0pHH() - - # B -> Lc pbar h- - self._makeB2LcpbarH() - # B-> Lc pbar - self._makeB2Lcpbar() - # B- -> Lc Lc K- - self._makeB2LcLcK() - - # B0->Lc pbar Ks - self._makeB02LcpbarKS('DD') - self._makeB02LcpbarKS('LL') - - # Lb -> D(s)+ Lambda0 pi- - self._makeLb2DLambda0pi() - # Xib -> D0 Lambda0 pi- - self._makeXib2D0Lambda0pi() - # B0 -> Lambdac+ Lambda0bar h- - self._makeB2LcLambda0barH() - - # Lb -> D0 p h (D02K3Pi/D02KsDDHH/D02KsLLHH) - self._makeLb2D0ph('D02K3Pi', self.d.k3pi_pid) - self._makeLb2D0ph('D02HHHHPID', self.d.hhhh_pid) - self._makeLb2D0ph('D02KsDDHH', self.d.kshh_dd_pid) - self._makeLb2D0ph('D02KsLLHH', self.d.kshh_ll_pid) - # Lb -> D0 p h WS - self._makeLb2D0phWS('D02K3PiWS', self.d.k3pi_pid) - self._makeLb2D0phWS('D02HHHHPIDWS', self.d.hhhh_pid) - self._makeLb2D0phWS('D02KsDDHHWS', self.d.kshh_dd_pid) - self._makeLb2D0phWS('D02KsLLHHWS', self.d.kshh_ll_pid) - - # Lb -> D(s)- D0(K3Pi/HH) p - self._makeLb2DD0p('D02K3Pi', self.d.k3pi_pid) - self._makeLb2DD0p('D2HH', self.d.hh_pid) - # Xi_bc+ --> D+ p K- - self._makeXibc2DpK() - - # Lb -> Lc+- 3Pi - self._makeLb2LcPiPiPiFullDST() - # Xib -> Xic+- 3Pi - self._makeXib02XicPiPiPiFullDST() - # Xib- -> Xic+- 3Pi - self._makeXib2Xic0PiPiPiFullDST() - # Omegab- -> Omegac0- 3Pi - self._makeOmegab2Omegac0PiPiPiFullDST() - - # Lb->sigmacpp(LcPi)4Pi - self._makeLb2sigmacpp4Pi() - # Lb->sigmacpp(LcPi)D0(KPi)KPi - self._makeLb2sigmacppD0KPi() - - # Lb -> D D Lambda0 (+18 lines) - self._makeLb2DDLambda('DD') - self._makeLb2D0D0Lambda('DD') - self._makeLb2DstDLambda('DD') - self._makeLb2DstDstLambda('DD') - self._makeLb2DDLambda('LL') - self._makeLb2D0D0Lambda('LL') - self._makeLb2DstDLambda('LL') - self._makeLb2DstDstLambda('LL') - - # Lb -> D+ D- p K- - self._makeLb2DDpK() - - # B0 -> Lc+ Sigmacpp(LcPi) K+ - self._makeB02LcSigmacppK() - - # Bs -> Lc- Sigma+ - self._makeBs2LcSigma() - - # B+ -> Lc+ Xic- pi+ - self._makeB2LcXicPi() - - # B- -> Xic+ pi- pbar - self._makeB2XicpbarPi() - # B0 -> Xic+ pi+ pi- pbar - self._makeB02XicpbarPiPi() - # B0 -> Xic+ K+ pi- pbar - self._makeB02XicpbarKPi() - # B0 -> Lambda0 D(*)+ pbar - self._makeB02DpbarLambda('DD') - self._makeB02DpbarLambda('LL') - # B- -> Lambda0 D0 pbar - self._makeB2D0pbarLambda('DD') - self._makeB2D0pbarLambda('LL') - # B0 -> Lambda0 D0 pbar K - self._makeB02D0pbarKLambda('DD') - self._makeB02D0pbarKLambda('LL') - - # Xib- -> Xic0 D~0 K-, Xib- -> Xic+ D- K-, Xib- -> Xic+ D*- K- - self._makeXib2XicDK() - # Xib0 -> Xic+ D~0 K- - self._makeXib02XicD0K() - # Omegab- -> Xic0 K Pi Pi - self._makeOmegab2Xic0KPiPi() - # Xib0 -> D0 Lambda0 pi+ pi- - self._makeXib02D0LambdaPiPi() - # Xib- -> Lambdac+ pi+ K- pi- pi- - self._makeXib2LcKHHH() - # Xib- -> Xic+ pi+ pi- pi- pi- - self._makeXib2XicHHHH() - - def _makeLb2LcH(self): - '''Make RS and WS Lb -> Lc H (H=pi,K) + cc.''' - pions = self.topoPions - kaons = self.topoKaons - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = { - 'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"], - 'Lb2LcK': ["[Lambda_b0 -> Lambda_c+ K-]cc"] - } - inputs = {'Lb2LcPi': self.lc + pions, 'Lb2LcK': self.lc + kaons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = { - 'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"], - 'Lb2LcKWS': ["[Lambda_b0 -> Lambda_c+ K+]cc"] - } - inputs = {'Lb2LcPiWS': self.lc + pions, 'Lb2LcKWS': self.lc + kaons} - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = {'Lb2LcPiNoIP': ["[Lambda_b0 -> Lambda_c+ pi-]cc"]} - #inputs = {'Lb2LcPiNoIP': self.lc+pions} - inputs = {'Lb2LcPiNoIP': self.lc_tight + pions} # use TightLc - noip = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config, False) - decays = {'Lb2LcPiNoIPWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"]} - #inputs = {'Lb2LcPiNoIPWS': self.lc+pions} - inputs = {'Lb2LcPiNoIPWS': self.lc_tight + pions} - noip_ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config, False) - decays = {'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"] } - inputs = {'Lb2LcPi': self.lc_pkk + pions} - rs_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) - decays = {'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"] } - inputs = {'Lb2LcPiWS': self.lc_pkk + pions} - ws_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) - decays = {'Lb2LcPi': ["[Lambda_b0 -> Lambda_c+ pi-]cc"] } - inputs = {'Lb2LcPi': self.lc_ppipi + pions} - rs_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) - decays = {'Lb2LcPiWS': ["[Lambda_b0 -> Lambda_c+ pi+]cc"] } - inputs = {'Lb2LcPiWS': self.lc_ppipi + pions} - ws_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - self.lines.append(ProtoLine(noip, 1.0)) - self.lines.append(ProtoLine(noip_ws, 0.1)) - self.lines.append(ProtoLine(rs_pkk, 1.0)) - self.lines.append(ProtoLine(ws_pkk, 0.1)) - self.lines.append(ProtoLine(rs_ppipi, 1.0)) - self.lines.append(ProtoLine(ws_ppipi, 0.1)) - - def _makeLb2LcDm(self): - '''Make Lb0 -> Lc+ D-/D_s- + cc.''' - '''Make Lb0 -> Lc+ D*- + cc.''' - '''Make Lb0 -> Lc+ D_s*- + cc.''' - lcLL = self.lc_lambdapiLL - lcDD = self.lc_lambdapiDD - d2x = self.d.hhh_pid - decays = { - 'Lb2LcDLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D-]cc"], - 'Lb2LcDLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D-]cc"], - } - inputs = { - 'Lb2LcDLc2Lambda0LLPi': lcLL + d2x, - 'Lb2LcDLc2Lambda0DDPi': lcDD + d2x, - } - dname = "D2HHHPID" - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - #comboCuts = [ - # LoKiCuts(['AM'], self.config).code(), - #] - #comboCuts = LoKiCuts.combine(comboCuts) - #momCuts = [ - # #LoKiCuts(['VCHI2DOF', 'BPVVDCHI2', 'BPVDIRA'], self.config).code() - # 'ALL', - #] - #momCuts = LoKiCuts.combine(momCuts) - - d2x = self.dst.d0pi_pid - decays = { - 'Lb2LcDstLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], - 'Lb2LcDstLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], - } - inputs = { - 'Lb2LcDstLc2Lambda0LLPi': lcLL + d2x, - 'Lb2LcDstLc2Lambda0DDPi': lcDD + d2x, - } - - dname = "" - #names = list(decays.keys()) - #rs = [] - #sname = names[0] + dname + 'Beauty2Charm' - #cp = CombineParticles( - # CombinationCut=comboCuts, - # MotherCut=momCuts, - # DecayDescriptors=decays[names[0]]) - #r = Selection( - # sname, - # Algorithm=cp, - # RequiredSelections=inputs[names[0]]) - #rs.append(r) - #sname = names[1] + dname + 'Beauty2Charm' - #cp = CombineParticles( - # CombinationCut=comboCuts, - # MotherCut=momCuts, - # DecayDescriptors=decays[names[1]]) - #r = Selection( - # sname, - # Algorithm=cp, - # RequiredSelections=inputs[names[1]]) - #rs.append(r) - #self.lines.append(ProtoLine(rs, 1.0)) - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - d2x = self.dst.d0pi_k3pi_pid - decays = { - 'Lb2LcDstLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], - 'Lb2LcDstLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"], - } - inputs = { - 'Lb2LcDstLc2Lambda0LLPi': lcLL + d2x, - 'Lb2LcDstLc2Lambda0DDPi': lcDD + d2x, - } - dname = "DstarD02K3Pi" - #names = list(decays.keys()) - #rs = [] - #sname = names[0] + dname + 'Beauty2Charm' - #cp = CombineParticles( - # CombinationCut=comboCuts, - # MotherCut=momCuts, - # DecayDescriptors=decays[names[0]]) - #r = Selection( - # sname, - # Algorithm=cp, - # RequiredSelections=inputs[names[0]]) - #rs.append(r) - #sname = names[1] + dname + 'Beauty2Charm' - #cp = CombineParticles( - # CombinationCut=comboCuts, - # MotherCut=momCuts, - # DecayDescriptors=decays[names[1]]) - #r = Selection( - # sname, - # Algorithm=cp, - # RequiredSelections=inputs[names[1]]) - #rs.append(r) - #self.lines.append(ProtoLine(rs, 1.0)) - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - d2x = self.dst.dgamma_hhh_pid - decays = { - 'Lb2LcDsstarLc2Lambda0LLPi': ["[Lambda_b0 -> Lambda_c+ D*_s-]cc"], - 'Lb2LcDsstarLc2Lambda0DDPi': ["[Lambda_b0 -> Lambda_c+ D*_s-]cc"], - } - inputs = { - 'Lb2LcDsstarLc2Lambda0LLPi': lcLL + d2x, - 'Lb2LcDsstarLc2Lambda0DDPi': lcDD + d2x, - } - dname = "DsstarD02HHHPID" - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2LcDs(self): - '''Make Lambda_b0 -> Lambda_c+ D_s-''' - '''Make Lambda_b0 -> Lambda_c(2595)+ D_s-''' - '''Make Lambda_b0 -> Lambda_c(2625)+ D_s-''' - - config = deepcopy(self.config) - config['AM_MIN'] = '4700*MeV' - config['AM_MAX'] = '6500*MeV' - - lc = self.lc - lcstar2595 = self.lcstar2595 - lcstar2625 = self.lcstar2625 - d2x = self.d.hhh_pid - decays = { - 'Lb2LcDs': ["[Lambda_b0 -> Lambda_c+ D-]cc"], - 'Lb2Lc2595Ds': ["[Lambda_b0 -> Lambda_c(2595)+ D-]cc"], - 'Lb2Lc2625Ds': ["[Lambda_b0 -> Lambda_c(2625)+ D-]cc"], - } - inputs = { - 'Lb2LcDs': lc + d2x, - 'Lb2Lc2595Ds': lcstar2595 + d2x, - 'Lb2Lc2625Ds': lcstar2625 + d2x, - } - dname = "D2HHHPID" - rs = makeB2XSels(decays, dname, inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = { - 'Lb2LcDsWS': ["[Lambda_b0 -> Lambda_c+ D+]cc"], - 'Lb2Lc2595DsWS': ["[Lambda_b0 -> Lambda_c(2595)+ D+]cc"], - 'Lb2Lc2625DsWS': ["[Lambda_b0 -> Lambda_c(2625)+ D+]cc"], - } - inputs = { - 'Lb2LcDsWS': lc + d2x, - 'Lb2Lc2595DsWS': lcstar2595 + d2x, - 'Lb2Lc2625DsWS': lcstar2625 + d2x, - } - ws = makeB2XSels(decays, dname, inputs, config) - self.lines.append(ProtoLine(ws, 1.0)) - - def _makeB2Lcpbar(self): - '''Make RS and WS B -> Lc pbar + cc.''' - protons = self.protons - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = {'B2Lcpbar': ["[B0 -> Lambda_c+ p~-]cc"]} - inputs = {'B2Lcpbar': self.lc + protons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = {'B2LcpbarWS': ["[B0 -> Lambda_c+ p+]cc"]} - inputs = {'B2LcpbarWS': self.lc + protons} - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeB2LcLcK(self): - '''Make B- -> Lc- Lc+ K- + cc.''' - config = deepcopy(self.config) - config['BPVIPCHI2_MAX'] = '50' - decays = {'B2LcLcK': ["[B- -> Lambda_c~- Lambda_c+ K-]cc"]} - inputs = {'B2LcLcK': self.lc + self.topoKaons_pid} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2XicH(self): - '''Make RS and WS Lb -> Xi_c+ H (H=pi,K) + cc.''' - pions = self.topoPions - kaons = self.topoKaons - decays = { - 'Lb2XicPi': ["[Lambda_b0 -> Xi_c+ pi-]cc"], - 'Lb2XicK': ["[Lambda_b0 -> Xi_c+ K-]cc"] - } - inputs = {'Lb2XicPi': self.xic + pions, 'Lb2XicK': self.xic + kaons} - rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - decays = { - 'Lb2XicPiWS': ["[Lambda_b0 -> Xi_c+ pi+]cc"], - 'Lb2XicKWS': ["[Lambda_b0 -> Xi_c+ K+]cc"] - } - inputs = { - 'Lb2XicPiWS': self.xic + pions, - 'Lb2XicKWS': self.xic + kaons - } - ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - decays = {'Lb2XicPiNoIP': ["[Lambda_b0 -> Xi_c+ pi-]cc"]} - inputs = {'Lb2XicPiNoIP': self.xic + pions} - inputs = {'Lb2XicPiNoIP': self.xic_tight + pions} - noip = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config, False) - decays = {'Lb2XicPiNoIPWS': ["[Lambda_b0 -> Xi_c+ pi+]cc"]} - inputs = {'Lb2XicPiNoIPWS': self.xic_tight + pions} - #inputs = {'Lb2XicPiNoIPWS':self.xic+pions} - noip_ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config, False) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - self.lines.append(ProtoLine(noip, 1.0)) - self.lines.append(ProtoLine(noip_ws, 0.1)) - - def _makeXib2Xic0H(self): - '''Make RS and WS Xi_b- -> Xi_c0 H (H=pi,K) + cc.''' - pions = self.topoPions - kaons = self.topoKaons - decays = { - 'Xib2Xic0Pi': ["[Xi_b- -> Xi_c0 pi-]cc"], - 'Xib2Xic0K': ["[Xi_b- -> Xi_c0 K-]cc"] - } - inputs = { - 'Xib2Xic0Pi': self.xic0 + pions, - 'Xib2Xic0K': self.xic0 + kaons - } - rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - decays = { - 'Xib2Xic0PiWS': ["[Xi_b- -> Xi_c0 pi+]cc"], - 'Xib2Xic0KWS': ["[Xi_b- -> Xi_c0 K+]cc"] - } - inputs = { - 'Xib2Xic0PiWS': self.xic0 + pions, - 'Xib2Xic0KWS': self.xic0 + kaons - } - ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - decays = {'Xib2Xic0PiNoIP': ["[Xi_b- -> Xi_c0 pi-]cc"]} - inputs = {'Xib2Xic0PiNoIP': self.xic0 + pions} - noip = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config, False) - decays = {'Xib2Xic0PiNoIPWS': ["[Xi_b- -> Xi_c0 pi+]cc"]} - inputs = {'Xib2Xic0PiNoIPWS': self.xic0 + pions} - noip_ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config, False) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - self.lines.append(ProtoLine(noip, 1.0)) - self.lines.append(ProtoLine(noip_ws, 0.1)) - - def _makeOmegab2Omegac0H(self): - '''Make RS and WS Omega_b- -> Omega_c0 H (H=pi,K) + cc.''' - pions = self.topoPions - kaons = self.topoKaons - decays = { - 'Omegab2Omegac0Pi': ["[Omega_b- -> Omega_c0 pi-]cc"], - 'Omegab2Omegac0K': ["[Omega_b- -> Omega_c0 K-]cc"] - } - inputs = { - 'Omegab2Omegac0Pi': self.omegac0 + pions, - 'Omegab2Omegac0K': self.omegac0 + kaons - } - rs = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) - decays = { - 'Omegab2Omegac0PiWS': ["[Omega_b- -> Omega_c0 pi+]cc"], - 'Omegab2Omegac0KWS': ["[Omega_b- -> Omega_c0 K+]cc"] - } - inputs = { - 'Omegab2Omegac0PiWS': self.omegac0 + pions, - 'Omegab2Omegac0KWS': self.omegac0 + kaons - } - ws = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config) - decays = {'Omegab2Omegac0PiNoIP': ["[Omega_b- -> Omega_c0 pi-]cc"]} - #inputs = {'Omegab2Omegac0PiNoIP': self.omegac0+pions} - inputs = {'Omegab2Omegac0PiNoIP': self.omegac0_tight + pions} - noip = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config, False) - decays = {'Omegab2Omegac0PiNoIPWS': ["[Omega_b- -> Omega_c0 pi+]cc"]} - #inputs = {'Omegab2Omegac0PiNoIPWS':self.omegac0+pions} - inputs = {'Omegab2Omegac0PiNoIPWS': self.omegac0_tight + pions} - noip_ws = makeB2XSels(decays, 'Omegac02PKKPi', inputs, self.config, - False) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - self.lines.append(ProtoLine(noip, 1.0)) - self.lines.append(ProtoLine(noip_ws, 0.1)) - - def _makeOmegab2XicpKPi(self): - '''Make Omega_b- -> Xic+ K- pi-, Xic+ -> pKpi''' - pions = self.pions - kaons = self.kaons - decays = {'Omegab2XicpKPi': ["[Omega_b- -> Xi_c+ K- pi-]cc"]} - inputs = {'Omegab2XicpKPi': self.xic + kaons + pions} - rs = makeB2XSels(decays, 'Xicp2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeOmegab2LcKK(self): - '''Make Omega_b- -> Lambda_c+ K- K-''' - kaons = self.kaons - decays = {'Omegab2LcKK': ["[Omega_b- -> Lambda_c+ K- K-]cc"]} - inputs = {'Omegab2LcKK': self.lc + kaons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXib02XicD(self): - '''Make RS and WS Xi_b0 -> Xi_c+ D (D=D-,Ds) + cc.''' - decays = {'Xib02XicD': ["[Xi_b0 -> Xi_c+ D-]cc"]} - inputs = {'Xib02XicD': self.xic + self.d.hhh_cf_pid} - rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - decays = {'Xib02XicDWS': ["[Xi_b0 -> Xi_c+ D+]cc"]} - inputs = {'Xib02XicDWS': self.xic + self.d.hhh_cf_pid} - ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib2Xic0D(self): - '''Make RS and WS Xi_b- -> Xi_c0 D (D=D-,Ds) + cc.''' - decays = {'Xib2Xic0D': ["[Xi_b- -> Xi_c0 D-]cc"]} - inputs = {'Xib2Xic0D': self.xic0 + self.d.hhh_cf_pid} - rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - decays = {'Xib2Xic0DWS': ["[Xi_b- -> Xi_c0 D+]cc"]} - inputs = {'Xib2Xic0DWS': self.xic0 + self.d.hhh_cf_pid} - ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXibm2Xic0Pim2XimPipPim(self, lmd): - #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Xi- pi+ + cc - dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) - comboCuts = [ - "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_b-') < %s*%s) " % (dm + 90, units), - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) - used_xic0 = self.xic0_ximpip_DD - if "LL" in lmd: - used_xic0 = self.xic0_ximpip_LL - else: - pass - rs = [Selection( - 'Xibm2Xic0Pim2XimPipPim' + lmd + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=used_xic0 + self.pions )] - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibm2Xic0Pim2Lambda0KmPipPim(self, lmd): - #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> Lmd0 K- pi+ + cc - dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) - comboCuts = [ - "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) - used_xic0 = self.xic0_lmd0kmpip_DD - if "LL" in lmd: - used_xic0 = self.xic0_lmd0kmpip_LL - else: - pass - rs = [Selection( - 'Xibm2Xic0Pim2Lambda0KmPipPim' + lmd + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=used_xic0 + self.pions )] - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibm2Xic0Pim2PKsKmPim(self, ks): - #Makes Xi_b- -> Xi_c0 pi-, Xi_c0 -> p Ks K- + cc - dm, units = LoKiCuts.cutValue(self.config_xibm['MASS_WINDOW']) - comboCuts = [ - "(ADAMASS('Xi_b-') < %s*%s) " % (dm + 100, units) - ] - comboCuts.append(LoKiCuts(['ADOCA12'], self.config_xibm).code()) - comboCuts = LoKiCuts.combine(comboCuts) - momCuts = [ - "(ADMASS('Xi_b-') < %s*%s) " % (dm + 100, units), - ] - momCuts = LoKiCuts.combine(momCuts) - cp = CombineParticles( - CombinationCut=comboCuts, - MotherCut=momCuts, - DecayDescriptors=["Xi_b- -> Xi_c0 pi-", "Xi_b~+ -> Xi_c~0 pi+"]) - used_xic0 = self.xic0_pkskm_DD - if "LL" in ks: - used_xic0 = self.xic0_pkskm_LL - else: - pass - rs = [Selection( - 'Xibm2Xic0Pim2PKsKmPim' + ks + 'Beauty2Charm', - Algorithm=cp, - RequiredSelections=used_xic0 + self.pions )] - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXib02XicHHH(self): - '''Make RS and WS Xi_b0 -> Xi_c+ HHH (HHH=3pi,Kpipi) + cc.''' - pipipi = self.hhh.pipipi - kpipi = self.hhh.kpipi - decays = { - 'Xib02XicPiPiPi': ["[Xi_b0 -> Xi_c+ a_1(1260)-]cc"], - 'Xib02XicKPiPi': ["[Xi_b0 -> Xi_c+ K_1(1270)-]cc"] - } - inputs = { - 'Xib02XicPiPiPi': self.xic + pipipi, - 'Xib02XicKPiPi': self.xic + kpipi - } - rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - decays = { - 'Xib02XicPiPiPiWS': ["[Xi_b0 -> Xi_c+ a_1(1260)+]cc"], - 'Xib02XicKPiPiWS': ["[Xi_b0 -> Xi_c+ K_1(1270)+]cc"] - } - inputs = { - 'Xib02XicPiPiPiWS': self.xic + pipipi, - 'Xib02XicKPiPiWS': self.xic + kpipi - } - ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib2Xic0HHH(self): - '''Make RS and WS Xi_b- -> Xi_c0 HHH- (HHH=3pi,Kpipi) + cc.''' - pipipi = self.hhh.pipipi - kpipi = self.hhh.kpipi - decays = { - 'Xib2Xic0PiPiPi': ["[Xi_b- -> Xi_c0 a_1(1260)-]cc"], - 'Xib2Xic0KPiPi': ["[Xi_b- -> Xi_c0 K_1(1270)-]cc"] - } - inputs = { - 'Xib2Xic0PiPiPi': self.xic0 + pipipi, - 'Xib2Xic0KPiPi': self.xic0 + kpipi - } - rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - decays = { - 'Xib2Xic0PiPiPiWS': ["[Xi_b- -> Xi_c0 a_1(1260)+]cc"], - 'Xib2Xic0KPiPiWS': ["[Xi_b- -> Xi_c0 K_1(1270)+]cc"] - } - inputs = { - 'Xib2Xic0PiPiPiWS': self.xic0 + pipipi, - 'Xib2Xic0KPiPiWS': self.xic0 + kpipi - } - ws = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2LcHHH(self): - '''Make RS and WS X_b ->Lc HHH (H=pi,K) + cc.''' - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - pipipi = self.hhh.pipipi - kpipi = self.hhh.kpipi - kkpi = self.hhh.kkpi - ppbarpi = self.hhh.ppbarpi - ppbark = self.hhh.ppbark - pppbar = self.hhh.pppbar - - ppipi = self.hhh.ppipiOS - pkpi = self.hhh.pkpiOS - pkk = self.hhh.pkkOS - - decays = { - 'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], - 'Lb2LcKPiPi': ["[Lambda_b0 -> Lambda_c+ K_1(1270)-]cc"], - 'Lb2LcppbarPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], - 'Lb2LcppbarK': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"], - 'Lb2LcKKPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"] - } - inputs = { - 'Lb2LcPiPiPi': self.lc + pipipi, - 'Lb2LcKPiPi': self.lc + kpipi, - 'Lb2LcppbarPi': self.lc + ppbarpi, - 'Lb2LcppbarK': self.lc + ppbark, - 'Lb2LcKKPi': self.lc + kkpi - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = { - 'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], - 'Lb2LcKPiPiWS': ["[Lambda_b0 -> Lambda_c+ K_1(1270)+]cc"], - 'Lb2LcppbarPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], - 'Lb2LcppbarKWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"], - 'Lb2LcKKPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"] - } - inputs = { - 'Lb2LcPiPiPiWS': self.lc + pipipi, - 'Lb2LcKPiPiWS': self.lc + kpipi, - 'Lb2LcppbarPiWS': self.lc + ppbarpi, - 'Lb2LcppbarKWS': self.lc + ppbark, - 'Lb2LcKKPiWS': self.lc + kkpi - } - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} - inputs = {'Lb2LcPiPiPi': self.lc_pkk + pipipi} - rs_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) - decays = {'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"]} - inputs = {'Lb2LcPiPiPiWS': self.lc_pkk + pipipi} - ws_pkk = makeB2XSels(decays, 'Lc2PKK', inputs, config) - decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} - inputs = {'Lb2LcPiPiPi': self.lc_ppipi + pipipi} - rs_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) - decays = {'Lb2LcPiPiPiWS': ["[Lambda_b0 -> Lambda_c+ a_1(1260)+]cc"]} - inputs = {'Lb2LcPiPiPiWS': self.lc_ppipi + pipipi} - ws_ppipi = makeB2XSels(decays, 'Lc2PPiPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - self.lines.append(ProtoLine(rs_pkk, 1.0)) - self.lines.append(ProtoLine(ws_pkk, 0.1)) - self.lines.append(ProtoLine(rs_ppipi, 1.0)) - self.lines.append(ProtoLine(ws_ppipi, 0.1)) - - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = { - 'B02Lcpbarpbarp': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], - 'B02LcpbarPiPi': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], - 'B02LcpbarKPi': ["[B0 -> Lambda_c+ a_1(1260)-]cc"], - 'B02LcpbarKK': ["[B0 -> Lambda_c+ a_1(1260)-]cc"] - } - inputs = { - 'B02Lcpbarpbarp': self.lc + pppbar, - 'B02LcpbarPiPi': self.lc + ppipi, - 'B02LcpbarKPi': self.lc + pkpi, - 'B02LcpbarKK': self.lc + pkk, - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - decays = { - 'B02LcpbarpbarpWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], - 'B02LcpbarPiPiWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], - 'B02LcpbarKPiWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], - 'B02LcpbarKKWS': ["[B0 -> Lambda_c+ a_1(1260)+]cc"], - } - inputs = { - 'B02LcpbarpbarpWS': self.lc + pppbar, - 'B02LcpbarPiPiWS': self.lc + ppipi, - 'B02LcpbarKPiWS': self.lc + pkpi, - 'B02LcpbarKKWS': self.lc + pkk, - } - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2D0HHPH(self): - '''Makes RS Lb -> D0(HH/HHHH) p+- H-+ + c.c. and WS lines''' - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decs = ["Lambda_b0 -> D0 Lambda0", "Lambda_b0 -> D0 Lambda~0"] - decays = {'Lb2D0PH': decs} - inputs = {'Lb2D0PH': self.d0_pid + self.hh.ph_pid} - rs = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - inputs_k3pi = {'Lb2D0PH': self.d0_k3pi_pid + self.hh.ph_pid} - rs_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, config) - self.lines.append(ProtoLine(rs_k3pi, 1.0)) - decays = {'Lb2D0PHWS': decs} - inputs = {'Lb2D0PHWS': self.d0_pid + self.hh.ph_ws} - ws = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - inputs_k3pi = {'Lb2D0PHWS': self.d0_k3pi_pid + self.hh.ph_ws} - ws_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, config) - self.lines.append(ProtoLine(ws_k3pi, 0.1)) - config['B2CBBDT_MIN'] = '-0.1' - decays = {'Lb2D0PHNoPID': decs} - inputs = {'Lb2D0PHNoPID': self.d0_pid + self.hh.ph_nopid} - rs = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'Lb2D0PHNoPIDWS': decs} - inputs = {'Lb2D0PHNoPIDWS': self.d0_pid + self.hh.ph_nopid_ws} - ws = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2D0PPbar(self): - ''' Makes RS Lb->D0(HH) p+- p-+ and WS lines (mass window for a missing neutron)''' - config = deepcopy(self.config) - config['AM_MAX'] = '6000*MeV' - config['AM_MIN'] = '3000*MeV' - decs = ["Lambda_b0 -> D0 rho(770)0"] - decays = {'Lb2D0PPbar': decs} - inputs = {'Lb2D0PPbar': self.d0_pid + self.hh.ppbar_pid} - rs = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decs = ["Lambda_b0 -> D0 rho(770)-", "Lambda_b0 -> D0 rho(770)+"] - decays = {'Lb2D0PPbarWS': decs} - inputs = {'Lb2D0PPbarWS': self.d0_pid + self.hh.ppbar_ws_pid} - ws = makeB2XSels(decays, 'D02HH', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2D0Lambda0(self): - '''Makes RS Lb -> D0(HH/K3Pi) Lambda0 + c.c.''' - decs = ["Lambda_b0 -> D0 Lambda0", "Lambda_b0 -> D0 Lambda~0"] - decays = {'Lb2D0Lambda0DD': decs} - inputs = {'Lb2D0Lambda0DD': self.d0_pid + self.lambda0["DD"]} - lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_dd, 1.0)) - inputs_k3pi = {'Lb2D0Lambda0DD': self.d0_k3pi + self.lambda0["DD"]} - lb_dd_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, self.config) - self.lines.append(ProtoLine(lb_dd_k3pi, 1.0)) - decays = {'Lb2D0Lambda0LL': decs} - inputs = {'Lb2D0Lambda0LL': self.d0_pid + self.lambda0["LL"]} - lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_ll, 1.0)) - inputs_k3pi = {'Lb2D0Lambda0LL': self.d0_k3pi + self.lambda0["LL"]} - lb_ll_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs_k3pi, self.config) - self.lines.append(ProtoLine(lb_ll_k3pi, 1.0)) - - def _makeLb2DLambda0pi(self): - '''Makes RS/WS Lb -> D+(HHH) Lambda0 pi- + c.c.''' - decays = {'Lb2DLambda0DDpi': ["[Lambda_b0 -> D+ Lambda0 pi-]cc"]} - inputs = { - 'Lb2DLambda0DDpi': - self.d.hhh_cf_pid + self.lambda0["DD"] + self.pions - } - lb_dd = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(lb_dd, 1.0)) - decays = {'Lb2DLambda0LLpi': ["[Lambda_b0 -> D+ Lambda0 pi-]cc"]} - inputs = { - 'Lb2DLambda0LLpi': - self.d.hhh_cf_pid + self.lambda0["LL"] + self.pions - } - lb_ll = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(lb_ll, 1.0)) - decays = {'Lb2DLambda0DDpiWS': ["[Lambda_b0 -> D+ Lambda0 pi+]cc"]} - inputs = { - 'Lb2DLambda0DDpiWS': - self.d.hhh_cf_pid + self.lambda0["DD"] + self.pions - } - lb_dd = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(lb_dd, 0.1)) - decays = {'Lb2DLambda0LLpiWS': ["[Lambda_b0 -> D+ Lambda0 pi+]cc"]} - inputs = { - 'Lb2DLambda0LLpiWS': - self.d.hhh_cf_pid + self.lambda0["LL"] + self.pions - } - lb_ll = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(lb_ll, 0.1)) - - def _makeXib2D0Lambda0pi(self): - '''Makes Xib -> D0(HH) Lambda0 pi- + c.c.''' - decays = { - 'Xib2D0Lambda0DDpi': - ["Xi_b- -> D0 Lambda0 pi-", "Xi_b~+ -> D0 Lambda~0 pi+"] - } - inputs = { - 'Xib2D0Lambda0DDpi': self.d0_pid + self.lambda0["DD"] + self.pions - } - lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_dd, 1.0)) - decays = { - 'Xib2D0Lambda0LLpi': - ["Xi_b- -> D0 Lambda0 pi-", "Xi_b~+ -> D0 Lambda~0 pi+"] - } - inputs = { - 'Xib2D0Lambda0LLpi': self.d0_pid + self.lambda0["LL"] + self.pions - } - lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_ll, 1.0)) - decays = { - 'Xib2D0Lambda0DDpiWS': - ["Xi_b- -> D0 Lambda~0 pi-", "Xi_b~+ -> D0 Lambda0 pi+"] - } - inputs = { - 'Xib2D0Lambda0DDpiWS': - self.d0_pid + self.lambda0["DD"] + self.pions - } - lb_dd = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_dd, 0.1)) - decays = { - 'Xib2D0Lambda0LLpiWS': - ["Xi_b- -> D0 Lambda~0 pi-", "Xi_b~+ -> D0 Lambda0 pi+"] - } - inputs = { - 'Xib2D0Lambda0LLpiWS': - self.d0_pid + self.lambda0["LL"] + self.pions - } - lb_ll = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(lb_ll, 0.1)) - - def _makeSb02DP(self): - '''Make RS and WS Sb0 -> D+- p-+ + cc.''' - protons = self.protons - decays = {'Sb02DP': ["[Sigma_b0 -> D- p+]cc"]} - inputs = {'Sb02DP': self.d.hhh_pid + protons} - rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) - decays = {'Sb02DPWS': ["[Sigma_b0 -> D+ p+]cc"]} - inputs = {'Sb02DPWS': self.d.hhh_pid + protons} - ws = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeSb2D0P(self): - '''Make Sb+- -> D0 p+- + cc.''' - protons = self.protons - decays = {'Sb2D0P': ["Sigma_b+ -> D0 p+", "Sigma_b- -> D0 p~-"]} - inputs = {'Sb2D0P': self.d.hh_pid + protons} - rs = makeB2XSels(decays, 'D2HHPID', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2LcKSK(self,ks): - '''Make Lb -> Lc+ Ks K- c.c.''' - kaons = self.kaons - decays = {'Lb2LcKSK' + ks: ["Lambda_b0 -> Lambda_c+ KS0 K-", "Lambda_b~0 -> Lambda_c~- KS0 K+"]} - inputs = {'Lb2LcKSK' + ks: self.lc + self.ks[ks] + kaons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2LcD(self): - '''Makes RS + WS Lb -> Lc D + c.c.''' - config = deepcopy(self.config) - config['AM_MIN'] = '4000*MeV' - config['AM_MAX'] = '6000*MeV' - decays = {'Lb2LcD': ["[Lambda_b0 -> Lambda_c+ D-]cc"]} - inputs = {'Lb2LcD': self.d.hhh_pid + self.lc} - rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'Lb2LcDWS': ["[Lambda_b0 -> Lambda_c+ D+]cc"]} - inputs = {'Lb2LcDWS': self.d.hhh_pid + self.lc} - ws = makeB2XSels(decays, 'D2HHHPID', inputs, config) - self.lines.append(ProtoLine(ws, 1.0)) - - def _makeLb2LcDKst(self, d2x): - '''Makes RS Lb -> Lc D+ Kst c.c.''' - config = deepcopy(self.config) - config['AM_MAX'] = '6400*MeV' - config['AM_MIN'] = '5200*MeV' - decays = {'Lb2LcDKst': ["[Lambda_b0 -> Lambda_c+ D- K*(892)~0]cc"]} - inputs = { - 'Lb2LcDKst': d2x + self.lc_tight + self.hh.kpi_loose_ProbNNpid - } - rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2LcDstKst(self): - '''Makes RS Lb -> Lc D*(2010)+ Kst c.c.''' - config = deepcopy(self.config) - config['AM_MAX'] = '6400*MeV' - config['AM_MIN'] = '5200*MeV' - decays = { - 'Lb2LcDstKst': ["[Lambda_b0 -> Lambda_c+ D*(2010)- K*(892)~0]cc"] - } - inputs = { - 'Lb2LcDstKst': - self.dst.d0pi_pid + self.lc_tight + self.hh.kpi_loose_ProbNNpid - } - rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2Dst0K(self, dname, d2x): - '''Makes Lb -> Lc+ D*0 K-, D*0 -> D0 gamma/Pi0_resolved/merged''' - kaons = self.kaons - decays = { - 'Lb2LcDst0KLc2PKPi': ["[Lambda_b0 -> Lambda_c+ D*(2007)0 K-]cc"] - } - inputs = {'Lb2LcDst0KLc2PKPi': self.lc + d2x + kaons} - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeX2LcD0(self): - '''Makes RS X -> Lc D0 + c.c.''' - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = {'X2LcD0': ["B+ -> Lambda_c+ D0", "B- -> Lambda_c~- D0"]} - inputs = {'X2LcD0': self.d.kpi_pid + self.lc} - rs = makeB2XSels(decays, 'D02KPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeX2LcD0H(self): - '''Makes RS + WS X -> Lc D0 H + c.c. Need loose pions here as they may be soft''' - pions = self.pions - kaons = self.kaons - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = { - 'X2LcD0Pi': ["B0 -> Lambda_c+ D0 pi-", "B0 -> Lambda_c~- D0 pi+"], - 'X2LcD0K': ["B0 -> Lambda_c+ D0 K-", "B0 -> Lambda_c~- D0 K+"] - } - inputs = { - 'X2LcD0Pi': self.d.kpi_pid + self.lc + pions, - 'X2LcD0K': self.d.kpi_pid + self.lc + kaons - } - rs = makeB2XSels(decays, 'D02KPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = { - 'X2LcD0PiWS': - ["B0 -> Lambda_c+ D0 pi+", "B0 -> Lambda_c~- D0 pi-"], - 'X2LcD0KWS': ["B0 -> Lambda_c+ D0 K+", "B0 -> Lambda_c~- D0 K-"] - } - inputs = { - 'X2LcD0PiWS': self.d.kpi_pid + self.lc + pions, - 'X2LcD0KWS': self.d.kpi_pid + self.lc + kaons - } - ws = makeB2XSels(decays, 'D02KPi', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeX2LcHH(self): - '''Makes RS + WS Xib -> Lc H+H-, LC H-H- + c.c.''' - pions = self.pions - kaons = self.kaons - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = { - 'X2LcPiPiSS': ["[B- -> Lambda_c+ pi- pi-]cc"], - 'X2LcKPiSS': ["[B- -> Lambda_c+ K- pi-]cc"], - 'X2LcKKSS': ["[B- -> Lambda_c+ K- K-]cc"], - 'X2LcPiPiOS': ["[B+ -> Lambda_c+ pi- pi+]cc"], - 'X2LcKPiOS': ["[B+ -> Lambda_c+ K- pi+]cc"], - 'X2LcPiKOS': ["[B+ -> Lambda_c+ K+ pi-]cc"], - 'X2LcKKOS': ["[B+ -> Lambda_c+ K- K+]cc"] - } - inputs = { - 'X2LcPiPiSS': self.lc + pions, - 'X2LcKPiSS': self.lc + kaons + pions, - 'X2LcKKSS': self.lc + kaons, - 'X2LcPiPiOS': self.lc + pions, - 'X2LcKPiOS': self.lc + kaons + pions, - 'X2LcPiKOS': self.lc + kaons + pions, - 'X2LcKKOS': self.lc + kaons - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - decays = { - 'X2LcPiPiWS': ["[B+ -> Lambda_c+ pi+ pi+]cc"], - 'X2LcKPiWS': ["[B+ -> Lambda_c+ K+ pi+]cc"], - 'X2LcKKWS': ["[B+ -> Lambda_c+ K+ K+]cc"] - } - inputs = { - 'X2LcPiPiWS': self.lc + pions, - 'X2LcKPiWS': self.lc + kaons + pions, - 'X2LcKKWS': self.lc + kaons - } - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeB2LcpbarH(self): - '''Makes RS + WS B- -> Lc+ pbar- h- + c.c.''' - pions = self.pions - kaons = self.kaons - protons = self.protons - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = { - 'B2LcpbarPiSS': ["[B- -> Lambda_c+ p~- pi-]cc"], - 'B2LcpbarKSS': ["[B- -> Lambda_c+ p~- K-]cc"], - } - inputs = { - 'B2LcpbarPiSS': self.lc + pions + protons, - 'B2LcpbarKSS': self.lc + kaons + protons - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - decays = { - 'B2LcpbarPiWS': - ["[B+ -> Lambda_c+ p~- pi+]cc", "[B+ -> Lambda_c+ p+ pi-]cc"], - 'B2LcpbarKWS': - ["[B+ -> Lambda_c+ p~- K+]cc", "[B+ -> Lambda_c+ p+ K-]cc"], - } - inputs = { - 'B2LcpbarPiWS': self.lc + pions + protons, - 'B2LcpbarKWS': self.lc + kaons + protons - } - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeB02LcpbarKS(self, ks): - '''Makes RS + WS B0 -> Lc+ pbar- Ks + c.c.''' - protons = self.protons - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = {'B02LcpbarKS' + ks: ["[B0 -> Lambda_c+ p~- KS0]cc"]} - inputs = {'B02LcpbarKS' + ks: self.lc + self.ks[ks] + protons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'B02LcpbarKSWS' + ks: ["[B0 -> Lambda_c+ p+ KS0]cc"]} - inputs = {'B02LcpbarKSWS' + ks: self.lc + self.ks[ks] + protons} - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeB2LcLambda0barH(self): - '''Makes RS + WS B0 -> Lc+ Lambda0bar h- + c.c.''' - pions = self.pions - kaons = self.kaons - lambdadd = self.lambda0["DD"] - lambdall = self.lambda0["LL"] - lambdas = lambdadd + lambdall - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = { - 'B02LcLambda0Pi': ["[B0 -> Lambda_c+ Lambda~0 pi-]cc"], - 'B02LcLambda0K': ["[B0 -> Lambda_c+ Lambda~0 K-]cc"], - } - inputs = { - 'B02LcLambda0Pi': self.lc + pions + lambdas, - 'B02LcLambda0K': self.lc + kaons + lambdas - } - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - decays = { - 'B02LcLambda0PiWS': ["[B0 -> Lambda_c+ Lambda~0 pi+]cc"], - 'B02LcLambda0KWS': ["[B0 -> Lambda_c+ Lambda~0 K+]cc"], - } - inputs = { - 'B02LcLambda0PiWS': self.lc + pions + lambdas, - 'B02LcLambda0KWS': self.lc + kaons + lambdas - } - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeX2LcKPiPiPi(self): - '''Makes RS + WS Xib -> Lc HH + c.c.''' - pions = self.pions - kaons = self.kaons - pipipi = self.hhh.pipipi - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = {'X2LcKPiPiPi': ["[B+ -> Lambda_c+ a_1(1260)+ K- ]cc"]} - inputs = {'X2LcKPiPiPi': self.lc + pipipi + kaons} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - decays = {'X2LcKPiPiPiWS': ["[B+ -> Lambda_c+ a_1(1260)+ K+]cc"]} - inputs = {'X2LcKPiPiPiWS': self.lc + pipipi + kaons} - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib2XicHH(self): - '''Makes RS + WS Xib -> Lc HH + c.c.''' - pions = self.pions - kaons = self.kaons - decays = { - 'Xib2XicPiPi': ["[Xi_b- -> Xi_c+ pi- pi-]cc"], - 'Xib2XicKPi': ["[Xi_b- -> Xi_c+ K- pi-]cc"], - 'Xib2XicKK': ["[Xi_b- -> Xi_c+ K- K-]cc"] - } - inputs = { - 'Xib2XicPiPi': self.xic + pions, - 'Xib2XicKPi': self.xic + kaons + pions, - 'Xib2XicKK': self.xic + kaons - } - rs = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = { - 'Xib2XicPiPiWS': ["[Xi_b- -> Xi_c+ pi+ pi+]cc"], - 'Xib2XicKPiWS': ["[Xi_b- -> Xi_c+ K+ pi+]cc"], - 'Xib2XicKKWS': ["[Xi_b- -> Xi_c+ K+ K+]cc"] - } - inputs = { - 'Xib2XicPiPiWS': self.xic + pions, - 'Xib2XicKPiWS': self.xic + kaons + pions, - 'Xib2XicKKWS': self.xic + kaons - } - ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib2LcDK(self): - '''Makes RS + WS Xib -> Lc+ D(s)- K- + c.c.''' - kaons = self.kaons - config = deepcopy(self.config) - config['AM_MIN'] = '5000.*MeV' - decays = {'Xib2LcDK': ["[Xi_b- -> Lambda_c+ D- K-]cc"]} - inputs = {'Xib2LcDK': self.lc + self.d.hhh_pid + kaons} - rs = makeB2XSels(decays, 'Lc2PKPiD2HHH', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'Xib2LcDKWS': ["[Xi_b- -> Lambda_c+ D+ K-]cc"]} - inputs = {'Xib2LcDKWS': self.lc + self.d.hhh_pid + kaons} - ws = makeB2XSels(decays, 'Lc2PKPiD2HHH', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeXib02LcDsKPi(self): - '''Makes RS + WS Xib -> Lc+ Ds- K- Pi+ + c.c.''' - pions = self.pions - kaons = self.kaons - decays = {'Xib02LcDsKPi': ["[Xi_b0 -> Lambda_c+ D- K- pi+]cc"]} - inputs = {'Xib02LcDsKPi': self.lc + self.ds + kaons + pions} - rs = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'Xib02LcDsKPiWS': ["[Xi_b0 -> Lambda_c+ D- K+ pi+]cc"]} - inputs = {'Xib02LcDsKPiWS': self.lc + self.ds + kaons + pions} - ws = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeB2LcDspbar(self): - '''Makes RS + WS B- -> Lc+ Ds- pbar- + c.c.''' - protons = self.protons - config = deepcopy(self.config) - config['AM_MIN'] = '4750.*MeV' - decays = {'B2LcDspbar': ["[B- -> Lambda_c+ D- p~-]cc"]} - inputs = {'B2LcDspbar': self.lc + self.d.hhh_pid + protons} - rs = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'B2LcDspbarWS': ["[B- -> Lambda_c+ D+ p~-]cc"]} - inputs = {'B2LcDspbarWS': self.lc + self.d.hhh_pid + protons} - ws = makeB2XSels(decays, 'Lc2PKPiDs2KKPi', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeX02XiccH(self): - '''Make RS and WS Xi_bcd -> Xi_cc+ H (H=pi,K) + cc.''' - pions = self.pions - kaons = self.kaons - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = { - 'X02XiccpPi': ["[B0 -> Xi_cc+ pi-]cc"], - 'X02XiccpK': ["[B0 -> Xi_cc+ K-]cc"] - } - inputs = { - 'X02XiccpPi': self.xiccp + pions, - 'X02XiccpK': self.xiccp + kaons - } - rs = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, config) - - decays = { - 'X02XiccpPiWS': ["[B0 -> Xi_cc+ pi+]cc"], - 'X02XiccpKWS': ["[B0 -> Xi_cc+ K+]cc"] - } - inputs = { - 'X02XiccpPiWS': self.xiccp + pions, - 'X02XiccpKWS': self.xiccp + kaons - } - ws = makeB2XSels(decays, 'Xiccp2Xic0Pi', inputs, config) - - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeX2XiccH(self): - '''Make RS and WS Xi_bcu -> LXi_cc++ H (H=pi,K) + cc.''' - pions = self.pions - kaons = self.kaons - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - decays = { - 'X2XiccppPi': ["[B+ -> Xi_cc++ pi-]cc"], - 'X2XiccppK': ["[B+ -> Xi_cc++ K-]cc"] - } - inputs = { - 'X2XiccppPi': self.xiccpp + pions, - 'X2XiccppK': self.xiccpp + kaons - } - rs = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, config) - - decays = { - 'X2XiccppPiWS': ["[B+ -> Xi_cc++ pi+]cc"], - 'X2XiccppKWS': ["[B+ -> Xi_cc++ K+]cc"] - } - inputs = { - 'X2XiccppPiWS': self.xiccpp + pions, - 'X2XiccppKWS': self.xiccpp + kaons - } - ws = makeB2XSels(decays, 'Xiccpp2XicPi', inputs, config) - - self.lines.append(ProtoLine(rs, 1.0)) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2LcDst(self): - '''Makes RS + WS Lb -> Lc D* + c.c.''' - decays = {'Lb2LcDst': ["[Lambda_b0 -> Lambda_c+ D*(2010)-]cc"]} - inputs = {'Lb2LcDst': self.dst.d0pi_pid + self.lc} - rs = makeB2XSels(decays, 'Dstar2D0PiPID', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'Lb2LcDstWS': ["[Lambda_b0 -> Lambda_c+ D*(2010)+]cc"]} - inputs = {'Lb2LcDstWS': self.dst.d0pi_pid + self.lc} - ws = makeB2XSels(decays, 'Dstar2D0PiPID', inputs, self.config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeX2LcLc(self): - config = deepcopy(self.config) - config['AM_MIN'] = '4800*MeV' - decays = {'X2LcLc': ["B0 -> Lambda_c+ Lambda_c~-"]} - inputs = {'X2LcLc': self.lc} - rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - decays = {'X2LcLcWS': ["[B0 -> Lambda_c+ Lambda_c+]cc"]} - inputs = {'X2LcLcWS': self.lc} - ws = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2LcLcn(self): - """ - Makes Lb -> Lc Lc~ n (Lc->p K pi) + c.c. - The neutron is not reconstructed. - """ - config = deepcopy(self.config) - config['AM_MIN'] = '4000*MeV' - config['BPVIPCHI2_MAX'] = '50' - - decays = {'Lb2LcLcn': ["Lambda_b0 -> Lambda_c+ Lambda_c~-"]} - inputs = {'Lb2LcLcn': self.lc} - rs = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - decays = {'Lb2LcLcnWS': ["[Lambda_b0 -> Lambda_c+ Lambda_c+]cc"]} - inputs = {'Lb2LcLcnWS': self.lc} - ws = makeB2XSels(decays, 'Lc2PKPi', inputs, config) - self.lines.append(ProtoLine(ws, 0.1)) - - def _makeLb2Lc5Pi(self): - decays = { - 'Lb2Lc5Pi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)- rho(770)0]cc"] - } - inputs = {'Lb2Lc5Pi': self.lc + self.hhh.pipipi + self.hh.pipi_pid} - lb2lc5pi = makeB2XSels(decays, 'Lc2PKPiPID', inputs, self.config) - self.lines.append(ProtoLine(lb2lc5pi, 1.0)) - - def _makeLb2DpHH(self): - '''Make RS and WS Lb ->DpHH (H=pi,K) + cc.''' - config = deepcopy(self.config) - config['AM_MAX'] = '7000*MeV' - ppipi = self.hhh.ppipi_pid - pkpi = self.hhh.pkpi_pid - pkk = self.hhh.pkk_pid - decays = { - 'Lb2DpPiPi': ["[Lambda_b0 -> D+ a_1(1260)-]cc"], - 'Lb2DpKPi': ["[Lambda_b0 -> D+ a_1(1260)-]cc"], - 'Lb2DpKK': ["[Lambda_b0 -> D+ a_1(1260)-]cc"] - } - inputs = { - 'Lb2DpPiPi': self.d.hhh_cf_pid + ppipi, - 'Lb2DpKPi': self.d.hhh_cf_pid + pkpi, - 'Lb2DpKK': self.d.hhh_cf_pid + pkk - } - rs = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXib2D0pHH(self): - '''Make RS and WS Xi_b ->DpHH (H=pi,K) + cc.''' - config = deepcopy(self.config) - config['AM_MAX'] = '7000*MeV' - ppipi = self.hhh.ppipi_pid - pkpi = self.hhh.pkpi_pid - pkk = self.hhh.pkk_pid - decays = { - 'Xib2D0pPiPi': - ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"], - 'Xib2D0pKPi': - ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"], - 'Xib2D0pKK': ["Xi_b- -> D0 a_1(1260)-", "Xi_b~+ -> D0 a_1(1260)+"] - } - inputs = { - 'Xib2D0pPiPi': self.d0_pid + ppipi, - 'Xib2D0pKPi': self.d0_pid + pkpi, - 'Xib2D0pKK': self.d0_pid + pkk - } - rs = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2D0ph(self, dname, d2x): - '''Make RS Lb -> D0(K3pi) p h + cc.''' - protons_pid = self.protons_pid - kaons_pid = self.topoKaons_pid - pions_pid = self.topoPions_pid - decays_k = {'Lb2D0pK': ["Lambda_b0 -> D0 p+ K-", "Lambda_b~0 -> D0 p~- K+"]} - inputs_k = {'Lb2D0pK': d2x + protons_pid + kaons_pid} - rs_k = makeB2XSels(decays_k, dname, inputs_k, self.config) - self.lines.append(ProtoLine(rs_k, 1.0)) - decays_pi = {'Lb2D0pPi': ["Lambda_b0 -> D0 p+ pi-", "Lambda_b~0 -> D0 p~- pi+"]} - inputs_pi = {'Lb2D0pPi': d2x + protons_pid + pions_pid} - rs_pi = makeB2XSels(decays_pi, dname, inputs_pi, self.config) - self.lines.append(ProtoLine(rs_pi, 1.0)) - - def _makeLb2D0phWS(self, dname, d2x): - '''Make RS Lb -> D0(K3pi) p h + cc.''' - protons_pid = self.protons_pid - kaons_pid = self.topoKaons_pid - pions_pid = self.topoPions_pid - decays_k = {'Lb2D0pK': ["Lambda_b0 -> D0 p+ K+", "Lambda_b~0 -> D0 p~- K-"]} - inputs_k = {'Lb2D0pK': d2x + protons_pid + kaons_pid} - rs_k = makeB2XSels(decays_k, dname, inputs_k, self.config) - self.lines.append(ProtoLine(rs_k, 1.0)) - decays_pi = {'Lb2D0pPi': ["Lambda_b0 -> D0 p+ pi+", "Lambda_b~0 -> D0 p~- pi-"]} - inputs_pi = {'Lb2D0pPi': d2x + protons_pid + pions_pid} - rs_pi = makeB2XSels(decays_pi, dname, inputs_pi, self.config) - self.lines.append(ProtoLine(rs_pi, 1.0)) - - def _makeLb2DD0p(self, dname, d2x): - '''Make Lb -> D(s)- D0(K3pi) p + cc.''' - decays = {'Lb2DD0pD2HHH': ["Lambda_b0 -> D- D0 p+", "Lambda_b~0 -> D+ D0 p~-"]} - inputs = {'Lb2DD0pD2HHH': self.d.hhh_cf_pid + d2x + self.protons_pid} - rs = makeB2XSels(decays, dname, inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXibc2DpK(self): - '''Make Xi_bc+ --> D+ p K- + cc.''' - config = deepcopy(self.config) - config['AM_MAX'] = '9000*MeV' - config['AM_MIN'] = '5800*MeV' - config['BPVLTIME_MIN'] = '0.05*ps' - protons_pid = self.protons_pid - kaons_pid = self.topoKaons_pid - decays = {'Xibc2DpK': ["[Xi_bc+ -> D+ p+ K-]cc"]} - inputs = {'Xibc2DpK': self.d.hhh_cf_pid + protons_pid + kaons_pid} - rs = makeB2XSels(decays, 'D2HHH', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2LcPiPiPiFullDST(self): - '''Make RS L_b ->Lc 3pi + cc.''' - config = deepcopy(self.config) - config['AM_MIN'] = '5400*MeV' - config['AM_MAX'] = '5900*MeV' - config['BPVIPCHI2_MAX'] = '16' - pipipi = self.hhh.pipipi_tightersel - Lc = self.lc_tight - decays = {'Lb2LcPiPiPi': ["[Lambda_b0 -> Lambda_c+ a_1(1260)-]cc"]} - inputs = {'Lb2LcPiPiPi': Lc + pipipi} - rs = makeB2XSels(decays, 'Lc2PKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXib02XicPiPiPiFullDST(self): - '''Make RS Xi_b0 -> Xi_c+ 3pi + cc.''' - config = deepcopy(self.config) - config['AM_MIN'] = '5600*MeV' - config['AM_MAX'] = '6000*MeV' - config['BPVIPCHI2_MAX'] = '16' - pipipi = self.hhh.pipipi_tightersel - Xic = self.xic_tightest - decays = {'Xib02XicPiPiPi': ["[Xi_b0 -> Xi_c+ a_1(1260)-]cc"]} - inputs = {'Xib02XicPiPiPi': Xic + pipipi} - rs = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeXib2Xic0PiPiPiFullDST(self): - '''Make RS Xi_b- -> Xi_c0 PiPiPi- ''' - config = deepcopy(self.config) - config['AM_MIN'] = '5600*MeV' - config['AM_MAX'] = '6100*MeV' - config['BPVIPCHI2_MAX'] = '16' - pipipi = self.hhh.pipipi_tightersel - decays = {'Xib2Xic0PiPiPi': ["[Xi_b- -> Xi_c0 a_1(1260)-]cc"]} - inputs = {'Xib2Xic0PiPiPi': self.xic0 + pipipi} - rs = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeOmegab2Omegac0PiPiPiFullDST(self): - '''Make RS Omega_b- -> Omega_c0 PiPiPi- ''' - config = deepcopy(self.config) - config['AM_MIN'] = '5800*MeV' - config['AM_MAX'] = '6300*MeV' - config['BPVIPCHI2_MAX'] = '16' - pipipi = self.hhh.pipipi_tightersel - Omegac = self.omegac0_tight - decays = { - 'Omegab2Omegac0PiPiPi': ["[Omega_b- -> Omega_c0 a_1(1260)-]cc"] - } - inputs = {'Omegab2Omegac0PiPiPi': Omegac + pipipi} - rs = makeB2XSels(decays, 'Omegac02PKKPiFullDST', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2sigmacpp4Pi(self): - '''Make Lambda_b0 -> Sigma_c++ Pi+ 3Pi- cc.''' - config = deepcopy(self.config) - config['AM_MAX'] = '6000*MeV' - config['AM_MIN'] = '4900*MeV' - pions = self.pions - decays = { - 'Lb2sigmacpp4Pi': ["[Lambda_b0 -> Sigma_c++ pi+ pi- pi- pi-]cc"] - } - inputs = {'Lb2sigmacpp4Pi': self.sigmacpp + pions} - rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2sigmacppD0KPi(self): - '''Makes Lambda_b0 -> Sigma_c++ D0 K- pi- + c.c.''' - config = deepcopy(self.config) - config['AM_MAX'] = '6000*MeV' - config['AM_MIN'] = '4900*MeV' - pions = self.pions - kaons = self.kaons - decays = { - 'Lb2sigmacppD0KPi': [ - "Lambda_b0 -> Sigma_c++ D0 K- pi-", - "Lambda_b~0 -> Sigma_c~-- D0 K+ pi+" - ] - } - inputs = { - 'Lb2sigmacppD0KPi': self.d.kpi_pid + self.sigmacpp + pions + kaons - } - rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2DDLambda(self, lambda0): - '''Makes Lambda_b0 -> D+ D- Lambda0''' - config = deepcopy(self.config) - config['AM_MAX'] = '6219*MeV' - '''1870*2+1115=4855''' - config['AM_MIN'] = '4900*MeV' - decays = {'Lb2DDLambda' + lambda0: ["[Lambda_b0 -> D- D+ Lambda0]cc"]} - inputs = { - 'Lb2DDLambda' + lambda0: - self.dds + self.lambda0[lambda0] - } - lb2ddlambda_rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(lb2ddlambda_rs, 1.0)) - - def _makeLb2D0D0Lambda(self, lambda0): - '''Makes Lambda_b0 -> D0 D0 Lambda0''' - config = deepcopy(self.config) - config['AM_MAX'] = '6219*MeV' - config['AM_MIN'] = '4300*MeV' - dec = ["Lambda_b0 -> D0 D0 Lambda0", "Lambda_b~0 -> D0 D0 Lambda~0"] - decays = { - 'Lb2D0D0LambdaD02HHD02HH' + lambda0: dec, - 'Lb2D0D0LambdaD02HHD02K3Pi' + lambda0: dec, - 'Lb2D0D0LambdaD02K3PiD02K3Pi' + lambda0: dec - } - inputs = { - 'Lb2D0D0LambdaD02HHD02HH' + lambda0: - self.d.hh_pid_tight + self.lambda0[lambda0], - 'Lb2D0D0LambdaD02HHD02K3Pi' + lambda0: - self.d.hh_pid_tight + self.d.k3pi_pid_tight + - self.lambda0[lambda0], - 'Lb2D0D0LambdaD02K3PiD02K3Pi' + lambda0: - self.d.k3pi_pid_tight + self.lambda0[lambda0] - } - lb2d0d0lambda = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(lb2d0d0lambda, 1.0)) - - def _makeLb2DstDLambda(self, lambda0): - '''Makes the Lambda_b0 -> D*+- D-+ Lambda0 + c.c.''' - config = deepcopy(self.config) - config['AM_MAX'] = '6219*MeV' - config['AM_MIN'] = '4300*MeV' - decays = { - 'Lb2DstDLambda' + lambda0: - ["[Lambda_b0 -> D*(2010)- D+ Lambda0]cc","[Lambda_b0 -> D- D*(2010)+ Lambda0]cc"] - } - inputs = { - 'Lb2DstDLambda' + lambda0: - self.d.d_and_ds_cf_pid + self.dst.d0pi_pid + self.lambda0[lambda0] - } - lb2dstdlambda_rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(lb2dstdlambda_rs, 1.0)) - inputs = { - 'Lb2DstDLambda' + lambda0: - self.d.d_and_ds_cf_pid + self.dst.d0pi_k3pi_pid + - self.lambda0[lambda0] - } - lb2dstdlambda_rs = makeB2XSels(decays, 'DstarD02K3Pi', inputs, config) - self.lines.append(ProtoLine(lb2dstdlambda_rs, 1.0)) - - def _makeLb2DstDstLambda(self, lambda0): - '''Makes Lambda_b0 -> D*+- D*-+ Lambda0''' - config = deepcopy(self.config) - config['AM_MAX'] = '6219*MeV' - config['AM_MIN'] = '4300*MeV' - decays = { - 'Lb2DstDstLambda' + lambda0: - ["[Lambda_b0 -> D*(2010)- D*(2010)+ Lambda0]cc"] - } - inputs = { - 'Lb2DstDstLambda' + lambda0: - self.dst.d0pi_pid + self.lambda0[lambda0] - } - lb2dstdstlambda_rs = makeB2XSels(decays, '', inputs, config) - self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) - inputs = { - 'Lb2DstDstLambda' + lambda0: - self.dst.d0pi_pid + self.dst.d0pi_k3pi_pid + self.lambda0[lambda0] - } - lb2dstdstlambda_rs = makeB2XSels(decays, 'DstarD02K3Pi', inputs, - config) - self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) - inputs = { - 'Lb2DstDstLambda' + lambda0: - self.dst.d0pi_k3pi_pid + self.lambda0[lambda0] - } - lb2dstdstlambda_rs = makeB2XSels(decays, 'DstarD02K3PiDstarD02K3Pi', - inputs, config) - self.lines.append(ProtoLine(lb2dstdstlambda_rs, 1.0)) - - def _makeB02LcSigmacppK(self): - '''Makes B0 -> Lc+ Sigma_c-- K+ + c.c.''' - kaons = self.topoKaons_pid - decays = {'B02LcSigmacppK': ["[B0 -> Lambda_c+ Sigma_c~-- K+]cc"]} - inputs = {'B02LcSigmacppK': self.lc_tight + self.sigmacpp + kaons} - rs = makeB2XSels(decays, 'Sigmacpp2LcPiLc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeBs2LcSigma(self): - '''Make Bs0 -> Lambda_c~- Sigma+''' - sigma = self.hh.sigmapm - decays = {'Bs2LcSigmap': ["[B_s0 -> Lambda_c~- Sigma+]cc"]} - inputs = {'Bs2LcSigmap': self.lc + sigma} - rs = makeB2XSels(decays, 'Lc2PKPiSigmap2PPiz', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeLb2DDpK(self): - '''Make Lb -> D+ D- p K- + cc.''' - protons = self.protons_pid - kaons = self.topoKaons_pid - decays = {'Lb2DDpK': ["[Lambda_b0 -> D+ D- p+ K-]cc"]} - inputs = {'Lb2DDpK': self.d.hhh_ds_rejection + protons + kaons} - rs = makeB2XSels(decays, 'D2HHHPID', inputs, self.config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeB2LcXicPi(self): - '''Make B+ -> Lc+ Xic- pi+ + cc.''' - pions = self.pions - config = deepcopy(self.config) - config['AM_MIN'] = '5000.*MeV' - decays = {'B2LcXicPi': ["[B+ -> Lambda_c+ Xi_c~- pi+]cc"]} - inputs = {'B2LcXicPi': self.lc_tight + self.xic_tight + pions} - rs = makeB2XSels(decays, 'Xic2PKPiLc2PKPi', inputs, config) - self.lines.append(ProtoLine(rs, 1.0)) - - def _makeB2XicpbarPi(self): - '''Make B- -> Xic+ pbar pi-''' - pions = self.topoPions_pid - decays = {'B2XicpbarPi': ["[B- -> Xi_c+ p~- pi-]cc"]} - inputs = {'B2XicpbarPi': self.xic + self.protons_pid + pions} - make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(make_xic, 1.0)) - - def _makeB02XicpbarPiPi(self): - '''Make B0 -> Xic+ pi+ pi- pbar''' - pions = self.topoPions_pid - decays = {'B02XicpbarPiPi': ["[B0 -> Xi_c+ pi+ pi- p~-]cc"]} - inputs = {'B02XicpbarPiPi': self.xic + self.protons_pid + pions} - make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(make_xic, 1.0)) - - def _makeB02XicpbarKPi(self): - '''Make B0 -> Xic+ K+ pi- pbar''' - pions = self.topoPions_pid - kaons = self.topoKaons_pid - decays = {'B02XicpbarKPi': ["[B0 -> Xi_c+ K+ pi- p~-]cc"]} - inputs = {'B02XicpbarKPi': self.xic + self.protons_pid + pions + kaons} - make_xic = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(make_xic, 1.0)) - - def _makeB02DpbarLambda(self, lambda0): - '''Make B0 -> Lambda0 D(*)+ pbar''' - decays = {'B02DpbarLambda' + lambda0: ["[B0 -> D+ p~- Lambda0]cc"]} - inputs = {'B02DpbarLambda' + lambda0: self.d.hh_pid_tight + self.protons_pid + self.lambda0[lambda0]} - make_d = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(make_d, 1.0)) - decays = {'B02DstpbarLambda' + lambda0: ["[B0 -> D*(2010)+ p~- Lambda0]cc"]} - inputs = {'B02DstpbarLambda' + lambda0: self.dst.d0pi_pid + self.protons_pid + self.lambda0[lambda0]} - make_dst = makeB2XSels(decays, 'Dst2D0Pi', inputs, self.config) - self.lines.append(ProtoLine(make_dst, 1.0)) - inputs = {'B02DstpbarLambda' + lambda0: self.dst.d0pi_k3pi_pid + self.protons_pid + self.lambda0[lambda0]} - make_dst_k3pi = makeB2XSels(decays, 'Dst2D0PiD02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_dst_k3pi, 1.0)) - - def _makeB2D0pbarLambda(self, lambda0): - '''Make B- -> Lambda0 D0 pbar''' - decays = {'B2D0pbarLambda' + lambda0: ["B- -> D0 p~- Lambda0", "B+ -> D0 p+ Lambda~0"]} - inputs = {'B2D0pbarLambda' + lambda0: self.d0_pid + self.protons_pid + self.lambda0[lambda0]} - make_d0 = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(make_d0, 1.0)) - inputs = {'B2D0pbarLambda' + lambda0: self.d0_k3pi_pid + self.protons_pid + self.lambda0[lambda0]} - make_d0_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_d0_k3pi, 1.0)) - - def _makeB02D0pbarKLambda(self, lambda0): - '''Make B0 -> Lambda0 D0 pbar K+''' - kaons = self.topoKaons_pid - decays = {'B02D0pbarKLambda' + lambda0: ["B0 -> D0 p~- Lambda0 K+", "B0 -> D0 p+ Lambda~0 K-"]} - inputs = {'B02D0pbarKLambda' + lambda0: self.d0_pid + self.protons_pid + self.lambda0[lambda0] + kaons} - make_d0 = makeB2XSels(decays, 'D02HH', inputs, self.config) - self.lines.append(ProtoLine(make_d0, 1.0)) - inputs = {'B02D0pbarKLambda' + lambda0: self.d0_k3pi_pid + self.protons_pid + self.lambda0[lambda0] + kaons} - make_d0_k3pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_d0_k3pi, 1.0)) - - def _makeXib2XicHHHH(self): - '''Make Xib- -> Xic+ pi+ pi- pi- pi-''' - pipipipi = self.hhh.pipipipi - decays = {'Xib2XicHHHH': ["[Xi_b- -> Xi_c+ a_1(1260)-]cc"]} - inputs = {'Xib2XicHHHH': self.xic + pipipipi} - make_Xic4h = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) - self.lines.append(ProtoLine(make_Xic4h, 1.0)) - - def _makeXib2LcKHHH(self): - '''Make Xib- -> Lambdac+ pi+ K- pi- pi-''' - kpipipi = self.hhh.kpipipi - decays = {'Xib2LcKHHH': ["[Xi_b- -> Lambda_c+ K_1(1270)-]cc"]} - inputs = {'Xib2LcKHHH': self.lc + kpipipi} - make_LcKhhh = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) - self.lines.append(ProtoLine(make_LcKhhh, 1.0)) - - def _makeXib02D0LambdaPiPi(self): - '''Make Xib0 -> D0 Lambda0 pi+ pi-''' - pipi = self.hh.pipi - lambda0="LL" - decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} - inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_pid + pipi+ self.lambda0[lambda0]} - make_D0L0PiPiLLKPi= makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(make_D0L0PiPiLLKPi, 1.0)) - decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} - inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_k3pi_pid + pipi+ self.lambda0[lambda0]} - make_D0L0PiPiLLK3Pi= makeB2XSels(decays, 'D02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_D0L0PiPiLLK3Pi, 1.0)) - - lambda0="DD" - decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} - inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_pid + pipi+ self.lambda0[lambda0]} - make_D0L0PiPiDDKPi= makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(make_D0L0PiPiDDKPi, 1.0)) - decays = {'Xib02D0LambdaPiPi'+lambda0: ["Xi_b0 -> D0 Lambda0 rho(770)0", "Xi_b0 -> D0 Lambda~0 rho(770)0"]} - inputs = {'Xib02D0LambdaPiPi'+lambda0: self.d0_k3pi_pid + pipi+ self.lambda0[lambda0]} - make_D0L0PiPiDDK3Pi= makeB2XSels(decays, 'D02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_D0L0PiPiDDK3Pi, 1.0)) - - def _makeOmegab2Xic0KPiPi(self): - '''Make Omegab- -> Xic0 K Pi Pi''' - kpipi = self.hhh.kpipi - decays = {'Omegab2Xic0KPiPi': ["[Omega_b- -> Xi_c0 K_1(1270)-]cc"]} - inputs = {'Omegab2Xic0KPiPi': self.xic0 + kpipi} - make_rs = makeB2XSels(decays, 'Xic02PKKPi', inputs, self.config) - self.lines.append(ProtoLine(make_rs, 1.0)) - - - def _makeXib02XicD0K(self): - '''Make Xib0 -> Xic+ D~0 K-''' - kaons = self.topoKaons_pid - decays = {'Xib02XicD0K': ["Xi_b0 -> Xi_c+ D0 K-","Xi_b0 -> Xi_c~- D0 K+"]} - inputs = {'Xib02XicD0K': self.xic + self.d0_pid + kaons} - make_d2KPi = makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(make_d2KPi, 1.0)) - - decays = {'Xib02XicD0K': ["Xi_b0 -> Xi_c+ D0 K-","Xi_b0 -> Xi_c~- D0 K+"]} - inputs = {'Xib02XicD0K': self.xic + self.d0_k3pi_pid + kaons} - make_d2K3Pi = makeB2XSels(decays, 'D02K3Pi', inputs, self.config) - self.lines.append(ProtoLine(make_d2K3Pi, 1.0)) - - - def _makeXib2XicDK(self): - '''Make Xib- -> Xic0 D~0 K-, Xib- -> Xic+ D- K-, Xib- -> Xic+ D*- K-''' - kaons = self.topoKaons_pid - - decays = {'Xib2Xic0D0K': ["Xi_b- -> Xi_c0 D0 K-","Xi_b~+ -> Xi_c~0 D0 K+"]} - inputs = {'Xib2Xic0D0K': self.xic0 + self.d0_pid + kaons} - make_d2KPi = makeB2XSels(decays, 'D02KPi', inputs, self.config) - self.lines.append(ProtoLine(make_d2KPi, 1.0)) - - decays = {'Xib2XicDK': ["[Xi_b- -> Xi_c+ D- K-]cc"]} - inputs = {'Xib2XicDK': self.xic + self.d.hhh_cf_pid + kaons} - make_d2hhh = makeB2XSels(decays, 'D2HHH', inputs, self.config) - self.lines.append(ProtoLine(make_d2hhh, 1.0)) - decays = {'Xib2XicDK': ["[Xi_b- -> Xi_c+ D*(2010)- K-]cc"]} - inputs = {'Xib2XicDK': self.xic + self.dst.d0pi_pid + kaons} - make_dst2d0h = makeB2XSels(decays, 'Dst2D0Pi', inputs, self.config) - self.lines.append(ProtoLine(make_dst2d0h, 1.0)) +class Beauty2CharmConf(LineBuilder): + + __configuration_keys__ = default_config['CONFIG'].keys() + + def __init__(self, moduleName, config): + + LineBuilder.__init__(self, moduleName, config) + + # pre-filter inputs + pions = filterInputs('Pi', [StdAllNoPIDsPions], config['ALL']) + pions_pid = filterInputs('Pi_PID', [pions], config['PIDPION']) + uppions = filterInputs('PiUP', [StdNoPIDsUpPions], config['UPSTREAM']) + kaons = filterInputs('K', [StdAllNoPIDsKaons], config['ALL']) + kaons_pid = filterInputs('K_PID', [kaons], config['PIDKAON']) + upkaons = filterInputs('KaUP', [StdNoPIDsUpKaons], config['UPSTREAM']) + protons = filterInputs('P', [StdAllNoPIDsProtons], config['ALL']) + protons_pid = filterInputs('P_PID', [protons], config['PIDPROTON']) + + #pions,kaons, protons for Lc, Xic from Xibc + pions_Xc_Xibc = filterInputs('Pi_Xc_Xibc', [StdAllNoPIDsPions], + config['Xibc_Xc_PION']) + kaons_Xc_Xibc = filterInputs('K_Xc_Xibc', [StdAllNoPIDsKaons], + config['Xibc_Xc_KAON']) + protons_Xc_Xibc = filterInputs('P_Xc_Xibc', [StdAllNoPIDsProtons], + config['Xibc_Xc_PROTON']) + #pions,kaons, from Xicc or Xib vertex (filter from PID pions, above, as all cuts are tighter) + pions_Xb_Xibc = filterInputs('Pi_Xb_Xibc', [pions_pid], + config['Xibc_Xb_PION']) + kaons_Xb_Xibc = filterInputs('K_Xb_Xibc', [kaons_pid], + config['Xibc_Xb_KAON']) + protons_Xb_Xibc = filterInputs('P_Xb_Xibc', [protons_pid], + config['Xibc_Xb_PROTON']) + + ks_dd = filterInputs('KS0_DD', [dataOnDemand("StdLooseKsDD")], + config['KS0']) + ks_ll = filterInputs('KS0_LL', [dataOnDemand("StdVeryLooseKsLL")], + config['VLKS0_LL']) + ks = {"DD": [ks_dd], "LL": [ks_ll]} + lambda0_dd = filterInputs('Lambda0_DD', + [dataOnDemand("StdLooseLambdaDD")], + config['Lambda0']) + lambda0_ll = filterInputs('Lambda0_LL', + [dataOnDemand("StdLooseLambdaLL")], + config['Lambda0']) + lambda0 = {"DD": [lambda0_dd], "LL": [lambda0_ll]} + pi0_merged = filterPi0s('Merged', [StdLooseMergedPi0], config['Pi0']) + pi0_resolved = filterPi0s('Resolved', [StdLooseResolvedPi0], + config['Pi0']) + pi0_all = MergedSelection( + 'Pi0AllBeauty2Charm', + RequiredSelections=[pi0_merged, pi0_resolved]) + + pi0 = { + 'Merged': [pi0_merged], + 'Resolved': [pi0_resolved], + 'all': [pi0_all] + } + + pcut = 'P > %s' % config['Pi0']['FROM_B_P_MIN'] + pi0_fromB_merged = filterSelection('Pi0FromBMerged', pcut, + [pi0_merged]) + pi0_fromB_resolved = filterSelection('Pi0FromBResolved', pcut, + [pi0_resolved]) + pi0_fromB = { + 'Merged': [pi0_fromB_merged], + 'Resolved': [pi0_fromB_resolved] + } + muons = filterInputs('MU', [StdLooseMuons], + config['ALL']) # make muons (for D -> phi mu nu) + + # Jordi: photon selection. + gammacut = '(PT > %(PT_MIN)s) & (CL > %(CL_MIN)f) & (PPINFO(LHCb.ProtoParticle.IsNotE,-1) > %(ISNOTE_MIN)f)' % config[ + 'gamma'] + photons = filterSelection('Gamma', gammacut, [StdLooseAllPhotons]) + # Alessandro Bertolin: very loose all photons. + vlagammacut = '(PT > %(PT_VLAPH)s) & (CL > %(CL_MIN)f) & (PPINFO(LHCb.ProtoParticle.IsNotE,-1) > %(ISNOTE_MIN)f)' % config[ + 'gamma'] + vlaphotons = filterSelection('VLAGamma', vlagammacut, + [StdVeryLooseAllPhotons]) + + # pre-filter hard inputs (these could have been used in HLT2) + topoPions = topoInputs('Pi', [pions]) + topoPions_PID = topoInputs('Pi_PID', [pions_pid]) + topoPionsLoose = topoInputsLoose('PiLoose', [pions]) + topoKaons = topoInputs('K', [kaons]) + topoKaons_PID = topoInputs('K_PID', [kaons_pid]) + topoKaonsLoose = topoInputsLoose('KLoose', [kaons]) + topoProtons = topoInputs('P', [protons]) + topoProtons_PID = topoInputs('P_PID', [protons_pid]) + + # X -> hh + hh = HHBuilder(pions, kaons, protons, ks, pi0_fromB, config['HH'], + config['PID']) + + # X -> hhh + hhh = HHHBuilder(pions, kaons, protons, config['HHH'], config['PID']) + + # make D->X, etc. inputs + d = DBuilder(pions, kaons, ks, pi0, uppions, upkaons, muons, hh, + config['D2X'], config['D2X_FOR_DDX'], config['PID'], + config['Pi0']) + dst = DstarBuilder(d, pions, uppions, pi0, photons, vlaphotons, + config['Dstar'], config['PID']) + + # Xim -> X + xim = XimBuilder(pions_pid, kaons_pid, protons_pid, lambda0, config['Xim']) + + # Lc -> X + lc = LcBuilder(pions_pid, kaons_pid, protons_pid, lambda0, ks, xim, config['D2X'], config['Xic0'], + config['PID']) + xicc = XiccBuilder(lc, pions_pid, config['D2X']) + + # Loose Lc, for Xibc + lcLoose = LooseLcBuilder(pions_Xc_Xibc, kaons_Xc_Xibc, protons_Xc_Xibc, + config['LC_FOR_XIBC']) + xiccLoose = LooseXiccBuilder(lcLoose, pions_Xb_Xibc, kaons_Xb_Xibc, + config['LC_FOR_XIBC']) + + # make B->DX + b2dx = B2DXBuilder(d, dst, topoPions, topoPionsLoose, topoKaons, + topoKaons_PID, topoPions_PID, muons, ks, pi0_fromB, + hh, hhh, config['B2X']) + self._makeLines(b2dx.lines, config) + + # Bc -> DD lines + bc2dd = Bc2DDBuilder(d, dst, config['Bc2DD']) + self._makeLines(bc2dd.lines, config) + + # Bc->Buhh lines + bc2bx = Bc2BXBuilder(b2dx, topoPionsLoose, topoKaonsLoose, + config['Bc2BX']) + self._makeLines(bc2bx.lines, config) + + #Bc -> DX lines + bc2dx = Bc2DXBuilder(d, dst, hh, topoPionsLoose, topoKaonsLoose, + config['Bc2DX']) + self._makeLines(bc2dx.lines, config) + + # Lb -> X + lb2x = Lb2XBuilder(lc, xicc, d, hh, topoPions, topoPions_PID, + topoKaons, topoKaons_PID, topoProtons, + topoProtons_PID, pions, kaons, ks, hhh, dst, + lambda0, config['B2X'], config['Xibm']) + self._makeLines(lb2x.lines, config) + + # Xibc -> Xc hh, LcD0, Xicc h + xibc = XibcBuilder(lcLoose, xiccLoose, d, topoPions_PID, topoKaons_PID, + topoProtons_PID, pions_Xb_Xibc, kaons_Xb_Xibc, + protons_Xb_Xibc, muons, config['Xibc'], + config['XiccMu']) + self._makeLines(xibc.lines, config) + + # Unbiased lines + ltub = LTUnbiasedBuilder(d, dst, config['B2X']) + self._makeLines(ltub.lines, config) + + # UP D* lines + for line in b2dx.lines: + for sel in line.selections: + if sel.name().find('WS') > 0: continue + dstar_sel = makeB2DstarX(sel, uppions, config['B2X']) + self._makeLine(ProtoLine([dstar_sel], line.pre), config) + + # UNKNOWN line + # # B->D0X inclusive line + # cuts = "(PT > %d*MeV) & (ADMASS('D0') < 25*MeV) & (MIPCHI2DV(PRIMARY)>%d)" \ + # % (config['D0INC']['PT_MIN'],config['D0INC']['IPCHI2_MIN']) + # sel = filterSelection('D02KPIPIDMTIGHT',cuts,d.kpi_pid_tight) + # sel = tosSelection(sel,{'Hlt2Topo2.*Decision%TOS':0}) + # hlt = "HLT_PASS_RE('Hlt2Topo2.*Decision')" + # sline = StrippingLine('D02HHTopoTOSLine',1.0,selection=sel,HLT2=hlt) + # self.registerLine(sline) + + def _makeLine(self, protoLine, config): + tag = 'B2CBBDTBeauty2CharmFilter' + default = config['Prescales']['RUN_BY_DEFAULT'] + run_re = config['Prescales']['RUN_RE'] + prescale_keys = config['Prescales'].keys() + for line in protoLine.selections: + name = line.name().replace(tag, '') + 'Line' + match = False + for r in run_re: + if re.match(r, name): + match = True + break + if (not default) and (not match) and (not (name in prescale_keys)): + continue + tmpSel = Selection( + line.name() + 'FilterALL', + Algorithm=FilterDesktop(Code='ALL'), + RequiredSelections=[line]) + filter = {'Code' : + "(recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG)"\ + " < %s )" \ + % config['GECNTrkMax'], + 'Preambulo' : [ "from LoKiTracks.decorators import *", + 'from LoKiCore.functions import *' ] + } + # Hlt2IncPhi untill 2015, since 2016 Hlt2PhiIncPhi + hlt = "(HLT_PASS_RE('Hlt2Topo.*Decision') | "\ + "HLT_PASS_RE('Hlt2.*IncPhi.*Decision'))" + + if ((name in config['RawEvents'])): + rawevent = [ + "Trigger", "Muon", "Calo", "Rich", "Velo", "Tracker" + ] + else: + rawevent = [] + + checkPV_option = True + + sline = StrippingLine( + name, + protoLine.prescale(line, name, config), + selection=tmpSel, + checkPV=checkPV_option, + FILTER=filter, + HLT2=hlt, + EnableFlavourTagging=(name in config['FlavourTagging']), + RequiredRawEvents=rawevent, + MDSTFlag=(name in config['MDSTChannels']), + RelatedInfoTools=config['RelatedInfoTools']) + + self.registerLine(sline) + + def _makeLines(self, lines, config): + for line in lines: + self._makeLine(line, config) #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# -- GitLab From 08ec0ff132c47f33111a7f5d6b926b6de12c1797 Mon Sep 17 00:00:00 2001 From: bshi <boan.shi@cern.ch> Date: Thu, 13 Jul 2023 23:54:50 +0800 Subject: [PATCH 3/3] update in order to void conflict --- .../StrippingB2OC/Beauty2Charm_Lb2XBuilder.py | 69 +++++- .../StrippingB2OC/StrippingBeauty2Charm.py | 198 ++++++++++++------ 2 files changed, 200 insertions(+), 67 deletions(-) diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py index 7e3d4de8c..2d7c3396e 100644 --- a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py +++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/Beauty2Charm_Lb2XBuilder.py @@ -59,10 +59,8 @@ class XimBuilder(object): Algorithm=cp, RequiredSelections= self.lambda0[lmd] + [self.pions]) - #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# - class LcBuilder(object): '''Produces all Lambda_c baryons for the Beauty2Charm module.''' @@ -92,9 +90,8 @@ class LcBuilder(object): # xic0_PKsKm self.xic0_pkskm_LL = [self._makeXic02PKsKm("LL")] self.xic0_pkskm_DD = [self._makeXic02PKsKm("DD")] - - # Filter with tighter PID - self.lambdapiLL = [self._makeLc2Lambdapi("LL")] + + self.lambdapiLL = [self._makeLc2Lambdapi("LL")] self.lambdapiDD = [self._makeLc2Lambdapi("DD")] self.xic_pkpi = [self._makeXic2pKpi()] self.xic0_pkkpi = [self._makeXic02pKKpi()] @@ -572,6 +569,7 @@ class LcstarBuilder(object): Algorithm=cp, RequiredSelections=inputs[mode]) + class XiccBuilder(object): '''Produces Xi_cc baryons for the Beauty2Charm module.''' @@ -744,6 +742,7 @@ class LooseXiccBuilder(object): #\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\# + class XibcBuilder(object): '''Makes all Xibc -> X lines.''' @@ -986,7 +985,7 @@ class Lb2XBuilder(object): self.lc = lc.pkpi self.lc_pkk = lc.pkk self.lc_ppipi = lc.ppipi - self.xic = lc.xic_pkpi + self.xic = lc.xic_pkpi self.xic0 = lc.xic0_pkkpi self.xic0_ximpip_LL = lc.xic0_ximpip_LL self.xic0_ximpip_DD = lc.xic0_ximpip_DD @@ -1059,6 +1058,8 @@ class Lb2XBuilder(object): ### Xib0 -> Xic+ HHH- (+WS) (HHH = 3pi, Kpipi) self._makeXib02XicHHH() ###Xib- -> Xic0 HHH- (+WS) (HHH = 3pi, Kpipi) + self._makeXib02Xic0PiPiFullDST() + ###Xib0 -> Xic0 pipi (!!+WS) self._makeXib2Xic0HHH() ### Xb- -> Lc+ D(s)- K- self._makeXib2LcDK() @@ -1121,7 +1122,10 @@ class Lb2XBuilder(object): ### bc baryon -> Lc HHHH (+WS) self._makeX2LcKPiPiPi() ### Xib,Omega_b -> Lc HH (+WS) - self._makeXib2XicHH() + self._makeXib2XicHHFullDST() + ### Xib->XicHH FullDST + self._makeXib2XicHH() + ### Xib->XicHH # Lb -> Lc D* (+WS) self._makeLb2LcDst() @@ -1440,6 +1444,7 @@ class Lb2XBuilder(object): ws = makeB2XSels(decays, dname, inputs, config) self.lines.append(ProtoLine(ws, 1.0)) + def _makeB2Lcpbar(self): '''Make RS and WS B -> Lc pbar + cc.''' protons = self.protons @@ -1709,6 +1714,26 @@ class Lb2XBuilder(object): self.lines.append(ProtoLine(rs, 1.0)) self.lines.append(ProtoLine(ws, 0.1)) + def _makeXib02Xic0PiPiFullDST(self): + '''Make RS and WS Xi_b0 -> Xi_c0 pipi cc.''' + pions = self.pions + decays = { + 'Xib02Xic0PiPi': ["[Xi_b0 -> Xi_c0 pi+ pi-]cc"] + } + inputs = { + 'Xib02Xic0PiPi': self.xic0 + pions, + } + rs = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) + decays = { + 'Xib02Xic0PiPiWS': ["[Xi_b0 -> Xi_c0 pi+ pi+]cc"], + } + inputs = { + 'Xib02Xic0PiPiWS': self.xic0 + pions, + } + ws = makeB2XSels(decays, 'Xic02PKKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + self.lines.append(ProtoLine(ws, 0.1)) + def _makeXib2Xic0HHH(self): '''Make RS and WS Xi_b- -> Xi_c0 HHH- (HHH=3pi,Kpipi) + cc.''' pipipi = self.hhh.pipipi @@ -2212,7 +2237,6 @@ class Lb2XBuilder(object): inputs = {'X2LcKPiPiPiWS': self.lc + pipipi + kaons} ws = makeB2XSels(decays, 'Lc2PKPi', inputs, self.config) self.lines.append(ProtoLine(ws, 0.1)) - def _makeXib2XicHH(self): '''Makes RS + WS Xib -> Lc HH + c.c.''' pions = self.pions @@ -2241,6 +2265,35 @@ class Lb2XBuilder(object): } ws = makeB2XSels(decays, 'Xic2PKPi', inputs, self.config) self.lines.append(ProtoLine(ws, 0.1)) + + def _makeXib2XicHHFullDST(self): + '''Makes RS + WS Xib -> Lc HH + c.c.''' + pions = self.pions + kaons = self.kaons + decays = { + 'Xib2XicPiPi': ["[Xi_b- -> Xi_c+ pi- pi-]cc"], + 'Xib2XicKPi': ["[Xi_b- -> Xi_c+ K- pi-]cc"], + 'Xib2XicKK': ["[Xi_b- -> Xi_c+ K- K-]cc"] + } + inputs = { + 'Xib2XicPiPi': self.xic + pions, + 'Xib2XicKPi': self.xic + kaons + pions, + 'Xib2XicKK': self.xic + kaons + } + rs = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(rs, 1.0)) + decays = { + 'Xib2XicPiPiWS': ["[Xi_b- -> Xi_c+ pi+ pi+]cc"], + 'Xib2XicKPiWS': ["[Xi_b- -> Xi_c+ K+ pi+]cc"], + 'Xib2XicKKWS': ["[Xi_b- -> Xi_c+ K+ K+]cc"] + } + inputs = { + 'Xib2XicPiPiWS': self.xic + pions, + 'Xib2XicKPiWS': self.xic + kaons + pions, + 'Xib2XicKKWS': self.xic + kaons + } + ws = makeB2XSels(decays, 'Xic2PKPiFullDST', inputs, self.config) + self.lines.append(ProtoLine(ws, 0.1)) def _makeXib2LcDK(self): '''Makes RS + WS Xib -> Lc+ D(s)- K- + c.c.''' diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py index 8842d46e8..9afb0bdf3 100644 --- a/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py +++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingB2OC/StrippingBeauty2Charm.py @@ -1,5 +1,5 @@ ############################################################################### -# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration # +# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration # # # # This software is distributed under the terms of the GNU General Public # # Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". # @@ -169,33 +169,50 @@ default_config = { 'ISNOTE_MIN': -999.0, 'PT_VLAPH': '145*MeV' }, - "Xim": { # Cuts made on charged Xi baryon - 'ASUMPT_MIN': '1000*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 25, - 'BPVVDCHI2_MIN': 50, - 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '100*MeV' - }, - "Xic0": { # Cuts made on charged Xic0 baryon - 'ASUMPT_MIN': '1000*MeV', + "Xim": { # Cuts made on charged Xi baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 25, + 'BPVVDCHI2_MIN': 50, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '100*MeV' + }, + "Xic0": { # Cuts made on charged Xic0 baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'ADOCA13_MAX': '0.5*mm', + 'ADOCA23_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 20, + 'BPVVDCHI2_MIN': 30, + 'BPVDIRA_MIN': 0.9, + 'MASS_WINDOW': '200*MeV' + }, + "Xibm": { # Cuts made on charged Xibm baryon + 'ASUMPT_MIN': '1000*MeV', + 'ADOCA12_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 20, + 'BPVVDCHI2_MIN': 30, + 'BPVDIRA_MIN': 0, + 'MASS_WINDOW': '200*MeV' + }, + "D2X": { # Cuts made on all D's and Lc's used in all lines + 'ASUMPT_MIN': '1800*MeV', 'ADOCA12_MAX': '0.5*mm', 'ADOCA13_MAX': '0.5*mm', 'ADOCA23_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 20, - 'BPVVDCHI2_MIN': 30, - 'BPVDIRA_MIN': 0.9, - 'MASS_WINDOW': '200*MeV' - }, - "Xibm": { # Cuts made on charged Xibm baryon - 'ASUMPT_MIN': '1000*MeV', - 'ADOCA12_MAX': '0.5*mm', - 'VCHI2DOF_MAX': 20, - 'BPVVDCHI2_MIN': 30, + 'ADOCA14_MAX': '0.5*mm', + 'ADOCA24_MAX': '0.5*mm', + 'ADOCA34_MAX': '0.5*mm', + 'ADOCA15_MAX': '0.5*mm', + 'ADOCA25_MAX': '0.5*mm', + 'ADOCA35_MAX': '0.5*mm', + 'ADOCA45_MAX': '0.5*mm', + 'VCHI2DOF_MAX': 10, + 'BPVVDCHI2_MIN': 36, 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '200*MeV' + 'MASS_WINDOW': '100*MeV' }, - "D2X": { # Cuts made on all D's and Lc's used in all lines + "Lcstar": { # Cuts made on all Lcstar's used in all lines 'ASUMPT_MIN': '1800*MeV', 'ADOCA12_MAX': '0.5*mm', 'ADOCA13_MAX': '0.5*mm', @@ -210,7 +227,7 @@ default_config = { 'VCHI2DOF_MAX': 10, 'BPVVDCHI2_MIN': 36, 'BPVDIRA_MIN': 0, - 'MASS_WINDOW': '100*MeV' + 'MASS_WINDOW': '500*MeV' }, "LC_FOR_XIBC": { # Cuts made on Lc's/Xic(0) used in Xibc lines 'ASUMPT_MIN': '1800*MeV', @@ -322,7 +339,8 @@ default_config = { 'MASS_WINDOW': { 'KST': '150*MeV', 'RHO': '150*MeV', - 'PHI': '150*MeV' + 'PHI': '150*MeV', + 'SIGMA': '150*MeV' }, 'DAUGHTERS': { 'PT_MIN': '100*MeV', @@ -816,11 +834,15 @@ default_config = { 'StrippingB02D0KKDSTD2HHBeauty2CharmLine', 'StrippingLb2LcPiPiPiLc2PKPiFullDSTBeauty2CharmLine', 'StrippingXib02XicPiPiPiXic2PKPiFullDSTBeauty2CharmLine', + 'StrippingXib2XicPiPiXic2PKPiFullDSTBeauty2CharmLine', + 'StrippingXib2XicPiPiWSXic2PKPiFullDSTBeauty2CharmLine', + 'StrippingXib02Xic0PiPiXic02PKKPiFullDSTBeauty2CharmLine', + 'StrippingXib02Xic0PiPiWSXic02PKKPiFullDSTBeauty2CharmLine', 'StrippingXib2Xic0PiPiPiXic02PKKPiFullDSTBeauty2CharmLine', 'StrippingOmegab2Omegac0PiPiPiOmegac02PKKPiFullDSTBeauty2CharmLine' ], 'Bhadron': [ - 'StrippingB2Dstar0KDst02D0Pi0D2HHHHMergedBeauty2CharmLine', + 'StrippingB2Dstar0KDst02D0Pi0D2HHHHMergedBeauty2CharmLine', 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHMergedBeauty2CharmLine', 'StrippingB2Dstar0KDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', 'StrippingB2Dstar0PiDst02D0Pi0D2HHHHResolvedBeauty2CharmLine', @@ -944,6 +966,10 @@ default_config = { 'StrippingB2D0KPi0ResolvedD2HHHHWSBeauty2CharmLine', 'StrippingB2D0KsPiLLD2HHHHWSBeauty2CharmLine', 'StrippingB2D0PiPi0ResolvedD2HHHHWSBeauty2CharmLine', + 'StrippingB2D0KsKDDD2HHBeauty2CharmLine', + 'StrippingB2D0KsKLLD2HHBeauty2CharmLine', + 'StrippingB2D0KsKDDD2HHHHBeauty2CharmLine', + 'StrippingB2D0KsKLLD2HHHHBeauty2CharmLine', 'StrippingB02DKD2PhiMuNuBeauty2CharmLine', 'StrippingB02DPiD2PhiMuNuBeauty2CharmLine', 'StrippingB02DKWSD2PhiMuNuBeauty2CharmLine', @@ -971,6 +997,7 @@ default_config = { 'StrippingB02DKsKLLWSD2HHHCFPIDBeauty2CharmLine', 'StrippingB02DKsKDDWSD2HHHCFPIDBeauty2CharmLine', 'StrippingB2DKKD2HHHCFPIDBeauty2CharmLine', + 'StrippingB2DPPD2HHHPPBeauty2CharmLine', 'StrippingB2DKPiD2HHHCFPIDBeauty2CharmLine', 'StrippingB2DPiPiD2HHHCFPIDBeauty2CharmLine', 'StrippingB2DHHOSD2HHHCFPIDBeauty2CharmLine', @@ -1137,6 +1164,8 @@ default_config = { 'StrippingB2D0ppbarPiD2HHBeauty2CharmLine', 'StrippingB02DppbarKD2HHHBeauty2CharmLine', 'StrippingB02DppbarPiD2HHHBeauty2CharmLine', + 'StrippingB2D0phiKD2HHPIDBeauty2CharmLine', + 'StrippingB2D0phiKD2HHHHPIDBeauty2CharmLine', 'StrippingB02DstKKPiDstar2D0PiPIDBeauty2CharmLine', 'StrippingB02DstKPiPiDstar2D0PiPIDBeauty2CharmLine', 'StrippingB02DstPiPiPiDstar2D0PiPIDBeauty2CharmLine', @@ -1245,7 +1274,7 @@ default_config = { 'StrippingB2Dst0D0KDst02D0GammaD02HHBeauty2CharmLine', 'StrippingB02Dst0DKDst02D0Pi0ResolvedD2HHHBeauty2CharmLine', 'StrippingB02Dst0DKDst02D0GammaD2HHHBeauty2CharmLine', - #### DDKS lines ### + ##### DDKS lines ### 'StrippingB02DDKSDDBeauty2CharmLine', 'StrippingB02DDKSWSDDBeauty2CharmLine', 'StrippingB2D0DKSDDBeauty2CharmLine', @@ -1288,7 +1317,7 @@ default_config = { 'StrippingB02DstDstKSWSLLBeauty2CharmLine', 'StrippingB02DstDstKSWSLLDstarD02K3PiBeauty2CharmLine', 'StrippingB02DstDstKSWSLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - #### DDLambda lines ### + ##### DDLambda lines ### 'StrippingLb2DDLambdaDDBeauty2CharmLine', 'StrippingLb2D0D0LambdaD02HHD02HHDDBeauty2CharmLine', 'StrippingLb2D0D0LambdaD02HHD02K3PiDDBeauty2CharmLine', @@ -1307,7 +1336,7 @@ default_config = { 'StrippingLb2DstDstLambdaLLBeauty2CharmLine', 'StrippingLb2DstDstLambdaLLDstarD02K3PiBeauty2CharmLine', 'StrippingLb2DstDstLambdaLLDstarD02K3PiDstarD02K3PiBeauty2CharmLine', - #### DDK* lines ### + ##### DDK* lines ### 'StrippingB02D0D0KstD02K3PiD02K3PiBeauty2CharmLine', 'StrippingB02D0D0KstD02HHD02HHBeauty2CharmLine', 'StrippingB02D0D0KstD02HHD02K3PiBeauty2CharmLine', @@ -1325,7 +1354,7 @@ default_config = { 'StrippingB2DstD0KstDstarD02K3PiD02K3PiBeauty2CharmLine', 'StrippingB2D0DKPiBeauty2CharmLine', 'StrippingB2D0DKPiD02K3PiBeauty2CharmLine', - #### DDPhi lines ### + ##### DDPhi lines ### 'StrippingB2D0DKKBeauty2CharmLine', 'StrippingB2D0DKKD2K3PiBeauty2CharmLine', #'StrippingB02DDKKBeauty2CharmLine', @@ -1334,6 +1363,18 @@ default_config = { 'StrippingB02DstDstKKBeauty2CharmLine', 'StrippingB02DstDstKKDstarD02K3PiBeauty2CharmLine', 'StrippingB02DstDstKKDstarD02K3PiDstarD02K3PiBeauty2CharmLine', + ##### DDspipi lines ### + 'StrippingB02DDspipiBeauty2CharmLine', + 'StrippingB2D0DspipiBeauty2CharmLine', + 'StrippingB2D0DspipiD02K3PiBeauty2CharmLine', + 'StrippingB02DstDspipiBeauty2CharmLine', + 'StrippingB02DstDspipiDstarD02K3PiBeauty2CharmLine', + ##### DDs2460 lines ### + 'StrippingB02DDs2460Beauty2CharmLine', + 'StrippingB2D0Ds2460Beauty2CharmLine', + 'StrippingB2D0Ds2460D02K3PiBeauty2CharmLine', + 'StrippingB02DstDs2460Beauty2CharmLine', + 'StrippingB02DstDs2460DstarD02K3PiBeauty2CharmLine', #### DDPi lines ### 'StrippingB2DDPiBeauty2CharmLine', 'StrippingB2DDPiWSBeauty2CharmLine', @@ -1364,7 +1405,7 @@ default_config = { 'StrippingB2Dst2460DPiBeauty2CharmLine', 'StrippingB2Dst2460DPiWSBeauty2CharmLine', 'StrippingB2D0st2460D0PiBeauty2CharmLine', - #### DDpK lines ### + ##### DDpK lines ### 'StrippingLb2DDpKD2HHHPIDBeauty2CharmLine', ######################### #### End of DDX lines ### @@ -1378,6 +1419,14 @@ default_config = { 'StrippingLb2LcPiWSLc2PKKBeauty2CharmLine', 'StrippingLb2LcPiWSLc2PPiPiBeauty2CharmLine', 'StrippingLb2LcPiNoIPWSLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcDLc2Lambda0LLPiD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDLc2Lambda0DDPiD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDstLc2Lambda0LLPiBeauty2CharmLine', + 'StrippingLb2LcDstLc2Lambda0DDPiBeauty2CharmLine', + 'StrippingLb2LcDstLc2Lambda0LLPiDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2LcDstLc2Lambda0DDPiDstarD02K3PiBeauty2CharmLine', + 'StrippingLb2LcDsstarLc2Lambda0LLPiDsstarD02HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDsstarLc2Lambda0DDPiDsstarD02HHHPIDBeauty2CharmLine', 'StrippingLb2XicPiXic2PKPiBeauty2CharmLine', 'StrippingLb2XicKXic2PKPiBeauty2CharmLine', 'StrippingLb2XicKWSXic2PKPiBeauty2CharmLine', @@ -1422,6 +1471,22 @@ default_config = { 'StrippingLb2D0PHNoPIDWSD02HHBeauty2CharmLine', 'StrippingLb2D0PHD02K3PiBeauty2CharmLine', 'StrippingLb2D0PHWSD02K3PiBeauty2CharmLine', + 'StrippingLb2D0pKD02K3PiBeauty2CharmLine', + 'StrippingLb2D0pKD02HHHHPIDBeauty2CharmLine', + 'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', + 'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', + 'StrippingLb2D0pKD02K3PiWSBeauty2CharmLine', + 'StrippingLb2D0pKD02HHHHPIDWSBeauty2CharmLine', + 'StrippingLb2D0pKD02KsDDHHWSBeauty2CharmLine', + 'StrippingLb2D0pKD02KsLLHHWSBeauty2CharmLine', + 'StrippingLb2D0pPiD02K3PiBeauty2CharmLine', + 'StrippingLb2D0pPiD02HHHHPIDBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', + 'StrippingLb2D0pPiD02K3PiWSBeauty2CharmLine', + 'StrippingLb2D0pPiD02HHHHPIDWSBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsDDHHWSBeauty2CharmLine', + 'StrippingLb2D0pPiD02KsLLHHWSBeauty2CharmLine', 'StrippingLb2D0PPbarD02HHBeauty2CharmLine', 'StrippingLb2D0PPbarWSD02HHBeauty2CharmLine', 'StrippingLb2LcKSKLLLc2PKPiBeauty2CharmLine', @@ -1450,6 +1515,12 @@ default_config = { 'StrippingB02LcpbarKPiWSLc2PKPiBeauty2CharmLine', 'StrippingLb2LcDD2HHHPIDBeauty2CharmLine', 'StrippingLb2LcDWSD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDsD2HHHPIDBeauty2CharmLine', + 'StrippingLb2LcDsWSD2HHHPIDBeauty2CharmLine', + 'StrippingLb2Lc2595DsD2HHHPIDBeauty2CharmLine', + 'StrippingLb2Lc2595DsWSD2HHHPIDBeauty2CharmLine', + 'StrippingLb2Lc2625DsD2HHHPIDBeauty2CharmLine', + 'StrippingLb2Lc2625DsWSD2HHHPIDBeauty2CharmLine', 'StrippingLb2LcDKstBeauty2CharmLine', 'StrippingLb2LcDstKstBeauty2CharmLine', 'StrippingLb2LcDst0KLc2PKPiDst02D0GammaD2HHBeauty2CharmLine', @@ -1490,6 +1561,8 @@ default_config = { 'StrippingLb2LcDstWSDstar2D0PiPIDBeauty2CharmLine', 'StrippingX2LcLcBeauty2CharmLine', 'StrippingX2LcLcWSBeauty2CharmLine', + 'StrippingLb2LcLcnLc2PKPiBeauty2CharmLine', + 'StrippingLb2LcLcnWSLc2PKPiBeauty2CharmLine', 'StrippingLb2Lc5PiLc2PKPiPIDBeauty2CharmLine', 'StrippingLb2D0Lambda0DDD02HHBeauty2CharmLine', 'StrippingLb2D0Lambda0LLD02HHBeauty2CharmLine', @@ -1501,11 +1574,11 @@ default_config = { 'StrippingXib2D0pKKD02HHBeauty2CharmLine', 'StrippingXib2D0pPiPiD02HHBeauty2CharmLine', 'StrippingXib2D0pKPiD02HHBeauty2CharmLine', - 'StrippingLb2D0pKD02K3PiBeauty2CharmLine', - 'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', - 'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', - 'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', + #'StrippingLb2D0pKD02K3PiBeauty2CharmLine', + #'StrippingLb2D0pKD02KsDDHHBeauty2CharmLine', + #'StrippingLb2D0pKD02KsLLHHBeauty2CharmLine', + #'StrippingLb2D0pPiD02KsDDHHBeauty2CharmLine', + #'StrippingLb2D0pPiD02KsLLHHBeauty2CharmLine', 'StrippingLb2DD0pD2HHHD02K3PiBeauty2CharmLine', 'StrippingLb2DD0pD2HHHD2HHBeauty2CharmLine', 'StrippingXibc2DpKD2HHHBeauty2CharmLine', @@ -1536,12 +1609,13 @@ default_config = { 'StrippingLb2sigmacppD0KPiSigmacpp2LcPiLc2PKPiBeauty2CharmLine', 'StrippingB02LcSigmacppKSigmacpp2LcPiLc2PKPiBeauty2CharmLine', 'StrippingB2LcXicPiXic2PKPiLc2PKPiBeauty2CharmLine', + 'StrippingBs2LcSigmapLc2PKPiSigmap2PPizBeauty2CharmLine', 'StrippingB02DKLTUBD2HHHBeauty2CharmLine', 'StrippingB02DsKPiPiLTUBD2HHHBeauty2CharmLine', 'StrippingB02DsstarKLTUBDsstar2DGammaD2HHHBeauty2CharmLine', 'StrippingDstarUPB02D0KPiD2HHBeauty2CharmLine', - - # Bc+ -> D+ D0 +# +# # Bc+ -> D+ D0 'StrippingBc2DD0D2KSHHHD02HHBeauty2CharmLine', 'StrippingBc2DD0D2KSHHHD02KHHHBeauty2CharmLine', 'StrippingBc2DD0D2KSHHHD02HHPI0Beauty2CharmLine', @@ -1554,8 +1628,8 @@ default_config = { 'StrippingBc2DD0D2HHHD02KHHHBeauty2CharmLine', 'StrippingBc2DD0D2HHHD02HHPI0Beauty2CharmLine', 'StrippingBc2DD0D2HHHD02KSHHBeauty2CharmLine', - - # Bc+ -> D*+ D0 +# +# # Bc+ -> D*+ D0 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHBeauty2CharmLine', 'StrippingBc2DstD0Dst2DPI0D2HHHD02KHHHBeauty2CharmLine', 'StrippingBc2DstD0Dst2DPI0D2HHHD02HHPI0Beauty2CharmLine', @@ -1592,8 +1666,8 @@ default_config = { 'StrippingBc2DstD0Dst2DPI0D2KSHD02KHHHBeauty2CharmLine', 'StrippingBc2DstD0Dst2DPI0D2KSHD02HHPI0Beauty2CharmLine', 'StrippingBc2DstD0Dst2DPI0D2KSHD02KSHHBeauty2CharmLine', - - # Bc+ -> D+ D*0 +# +# # Bc+ -> D+ D*0 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KSHHBeauty2CharmLine', 'StrippingBc2DDst0D2KSHHHDst02D0GammaD02KHHHBeauty2CharmLine', 'StrippingBc2DDst0D2KSHHHDst02D0PI0D02HHBeauty2CharmLine', @@ -1612,8 +1686,8 @@ default_config = { 'StrippingBc2DDst0D2HHHDst02D0PI0D02KHHHBeauty2CharmLine', 'StrippingBc2DDst0D2HHHDst02D0PI0D02KSHHBeauty2CharmLine', 'StrippingBc2DDst0D2HHHDst02D0GammaD02HHBeauty2CharmLine', - - # Bc+ -> D*+ D*0 +# +# # Bc+ -> D*+ D*0 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KSHHBeauty2CharmLine', 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0GammaD02KHHHBeauty2CharmLine', 'StrippingBc2DstDst0Dst2DPI0D2HHHDst02D0PI0D02HHBeauty2CharmLine', @@ -1669,6 +1743,12 @@ default_config = { 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0PI0D02KSHHBeauty2CharmLine', 'StrippingBc2DstDst0Dst2DPI0D2KSHDst02D0GammaD02HHBeauty2CharmLine', + ##B_c+ + 'StrippingBc2DsppbarBeauty2CharmLine', + 'StrippingBc2D0KpipiD02KPIPIDBeauty2CharmLine', + 'StrippingBc2D0KpipiD02K3PIPIDBeauty2CharmLine', + 'StrippingBc2LcKpbarLC2PKPIBeauty2CharmLine', + #Xibc 'StrippingXibc2LcD0D02KPiBeauty2CharmLine', 'StrippingXibc2LcD0PiD02KPiBeauty2CharmLine', @@ -1694,7 +1774,7 @@ default_config = { 'StrippingXibc2LcD0MuWSD02KPiBeauty2CharmLine', 'StrippingXibc2LcDMuD2KPiPiBeauty2CharmLine', 'StrippingXibc2LcDMuWSD2KPiPiBeauty2CharmLine', - +# 'StrippingB2XicpbarPiXic2PKPiBeauty2CharmLine', 'StrippingB02XicpbarPiPiXic2PKPiBeauty2CharmLine', 'StrippingB02XicpbarKPiXic2PKPiBeauty2CharmLine', @@ -1724,12 +1804,12 @@ default_config = { 'StrippingXib02D0LambdaPiPiDDD02K3PiBeauty2CharmLine', 'StrippingXib2LcKHHHLc2PKPiBeauty2CharmLine', 'StrippingXib2XicHHHHXic2PKPiBeauty2CharmLine', - 'StrippingXibm2Xic0Pim2XimPipPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2XimPipPimLLBeauty2CharmLine', 'StrippingXibm2Xic0Pim2XimPipPimDDBeauty2CharmLine', - 'StrippingXibm2Xic0Pim2Lambda0KmPipPimLLBeauty2CharmLine', - 'StrippingXibm2Xic0Pim2Lambda0KmPipPimDDBeauty2CharmLine', - 'StrippingXibm2Xic0Pim2PKsKmPimLLBeauty2CharmLine', - 'StrippingXibm2Xic0Pim2PKsKmPimDDBeauty2CharmLine' + 'StrippingXibm2Xic0Pim2Lambda0KmPipPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2Lambda0KmPipPimDDBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2PKsKmPimLLBeauty2CharmLine', + 'StrippingXibm2Xic0Pim2PKsKmPimDDBeauty2CharmLine' ] }, 'WGs': ['B2OC'] @@ -1842,23 +1922,23 @@ class Beauty2CharmConf(LineBuilder): dst = DstarBuilder(d, pions, uppions, pi0, photons, vlaphotons, config['Dstar'], config['PID']) - # Xim -> X + # Xim -> X xim = XimBuilder(pions_pid, kaons_pid, protons_pid, lambda0, config['Xim']) - - # Lc -> X + # Lc -> X lc = LcBuilder(pions_pid, kaons_pid, protons_pid, lambda0, ks, xim, config['D2X'], config['Xic0'], config['PID']) - xicc = XiccBuilder(lc, pions_pid, config['D2X']) - # Loose Lc, for Xibc + lcstar = LcstarBuilder(lc, pions_pid, config['Lcstar']) + xicc = XiccBuilder(lc, pions_pid, config['D2X']) + # Loose Lc, for Xibc lcLoose = LooseLcBuilder(pions_Xc_Xibc, kaons_Xc_Xibc, protons_Xc_Xibc, config['LC_FOR_XIBC']) xiccLoose = LooseXiccBuilder(lcLoose, pions_Xb_Xibc, kaons_Xb_Xibc, config['LC_FOR_XIBC']) # make B->DX - b2dx = B2DXBuilder(d, dst, topoPions, topoPionsLoose, topoKaons, - topoKaons_PID, topoPions_PID, muons, ks, pi0_fromB, + b2dx = B2DXBuilder(d, dst, topoPions, topoPionsLoose, topoKaons, topoKaonsLoose, + topoKaons_PID, topoPions_PID, topoProtons_PID, muons, ks, pi0_fromB, hh, hhh, config['B2X']) self._makeLines(b2dx.lines, config) @@ -1872,12 +1952,12 @@ class Beauty2CharmConf(LineBuilder): self._makeLines(bc2bx.lines, config) #Bc -> DX lines - bc2dx = Bc2DXBuilder(d, dst, hh, topoPionsLoose, topoKaonsLoose, + bc2dx = Bc2DXBuilder(lc, topoProtons_PID, d, dst, hh, topoPionsLoose, topoPions_PID, topoKaonsLoose, topoKaons_PID, config['Bc2DX']) self._makeLines(bc2dx.lines, config) # Lb -> X - lb2x = Lb2XBuilder(lc, xicc, d, hh, topoPions, topoPions_PID, + lb2x = Lb2XBuilder(lc, lcstar, xicc, d, hh, topoPions, topoPions_PID, topoKaons, topoKaons_PID, topoProtons, topoProtons_PID, pions, kaons, ks, hhh, dst, lambda0, config['B2X'], config['Xibm']) -- GitLab