Message: Odd behaviour surrounding Cherenkov angles Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Odd behaviour surrounding Cherenkov angles 

Forum: Processes Involving Optical Photons
Date: 28 Apr, 2017
From: Remy Prechelt <Remy Prechelt>

We've been trying to track down some systematic errors in a large Cherenkov simulation and we're noticing some behaviour regarding the G4Cerenkov process that we/I don't understand and I wanted to get some more experienced insight.

I created an ultra simplified scenario to demonstrate the issue we are having; the code for which is available (

I generate a ideal electron beam straight down the z-axis (no uncertainties or distribution of any kind). This passes through a radiator of thickness 10mm with a constant index of refraction n=1.15. The generated Cherenkov photons refract as they leave the radiator and are detected by an 100% efficient ideal planar detector 80mm away. To remove any possible interaction between materials, the entire simulation is made of vacuum (world, radiator, and detector). The world and detector have n=1.0 set, while a different G4Material vacuum with n=1.15 is used for the radiator. The radiator is centered at 0 and therefore extends from [-5mm, 5mm].

The only physics processes that are enabled are G4Cerenkov, G4OpBoundary and IonIonization for GenericIon only (see the file in the link above if you wish to verify this).

You can see the results of this investigation in the notebook here ( Every number in the below paragraphs is included here with plots and algorithms,

When the Cherenkov photons hit my SD, I use step->GetPreStepPoint()->GetPosition to get the location where that photon left the radiator (this occurs at exactly z=5.0 so it is the right point). I also use track->GetVertexPosition() to get the emission location of the photon (this is always exactly on the z-axis as it should be, with z-start varying from -5mm->5mm).

If my understanding of Geant4 steps/tracks is correct, taking the arctan of the ratio of these should give me the EXACT index of refraction of the material (1.150), instead, the arctan gives 1.1500034. A different of 3.45e-06. I repeated this experiment for different refractive indices, different expansion lengths and different radiator thickness and the difference is always 3.4e-06 (the exact numbers are in the iPython notebook linked to above)

I (read: we) are confused as to why this is not exactly 1.150 to within numerical precision (which 3.4e-06 is not); is this an artifact of the stepping locations, or some other track/step issue? Why is this not exact?

Furthermore, to verify that this wasn't a numerical rounding error in G4Cerenkov, I created a modified version of that saves the values for each generated track during a run. The `cosTheta` variable, as well as the PhotonMomentum that is used to create `aSecondaryPosition` both result in an index of refraction of 1.1500000000046. This is the level of accuracy that I expect to be able to get from the refraction and starting locations saved from my SensitiveDetector.

Lastly, to verify that this wasn't an issue with refraction, I used the photon start, refraction, and hit locations to verify the accuracy with which Snell's law is preserved. It was accurate to 1e-16, so is clearly not the issue.

In summary, given the above, why is the arctan of the refraction location and distance from the end of the radiator, giving a larger index of refraction than was generated in

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Feedback: Re: Odd behaviour surrounding Cherenkov angles   (Gumplinger Peter - 28 Apr, 2017)
(_ None: Re: Odd behaviour surrounding Cherenkov angles   (Remy Prechelt - 28 Apr, 2017)
 Add Message Add Message
to: "Odd behaviour surrounding Cherenkov angles"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews