Normalisation by monitor histogram introduces artefacts from low monitor counts
@jokasimr is already working on this.
Since May 14, 2025.
- Dominant language
- Python
- Stars
- 1
- Forks
- 3
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 17
Description
We first found this as part of #145 where we started reducing all banks. For the forward endcap, we see a noisy histogram with extraneous peaks:
However, we do not see this when we normalise in 2D by way of IofDspacingTwoTheta:
Likewise, the histogram looks clean when we normalise by integrated monitor or by proton charge. It is only a problem when normalising by monitor histogram in 1D.
To investigate, here is the monitor:
It has very low counts for $\lambda < 0.6Å$. Looking at the forward endcap, we see that its peaks have significant contributions from low wavlengths (left). So when it is divided by the monitor (right), those peaks and any noise therein gets boosted:
For comparison, here is the same kind of plot for the mantle (left before, right after monitor normalisation). The peaks on the mantle are predominantly at larger wavelengths. So the influence from the low monitor counts is diminished (but not absent).
To summarise, peaks that are visible at low wavelength (esp. in the forward endcap due to low $2\theta$) are sensitive to noise which gets boosted by the monitor.
How do we solve this?
There are a couple of options here:
- Properly handle monitor uncertainties. This might assign large uncertainties to the boosted noise so that it can be properly handled in analysis.
- Remove low wavelength regions. We would lose valuable data this way. So maybe not a good idea.
- Don't normalise by monitor histogram. This might lead to worse data for large wavelength. But normalisation by proton charge seems to be common practice.
I prefer the first option. But it may be complicated if we want to uphold our correlation guarantees.
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.
Assessment
This issue has not been assessed yet.