Hello!, I want to simulate a surface (aluminium) with a reflectivity of 0.23, and with a sigmaalpha=45*deg(for example),in contact with liquid Argon: ... const G4int number = 2; G4double Ephoton[number] = {2.07*eV,10.8*eV}; G4double ReflectivityAl[number] = {0.23,0.23}; G4OpticalSurface* OpHoneySurface = new G4OpticalSurface ("HoneySurface",unified, ground, dielectric_metal,sigalpha=45.*deg); G4LogicalBorderSurface* HoneySurface; HoneySurface=new G4LogicalBorderSurface("HoneySurface", physiLiquidArgon,physiHoneycomb,OpHoneySurface); G4MaterialPropertiesTable *myST3 = new G4MaterialPropertiesTable(); myST3->AddProperty("REFLECTIVITY", Ephoton, ReflectivityAl, number); OpHoneySurface->SetMaterialPropertiesTable(myST3); ... but when I count the number of photons that are reflected to the Argon by the aluminium wall in relation with the total number of photons that hit it, this factor is not 0.23 (or aproximate), is less than it, and is smaller as bigger is the value of sigalpha. Just when sigalpha is 0*deg the reflectivity has the value that I want. Can anyone tell me why this happen, and how can I obtein a surface with a reflectivity of 0.23(for example) and a sigalpha!=0*deg(a ground surface). Thanck you!!
The value of the reflectivity you provide is for a 'single reflection' off the surface. What happens for very rough surfaces is that the photon, after being reflected from a micro-facet, whose normal happens to have a large angle with the nominal surface normal, still points (has a direction) out of your LAr and hence within G4OpBoundaryProcess 'reinteracts' with the surface. The reflectivity is again applied and as a result, the rougher the surface the smaller the observed effective reflectivity. So, as you have discovered, there is a correlation between roughness and 'single reflection reflectivity'. I shall update the documentation to make it clear that the value given, must not be the effective reflectivity but that value which gives the desired effective reflectivity due to the possiblility of multiple 'interections' at the boundary for rough surfaces. On the other hand, there should be a definite relationship between, on the one hand, single-reflectivity + sigma_alpha, and on the other hand, effective reflectivity. G4 could then convert at initialization, an effective reflectivity given by the user to the one needed internally for the random decision at each single reflection. You might argue that the code should be smart enough to know that the photon re-interacts and not again apply the reflectivity criterion. That was not my initial thought when I wrote the code. Instead, I thought that reflectivity, if it is at all known, is known for polished surfaces. In most applications, I presume, the actual value used for the reflectivity and for the surface roughness are ones obtained by 'trial and error' until a simplefied simulation agrees with a test measurement designed to 'calibrate' the simulation.
Thanck you very much for answer me so fast! O.K., what I really want to simulate is a dielectric-metal surface that has a 50% of SpikeReflection and a 50% of diffusion with a reflectivity of 14%, and another one with a 100% of diffusion an a reflectivity of 23%. I tried to do this with ground surfaces,with their respective reflectivities and with a small sigma-alpha for the first one (15*deg) and a big sigma-alpha for the second (60*deg). Could you tell me if I am in the right way?, is there another way to simulate diffused (and semidiffused) dielectric-metal surfaces?, Thancks again!
As the code in G4OpBoundaryProcess is presently written, it is NOT possible to define/simulate a dielectric_metal surface that has 50% SpikeReflection and 50% diffuse LobeReflection. Direct surfaces between a dielectric and a metal can either be polished or ground, the degree of how diffuse/ground it is, is then defined by either the "sigma_alpha" parameter in the UNIFIED model, or the "polish" parameter in the GLISUR model. You can however define an indirect surface (dielectric_dielectric) with a little air gap between the 'backpainted' (or wrapping) reflector and your medium. In that case, the full functionality of the UNIFIED model can be brought to bear and the four types of reflections can occur. The degree of reflectivity is always applied when reflecting off the metal surface either in the dielectric_metal or the dielectric_dielectric/backpainted option. 100% of diffuse reflection and a reflectivity of 23% can be simulated. However, for very diffuse reflections, i.e. large values of 'sigma_alpha' or small values of 'polish', the effective reflectivity is diminished from 23% because of the sometimes multiple interaction with the boundary as explained earlier. I shall look into whether it is possible, i.e. how difficult it is, to extend the functionality of G4OpBoundaryProcess to include the four types of reflections also for the direct dielectic_metal surface.
I have committed (tag op-V06-02-01) a new version of G4OpBoundaryProcess which uses the Unified model reflection parameters for dielectric/metal surfaces when the unified-model is specified and they have been provided, and which applies / samples the reflectivity and those Unified model reflection parameters only once even for rough dielectric/metal surfaces - i.e. not again even when the reflected ray due to the sampled facet normal is such that it still points toward the nominal surface. Hence, the effective reflectivity and reflection probabilities no longer change when the user changes the roughness of the surface.
Thank you very much for your help!