Skip to content
Snippets Groups Projects

Adding of run 1 and 2 QEE A2MuMu lines to run 3

Open Arno Heister requested to merge QEE_A2MuMuLines into master
Files
2
@@ -48,6 +48,19 @@ def make_Z_cand():
return make_dimuon_novxt(muons_for_Z, muons_for_Z, "Z0 -> mu+ mu-")
@configurable
def make_A_cand():
muons_for_A = muon_filter_for_Z(make_ismuon_long_muon(), min_pt=2.5 * GeV)
return make_dimuon_novxt(
muons_for_A,
muons_for_A,
"Z0 -> mu+ mu-",
min_combination_mass = 12. * GeV,
min_composite_mass = 15. GeV,
max_combination_mass = 60. * GeV
)
@configurable
def make_Z_cand_SingleNoMuID():
muon_ID, muon_noID = make_ismuon_long_muon(), make_long_muons()
@@ -74,6 +87,19 @@ def make_Zss_cand():
)
@configurable
def make_Ass_cand():
muons = muon_filter_for_Z(make_ismuon_long_muon(), min_pt=2.5 * GeV)
return make_dimuon_novxt(
muons,
muons,
"[Z0 -> mu- mu-]cc",
min_combination_mass = 12. * GeV,
min_composite_mass = 15. GeV,
max_combination_mass = 60. * GeV
)
@configurable
def make_dimuon_novxt(
input_muon1,
@@ -81,11 +107,16 @@ def make_dimuon_novxt(
decaydescriptor,
min_combination_mass=z_min_combination_mass,
min_composite_mass=z_min_composite_mass,
max_combination_mass
):
"""Dimuon combination with only a mass cut"""
# pre-vertex fit, useful for controlling the combinatorics
combination_code = F.MASS > min_combination_mass
if (max_combination_mass is not None):
combination_code = F.require_all(F.MASS > min_combination_mass, F.MASS < max_combination_mass)
else:
combination_code = (F.MASS > min_combination_mass)
# post-vertex fit
composite_code = F.MASS > min_composite_mass
@@ -133,6 +164,42 @@ def z_to_mu_mu_line(name="Hlt2QEE_ZToMuMuFull", prescale=1, persistreco=True):
)
@register_line_builder(all_lines)
@configurable
def A_to_mu_mu_line(name="", prescale=1, persistreco=True):
"""A decay to two muons line, both requiring ismuon"""
A2mumu = make_A_cand()
A_monitoring_params = {
**z_monitoring_defaults,
**{
# positive: 1, negative: 2 from the decay descriptor.
"pseudomass_positive": {
"functor": pseudomass1_functor_expression,
"xmin": 15.0 * GeV,
"xmax": 50.0 * GeV,
"nbins": 75,
},
"pseudomass_negative": {
"functor": pseudomass2_functor_expression,
"xmin": 15.0 * GeV,
"xmax": 50.0 * GeV,
"nbins": 75,
},
},
}
monitor_A = qee_monitors1d(
particles=A2mumu, linename=name, monitoring_params=A_monitoring_params
)
return Hlt2Line(
name=name,
algs=upfront_reconstruction() + [A2mumu, monitor_A],
prescale=prescale,
persistreco=persistreco,
monitoring_variables=_default_monitoring_variables,
)
@register_line_builder(all_lines)
@configurable
def z_to_mu_mu_single_nomuid_line(
@@ -192,3 +259,24 @@ def same_sign_dimuon_line(
persistreco=persistreco,
monitoring_variables=_default_monitoring_variables,
)
@register_line_builder(all_lines)
@configurable
def A_to_mu_mu_same_sign_line(
name="", prescale=1, persistreco=True
):
"""A decay to two same-sign muons line"""
A2mumuss = make_Ass_cand()
monitor_A2mumuss = qee_monitors1d(
particles=A2mumuss, linename=name, monitoring_params=z_monitoring_defaults
)
return Hlt2Line(
name=name,
algs=upfront_reconstruction() + [A2mumuss, monitor_A2mumuss],
prescale=prescale,
persistreco=persistreco,
monitoring_variables=_default_monitoring_variables,
)
Loading