Hello everyone,
I’m a bit confused regarding the role of the “REFLECTIVITY” parameter in the G4OpticalSurface.
Let’s say I create a new G4OpticalSurface between the volumes a and b with different materials, and assign it a certain reflectivity.
abSurface = new G4OpticalSurface()
G4MaterialPropertiesTable* abSurfaceMat = new G4MaterialPropertiesTable();
G4double abRefl[2] = { 0.2, 0.2 };
abSurfaceMat->AddProperty("REFLECTIVITY", photonEnergies_ConstProp, abRefl, 2);
abSurface->SetMaterialPropertiesTable(abSurfaceMat);
abSurface = new G4LogicalBorderSurface("abSurface",
a,
b,
abSurfaceMat);
but the two volumes, have two different G4Materials assigned, with their own G4MaterialPropertiesTable, and their own values of “REFLECTIVITY”.
a_material = new G4Material();
a_materialTable = new G4MaterialPropertiesTable();
a_materialTable->AddProperty("REFLECTIVITY", photonEnergies_ConstProp, aRefl, NUM_PP_ConstProp);
a_material->SetMaterialPropertiesTable(a_materialTable);
G4LogicalVolume* a = new G4LogicalVolume(a_solid, a_material, "a_log");
If the “REFLECTIVITY” between the two materials differ from the one defined in the G4OpticalSurface, what happens? Does G4OpticalSurface takes priority?
Also, if I’m defining a complex refractive index, for the abSurface with the volume a going first in the definition [ G4LogicalBorderSurface(“abSurface”,a,b) ] should the REALRINDEX and the IMAGRINDEX come from the ratio between the complex indices of a and b (and in particular, should it be b/a)?
Many thanks!!