@@ -127,6 +127,29 @@ class EdgeQuantumNumbers:
127
127
EdgeQuantumNumbers .g_parity ,
128
128
]
129
129
130
+ # for accessing the keys of the dicts in EdgeSettings
131
+ EdgeQuantumNumberTypes = Union [
132
+ type [EdgeQuantumNumbers .pid ],
133
+ type [EdgeQuantumNumbers .mass ],
134
+ type [EdgeQuantumNumbers .width ],
135
+ type [EdgeQuantumNumbers .spin_magnitude ],
136
+ type [EdgeQuantumNumbers .spin_projection ],
137
+ type [EdgeQuantumNumbers .charge ],
138
+ type [EdgeQuantumNumbers .isospin_magnitude ],
139
+ type [EdgeQuantumNumbers .isospin_projection ],
140
+ type [EdgeQuantumNumbers .strangeness ],
141
+ type [EdgeQuantumNumbers .charmness ],
142
+ type [EdgeQuantumNumbers .bottomness ],
143
+ type [EdgeQuantumNumbers .topness ],
144
+ type [EdgeQuantumNumbers .baryon_number ],
145
+ type [EdgeQuantumNumbers .electron_lepton_number ],
146
+ type [EdgeQuantumNumbers .muon_lepton_number ],
147
+ type [EdgeQuantumNumbers .tau_lepton_number ],
148
+ type [EdgeQuantumNumbers .parity ],
149
+ type [EdgeQuantumNumbers .c_parity ],
150
+ type [EdgeQuantumNumbers .g_parity ],
151
+ ]
152
+
130
153
131
154
@frozen (init = False )
132
155
class NodeQuantumNumbers :
@@ -155,6 +178,15 @@ class NodeQuantumNumbers:
155
178
]
156
179
"""Type hint for quantum numbers of interaction nodes."""
157
180
181
+ # for accessing the keys of the dicts in NodeSettings
182
+ NodeQuantumNumberTypes = Union [
183
+ type [NodeQuantumNumbers .l_magnitude ],
184
+ type [NodeQuantumNumbers .l_projection ],
185
+ type [NodeQuantumNumbers .s_magnitude ],
186
+ type [NodeQuantumNumbers .s_projection ],
187
+ type [NodeQuantumNumbers .parity_prefactor ],
188
+ ]
189
+
158
190
159
191
def _to_optional_float (optional_float : float | None ) -> float | None :
160
192
if optional_float is None :
0 commit comments