From 11ec12f3c76418204e64e87d417ec79b15f27cd7 Mon Sep 17 00:00:00 2001
From: Alexis Gamelin <alexis.gamelin@synchrotron-soleil.fr>
Date: Wed, 5 Mar 2025 10:31:41 +0100
Subject: [PATCH] Add test flags

---
 mbtrack2/tracking/beam_ion_effects.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/mbtrack2/tracking/beam_ion_effects.py b/mbtrack2/tracking/beam_ion_effects.py
index 5e49ca5..db05c8d 100644
--- a/mbtrack2/tracking/beam_ion_effects.py
+++ b/mbtrack2/tracking/beam_ion_effects.py
@@ -547,6 +547,9 @@ class BeamIonElement(Element):
         self.generate_ions = generate_ions
         self.beam_ion_interaction = beam_ion_interaction
         self.ion_drift = ion_drift
+        
+        self.init_asbefore = True
+        self.switch_new = True
 
         # interfaces for apertures and montiors
         self.apertures = []
@@ -641,7 +644,7 @@ class BeamIonElement(Element):
             raise ValueError(
                 f"The implementation for required beam-ion interaction model \
                 {field_model} is not implemented")
-        if isinstance(second_beam, IonParticles):
+        if isinstance(second_beam, IonParticles) and self.switch_new:
             sb_mx, sb_my, sb_stdx, sb_stdy = second_beam.mean_std_xy
         else:
             sb_mx, sb_stdx = (
@@ -664,7 +667,7 @@ class BeamIonElement(Element):
             )
 
         elif field_model == "strong":
-            if isinstance(first_beam, IonParticles):
+            if isinstance(first_beam, IonParticles) and self.switch_new:
                 fb_mx, fb_my = first_beam.mean_xy
             else:
                 fb_mx, fb_my = (
@@ -788,7 +791,11 @@ class BeamIonElement(Element):
 
         if not empty_bucket and self.generate_ions:
             self.generate_new_ions(electron_bunch=electron_bunch)
-
+            
+            if self.init_asbefore:
+                self.init_asbefore = False
+                self.ion_beam["charge"][0] = self.ion_beam["charge"][1]
+        
         for aperture in self.apertures:
             aperture.track(self.ion_beam)
 
-- 
GitLab