Bug #2416

Polarization: Fix treatment of imperfect analyzers

Added by dmitry 8 months ago. Updated 9 days ago.

Status:BacklogStart date:20 Nov 2019
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


Currently the analyzer operator used in BornAgain is written (in latex notation) as

a = t (1 + \xi \sigma p).

Here t is the transmission, \xi - efficiency, p - vector of analyzer direction, \sigma - vector of Pauli matrices.
However, only the combination of t = 1/2, \xi = 1 and |p| = 1 is meaningful and corresponds
to a perfect analyzer (i.e. the one always selecting a particular polarization state).

According to the section 4 of this internal report
(note that login to jugit is required to access the document), the analyzer operator should look like

a = \frac{t}{2} (2 - |p| + \sigma p).

Then |p| <= 1 corresponds to the efficiency of the analyzer and 0 <= t <= 1 - to the transmission.

The formula above for sure works for specular reflectivity, but before modifying the code it is necessary
to check that it holds true in the case of GISAS. The description of polarized DWBA by Walter Van Herck can provide some insight in how DWBA is applied in BornAgain.

The analyzer operator is computed in DetectionProperties::analyzerOperator.
One will also need to change the signature of the method setAnalyzerProperties in Simulation class, and correspondingly amend polarization-related classes in the GUI.

Related issues

Related to BornAgain - Envelope task #2419: Polarized reflectivity In Progress 03 Jun 2020
Related to BornAgain - Bug #2356: Undefined state in Instrument > Polarization analysis > Analyzer orientation and efficiency New 13 May 2019


#1 Updated by dmitry 8 months ago

  • Category set to 5

#2 Updated by dmitry 8 months ago

#3 Updated by dmitry 8 months ago

  • Description updated (diff)

#4 Updated by dmitry 8 months ago

  • Related to Bug #2356: Undefined state in Instrument > Polarization analysis > Analyzer orientation and efficiency added

#5 Updated by rbeerwerth 9 days ago

After a first discussion with Artur, he wasn't happy with this operator at all.
He also pointed me to https://doi.org/10.1063/1.1150060, this is the standard paper for treating imperfect instruments.
I will study that and the rethink this problem. For the moment I leave the implemented operator in BornAgain untouched (NOT the one described in the documents).

Also, we need to pay attention to the case polarized beam + no polarization analysis, this is actually the experimental standard case. This corresponds to p = 0, but we might want to provide it as a default if no analyzer is specified.

Also available in: Atom PDF