Flipper efficiencies assumed to be scalar
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1
- Forks
- 3
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 17
Description
The FlipperEfficiency.value member is a float, and it's assumed that it is a float when we use it here.
Is it physically correct that the flipper efficiency cannot depend on wavelength?
In the case of polarization correction for reflectometry that I'm currently working on this becomes a problem. The problem happens because the calibration step doesn't produce a flipper efficiency $f$ directly. Instead it produces two polarization efficiencies, called $P_{+}$ and $P_{-}$ one for each of the two flipper states, for the combined effect of the polarizing component and the associated flipper.
That is, instead of representing the polarization efficiency of the component using the two variables $P, f$ we use the two variables $P_{\pm}$.
In principle we can translate between the two different ways of viewing it, like this:
$$
P_{+} = P
$$
$$
P_{-} = P(2f-1)
$$
$$
\implies f = (P_{+} + P_{-}) / 2 P_{+}
$$
$P_\pm$ are dependent on wavelength and potentially on detector pixel, and if we use the above expression to compute $f$ it will also depend on wavelength and detector pixel.
How to solve?
If it is the case that the flipper efficiency is independent of wavelength and other event coordinates then it might make sense to try to determine the flipper efficiency from $P_{\pm}$ averaging (in some way) $(P_{+} + P_{-}) / 2 P_{+}$ over wavelength and detector pixel.I've checked this with the IDS, the flipper efficiency can be wavelength dependent.- If it is reasonable that the flipper efficiency is wavelength dependent then we should change the code to reflect that.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/ess/polarization/correction.py at the use of FlipperEfficiency.value around lines 42-44, then trace how calibration represents the wavelength- and detector-dependent P+ and P- values. The work is done when the polarization correction can represent the documented dependence without assuming a scalar flipper efficiency, with behavior checked against the stated calibration relationship.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100