RegionBase region = chamber.getSubRegions().get(0);
IMaterialScatterModel model = region.getScatterModel();
assertEquals(1234, FromSI.eV(model.getMinEforTracking()), 1e-4);
Material mat = region.getMaterial();
assertEquals("Si3N4", mat.getName());
assertEquals(3.44, mat.getDensity(), 1e-2);
assertEquals(2, mat.getElementSet().size());
Shape shape = region.getShape();
assertFalse(shape.contains(new double[] { 0.0, 0.0, 0.01 })); // above
assertTrue(shape.contains(new double[] { 0.0, 0.0, -25e-9 })); // in
assertFalse(shape.contains(new double[] { 0.0, 0.0, -0.01 })); // below
// Test layer 2
region = chamber.getSubRegions().get(1);
model = region.getScatterModel();
assertEquals(4321, FromSI.eV(model.getMinEforTracking()), 1e-4);
mat = region.getMaterial();
assertEquals("Al2O3", mat.getName());
assertEquals(4.53, mat.getDensity(), 1e-2);
assertEquals(2, mat.getElementSet().size());
shape = region.getShape();
assertFalse(shape.contains(new double[] { 0.0, 0.0, -25e-9 })); // above
assertTrue(shape.contains(new double[] { 0.0, 0.0, -125e-9 })); // in
assertFalse(shape.contains(new double[] { 0.0, 0.0, -0.01 })); // below
// Test substrate
region = chamber.getSubRegions().get(2);
model = region.getScatterModel();
assertEquals(50.0, FromSI.eV(model.getMinEforTracking()), 1e-4);
mat = region.getMaterial();
assertEquals("Pure gold", mat.getName());
assertEquals(19300, mat.getDensity(), 1e-2);
assertEquals(1, mat.getElementSet().size());
}