Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About Polarization #52

Open
kif opened this issue Jul 11, 2013 · 3 comments
Open

About Polarization #52

kif opened this issue Jul 11, 2013 · 3 comments
Labels

Comments

@kif
Copy link
Member

kif commented Jul 11, 2013

Dear Jerome,

when looking to the manual of pyFai I tripped over the polarization
correction that is implemented. Apparently, you are still using only a
single parameter P, and I do not understand the physical meaning of it:
vertical (-1) and horizontal (+1)? What are you doing when the elliptical
polarization axis is inclined by 35.55 degrees, e.g. because something
rotates the polarization direction (e.g. with a type of quarter wave
plate).

I personally separate the polarization correction into an unpolarized
(1-P) and a polarized contribution (P) based on Stokes parameters and then
I describe the polarized part in the Poincare notation (ellipticity pchi
and polarization angle ppsi). The final formulas are not complicated and
the three input parameters have a physical meaning.

Somebody could say that we cannot distinguish between, circular and
unpolarized light because we only measure intensities, not amplitudes. But
remember, that we already used to have colleagues that claimed that in
SAXS scattering angles are always so small that no conversion of tan to
sin would be necessary. For me the pyFAI parameter P seems to be a bad
trick that makes the polarization correction more difficult especially in
the case of partially rotated polarization planes that even does not seem
to be possible in pyFAI.

In general, 3 parameter are needed

polarization factor P: 0..1
ellipticity PChi: -pi/4<=PChi<=+pi/4
inclination PPsi: 0<=PPsi<pi

You can find a description in the optics book of Born & Wolf

[1] Born&Wolf, Principles of Optics, 6th (corrected) edition 1997,
Cambridge University Press 1980, 10.8 and 1.4.

I prefer a general description that covers all possible (future) cases,
especially then, when its implementation is simple.

Greetings,
Peter

PS: I have written a documentation in the module polarization.c (in
spd/edfpack):

The Stokes parameter of the incident wave can be separated into an unpolarized
s(1) and a polarized part s(2):

(xii a) s = s(1) + s(2) = ( s0, s1, s2, s3 )
(xii b) s(1) = ( (1-P)_s0, 0, 0, 0 )
(xii c) s(2) = ( P_s0, s1, s2, s3 )

where P is the polarization (0<=P<=1). If P is 0 the wave is totally
unpolarized, if P is 1 the wave is totally polarized.

The polarized portion s(2) can be described by the Poincar notation:

(xiii a) s0(2)+s1(2) = P_so+s1 = P_so_(1+cos(2_PChi)cos(2_PPsi))
(xiii b) s0(2)-s1(2) = P_so-s1 = P_so
(1-cos(2_PChi)_cos(2_PPsi))
(xiii c) s2(2) = s2 = P_so_cos(2_PChi)_sin(2*PPsi)

with

P : degree of polarization (0<=P<=1)
PChi : ellipticity (after Poincar) (-pi/4<=PChi<=+pi/4)
PChi=-pi/4 left hand (cw) circular polarization
PChi<0 left hand polarization
PChi==0 linear polarization
PChi>0 right hand polarization
PChi=pi/4 right hand (ccw) circular polarization
PPsi : inclination of the plane of polarization (after Poincar)
(0<=PPsi<pi)
PPsi is the angle between axis x_1 and the plane of polarization

Because the angles PChi and PPsi are defined in a mirrored coordinate
system
with the incident beam parallel to e3^ (and not antiparallel) the signs of
the
angle PPsi must be altered if used in the standard SAXS coordinate system.
The
result is independent of the sign of PChi.

The scattering intensity Iout can also be splitted into an unpolarized and
a polarized part:

(xiv a) Iout = Iout(1) + Iout(2)
(xiv b) Iout(1) = f_f * (1-P)_s0 * ( 1 + kout3_kout3 )/2
(xiv c) Iout(2) = f_f * P _s0 * (
(1-kout1_kout1) * 0.5 * (1+cos(2_PChi)_cos(2_PPsi))
+ (1-kout2_kout2) * 0.5 * (1-cos(2_PChi)_cos(2_PPsi))
- kout1_kout2 * cos(2_PChi)_sin(2*PPsi) )

Dr. Peter Boesecke
ID01 & ID02
European Synchrotron Radiation Facility (ESRF)
B.P. 220
F-38043 GRENOBLE CEDEX

Tel. +33 (0) 4 7688 2400
Fax. +33 (0) 4 7688 2542

Email [email protected]

@CJ-Wright
Copy link
Contributor

On a related note, does the polarization correction performed with pyFAI match the polarization correction given in equation 11 of http://iopscience.iop.org/article/10.1088/0953-8984/25/38/383201?

@kif
Copy link
Member Author

kif commented Mar 22, 2016

The definition is given in:
https://github.com/kif/pyFAI/blob/master/pyFAI/geometry.py#L1580

cos2_tth = numpy.cos(tth) ** 2
self._polarization = ((1 + cos2_tth - factor * numpy.cos(2 * chi) * (1 - cos2_tth)) / 2.0)

Equation 11 is:
Ij,cor = Ij [Pi (1 − (sin(ψ) sin(2θ ))^2 ) + (1 − Pi)(1 − (cos(ψ) sin(2θ ))^2 )]

The physics is the same but:

  • chi turns anti-clockwise, psi is clockwise
  • chi is 0 at 3 o'clock while psi is 0 at 12 o'clock
  • factor varies from -1 (vertical polarization) to +1 (horizontal polarization) via 0 (circular or no polarization)
  • Pi varies from 0 to 1.

@CJ-Wright
Copy link
Contributor

Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants