def METHOD_NAME(self, telescope_type):
    table = self.loader.read_telescope_events([telescope_type])
    self.log.info("Events read from input: %d", len(table))
    if len(table) == 0:
        raise TooFewEvents(
            f"Input file does not contain any events for telescope type {telescope_type}"
        )
    mask = self.regressor.quality_query.get_table_mask(table)
    table = table[mask]
    self.log.info("Events after applying quality query: %d", len(table))
    if len(table) == 0:
        raise TooFewEvents(
            f"No events after quality query for telescope type {telescope_type}"
        )
    table = self.regressor.feature_generator(table, subarray=self.loader.subarray)
    feature_names = self.regressor.features + [self.regressor.target]
    table = table[feature_names]
    valid = check_valid_rows(table)
    if np.any(~valid):
        self.log.warning("Dropping non-predictable events.")
        table = table[valid]
    n_events = self.n_events.tel[telescope_type]
    if n_events is not None:
        if n_events > len(table):
            self.log.warning(
                "Number of events in table (%d) is less than requested number of events %d",
                len(table),
                n_events,
            )
        else:
            self.log.info("Sampling %d events", n_events)
            idx = self.rng.choice(len(table), n_events, replace=False)
            idx.sort()
            table = table[idx]
    return table