Dear experts,
I am simulating a WLS slab: optical photons enter the volume, get downshifted and travel in the slab trapped mainly by total internal reflection. I would like to implement a way to have 1-2% of the photon boundary interactions being simple transmission (not TIR or Frenel/Snell) to take into account surface imperfections.
I tried to define a “G4OpticalSurface” (dielectric_dielectric,unified, polished): as far I as I understood from the documentation and explanations I found in this forum, what I need is REFLECTIVITY=0.99 and TRANSMITTANCE=0.01 so that no photon gets absorbed, 1% goes straight through (no change in momentum direction) and 99% are treated the same as with no OpticalSurface (the surface is transparent and the dielectic_dielectric processes take place).
This is not the result I get, though. What I observe is that If I set REFELCTIVITY=0.99 almost all photons are (specularly) reflected at the surface while I would expect most of them being refracted. If I set TRANSMITTANCE=1 and REFLECTION=0 I see refractions (same result as no OpticalSurface). I tried both with “G4LogicalSkinSurface” and “G4LogicalBorderSurface” (inwards and/or outwards the WLS slab) and I never obtain the behaivuor I want. Here are some tests:
1 - no optical surface: behaves as expected
2 - skin surface: photons are reflected and cannot get into the WLS slab
3 - border surface inwards (world volume → WLS slab): same as 1
4 - border surface outwards: photons that get inside (as 1) get downshifted and remain almost completely trapped until they are absorbed
5 - skin surface with REFLECTIVITY=0 and TRANSMITTANCE=1: photons are still refracted not transmitted (result similar to 1)
6 - skin surface with REFLECTIVITY=TRANSMITTANCE=0.1: I would expect all the photons to get absorbed at the surface but I obtain this. A photon has a low probability to get in and then is trapped while most of them are specularly reflected
(I have pictures for all cases but I can only upload one)
All the materials have their refractive inex defined and assigned to their MPT (I can see that from a dump), with all other needed properties (absorption, Rayleigh, etc…).
Am I missing something?
Thank you,
Luca
_Geant4 Version:_11.0.3
_Operating System:_ubuntu 20.04
_Compiler/Version:_GNU 9.4.0
_CMake Version:_3.16.3