G4OpticalSurface coated surface with AR coating

I was trying to simulate a large CsI crystal layer coupled to small SiPM with a reflective cavity. The optics here seems that adding a anti-reflective layer on the CsI crystal’s cavity-facing surface can help improve performance.

However I’m quite confused about how the finish parameters should be set. And also, the code seems to read the surface’s RINDEX property and use it with COATEDRINDEX, what do they represent respectively? And what does the flag COATEDFRUSTRATEDTRANSMISSION do?

My current code looks like this:

        G4OpticalSurface* opCrystalCavitySurface = new G4OpticalSurface("CrystalCavitySurface");

        /* the rindex table */
        G4MaterialPropertiesTable* myST = new G4MaterialPropertiesTable();
        myST->AddProperty("COATEDRINDEX", photonEnergy, rindex, count);
        myST->AddConstProperty("COATEDTHICKNESS", 550*nm * 0.25);
        myST->AddConstProperty("COATEDFRUSTRATEDTRANSMISSION", 0);

The COATEDRINDEX is set to 1.37 to represent MgF2 coating. Using polishedbackpainted
stops much of the optical photons at boundary, whereas polishedfrontpainted and polished reflects much more than not specifying the surface as optical surface and adding the AR coating.

Geant4 Version: geant4-11-01-patch-01 [MT] (10-February-2023)
Operating System: Windows
Compiler/Version: MSVC
CMake Version: 3.24.2

1 Like

I believe the idea of the thin coating work is that there are 3 dielectrics. A painted surface replaces one of the dielectrics with a mirror coating. So your choices for finish are polished or ground.

The flag COATEDFRUSTRATEDTRANSMISSION specifies whether to simulate frustrated transmission or not.

There may be more information in the authors’ paper, here:

1 Like