Skip to content

Commit 62da91e

Browse files
committed
Bug fix (issue #903)
1 parent df1110b commit 62da91e

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

pyat/at/latticetools/response_matrix.py

+14-11
Original file line numberDiff line numberDiff line change
@@ -602,9 +602,6 @@ def set_norm():
602602

603603
pl = plane_(plane, "index")
604604
plcode = plane_(plane, "code")
605-
ids = ring.get_uint32_index(steerrefs)
606-
nbsteers = len(ids)
607-
deltas = np.broadcast_to(steerdelta, nbsteers)
608605
if steersum and stsumweight is None or cavrefs and cavdelta is None:
609606
cavd, stsw = set_norm()
610607

@@ -628,6 +625,9 @@ def set_norm():
628625
observables.append(sumobs)
629626

630627
# Variables
628+
ids = ring.get_uint32_index(steerrefs)
629+
nbsteers = len(ids)
630+
deltas = np.broadcast_to(steerdelta, nbsteers)
631631
variables = VariableList(steerer(ik, delta) for ik, delta in zip(ids, deltas))
632632
if cavrefs is not None:
633633
active = (el.longt_motion for el in ring.select(cavrefs))
@@ -642,13 +642,12 @@ def set_norm():
642642
)
643643
variables.append(cavvar)
644644

645+
super().__init__(ring, variables, observables)
645646
self.plane = pl
646647
self.steerrefs = ids
647648
self.nbsteers = nbsteers
648649
self.bpmrefs = ring.get_uint32_index(bpmrefs)
649650

650-
super().__init__(ring, variables, observables)
651-
652651
def normalise(
653652
self, cav_ampl: float | None = 2.0, stsum_ampl: float | None = 2.0
654653
) -> None:
@@ -813,9 +812,9 @@ def __init__(
813812
also the steerer weight. Must be broadcastable to the number of steerers.
814813
"""
815814

816-
def steerer(ik):
815+
def steerer(ik, delta):
817816
name = f"{plcode}{ik:04}"
818-
return RefptsVariable(ik, "KickAngle", index=pl, name=name)
817+
return RefptsVariable(ik, "KickAngle", index=pl, name=name, delta=delta)
819818

820819
pl = plane_(plane, "index")
821820
plcode = plane_(plane, "code")
@@ -826,12 +825,16 @@ def steerer(ik):
826825
)
827826
observables = ObservableList([bpms])
828827
# Variables
829-
steeridx = ring.get_uint32_index(steerrefs)
830-
variables = VariableList(steerer(idx) for idx in steeridx)
831-
832-
self.steerdelta = steerdelta
828+
ids = ring.get_uint32_index(steerrefs)
829+
nbsteers = len(ids)
830+
deltas = np.broadcast_to(steerdelta, nbsteers)
831+
variables = VariableList(steerer(ik, delta) for ik, delta in zip(ids, deltas))
833832

834833
super().__init__(ring, variables, observables)
834+
self.plane = plane
835+
self.steerrefs = ids
836+
self.nbsteers = nbsteers
837+
self.bpmrefs = ring.get_uint32_index(bpmrefs)
835838

836839
@property
837840
def bpmweight(self):

0 commit comments

Comments
 (0)