Skip to content

Commit f7eb1fd

Browse files
committed
[TASK] added tune in twiss results
1 parent 734ef1c commit f7eb1fd

File tree

5 files changed

+14
-5
lines changed

5 files changed

+14
-5
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44

55
[tool.poetry]
66
name = "dt4acc"
7-
version = "0.0.4"
7+
version = "0.0.3"
88
description = "digital twin for accelerators"
99
authors = [ "Waheedullah Sulaiman Khail", "Pierre Schnizer"]
1010
license = "GPL-3.0"

src/dt4acc/core/calculations/pyat_calculator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ def calculate(self) -> TwissWithAggregatedKValues:
7171
}
7272
try:
7373
if self.machine.closed: # this means it is a ring
74-
_, __, twiss = self.acc.get_optics(at.All)
74+
_, summary, twiss = self.acc.get_optics(at.All)
7575
else:
76-
_, __, twiss = self.acc.get_optics(at.All, twiss_in=twiss_in) # for transfer line
76+
_, summary, twiss = self.acc.get_optics(at.All, twiss_in=twiss_in) # for transfer line
7777

7878
main_values = self._extract_pv_values()
7979

8080
return TwissWithAggregatedKValues(
81-
x=TwissForPlane(alpha=twiss["alpha"][:, 0], beta=twiss["beta"][:, 0], nu=twiss["mu"][:, 0]),
82-
y=TwissForPlane(alpha=twiss["alpha"][:, 1], beta=twiss["beta"][:, 1], nu=twiss["mu"][:, 1]),
81+
x=TwissForPlane(alpha=twiss["alpha"][:, 0], beta=twiss["beta"][:, 0], nu=twiss["mu"][:, 0], tune= summary["tune"][0]),
82+
y=TwissForPlane(alpha=twiss["alpha"][:, 1], beta=twiss["beta"][:, 1], nu=twiss["mu"][:, 1], tune= summary["tune"][1]),
8383
names=_construct_name_list(self.acc),
8484
main_values=main_values
8585
)

src/dt4acc/core/model/twiss.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class TwissForPlane:
1111
alpha: Sequence[float]
1212
beta: Sequence[float]
1313
nu: Sequence[float]
14+
tune: float
1415

1516
@dataclass
1617
class MainValue:

src/dt4acc/custom_epics/ioc/pv_setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ def initialize_twiss_pvs(builder):
164164
builder.WaveformOut(
165165
f"beam:twiss:{axis}:nu", initial_value=[0.0], length=config.n_elements
166166
)
167+
builder.aOut(f"beam:twiss:{axis}:tune", initial_value=0.0, PREC=8)
167168
builder.WaveformOut(
168169
f"beam:twiss:names", initial_value=[""], length=config.n_elements
169170
)

src/dt4acc/custom_epics/views/calculation_result_view.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import itertools
12
from datetime import datetime
23
from typing import Sequence
34

@@ -30,15 +31,21 @@ async def update_orbit_pv(pv_name, orbit_result):
3031

3132

3233
async def update_twiss_pv(pv_name, twiss_result):
34+
logger.warning(f"Updating twiss values {twiss_result.x.alpha}")
3335
try:
36+
# todo: use translation service to provide the calc
37+
await ctx.put(f"{pv_name}:x:tune", float(twiss_result.x.tune) )
3438
await ctx.put(f"{pv_name}:x:alpha", twiss_result.x.alpha)
3539
await ctx.put(f"{pv_name}:x:beta", twiss_result.x.beta)
3640
await ctx.put(f"{pv_name}:x:nu", twiss_result.x.nu)
41+
await ctx.put(f"{pv_name}:y:tune", float(twiss_result.y.tune) )
3742
await ctx.put(f"{pv_name}:y:alpha", twiss_result.y.alpha)
3843
await ctx.put(f"{pv_name}:y:beta", twiss_result.y.beta)
3944
await ctx.put(f"{pv_name}:y:nu", twiss_result.y.nu)
45+
logger.warning("Updated twiss values")
4046
# await ctx.put(f"{pv_name}:names", twiss_result.names)
4147
except Exception as e:
48+
logger.warning("FAILED Updated twiss values: %s", e)
4249
logger.error(f"Failed to update or create twiss PV {pv_name}: {e}")
4350
try:
4451

0 commit comments

Comments
 (0)