We made one small change to the code today that I think makes explaining what we are doing with these MAN menu flags much easier, and that is what this post will be about. If you have been following the discussion between Jon Fellowes and I above, read on. If not, you might want to review the above posts. Here I will be discussing these two MAN menu flags found in the Analytical menu as seen here:
Remember, both of these two MAN flags in the Analytical menu only affect the *analysis* of standard or unknown samples, *not* the acquisition of standard and unknown samples! So please keep in mind that when I use the words "acquire" or "acquisition" I mean the actual process of acquiring sample data (from the Acquire! or Automate! windows), but when I use the words "analyze" or "analysis", then that refers to the process of quantifying already acquired sample data (from the Analyze! window or Output menu).
In short when the "Use Off-Peak Elements for MAN Fits" menu is checked, it instructs Probe for EPMA to utilize off-peak elements acquired in standard samples for constructing the MAN background curve fit. Checking the "Use MAN Correction for Off-Peak Elements" menu instructs the software to perform an MAN background correction, when loading primary standard (and interference standard) intensities, and also when performing the background correction during quantification of standard or unknown samples.
So here are the four situations explaining how these (quite useful) MAN menu analysis flags can be utilized:
1. Both "Use Off-Peak Elements for MAN Fits" and "Use MAN Correction for Off-Peak Elements" menu items are unchecked.
This is the default mode of Probe for EPMA and means simply that one can acquire off-peak acquisitions on both one's standard samples and also one's unknown samples. During the actual analysis (as opposed to the acquisition!), the off-peak background correction method will be applied to both standards and unknown samples in the Analyze! window. This is essentially the traditional background acquisition method for EPMA instruments. But remember, one must have no spectral interferences on any of the off-peak background positions!
Alternatively this is also the situation when using MAN background acquisitions for
both one's standard samples and one's unknown sample acquisitions. The easiest way to utilize this option is to click the Change All to MAN button in the Acquisition Options dialog from the Acquire! window, so all elements for both standards and unknowns will be changed from the default off-peak acquisitions to MAN background acquisitions.
2. The "Use Off-Peak Elements for MAN Fits" menu is checked, but the "Use MAN Correction for Off-Peak Elements" menu item is unchecked.
In this case, the user plans to acquire off-peak backgrounds on their standards, but will acquire MAN backgrounds on their unknowns (to reduce acquisition time and/or improve sensitivity). By checking the "Use Off-Peak Elements for MAN Fits" menu, the user can acquire off-peak backgrounds on their standards, but still utilize the on-peak standard intensities for the MAN curve fit to correct the background on their unknown samples. This option also allows one to utilize the "Use Interpolated Off-Peaks for MAN Fit" option in the Analysis Options dialog.
3. The "Use Off-Peak Elements for MAN Fits" menu is unchecked, but the "Use MAN Correction for Off-Peak Elements" menu item is checked.
This option is utilized when the standards are acquired using MAN backgrounds, but the unknown samples are acquired using off-peak backgrounds. Then the user decides that they want to perform the MAN background correction method for the unknown samples. This is a good option when you want to compare the results from both off-peak and MAN background methods, on the same data points.
4. Both "Use Off-Peak Elements for MAN Fits" and "Use MAN Correction for Off-Peak Elements" menu items are checked.
Here the user acquired both their standards *and* unknown samples using off-peak background acquisitions, but wants to analyze their standards
and their unknown samples using the MAN background correction method. This is the situation that Jon Fellowes utilized in his above examples.
So after all that explanation(!), here is an analysis of Jon's Fe metal standard which should not contain any Co (run as an unknown), after both these Analytical menus are checked, and the interference for Fe Kb on Co was specified in the Standard Assignments dialog from the Analyze! window:
Un 2 std6012_Fe_metal_test_01
TakeOff = 40.0 KiloVolt = 15.0 Beam Current = 10.0 Beam Size = 0
(Magnification (analytical) = 40000), Beam Mode = Analog Spot
(Magnification (default) = 100000, Magnification (imaging) = 100000)
Image Shift (X,Y): .00, .00
Number of Data Lines: 12 Number of 'Good' Data Lines: 12
First/Last Date-Time: 05/06/2021 07:27:49 PM to 05/06/2021 07:49:53 PM
WARNING- Using MAN Background Instead of Off-Peak Background Correction
Average Total Oxygen: .000 Average Total Weight%: 99.708
Average Calculated Oxygen: .000 Average Atomic Number: 26.000
Average Excess Oxygen: .000 Average Atomic Weight: 55.847
Average ZAF Iteration: 1.08 Average Quant Iterate: 4.00
Un 2 std6012_Fe_metal_test_01, Results in Elemental Weight Percents
ELEM: Fe Co
BGDS: MAN MAN
TIME: 20.00 20.00
BEAM: 10.00 10.00
ELEM: Fe Co SUM
51 99.701 -.006 99.696
52 99.700 -.004 99.696
53 99.529 -.020 99.509
54 100.130 -.007 100.122
55 99.288 -.001 99.288
56 99.899 -.008 99.892
57 99.655 -.017 99.639
58 99.726 .001 99.727
59 99.359 .001 99.360
60 99.492 -.005 99.488
61 100.149 .011 100.160
62 99.938 -.022 99.916
AVER: 99.714 -.006 99.708
SDEV: .277 .009 .277
SERR: .080 .003
%RSD: .28 -148.00
STDS: 6012 6013
STKF: 1.0000 1.0000
STCT: 818.74 879.45
UNKF: .9971 -.0001
UNCT: 816.43 -.05
UNBG: 1.83 2.43
ZCOR: 1.0000 1.0209
KRAW: .9972 -.0001
PKBG: 446.59 .98
INT%: ---- -107.45
Now we can see that the Co concentration is within 60 PPM of zero with a variance of 90 PPM. Not bad considering!
For those interested in the code, basically we utilize the UseOffPeakElementsForMANFlag in the UpdateGetMANStandards procedure as seen here (this has not changed):
' Correct the data for dead time, beam drift (and off-peak background if NOT using off-peak sample elements for MAN fits)
If UseOffPeakElementsForMANFlag = False Then
If Not UseAggregateIntensitiesFlag Then
Call DataCorrectData(Int(0), UpdateTmpSample())
If ierror Then Exit Sub
Else
Call DataCorrectData(Int(2), UpdateTmpSample()) ' skip aggregate intensity load
If ierror Then Exit Sub
Call DataCorrectDataAggregate(Int(2), sample(), UpdateTmpSample()) ' perform aggregate intensity based on unknown
If ierror Then Exit Sub
End If
' Correct the data for dead time, beam drift (and MAN background if using off-peak sample elements for MAN fits)
Else
If Not UseAggregateIntensitiesFlag Then
Call DataCorrectData(Int(1), UpdateTmpSample())
If ierror Then Exit Sub
Else
Call DataCorrectData(Int(3), UpdateTmpSample()) ' skip aggregate intensity load
If ierror Then Exit Sub
Call DataCorrectDataAggregate(Int(3), sample(), UpdateTmpSample()) ' perform aggregate intensity based on unknown
If ierror Then Exit Sub
End If
End If
And in the UpdateGetStandards code we now utilize the UseMANForOffPeakElementsFlag for performing an MAN correction when loading the standard (and interference standard) net intensities as seen here:
' Correct the data for dead time, beam drift (and off-peak background if NOT using MAN for off-peak elements)
If UseMANForOffPeakElementsFlag = False Then
If Not UseAggregateIntensitiesFlag Then
Call DataCorrectData(Int(0), UpdateTmpSample())
If ierror Then Exit Sub
Else
Call DataCorrectData(Int(2), UpdateTmpSample()) ' skip aggregate intensity load
If ierror Then Exit Sub
Call DataCorrectDataAggregate(Int(2), sample(), UpdateTmpSample()) ' perform aggregate intensity based on unknown
If ierror Then Exit Sub
End If
' Correct the data for dead time, beam drift (and MAN background if using MAN background corrections for off-peak elements)
Else
If Not UseAggregateIntensitiesFlag Then
Call DataCorrectData(Int(1), UpdateTmpSample())
If ierror Then Exit Sub
Else
Call DataCorrectData(Int(3), UpdateTmpSample()) ' skip aggregate intensity load
If ierror Then Exit Sub
Call DataCorrectDataAggregate(Int(3), sample(), UpdateTmpSample()) ' perform aggregate intensity based on unknown
If ierror Then Exit Sub
End If
End If
Note the first line of each code section which corresponds to the Analytical menus!