Cannot get dielectric/dielectric interface to reflect optical photons

I’m running a Geant4 10.5 patch 01 simulation to test the effect of different coatings on scintillators. For the initial tests, I am using a general particle source (GPS) isotropically emitting 1 MeV electrons at the center of a 2.54 cm x 2.54 cm cylindrical NE213 scintillator. I am counting the number of optical photons that intersect one of the flat faces of the scintillator (where the PMT would be coupled). My code is a modified version of OpNovice from the Geant4 examples, which I have modified to allow particle-dependent scintillation yields and which counts scintillation and optical photons and records their properties at the PMT face.

The simple geometry consists of the scintillator, completely surrounded by a cylindrical aluminum container with 2 mm thick walls, except for the one flat side where optical photons are counted. That side is made of glass. I am varying optical properties of the aluminum can to study the impact on the number of optical photons detected by the PMT.

When I use a dielectric/metal interface with either Glisur or Unified model, things behave roughly as expected. If I set the container reflectivity to 0%, I get a minimum number of photons detected (173102), which roughly agrees with the number expected from geometry considerations (175083; the average of two simple geometry approximations 161250,188916). As reflectivity increases to 100%, the number of photons detected increases proportionally, as expected. Ground or polished finishes give the same result, and unified/backpainted apparently has 0% reflection.

However, the dielectric/dielectric interface with either Glisur or Unified model yields slightly less than 0% reflected photons no matter what parameters I choose. I have tried all the combinations that I used for dielectric/metal plus I have tried varying the fractions of specular lobe to specular spike to backscatter. I have tried including the refractive index of the container. I used both a real refractive index (real part of that for Al and also that for air) and out of desperation a complex refractive index for aluminum (although I recognize that only real index is supposed to be used for dielectric/dielectric.)

I have read all the G4 documentation including the Boundary Process Section in Physics Processes Book for Application Developers and all related papers that I can find. I have even gone through the and .hh source code.

But the dielectric/dielectric interface just does not reflect any optical photons. Am I missing something obvious?

I have attached a screenshot of a spreadsheet of some results. Calculated and expected photon numbers are highlighted in orange for each run.

It’s tricky to get the boundary parameters correct. I’d suggest simplifying the problem. Try example extended/optical/OpNovice2, and shoot photons at a surface. Try to set the surface parameters so that the results are what you expect.

Note that REFLECTIVITY is actually 1 minus the absorption coefficient. Thus if you have say dielectric_dielectric, polished finished, REFLECTIVITY=1, it’s possible few photons will be reflected. It should just be Snell’s law.

Also make sure both materials have RINDEX defined when using dielectric_dielectric.

Thank you for the reply. I am aware that reflectivity is 1-absorption coefficient for dielectric_dielectric surfaces and that reflections are really based on the relative material refractive indices and Snell’s Law. (According to the flow chart Figure 17 of the Book for Application Developers, GroundFrontPainted is an exception in dielectric_dielectric. For it, the reflection probability is set by reflectivity. It also seems to work correctly.) The refractive indices I chose should have generated significant reflections due to total reflection, but I will check again more thoroughly. RINDEX was defined for both materials over the appropriate optical photon energy range for many of the runs I did. (Not all, because I was eventually trying all kinds of options in desperation.)

I like your idea of using a simplified problem to test this out and I’ll look at example extended/optical/OpNovice2.