@@ -41,6 +41,10 @@ class Settings:
4141
4242 Attributes
4343 ----------
44+ atomic_relaxation : bool
45+ Whether to simulate the atomic relaxation cascade (fluorescence photons
46+ and Auger electrons) following photoelectric and incoherent scattering
47+ interactions.
4448 batches : int
4549 Number of batches to simulate
4650 confidence_intervals : bool
@@ -402,6 +406,7 @@ def __init__(self, **kwargs):
402406 self ._confidence_intervals = None
403407 self ._electron_treatment = None
404408 self ._photon_transport = None
409+ self ._atomic_relaxation = None
405410 self ._plot_seed = None
406411 self ._ptables = None
407412 self ._uniform_source_sampling = None
@@ -663,6 +668,15 @@ def electron_treatment(self, electron_treatment: str):
663668 electron_treatment , ['led' , 'ttb' ])
664669 self ._electron_treatment = electron_treatment
665670
671+ @property
672+ def atomic_relaxation (self ) -> bool :
673+ return self ._atomic_relaxation
674+
675+ @atomic_relaxation .setter
676+ def atomic_relaxation (self , atomic_relaxation : bool ):
677+ cv .check_type ('atomic relaxation' , atomic_relaxation , bool )
678+ self ._atomic_relaxation = atomic_relaxation
679+
666680 @property
667681 def ptables (self ) -> bool :
668682 return self ._ptables
@@ -1631,6 +1645,11 @@ def _create_electron_treatment_subelement(self, root):
16311645 element = ET .SubElement (root , "electron_treatment" )
16321646 element .text = str (self ._electron_treatment )
16331647
1648+ def _create_atomic_relaxation_subelement (self , root ):
1649+ if self ._atomic_relaxation is not None :
1650+ element = ET .SubElement (root , "atomic_relaxation" )
1651+ element .text = str (self ._atomic_relaxation ).lower ()
1652+
16341653 def _create_photon_transport_subelement (self , root ):
16351654 if self ._photon_transport is not None :
16361655 element = ET .SubElement (root , "photon_transport" )
@@ -2129,6 +2148,11 @@ def _electron_treatment_from_xml_element(self, root):
21292148 if text is not None :
21302149 self .electron_treatment = text
21312150
2151+ def _atomic_relaxation_from_xml_element (self , root ):
2152+ text = get_text (root , 'atomic_relaxation' )
2153+ if text is not None :
2154+ self .atomic_relaxation = text in ('true' , '1' )
2155+
21322156 def _energy_mode_from_xml_element (self , root ):
21332157 text = get_text (root , 'energy_mode' )
21342158 if text is not None :
@@ -2478,6 +2502,7 @@ def to_xml_element(self, mesh_memo=None):
24782502 self ._create_collision_track_subelement (element )
24792503 self ._create_confidence_intervals (element )
24802504 self ._create_electron_treatment_subelement (element )
2505+ self ._create_atomic_relaxation_subelement (element )
24812506 self ._create_energy_mode_subelement (element )
24822507 self ._create_max_order_subelement (element )
24832508 self ._create_photon_transport_subelement (element )
@@ -2594,6 +2619,7 @@ def from_xml_element(cls, elem, meshes=None):
25942619 settings ._collision_track_from_xml_element (elem )
25952620 settings ._confidence_intervals_from_xml_element (elem )
25962621 settings ._electron_treatment_from_xml_element (elem )
2622+ settings ._atomic_relaxation_from_xml_element (elem )
25972623 settings ._energy_mode_from_xml_element (elem )
25982624 settings ._max_order_from_xml_element (elem )
25992625 settings ._photon_transport_from_xml_element (elem )
0 commit comments