Message: Is it possible to set reflectivity of an optical surface dependent on the angle of incidence of an optical photon?  Not Logged In (login) 
I have been working on simulating a RICH detector with a solid cherenkov radiator (made of quartz), and so far I have come quite far. What I would like to be able to do is to be able to set the reflectivity of an optical surface dependent on the angle of incidence of the optical photon.
The motivation for this can be found in the modelling of the reflective surface that we are employing. The quartz surface is extremely polished (to a precision on the order of 0.51nm). For such a surface, the reflectivity of the surface can be written as: R = 1  (4*pi * sigma * n * cos(theta) / lambda ) ^ 2 (this is the quadratic approximation of what is otherwise an exponential, but that is fine for now) The source for this is a presentation by J. Schwiening on the PANDA DIRC, at TIPP2011, slide 34, link: http://indico.cern.ch/event/102998/session/31/contribution/124/material/slides/0.pdf Here pi = the constant, as usual, sigma the surface roughness (from here on taken to be 0.5nm), theta the angle relative to the plane it is reflecting off (so theta = 0 is a ray parallel to the surface), and lambda the wavelength. Since we have a relatively thin plane (~1cm) that is large in size (several meters in both dimensions) the reflectivity of the surface is an issue. I have been setting the reflectivity using the specular spike constant. To estimate the scattered photons conservatively as well, I have set the diffuse lobe constant to be one minus this reflectivity. This conservatively lowers our photon yield (at the detector) further than expected. Is there a way that you would recommend in which I can make the surface reflectivity depend on the angle of incidence of the photon? The only ways I have been able to think of for now would involve calculating the reflectivity each time an optical photon meets the surface, and then steering it into the diffuse lobe constant if it doesn't meet this criterion. Alternatively, I could check how many times a photon has reflected off a surface, and pass this on to the data processing that I have written externally (I have adapted the Geant file to output to a root file for further processing). However, this has the problem of it being very hard / contrived to also account for Rayleigh scattering. I could write on about the other ways I have thought of to tackle this problem but I think all of them would be crude at best. Is there a way to elegantly solve this within Geant? Finally, I have already benefited hugely from the documentation written on optical photons In geant, and as answers to the other questions post in this hypernews  so many thanks for that. Hope to hear from you soon. Kind regards, Maarten

Inline Depth:  Outline Depth:  Add message: 
to: 