Skip to content
Snippets Groups Projects

Update SMOG2 KS trackeff lines in Turcal

Open Oscar Boente Garcia requested to merge updates-ks-smog2-tracking into master
2 files
+ 43
11
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -61,6 +61,16 @@ hlt1_tis_lines = [
"Hlt1SingleHighEtDecision",
]
hlt1_tis_lines_smog2 = [
"Hlt1SMOG22BodyGenericDecision",
"Hlt1SMOG22BodyGenericPromptDecision",
"Hlt1SMOG2SingleTrackHighPtDecision",
"Hlt1SMOG2SingleTrackVeryHighPtDecision",
"Hlt1PassthroughPVinSMOG2Decision",
'Hlt1SMOG2BENoBiasDecision',
'Hlt1SMOG2etacToppDecision',
'Hlt1SMOG2D2KpiDecision',
]
@configurable
def filter_pions(particles, pvs=None, pt_min=0.4 * GeV):
@@ -92,11 +102,13 @@ def filter_particles_velo(particles, pvs):
@configurable
def filter_particles_tis_velo(particles, pvs):
def filter_particles_tis_velo(particles, pvs, fromSMOG2=False):
pre_filtered_particles = filter_particles_velo(particles, pvs)
if fromSMOG2: hlt1_filter_lines = hlt1_tis_lines + hlt1_tis_lines_smog2
else: hlt1_filter_lines = hlt1_tis_lines
return hlt1_tis_on_any_filter(
hlt1_trigger_lines=hlt1_tis_lines,
hlt1_trigger_lines=hlt1_filter_lines,
data=pre_filtered_particles,
name="Hlt1TISFilter_Velo2Long_{hash}",
advanced_tistos_arguments={
@@ -116,6 +128,7 @@ def make_kshort_pi_muplus_specific_charge(
comb_m_min=0 * MeV,
comb_m_max=2650 * MeV,
comb_maxdoca=0.15 * mm,
fromSMOG2=False,
name="KShortMuPiCombiner_{hash}",
):
combination_code = F.require_all(
@@ -124,11 +137,17 @@ def make_kshort_pi_muplus_specific_charge(
)
vertex_code = F.require_all(
F.END_VRHO < 100 * mm,
F.END_VZ > 18 * mm,
F.BPVFD(pvs) > 5 * mm
F.BPVVDRHO(pvs) > 3 * mm
F.END_VZ < 600 * mm,
F.BPVFD(pvs) > 5 * mm,
F.BPVVDRHO(pvs) > 3 * mm,
)
if fromSMOG2:
vertex_code &= F.END_VZ > -550 * mm
vertex_code &= bpv_in_smog2(make_pvs),
else:
vertex_code &= F.END_VZ > 18 * mm
return ParticleCombiner(
[pions, muons],
name=name,
@@ -160,18 +179,20 @@ def construct_hlt2_line(
p_min=5000.0,
filter_tis=False,
apply_lambda_veto=False,
fromSMOG2=False,
):
pvs = make_pvs()
pions = filter_pions(make_long_pions(), pvs, pt_min=0.5 * GeV)
turbo_line = name.find("Hlt2Turbo") != -1
if filter_tis:
muonsVelo = filter_particles_tis_velo(make_velo_muons(), pvs)
muonsVelo = filter_particles_tis_velo(make_velo_muons(), pvs, fromSMOG2)
else:
muonsVelo = filter_particles_velo(make_velo_muons(), pvs)
kshorts = make_kshort_pi_muplus(
pions, muonsVelo, pvs=pvs, comb_m_max=1500, comb_m_min=0
pions, muonsVelo, pvs=pvs, comb_m_max=1500, comb_m_min=0, fromSMOG2=fromSMOG2,
) # probe should be on index 1
filtered_kshorts = KSLongVeloFilter(
@@ -223,16 +244,18 @@ def construct_hlt2_line(
).OutputLocation
particles_to_match = [
("LongPions", make_long_pions()),
("UpPions", make_up_pions()),
("MatchedLongPions", matched_long_pions),
("MatchedUpstreamPions", matched_upstream_pions),
]
else:
particles_to_match = None
algs_list = upfront_reconstruction() + [require_pvs(pvs), filtered_kshorts]
if fromSMOG2: algs_list = make_smog2_prefilters(pvs=make_pvs) + [filtered_kshorts]
return Hlt2Line(
name=name,
algs=upfront_reconstruction() + [require_pvs(pvs), filtered_kshorts],
algs=algs_list,
prescale=prescale,
monitoring_variables=["m"],
extra_outputs=particles_to_match,
Loading