diff --git a/mbtrack2/tracking/spacecharge.py b/mbtrack2/tracking/spacecharge.py index 7eb70f6175baa9a4083c31966d2b71f1f43f662d..3ecb779859145e733620a42b03b1e9d15daf8dca 100644 --- a/mbtrack2/tracking/spacecharge.py +++ b/mbtrack2/tracking/spacecharge.py @@ -86,15 +86,16 @@ class TransverseSpaceCharge(Element): x = bunch['x'][particle_ids] y = bunch['y'][particle_ids] - mean_x, std_x = x.mean(), x.std() - mean_y, std_y = y.mean(), y.std() - - en_x, en_y = get_displaced_efield(self.efieldn, - bunch['x'][particle_ids], - bunch['y'][particle_ids], std_x, - std_y, mean_x, mean_y) - - kicks_x = prefactor * en_x * charge_density[bin_index] - kicks_y = prefactor * en_y * charge_density[bin_index] - bunch['xp'][particle_ids] += kicks_x - bunch['yp'][particle_ids] += kicks_y + if len(x) != 0 and len(y) != 0: + mean_x, std_x = x.mean(), x.std() + mean_y, std_y = y.mean(), y.std() + + en_x, en_y = get_displaced_efield(self.efieldn, + bunch['x'][particle_ids], + bunch['y'][particle_ids], + std_x, std_y, mean_x, mean_y) + + kicks_x = prefactor * en_x * charge_density[bin_index] + kicks_y = prefactor * en_y * charge_density[bin_index] + bunch['xp'][particle_ids] += kicks_x + bunch['yp'][particle_ids] += kicks_y