def __init__(self, max_core_distance, min_energy, max_energy, *args,
                 **kwargs):
        """Simulation initialization

        :param max_core_distance: maximum distance of shower core to
                                  center of cluster (in meters).
        :param min_energy,max_energy: Minimum and maximum energy of the
                                      shower (in eV).

        """
        super(BaseLdfSimulation, self).__init__(*args, **kwargs)

        self.ldf = BaseLdf()
        self.max_core_distance = max_core_distance
        self.min_energy = min_energy
        self.max_energy = max_energy

        # The cluster is not moved, so detector positions can be stored.
        for station in self.cluster.stations:
            for detector in station.detectors:
                detector.xy_coordinates = detector.get_xy_coordinates()