Skip to content
Snippets Groups Projects

fanjie/run3_Lb2LcDKpi

Closed Fanjie Meng requested to merge fanjie/run3_Lb2LcDKpi into master
1 unresolved thread
9 files
+ 316
540
Compare changes
  • Side-by-side
  • Inline
Files
9
def descriptor(particles, cc=False):
decay_descriptor = f"{particles[0]} ->"
for particle in particles[1:]:
decay_descriptor += f" {particle}"
if cc: decay_descriptor = f"[{decay_descriptor}]cc"
return decay_descriptor
def decay_branches(mother, daughters, decay_descriptor):
psi_pos = 0
Lambda_pos = 0
Pm_pos = Pp_pos = 0
Km_pos = Kp_pos = 0
Pim_pos = Pip_pos = 0
@@ -14,8 +22,10 @@ def decay_branches(mother, daughters, decay_descriptor):
branch_descriptor = branch_descriptor.replace("J/psi(1S)", "(J/psi(1S) -> mu+ mu-)")
if "psi(2S)" in decay_descriptor:
branch_descriptor = branch_descriptor.replace("psi(2S)", "(psi(2S) -> mu+ mu-)")
if "psi(2S)" in decay_descriptor:
branch_descriptor = branch_descriptor.replace("psi(2S)", "(psi(2S) -> mu+ mu-)")
if "Lambda0" in decay_descriptor:
branch_descriptor = branch_descriptor.replace("Lambda0", "(Lambda0 -> p+ pi-)")
if "Lambda~0" in decay_descriptor:
branch_descriptor = branch_descriptor.replace("Lambda~0", "(Lambda~0 -> p~- pi+)")
branches = {mother: branch_descriptor}
@@ -24,6 +34,10 @@ def decay_branches(mother, daughters, decay_descriptor):
true_pos = branch_descriptor.rfind("(", 0, branch_descriptor.find("psi", psi_pos))
branches.update({daughter: branch_descriptor[:true_pos]+"^"+branch_descriptor[true_pos:]})
psi_pos = branch_descriptor.find("psi", psi_pos) + len("psi(nS)")
if "Lambda" in daughter:
true_pos = branch_descriptor.rfind("(", 0, branch_descriptor.find("Lambda", Lambda_pos))
branches.update({daughter: branch_descriptor[:true_pos]+"^"+branch_descriptor[true_pos:]})
Lambda_pos = branch_descriptor.find("Lambda", Lambda_pos) + len("Lambda~0")
if "Pp" in daughter:
true_pos = branch_descriptor.find("p+", Pp_pos)
branches.update({daughter: branch_descriptor[:true_pos]+"^"+branch_descriptor[true_pos:]})
@@ -66,7 +80,43 @@ def decay_branches(mother, daughters, decay_descriptor):
em_pos = true_pos + len("e-")
return branches
#branches = decay_branches("Lb", ["Jpsi", "mup", "mum", "mup2", "mum2"], "[Lambda_b0 -> J/psi(1S) psi(2S)]cc")
def default_names(particles):
name_dict = {"Lambda_b0": "Lb",
"Xi_b-": "Xib",
"Xi_b0": "Xib",
"B0": "B0",
"B+": "Bp",
"B-": "Bm",
"B_s0": "Bs",
"J/psi(1S)": "Jpsi",
"psi(2S)": "psi2S",
"Lambda0": "Lambda", "Lambda~0": "Lambda",
"mu+": "mup", "mu-": "mum",
"e+": "ep", "e-": "em",
"pi+": "Pip", "pi-": "Pim",
"K+": "Kp", "K-": "Km",
"p+": "Pp", "p~-": "Pm",
}
names = []
for particle in particles:
names.append( name_dict[ particle ] )
if particle == "J/psi(1S)" or particle == "psi(2S)":
names += ["mup_psi", "mum_psi"]
elif particle == "Lambda0":
names += ["Pp_Lambda", "Pim_Lambda"]
elif particle == "Lambda~0":
names += ["Pm_Lambda", "Pip_Lambda"]
return names
def default_branches(particles, cc=False):
names = default_names(particles)
return decay_branches(names[0], names[1:], descriptor(particles, cc))
#branches = decay_branches("Bs", ["Jpsi", "Pp", "Pm", "mup", "mum"], "[B_s0 -> J/psi(1S) p+ p~-]cc")
#print(branches)
#branches = default_name( ["B_s0","J/psi(1S)", "p+", "p~-"])
#branches = default_branches( ["B_s0","J/psi(1S)", "p+", "p~-"], True)
#print(branches)
#print(descriptor(["Lambda_b0", "J/psi(1S)", "p+", "K-"], True))
Loading