Skip to content
Snippets Groups Projects

Added charge conjugates for Kstar and KstarKstar lines

Merged Hanae Tilquin requested to merge htilquin/b2xtautaumuonic_rd into 2018-patches
@@ -18,8 +18,8 @@ Same-sign combinations are included.
"""
__author__ = 'H. Tilquin'
__date__ = '23/02/2021'
__version__ = '$Revision: 0.0 $'
__date__ = '03/06/2021'
__version__ = '$Revision: 0.1 $'
__all__ = ('B2XTauTauMuonicConf', 'default_config')
@@ -40,6 +40,9 @@ default_config = {
"Bs_Comb_MassHigh": 7000.0,
"Bd_Comb_MassHigh": 6500.0,
"Lb_Comb_MassHigh": 7500.0,
"Bs_VertDist": -24,
"Bd_VertDist": -5,
"Lb_VertDist": -25,
"B_DIRA": 0.999,
"Lb_DIRA": 0.999,
"Bs_VertexCHI2": 150.0,
@@ -62,6 +65,7 @@ default_config = {
"Kstar_for_B2KstarKstar_MassWindow": 100,
"Kstar_for_B2KstarKstar_PT": 600,
"Kstar_for_B2KstarKstar_VertexCHI2": 6,
"KstarKstar_DOCACHI2": 25,
"Lambdastar_FlightChi2": 25,
"Lambdastar_Comb_MassHigh": 5000.0,
"Lambdastar_Comb_MassLow": 1400.0,
@@ -99,55 +103,55 @@ class B2XTauTauMuonicConf(LineBuilder):
LineBuilder.__init__(self, name, config)
self.name = name
self.BsCombCut = "(AM < %(Bs_Comb_MassHigh)s * MeV)" % config
self.BsCut = "(BPVDIRA> %(B_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(Bs_VertexCHI2)s)" % config
self.BsCombCut = "(AM < %(Bs_Comb_MassHigh)s * MeV) & (ACHILD(VFASPF(VZ), 2) - ACHILD(VFASPF(VZ), 1) > %(Bs_VertDist)s * mm)" % config
self.Bs_for_B2KstarKstarCombCut = "(AM < %(Bs_Comb_MassHigh)s * MeV)" % config
self.BsCut = "(BPVDIRA > %(B_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(Bs_VertexCHI2)s)" % config
self.BdCombCut = "(AM < %(Bd_Comb_MassHigh)s * MeV)" % config
self.BdCut = "(BPVDIRA> %(B_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(B0_VertexCHI2)s)" % config
self.BdCombCut = "(AM < %(Bd_Comb_MassHigh)s * MeV) & (ACHILD(VFASPF(VZ), 2) - ACHILD(VFASPF(VZ), 1) > %(Bd_VertDist)s * mm)" % config
self.BdCut = "(BPVDIRA > %(B_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(B0_VertexCHI2)s)" % config
self.LambdaBCombCut = "(AM < %(Lb_Comb_MassHigh)s * MeV)" % config
self.LambdaBCombCut = "(AM < %(Lb_Comb_MassHigh)s * MeV) & (ACHILD(VFASPF(VZ), 2) - ACHILD(VFASPF(VZ), 1) > %(Lb_VertDist)s * mm)" % config
self.LambdaBCut = "(BPVDIRA> %(Lb_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(Lb_VertexCHI2)s)" % config
DaughterCuts = "(BPVDIRA> %(Dau_DIRA)s)" % config
self.PhiCombCut = "(AM < %(Phi_Comb_MassHigh)s * MeV) " % config
self.PhiCut = DaughterCuts + " & (VFASPF(VCHI2/VDOF) < %(Phi_VertexCHI2)s) & (PT > %(Phi_PT)s*MeV) & " \
self.PhiCombCut = "(AM < %(Phi_Comb_MassHigh)s * MeV)" % config
self.PhiCut = DaughterCuts + " & (VFASPF(VCHI2/VDOF) < %(Phi_VertexCHI2)s) & (PT > %(Phi_PT)s * MeV) & " \
"(BPVVDCHI2 > %(Phi_FlightChi2)s)" % config
self.Kstar_for_B2KstarCombCut = "(AM < %(Kstar_for_B2Kstar_Comb_MassHigh)s*MeV) & (AM > %(Kstar_for_B2Kstar_Comb_MassLow)s*MeV)" % config
self.Kstar_for_B2KstarCut = DaughterCuts + " & (VFASPF(VCHI2/VDOF) < %(Kstar_for_B2Kstar_VertexCHI2)s) & " \
"(PT > %(Kstar_for_B2Kstar_PT)s*MeV) & (BPVVDCHI2 > %(Kstar_for_B2Kstar_FlightChi2)s)" % config
"(PT > %(Kstar_for_B2Kstar_PT)s * MeV) & (BPVVDCHI2 > %(Kstar_for_B2Kstar_FlightChi2)s)" % config
self.Kstar_for_B2KstarKstarCombCut = "(ADAMASS('K*(892)0')< %(Kstar_for_B2KstarKstar_MassWindow)s*MeV )" % config
self.Kstar_for_B2KstarKstarCombCut = "(ADAMASS('K*(892)0')< %(Kstar_for_B2KstarKstar_MassWindow)s * MeV )" % config
self.Kstar_for_B2KstarKstarCut = DaughterCuts + " & (VFASPF(VCHI2/VDOF) < %(Kstar_for_B2KstarKstar_VertexCHI2)s) & " \
"(PT > %(Kstar_for_B2KstarKstar_PT)s*MeV)" % config
"(PT > %(Kstar_for_B2KstarKstar_PT)s * MeV)" % config
self.LambdaStarCombCut = "(AM < %(Lambdastar_Comb_MassHigh)s*MeV) & (AM > %(Lambdastar_Comb_MassLow)s*MeV)" % config
self.LambdaStarCut = DaughterCuts + " & (PT > %(Lambdastar_PT)s*MeV) & " \
"(VFASPF(VCHI2/VDOF) < %(Lambdastar_VertexCHI2)s) & (BPVVDCHI2 > %(Lambdastar_FlightChi2)s)" % config
self.LambdaStarCombCut = "(AM < %(Lambdastar_Comb_MassHigh)s * MeV) & (AM > %(Lambdastar_Comb_MassLow)s * MeV)" % config
self.LambdaStarCut = DaughterCuts + " & (PT > %(Lambdastar_PT)s * MeV) & (VFASPF(VCHI2/VDOF) < %(Lambdastar_VertexCHI2)s)" % config
self.DiMuonCombCut = "(AM < %(DimuonUPPERMASS)s *MeV) " % config
self.DiMuonCombCut = "(AM < %(DimuonUPPERMASS)s * MeV) " % config
self.DiMuonCut = "(BPVDIRA> %(Dimuon_DIRA)s) & (VFASPF(VCHI2/VDOF) < %(Dimuon_VertexCHI2)s)" % config
self.TrackCuts = "(TRGHP < %(Track_GhostProb)s) & (TRCHI2DOF < %(Track_TRCHI2)s)" % config
self.HadronCuts = "(MIPCHI2DV(PRIMARY) > %(Hadron_MinIPCHI2)s)" % config
self.KaonCutBase = self.TrackCuts + " & " + self.HadronCuts + ' & (P > %(Hadron_P)s*MeV)' % config
self.KaonCut = self.KaonCutBase + " & (PIDK > %(KaonPID)s) & (~ISMUON)" % config
self.KaonCut_B2Kstar = self.KaonCutBase + " & (PROBNNK * (1-PROBNNpi) > %(Kaon_Pion_ProbNN_B2Kstar)s) & (~ISMUON)" % config
self.KaonCutNoPID_B2Kstar = self.KaonCutBase + " & (PROBNNK * (1-PROBNNpi)< %(Kaon_Pion_ProbNN_B2Kstar)s)" % config
self.KaonCutNoPID = self.KaonCutBase + ' & (PIDK < %(KaonPID)s)' % config
self.KaonCutBase = self.TrackCuts + " & " + self.HadronCuts + " & (P > %(Hadron_P)s * MeV)" % config
self.KaonCut = self.KaonCutBase + " & (PIDK > %(KaonPID)s) & (~ISMUON)" % config
self.KaonCut_B2Kstar = self.KaonCutBase + " & (PROBNNK * (1-PROBNNpi) > %(Kaon_Pion_ProbNN_B2Kstar)s) & (~ISMUON)" % config
self.KaonCutNoPID_B2Kstar = self.KaonCutBase + " & (PROBNNK * (1-PROBNNpi) < %(Kaon_Pion_ProbNN_B2Kstar)s)" % config
self.KaonCutNoPID = self.KaonCutBase + " & (PIDK < %(KaonPID)s)" % config
self.PionCutBase = self.TrackCuts + " & " + self.HadronCuts
self.PionCut_B2Kstar = self.PionCutBase + " & (PROBNNpi > %(Pion_ProbNN_B2Kstar)s) & (~ISMUON)" % config
self.PionCut_B2Kstar = self.PionCutBase + " & (PROBNNpi > %(Pion_ProbNN_B2Kstar)s) & (~ISMUON)" % config
self.PionCutNoPID_B2Kstar = self.PionCutBase + " & (PROBNNpi < %(Pion_ProbNN_B2Kstar)s)" % config
self.MuonCutBase = self.TrackCuts + " & (MIPCHI2DV(PRIMARY) > %(Muon_MinIPCHI2)s)" % config
self.MuonCut = self.MuonCutBase + " & (PIDmu> %(MuonPID)s) & (ISMUON)" % config
self.MuonCutNoPID = self.MuonCutBase + " & (PIDmu < %(MuonPID)s) " % config
self.ProtonCutBase = self.TrackCuts + " & " + self.HadronCuts + " & (P > %(Hadron_P)s*MeV)" % config
self.ProtonCutBase = self.TrackCuts + " & " + self.HadronCuts + " & (P > %(Hadron_P)s * MeV)" % config
self.ProtonCut = self.ProtonCutBase + " & (PIDp > %(ProtonPID)s) & (~ISMUON)" % config
self.ProtonCutNoPID = self.ProtonCutBase + " & (PIDp < %(ProtonPID)s)" % config
@@ -191,31 +195,31 @@ class B2XTauTauMuonicConf(LineBuilder):
self.DeclaredDaughters = [self.Phi, self.Dimuon]
self.Bs = self.__Bs_Phi__(daughters=self.DeclaredDaughters)
self.DeclaredDaughters = [self.FakeDimuon, self.Phi]
self.DeclaredDaughters = [self.Phi, self.FakeDimuon]
self.Bs_NoPIDmu = self.__Bs_Phi__(daughters=self.DeclaredDaughters, pid_selection="NoPIDmu_")
self.DeclaredDaughters = [self.Dimuon, self.FakePhi]
self.DeclaredDaughters = [self.FakePhi, self.Dimuon]
self.Bs_NoPIDK = self.__Bs_Phi__(daughters=self.DeclaredDaughters, pid_selection="NoPIDK_")
self.DeclaredDaughters = [self.Kstar_for_B2KstarKstar, self.Dimuon]
self.Bs_kstarkstar = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters)
self.Bs_kstarkstar = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, conf=config)
self.DeclaredDaughters = [self.FakeKaonKstar_for_B2KstarKstar, self.Kstar_for_B2KstarKstar, self.Dimuon]
self.Bs_kstarkstar_nopidK = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, pid_selection="NoPIDK_")
self.Bs_kstarkstar_nopidK = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, conf=config, pid_selection="NoPIDK_")
self.DeclaredDaughters = [self.FakePionKstar_for_B2KstarKstar, self.Kstar_for_B2KstarKstar, self.Dimuon]
self.Bs_kstarkstar_nopidpi = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, pid_selection="NoPIDpi_")
self.Bs_kstarkstar_nopidpi = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, conf=config, pid_selection="NoPIDpi_")
self.DeclaredDaughters = [self.Kstar_for_B2KstarKstar, self.FakeDimuon]
self.Bs_kstarkstar_nopidpmu = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, pid_selection="NoPIDmu_")
self.Bs_kstarkstar_nopidpmu = self.__Bs_KstarKstar__(daughters=self.DeclaredDaughters, conf=config, pid_selection="NoPIDmu_")
self.DeclaredDaughters = [self.Kstar_for_B2Kstar, self.Dimuon]
self.Bs_kstar = self.__B0_Kstar__(daughters=self.DeclaredDaughters)
self.DeclaredDaughters = [self.FakeKaonKstar_for_B2Kstar, self.Kstar_for_B2Kstar, self.Dimuon]
self.DeclaredDaughters = [self.FakeKaonKstar_for_B2Kstar, self.Dimuon]
self.Bs_kstar_nopidK = self.__B0_Kstar__(daughters=self.DeclaredDaughters, pid_selection="NoPIDK_")
self.DeclaredDaughters = [self.FakePionKstar_for_B2Kstar, self.Kstar_for_B2Kstar, self.Dimuon]
self.DeclaredDaughters = [self.FakePionKstar_for_B2Kstar, self.Dimuon]
self.Bs_kstar_nopidpi = self.__B0_Kstar__(daughters=self.DeclaredDaughters, pid_selection="NoPIDpi_")
self.DeclaredDaughters = [self.Kstar_for_B2Kstar, self.FakeDimuon]
@@ -232,96 +236,95 @@ class B2XTauTauMuonicConf(LineBuilder):
self.FilterSPD = {'Code': " ( recSummary(LHCb.RecSummary.nSPDhits,'Raw/Spd/Digits') < %(SpdMult)s )" % config,
'Preambulo': ["from LoKiNumbers.decorators import *", "from LoKiCore.basic import LHCb"]}
self.line = StrippingLine(
self.Bs2phi_line = StrippingLine(
self.name + "_Bs2Phi_Line", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs], MDSTFlag=False, MaxCandidates=1000)
self.registerLine(self.Bs2phi_line)
self.registerLine(self.line)
self.nopidmu_line = StrippingLine(
self.Bs2Phi_NoPIDmu_line = StrippingLine(
self.name + "_Bs2Phi_NoPIDMuLine", prescale=0.04,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_NoPIDmu], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.nopidmu_line)
self.registerLine(self.Bs2Phi_NoPIDmu_line)
self.nopidk_line = StrippingLine(
self.Bs2Phi_NoPIDK_line = StrippingLine(
self.name + "_Bs2Phi_NoPIDKLine", prescale=0.1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_NoPIDK], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.nopidk_line)
self.registerLine(self.Bs2Phi_NoPIDK_line)
self.kstarkstar_line = StrippingLine(
self.Bs2KstarKstar_line = StrippingLine(
self.name + "_Bs2KstarKstar_Line", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstarkstar], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstarkstar_line)
self.registerLine(self.Bs2KstarKstar_line)
self.kstarkstar_nopidk_line = StrippingLine(
self.name + "_Bs2KstarKstar_NoPIDKLine", prescale=1,
self.Bs2KstarKstar_NoPIDK_line = StrippingLine(
self.name + "_Bs2KstarKstar_NoPIDKLine", prescale=0.5,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstarkstar_nopidK], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstarkstar_nopidk_line)
self.registerLine(self.Bs2KstarKstar_NoPIDK_line)
self.kstarkstar_nopidpi_line = StrippingLine(
self.Bs2KstarKstar_NoPIDpi_line = StrippingLine(
self.name + "_Bs2KstarKstar_NoPIDPiLine", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstarkstar_nopidpi], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstarkstar_nopidpi_line)
self.registerLine(self.Bs2KstarKstar_NoPIDpi_line)
self.kstarkstar_nopidmu_line = StrippingLine(
self.name + "_Bs2KstarKstar_NoPIDMuLine", prescale=1,
self.Bs2KstarKstar_NoPIDmu_line = StrippingLine(
self.name + "_Bs2KstarKstar_NoPIDMuLine", prescale=0.7,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstarkstar_nopidpmu], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstarkstar_nopidmu_line)
self.registerLine(self.Bs2KstarKstar_NoPIDmu_line)
self.kstar_line = StrippingLine(
self.Bd2Kstar_line = StrippingLine(
self.name + "_B02KstarLine", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstar], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstar_line)
self.registerLine(self.Bd2Kstar_line)
self.kstar_nopidk_line = StrippingLine(
self.name + "_B02Kstar_NoPIDKLine", prescale=0.7,
self.Bd2Kstar_NoPIDK_line = StrippingLine(
self.name + "_B02Kstar_NoPIDKLine", prescale=0.3,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstar_nopidK], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstar_nopidk_line)
self.registerLine(self.Bd2Kstar_NoPIDK_line)
self.kstar_nopidpi_line = StrippingLine(
self.Bd2Kstar_NoPIDpi_line = StrippingLine(
self.name + "_B02Kstar_NoPIDPiLine", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstar_nopidpi], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstar_nopidpi_line)
self.registerLine(self.Bd2Kstar_NoPIDpi_line)
self.kstar_nopidmu_line = StrippingLine(
self.Bd2Kstar_NoPIDmu_line = StrippingLine(
self.name + "_B02Kstar_NoPIDMuLine", prescale=0.03,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.Bs_kstar_nopidpmu], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.kstar_nopidmu_line)
self.registerLine(self.Bd2Kstar_NoPIDmu_line)
self.lambda_line = StrippingLine(
self.Lb2pK_line = StrippingLine(
self.name + "_Lb2pK_Line", prescale=1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.LambdaB_pk], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.lambda_line)
self.registerLine(self.Lb2pK_line)
self.lambda_nopidK_line = StrippingLine(
self.Lb2pK_NoPIDK_line = StrippingLine(
self.name + "_Lb2pK_NoPIDKLine", prescale=0.2,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.LambdaB_pk_noPIDK], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.lambda_nopidK_line)
self.registerLine(self.Lb2pK_NoPIDK_line)
self.lambda_nopidp_line = StrippingLine(
self.Lb2pK_NoPIDp_line = StrippingLine(
self.name + "_Lb2pK_NoPIDpLine", prescale=0.1,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.LambdaB_pk_noPIDp], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.lambda_nopidp_line)
self.registerLine(self.Lb2pK_NoPIDp_line)
self.lambda_nopidmu_line = StrippingLine(
self.Lb2pK_NoPIDmu_line = StrippingLine(
self.name + "_Lb2pK_NoPIDmuLine", prescale=0.04,
HLT2=config['HLT2_FILTER'], HLT1=config['HLT1_FILTER'], L0DU=config['L0DU_FILTER'],
FILTER=self.FilterSPD, algos=[self.LambdaB_pk_noPIDmu], MDSTFlag=False, MaxCandidates=4000)
self.registerLine(self.lambda_nopidmu_line)
self.registerLine(self.Lb2pK_NoPIDmu_line)
def __Muons__(self, conf):
from StandardParticles import StdAllLooseMuons, StdNoPIDsMuons
@@ -428,11 +431,12 @@ class B2XTauTauMuonicConf(LineBuilder):
def __Kstar__(self, Kaons, Pions, pid_selection="_", sel_name="_B2KstarKstar"):
_kstar2kpi = CombineParticles()
_kstar2kpi.DecayDescriptors = ["[K*(892)0 -> K+ pi-]cc", "K*(892)0 -> K+ pi+", "K*(892)0 -> K- pi-"]
if sel_name == "_B2KstarKstar":
_kstar2kpi.DecayDescriptors = ["[K*(892)0 -> K+ pi-]cc"]
_kstar2kpi.CombinationCut = self.Kstar_for_B2KstarKstarCombCut
_kstar2kpi.MotherCut = self.Kstar_for_B2KstarKstarCut
else:
_kstar2kpi.DecayDescriptors = ["[K*(892)0 -> K+ pi-]cc", "K*(892)0 -> K+ pi+", "K*(892)0 -> K- pi-"]
_kstar2kpi.CombinationCut = self.Kstar_for_B2KstarCombCut
_kstar2kpi.MotherCut = self.Kstar_for_B2KstarCut
_sel = Selection("Kstar_for" + sel_name + pid_selection + "selection_for" + self.name, Algorithm=_kstar2kpi,
@@ -449,31 +453,30 @@ class B2XTauTauMuonicConf(LineBuilder):
return _sel
def __Bs_Phi__(self, daughters, pid_selection="_"):
_b2phitautau = CombineParticles(DecayDescriptors=["B_s0 -> D0 phi(1020)"],
_b2phitautau = CombineParticles(DecayDescriptors=["B_s0 -> phi(1020) D0"],
MotherCut=self.BsCut, CombinationCut=self.BsCombCut)
sel = Selection("Phi" + pid_selection + "for" + self.name, Algorithm=_b2phitautau, RequiredSelections=daughters)
return sel
def __Bs_KstarKstar__(self, daughters, pid_selection="_"):
def __Bs_KstarKstar__(self, daughters, conf, pid_selection="_"):
_b2kstarkstartautau = DaVinci__N3BodyDecays()
_b2kstarkstartautau.DecayDescriptors = ["B_s0 -> K*(892)0 K*(892)~0 D0"]
_b2kstarkstartautau.CombinationCut = self.BsCombCut
_b2kstarkstartautau.DecayDescriptors = ["B_s0 -> K*(892)0 K*(892)~0 D0", "B_s0 -> K*(892)0 K*(892)0 D0", "B_s0 -> K*(892)~0 K*(892)~0 D0"]
_b2kstarkstartautau.CombinationCut = self.Bs_for_B2KstarKstarCombCut
_b2kstarkstartautau.MotherCut = self.BsCut
_b2kstarkstartautau.Combination12Cut = "(ACHI2DOCA(1,2) < 8)"
_b2kstarkstartautau.Combination12Cut = "(ACHI2DOCA(1,2) < %(KstarKstar_DOCACHI2)s)" % conf
sel = Selection("KstarKstar" + pid_selection + "for" + self.name + "_daughters", Algorithm=_b2kstarkstartautau,
RequiredSelections=daughters)
return sel
def __B0_Kstar__(self, daughters, pid_selection="_"):
_b2kstartautau = CombineParticles(DecayDescriptors=["B0 -> D0 K*(892)0"],
_b2kstartautau = CombineParticles(DecayDescriptors=["B0 -> K*(892)0 D0", "B~0 -> K*(892)~0 D0"],
MotherCut=self.BdCut, CombinationCut=self.BdCombCut)
sel = Selection("Kstar" + pid_selection + "for" + self.name, Algorithm=_b2kstartautau,
RequiredSelections=daughters)
return sel
def __LambdaB_pK__(self, daughters, pid_selection="_"):
_b2lambdatautau = CombineParticles(DecayDescriptors=["[Lambda_b0 -> D0 Lambda(1520)0]cc", "[Lambda_b0 -> D0 Lambda(1520)~0]cc"],
_b2lambdatautau = CombineParticles(DecayDescriptors=["Lambda_b0 -> Lambda(1520)0 D0", "Lambda_b~0 -> Lambda(1520)~0 D0"],
MotherCut=self.LambdaBCut, CombinationCut=self.LambdaBCombCut)
sel = Selection("Lambda" + pid_selection + "for" + self.name, Algorithm=_b2lambdatautau,
RequiredSelections=daughters)
Loading