From 33b912a2b860c8c76398c0e17496fcc52133f8d5 Mon Sep 17 00:00:00 2001
From: gubaidulinvadim <gubaidulinvadim@gmail.com>
Date: Mon, 12 Aug 2024 14:26:09 +0200
Subject: [PATCH] -added a check on number of particles in a slice to prevent
 mean of empty slice warnings

---
 mbtrack2/tracking/spacecharge.py | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/mbtrack2/tracking/spacecharge.py b/mbtrack2/tracking/spacecharge.py
index 7eb70f6..3ecb779 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
-- 
GitLab