18
18
from sans .state .StateObjects .StateMaskDetectors import get_mask_builder , StateMaskDetectors
19
19
from sans .state .StateObjects .StateMoveDetectors import get_move_builder
20
20
from sans .state .StateObjects .StateNormalizeToMonitor import get_normalize_to_monitor_builder
21
- from sans .state .StateObjects .StatePolarization import StatePolarization , StateComponent , StateFilter
21
+ from sans .state .StateObjects .StatePolarization import StatePolarization , StateComponent , StateFilter , StateField
22
22
from sans .state .StateObjects .StateReductionMode import StateReductionMode
23
23
from sans .state .StateObjects .StateSave import StateSave
24
24
from sans .state .StateObjects .StateScale import StateScale
@@ -531,6 +531,8 @@ def _parse_polarization(self):
531
531
self .polarization .flippers .append (self ._parse_component (flipper_dict ))
532
532
self .polarization .polarizer = self ._parse_filter (self .get_val ("polarizer" , polarization_dict ))
533
533
self .polarization .analyzer = self ._parse_filter (self .get_val ("analyzer" , polarization_dict ))
534
+ self .polarization .magnetic_field = self ._parse_field (self .get_val ("magnetic_field" , polarization_dict ))
535
+ self .polarization .electric_field = self ._parse_field (self .get_val ("electric_field" , polarization_dict ))
534
536
535
537
def _parse_component (self , component_dict : dict ) -> StateComponent :
536
538
component_state = StateComponent ()
@@ -557,6 +559,19 @@ def _parse_filter(self, filter_dict: dict) -> StateFilter:
557
559
filter_state .gas_pressure = self .get_val ("gas_pressure" , filter_dict )
558
560
return filter_state
559
561
562
+ def _parse_field (self , field_dict : dict ) -> StateField :
563
+ field_state = StateField ()
564
+ if field_dict is None :
565
+ return field_state
566
+ field_state .sample_strength_log = self .get_val ("sample_strength_log" , field_dict )
567
+ direction_dict = self .get_val ("sample_direction" , field_dict )
568
+ if direction_dict :
569
+ field_state .sample_direction_a = self .get_val ("a" , direction_dict )
570
+ field_state .sample_direction_p = self .get_val ("p" , direction_dict )
571
+ field_state .sample_direction_d = self .get_val ("d" , direction_dict )
572
+ field_state .sample_direction_log = self .get_val ("sample_direction_log" , field_dict )
573
+ return field_state
574
+
560
575
@staticmethod
561
576
def _get_1d_min_max (one_d_binning : str ):
562
577
# TODO: We have to do some special parsing for this type on behalf of the sans codebase
0 commit comments