Skip to content

Commit b14eaa8

Browse files
freddieknetsgiadarol
authored andcommitted
Fixed material instantiation in Geant4Collimator
1 parent 34ffff2 commit b14eaa8

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

xcoll/beam_elements/geant4.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,25 @@ def angle(self, val):
7979

8080
@property
8181
def material(self):
82-
return self._material
82+
if self._material != _DEFAULT_MATERIAL:
83+
return self._material
8384

8485
@material.setter
8586
def material(self, material):
8687
if material is None:
87-
material = Material()
88+
material = _DEFAULT_MATERIAL
8889
elif isinstance(material, dict):
8990
material = Material.from_dict(material)
9091
elif isinstance(material, str):
9192
material = material_db[material]
92-
if not isinstance(material, Material):
93-
raise ValueError("Invalid material!")
94-
self._material = material
93+
elif isinstance(material, RefMaterial):
94+
if material.geant4_name is None:
95+
raise ValueError(f"RefMaterial {material} does not have a Geant4 name!")
96+
if not isinstance(material, Material) \
97+
or isinstance(material, CrystalMaterial):
98+
raise ValueError(f"Invalid material of type {type(material)}!")
99+
if self.material != material:
100+
self._material = material
95101

96102

97103
def track(self, part):

0 commit comments

Comments
 (0)