G4OpticalSurface "REFLECTIVITY" overriding material "REFLECTIVITY"

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!!

1 Like

Hi, this article may be helpful to you. https://arxiv.org/pdf/1612.05162.pdf

(This post would be better in the Physics Processes forum.)

Assigning a REFLECTIVITY to a material (as opposed to a surface) should have no effect in Geant4, unless you are writing your own process. Are you trying to do something more complicated than the surface REFLECTIVITY allows? If not, specify the surface REFLECTIVITY as in the documentation and examples.

As for the complex index of refraction: The code appears to use the (possibly complex) indices of refraction of both materials:
https://geant4.kek.jp/lxr/source/processes/optical/src/G4OpBoundaryProcess.cc#L1221

If you want to use the complex index of refraction functionality, I would urge you to set up a simple geometry and compare simulated results to what you expect. Example extended/optical/OpNovice2 is useful for this. Let me know what you find. Note that (I believe) you can get all of the functionality by specifying your own surface reflectivity.