Problem 442

Summary: incorrect polarization for ray perpendicular to the surface
Product: Geant4 Reporter: ob214
Component: processes/opticalAssignee: gum
Status: CLOSED FIXED    
Severity: normal    
Priority: P2    
Version: other   
Hardware: PC   
OS: Linux   

Description ob214 2002-12-30 19:01:50 CET
When an optical photon impiges on a  surface perpendicularly, the polarization
is not properly updated.
I've included below an example. This is a run with 2 events.
In the second event, the new polarization is equal to the new polarization of
the fisrt event.
In my case, sint1=0 sint2=0 cost1=1 Rindex1=2.15 and Rindex2=1.0 (in
G4OpBoundaryProcess.cc). It is obvious in this case that the polarization is
not updated and therefore uses the one calculated in the previous event (in
G4OpBoundaryProcess::DielectricDielectric(), line 557 to 581)

*******************************************************************************
**************************
* G4Track Information:   Particle = opticalphoton,   Track ID = 1,
Parent ID = 0
*******************************************************************************
**************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng
NextVolume ProcName
    0      -12       -6        1  2.58e-06        0        0         0
Crystal7           initStep
    1       -8       -6        1  2.58e-06        0        4         4
Crystal8           Transportation
    2        0       -6        1  2.58e-06        0        8        12
Crystal9           Transportation
    3        8       -6        1  2.58e-06        0        8        20
Crystal10           Transportation
    4       16       -6        1  2.58e-06        0        8        28
Crystal11           Transportation
 Photon at Boundary!
 Old Momentum Direction: (1,0,0)
 Old Polarization:       (0,-0.782519,0.622627)
 New Momentum Direction: (1,0,0)
 New Polarization:       (0,-0.782519,0.622627)
 *** FresnelRefraction ***
    5       24       -6        1  2.58e-06        0        8        36
World           Transportation
    6    1e+03       -6        1  2.58e-06        0      976  1.01e+03
OutOfWorld Transportation

*******************************************************************************
**************************
* G4Track Information:   Particle = opticalphoton,   Track ID = 1,
Parent ID = 0
*******************************************************************************
**************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng
NextVolume ProcName
    0      -12       -6        1  2.58e-06        0        0         0
Crystal7           initStep
    1       -8       -6        1  2.58e-06        0        4         4
Crystal8           Transportation
    2        0       -6        1  2.58e-06        0        8        12
Crystal9           Transportation
    3        8       -6        1  2.58e-06        0        8        20
Crystal10           Transportation
    4       16       -6        1  2.58e-06        0        8        28
Crystal11           Transportation
 Photon at Boundary!
 Old Momentum Direction: (1,0,0)
 Old Polarization:       (0,0.770191,0.637814)
 New Momentum Direction: (-1,0,0)
 New Polarization:       (0,-0.782519,0.622627)
 *** FresnelReflection ***
    5       24       -6        1  2.58e-06        0        8        36
World           Transportation
    6       24       -6        1  2.58e-06        0        0        36
Crystal11           Transportation
    7       16       -6        1  2.58e-06        0        8        44
Crystal10           Transportation
    8        8       -6        1  2.58e-06        0        8        52
Crystal9           Transportation
    9        0       -6        1  2.58e-06        0        8        60
Crystal8           Transportation
   10       -8       -6        1  2.58e-06        0        8        68
Crystal7           Transportation
   11      -16       -6        1  2.58e-06        0        8        76
Crystal6           Transportation
 Photon at Boundary!
 Old Momentum Direction: (-1,0,0)
 Old Polarization:       (0,-0.782519,0.622627)
 New Momentum Direction: (-1,0,0)
 New Polarization:       (0,-0.782519,0.622627)
 *** FresnelRefraction ***
   12      -24       -6        1  2.58e-06        0        8        84
World           Transportation
   13   -1e+03       -6        1  2.58e-06        0      976  1.06e+03
OutOfWorld Transportation
Comment 1 Hans-Peter.Wellisch 2003-01-27 04:19:59 CET
Peter, can you please have a look at this ?

Many greetings,

Hans-Peter.
Comment 2 gum 2003-01-29 13:41:59 CET
Thanks for pointing out the problem with the polarization for perpendicular rays.

With the release of Geant4.5.0, the polarization phase change in all situations
not involving perpendicular rays should now be correctly simulated (Fresnel
refraction/reflection for both cases n2>n1 and n1>n2).

The special situation of perpendicular incidence is dealt with separately in the
code. This portion was also copied from the original GEANT3 implementation,
which, as you have pointed out, fails to account for the case n1>n2.

Since the polarization was calculated incorrectly until recently in all cases
(ported errors from G3!), I am suspicious that the perpendicular case is correct
even for reflections when n2>n1. This warrants careful investigation. The phase
must not jump abruptly as the angle -> zero. I'll keep you posted.
Comment 3 gum 2003-02-06 14:39:59 CET
fix is tagged as "op-V05-00-00"