Skip to content

Commit 5be1610

Browse files
committed
2 parents 9ba4537 + 072a7ee commit 5be1610

File tree

3 files changed

+41
-16
lines changed

3 files changed

+41
-16
lines changed

particles/generators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def get_zc_for_epsn_z(ec):
302302
H.zleft_for_eps, H.zright_for_eps = zc_left, zc_right
303303
H.emittance, H.sigma = emittance, sigma
304304

305-
@profile
305+
# @profile
306306
def psi_for_bunchlength_newton_method(self, sigma):
307307
H = self.H
308308

@@ -454,7 +454,7 @@ def _set_psi_sigma(self, sigma):
454454
def _set_psi_epsn(self, epsn):
455455
self.psi_object.H0 = self.H.H0_from_epsn(epsn)
456456

457-
@profile
457+
# @profile
458458
def _get_edges_for_cut(self, h_cut):
459459
zz = np.linspace(self.H.zmin, self.H.zmax, 128)
460460
ll = self.linedensity(zz)
File renamed without changes.

trackers/longitudinal_tracker2.py renamed to trackers/simple_long_tracker_2.py

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,8 @@ class RFSystems(LongitudinalOneTurnMap):
449449
"""
450450

451451
def __init__(self, circumference, harmonic_list, voltage_list, phi_offset_list,
452-
alpha_array, gamma_reference, p_increment=0,
453-
phase_lock=True, shrinking=False, slices_tuple=None):
452+
alpha_array, gamma_reference, p_increment=0, phase_lock=True,
453+
shrink_transverse=True, shrink_longitudinal=False, slices_tuple=None):
454454
"""
455455
The first entry in harmonic_list, voltage_list and
456456
phi_offset_list defines the parameters for the one
@@ -496,7 +496,9 @@ def __init__(self, circumference, harmonic_list, voltage_list, phi_offset_list,
496496

497497
super(RFSystems, self).__init__(alpha_array, circumference)
498498

499-
self._shrinking = shrinking
499+
self._shrinking = shrink_longitudinal
500+
self._shrink_transverse = shrink_transverse
501+
500502
if not len(harmonic_list) == len(voltage_list) == len(phi_offset_list):
501503
print ("Warning: parameter lists for RFSystems " +
502504
"do not have the same length!")
@@ -507,7 +509,7 @@ def __init__(self, circumference, harmonic_list, voltage_list, phi_offset_list,
507509
+ self.kicks
508510
+ [Drift(alpha_array, self.circumference / 2)]
509511
)
510-
self.fundamental_cavity = min(self.kicks, key=lambda kick: kick.harmonic)
512+
self.fundamental_kick = min(self.kicks, key=lambda kick: kick.harmonic)
511513
self.p_increment = p_increment
512514

513515
# Reference energy and make eta0, resp. "machine gamma_tr" available for all routines
@@ -525,10 +527,10 @@ def __init__(self, circumference, harmonic_list, voltage_list, phi_offset_list,
525527

526528
@property
527529
def p_increment(self):
528-
return self.fundamental_cavity.p_increment
530+
return self.fundamental_kick.p_increment
529531
@p_increment.setter
530532
def p_increment(self, value):
531-
self.fundamental_cavity.p_increment = value
533+
self.fundamental_kick.p_increment = value
532534
if self._shrinking:
533535
self.elements[-1].shrinkage_p_increment = value
534536

@@ -582,14 +584,14 @@ def beta_z(self):
582584

583585
@property
584586
def Qs(self):
585-
fc = self.fundamental_cavity
587+
fc = self.fundamental_kick
586588
V = fc.voltage
587589
h = fc.harmonic
588590
return np.sqrt( e*V*np.abs(self.eta0)*h / (2*np.pi*self.p0_reference*self.beta_reference*c) )
589591

590592
@property
591593
def phi_s(self):
592-
V = self.fundamental_cavity.voltage
594+
V = self.fundamental_kick.voltage
593595

594596
if self.p_increment == 0 and V == 0:
595597
return 0
@@ -621,16 +623,39 @@ def track(self, beam):
621623
for longMap in self.elements:
622624
longMap.track(beam)
623625
if self.p_increment:
624-
self.p0_reference += self.p_increment
625-
if self._shrinking: # TODO: quick fix; need to think better how to treat purely long. tracking
626+
try:
626627
self._shrink_transverse_emittance(beam, np.sqrt(betagamma_old / beam.betagamma))
628+
self.track = self.track_transverse_shrinking
629+
except AttributeError:
630+
self.track = self.track_no_transverse_shrinking
631+
self.p0_reference += self.p_increment
632+
627633
if self.slices_tuple:
628634
for slices in self.slices_tuple:
629635
slices.update_slices(beam)
630636

631-
def track_transverse_shrinking(self): pass
632-
def track_longitudinal_shrinking(self): pass
633-
def track_shrinking(self): pass
637+
def track_transverse_shrinking(self, beam):
638+
if self.p_increment:
639+
betagamma_old = beam.betagamma
640+
for longMap in self.elements:
641+
longMap.track(beam)
642+
if self.p_increment:
643+
self._shrink_transverse_emittance(beam, np.sqrt(betagamma_old / beam.betagamma))
644+
self.p0_reference += self.p_increment
645+
646+
if self.slices_tuple:
647+
for slices in self.slices_tuple:
648+
slices.update_slices(beam)
649+
650+
def track_no_transverse_shrinking(self, beam):
651+
for longMap in self.elements:
652+
longMap.track(beam)
653+
if self.p_increment:
654+
self.p0_reference += self.p_increment
655+
656+
if self.slices_tuple:
657+
for slices in self.slices_tuple:
658+
slices.update_slices(beam)
634659

635660
def set_voltage_list(self, voltage_list):
636661
for i, V in enumerate(voltage_list):
@@ -718,7 +743,7 @@ def bucket_area(self):
718743

719744
def _phaselock(self):
720745

721-
fc = self.fundamental_cavity
746+
fc = self.fundamental_kick
722747
cavities = [k for k in self.kicks if k is not fc]
723748

724749
for c in cavities:

0 commit comments

Comments
 (0)