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