Skip to content

Commit fe59b3b

Browse files
committed
Use _select_subcomponent_trains() helper in Timepix3.select_trains()
1 parent ae3b4aa commit fe59b3b

3 files changed

Lines changed: 11 additions & 14 deletions

File tree

src/extra/components/las.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ def select_trains(self, trains):
288288
'_stage_src', '_stage_delay_key',
289289
'_bam_src', '_bam_delay_key',
290290
'_pulses'
291-
])
291+
], trains)
292292

293293
def _trigger_delays(self, labelled=True, by_pulse=False,
294294
pulse_dim='pulseId'):

src/extra/components/timepix.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
from extra_data import by_id
1212
from extra_data.read_machinery import split_trains
13+
from .utils import _select_subcomponent_trains
1314

1415

1516
# Pulse indices used internally for virtual leading and trailing pulses.
@@ -117,22 +118,18 @@ def select_trains(self, trains):
117118
This method accepts the same type of arguments as
118119
[DataCollection.select_trains][extra_data.DataCollection.select_trains].
119120
"""
120-
res = copy(self)
121-
122-
if self._raw_control_src is not None:
123-
res._raw_control_src = self._raw_control_src.select_trains(trains)
124-
if self._raw_instrument_src is not None:
125-
res._raw_instrument_src = self._raw_instrument_src.select_trains(trains)
121+
res = _select_subcomponent_trains(self, [
122+
'_raw_control_src',
123+
'_raw_instrument_src',
124+
'_centroids_control_src',
125+
'_centroids_instrument_src',
126+
'_pulses',
127+
], trains)
126128
if self._raw_instrument_dc is not None:
127129
raw_train_ids = res.raw_size_key.drop_empty_trains().train_ids
128130
res._raw_instrument_dc = self._raw_instrument_dc.select_trains(
129131
by_id[raw_train_ids]
130132
)
131-
if self._centroids_control_src is not None:
132-
res._centroids_control_src = self._centroids_control_src.select_trains(trains)
133-
if self._centroids_instrument_src is not None:
134-
res._centroids_instrument_src = self._centroids_instrument_src.select_trains(trains)
135-
res._pulses = self._pulses.select_trains(trains)
136133

137134
return res
138135

src/extra/components/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ def _instrument_to_sase(instrument):
6363
return 3
6464

6565

66-
def _select_subcomponent_trains(src, keys, dst=None):
66+
def _select_subcomponent_trains(src, keys, trains, dst=None):
6767
if dst is None:
6868
from copy import copy
6969
dst = copy(src)
7070

7171
for key in keys:
72-
prop = getattr(self, key)
72+
prop = getattr(src, key)
7373

7474
if prop is not None:
7575
setattr(dst, key, prop.select_trains(trains))

0 commit comments

Comments
 (0)