11"""
2- Segment by Segment: Definitions
3- -------------------------------
2+ Definitions
3+ -----------
44
55This module provides definitions to be used with segment by segment
66"""
1111from uncertainties .core import Variable
1212from omc3 .utils .math_classes import MathMixin
1313
14- from omc3 .optics_measurements .constants import ERR
15- from omc3 .segment_by_segment .constants import BACKWARD , CORRECTION , EXPECTED , FORWARD
16-
17-
18- class PropagableColumns :
19- """ Class to define columns for propagables.
20- One could also implicitly define the error-columns,
21- either via __getattr__ or as a wrapper, but I decided to
22- explicitely name these columns, so that the IDEs can see them
23- and can help in renaming and autocompletion (jdilly 2023).
24- """
25- def __init__ (self , column : str , plane : str = "{}" ) -> None :
26- self ._column = column
27- self ._plane = plane
28-
29- def planed (self , plane : str ) -> PropagableColumns :
30- return PropagableColumns (self ._column , plane )
31-
32- @property
33- def column (self ):
34- return f"{ self ._column } { self ._plane } "
35-
36- @property
37- def error_column (self ):
38- return f"{ ERR } { self .column } "
39-
40- # Propagation ---
41- @property
42- def forward (self ):
43- return f"{ FORWARD } { self .column } "
44-
45- @property
46- def error_forward (self ):
47- return f"{ ERR } { self .forward } "
48-
49- @property
50- def backward (self ):
51- return f"{ BACKWARD } { self .column } "
52-
53- @property
54- def error_backward (self ):
55- return f"{ ERR } { self .backward } "
56-
57- # Correction ---
58- @property
59- def forward_correction (self ):
60- return f"{ CORRECTION } { self .forward } "
61-
62- @property
63- def error_forward_correction (self ):
64- return f"{ ERR } { self .forward_correction } "
65-
66- @property
67- def backward_correction (self ):
68- return f"{ CORRECTION } { self .backward } "
69-
70- @property
71- def error_backward_correction (self ):
72- return f"{ ERR } { self .backward_correction } "
73-
74- # Expectation ---
75- @property
76- def forward_expected (self ):
77- return f"{ EXPECTED } { self .forward } "
78-
79- @property
80- def error_forward_expected (self ):
81- return f"{ ERR } { self .forward_expected } "
82-
83- @property
84- def backward_expected (self ):
85- return f"{ EXPECTED } { self .backward } "
86-
87- @property
88- def error_backward_expected (self ):
89- return f"{ ERR } { self .backward_expected } "
90-
9114
9215class Measurement (MathMixin , Variable ):
9316 """ Alias for a uncertainties variable.
@@ -110,19 +33,6 @@ def __iter__(self):
11033 return iter (self .as_tuple ())
11134
11235
113-
114- @dataclass
115- class PropagableBoundaryConditions :
116- """Store boundary conditions with error for propagating."""
117- alpha : Measurement = None
118- beta : Measurement = None
119- dispersion : Measurement = None
120- f1001_amplitude : Measurement = None
121- f1001_phase : Measurement = None
122- f1010_amplitude : Measurement = None
123- f1010_phase : Measurement = None
124-
125-
12636@dataclass
12737class MadXBoundaryConditions :
12838 """Store all boundary conditions for a Mad-X twiss."""
0 commit comments