Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Stephan I. Böttcher
55624a99af solo.step.l1l2: change default min_dt=20
STEP seems to see a lot of self-triggered events with dt < 20µs
after events deep in the landau tail.  One proposal is to raise
min dtime threshold in L2 up from 0.  This may starve the daq at very
high trigger rates but gives reliable PHA for those events that pass
the L2 trigger.

The other option is to set the I-DefX delayed startup bit, which delays
the reconnect of the shaper by 32µs after a readout.  That cannot
starve the daq, but may result in pileup and or balistic deficit errors
at high rate.

This patch adds infra to set the min_dt cut in step.ppss and
step.base_config and changes the default for all units to 20µs.
2021-03-01 23:05:00 +01:00
2 changed files with 7 additions and 6 deletions

View file

@ -27,6 +27,7 @@ class step_config(unit_config):
ix1_thr=None, ix2_thr=None,
temperature=-40, env='FAR',
name = "", dp_flag=0, version=0,
min_dt=20,
**kwargs):
if ix1_thr is None:
@ -77,7 +78,7 @@ class step_config(unit_config):
close = False
self.ppss = step_ppss.step_ppss(
large=large, small=small,
large=large, small=small, min_dt=min_dt,
dps = self.dps,
ix1_thr=ix1_thr, ix2_thr=ix2_thr,
close=close, model=self.model)

View file

@ -166,15 +166,15 @@ class step_ppss(ppss_table):
thrs_us1 = thrs_us0 + 2 * incr + 2 * incr
self += ppss_items(thrs_us1, ix_conf_modulus, ix_thresholds(ix2_thr, ix=2),incr=incr, IX_THR1=True)
def do_step_config(self, small=True, large=True):
def do_step_config(self, small=True, large=True, min_dt=0, **kwargs):
conf_us = 1400
step_conf_modulus = modulus_always
if not large:
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=0, max_small=15, max_bg=1, max_sum=16, min_dt=0, read_delay=24), L1L2=True)
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=0, max_small=15, max_bg=1, max_sum=16, min_dt=min_dt, read_delay=24), L1L2=True)
elif not small:
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=15, max_small=0, max_bg=1, max_sum=16, min_dt=0, read_delay=24), L1L2=True)
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=15, max_small=0, max_bg=1, max_sum=16, min_dt=min_dt, read_delay=24), L1L2=True)
else:
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=15, max_small=15, max_bg=2, max_sum=32, min_dt=0, read_delay=24), L1L2=True)
self += ppss_item(conf_us, step_conf_modulus, step_config_l1_l2(max_large=15, max_small=15, max_bg=2, max_sum=32, min_dt=min_dt, read_delay=24), L1L2=True)
self += ppss_item(conf_us+10, step_conf_modulus, step_config_all_acq(all=(0,0), acq=(1,5)), ALLACQ=True)
def make_HK_table(self):
@ -219,7 +219,7 @@ class step_ppss(ppss_table):
self.do_init()
self.do_insertion_slots()
self.do_ix_config(small=small, large=large, **kwargs)
self.do_step_config(small=small, large=large)
self.do_step_config(small=small, large=large, **kwargs)
self.do_hk()
self.do_pha()
if self.dps: