def METHOD_NAME(self):
    data = self.load_hdf5_file(self.events_file)
    data = self.calc_rho36(data)
    if any(key.startswith("unc_est") for key in self.cuts):
        data = self.calc_uncertainties(data)
    data = self.apply_cuts(data, self.cuts)
    for name in self.output_names:
        container = Container(name)
        nubar = -1 if "bar" in name else 1
        if "e" in name:
            flav = 0
            n_files = int(self.files_per_flavor[0])
        if "mu" in name:
            flav = 1
            n_files = int(self.files_per_flavor[1])
        if "tau" in name:
            flav = 2
            n_files = int(self.files_per_flavor[2])
        pdg = nubar * (12 + 2 * flav)
        mask = data["pdg_id"] == pdg
        if "cc" in name:
            mask = np.logical_and(mask, data["interaction_type"] == 1)
        else:
            mask = np.logical_and(mask, data["interaction_type"] == 2)
        events = {key: value[mask] for key, value in data.items()}
        weight_dict = events["I3MCWeightDict"]
        primary = events["MCInIcePrimary"]
        container["true_energy"] = primary["energy"].astype(FTYPE)
        container["true_coszen"] = np.cos(primary["zenith"]).astype(FTYPE)
        container["pdg_code"] = primary["pdg_encoding"].astype(FTYPE)
        container["interaction"] = weight_dict["InteractionType"].astype(FTYPE)
        CM2_TO_M2 = 1e-4
        derived_weight = (
            CM2_TO_M2
            * weight_dict["OneWeight"]
            / n_files
            / weight_dict["gen_ratio"]
            / weight_dict["NEvents"]
        )
        container["weighted_aeff"] = derived_weight.astype(FTYPE)
        reco = self.reco
        reco_total_energy = (
            events[f"{reco}_cascade_energy"] + events[f"{reco}_track_energy"]
        )
        container["reco_energy"] = reco_total_energy.astype(FTYPE)
        container["reco_coszen"] = np.cos(events[f"{reco}_zenith"]).astype(FTYPE)
        container["reco_z"] = events[f"{reco}_z"].astype(FTYPE)
        container["reco_rho"] = events["rho_36"].astype(FTYPE)
        if self.track_E_cut is None:
            container["pid"] = events["L7_PIDClassifier_ProbTrack"].astype(FTYPE)
        else:
            pid = events[f"{reco}_track_energy"] > float(self.track_E_cut)
            container["pid"] = pid.astype(FTYPE)
        container["weights"] = np.ones(container.size, dtype=FTYPE)
        container["initial_weights"] = np.ones(container.size, dtype=FTYPE)
        container.set_aux_data("nubar", nubar)
        container.set_aux_data("flav", flav)
        self.data.add_container(container)
    if len(self.data.names) == 0:
        raise ValueError(
            "No containers created during data loading for some reason."
        )