Ejemplo n.º 1
0
        // INCC5 enables subselecting each field and creates a two line header instead of one.
        Dictionary <string, string> GenerateEntries(Selections s, Measurement m)
        {
            Dictionary <string, string> entries = new Dictionary <string, string>();

            switch (s)
            {
            case Selections.AcquireParams:
                entries["Facility"]          = Q(m.AcquireState.facility.Name);
                entries["MBA"]               = Q(m.AcquireState.mba.Name);
                entries["Detector"]          = Q(m.AcquireState.detector_id);
                entries["IC"]                = Q(m.AcquireState.inventory_change_code);
                entries["IO"]                = Q(m.AcquireState.io_code);
                entries["Measurement Type"]  = Q(m.MeasOption.PrintName());
                entries["Meas Date"]         = m.MeasurementId.MeasDateTime.ToString("yy.MM.dd");
                entries["Meas Time"]         = m.MeasurementId.MeasDateTime.ToString("HH:mm:ss");
                entries["File Name"]         = Q(GetMainFilePath(m.ResultsFiles, m.MeasOption, true));
                entries["Inspector"]         = Q(m.AcquireState.user_id);
                entries["Inspection Number"] = Q(m.AcquireState.campaign_id);
                entries["Item ID"]           = Q(m.AcquireState.item_id);
                entries["Isotopics ID"]      = Q(m.AcquireState.isotopics_id);
                entries["Stratum ID"]        = Q(m.AcquireState.stratum_id.Name);
                entries["Material Type"]     = Q(m.AcquireState.item_type);
                break;

            case Selections.NormalizationParams:
                entries["Norm Cnst"]       = m.Norm.currNormalizationConstant.v.ToString("F4");           //	"Normalization constant"
                entries["Norm Cnst Error"] = m.Norm.currNormalizationConstant.err.ToString("F4");         //	"Normalization constant error"
                break;

            case Selections.BackgroundParams:
                entries["Singles Bkg"]         = m.Background.DeadtimeCorrectedSinglesRate.v.ToString("F1");   //	"Passive singles background"
                entries["Singles Bkg Error"]   = m.Background.DeadtimeCorrectedSinglesRate.err.ToString("F3"); //	"Passive singles background error"
                entries["Doubles Bkg"]         = m.Background.DeadtimeCorrectedDoublesRate.v.ToString("F2");   //	"Passive doubles background"
                entries["Doubles Bkg Error"]   = m.Background.DeadtimeCorrectedDoublesRate.err.ToString("F3"); //	"Passive doubles background error"
                entries["Triples Bkg"]         = m.Background.DeadtimeCorrectedTriplesRate.v.ToString("F2");   //	"Passive triples background"
                entries["Triples Bkg Error"]   = m.Background.DeadtimeCorrectedTriplesRate.err.ToString("F3"); //	"Passive triples background error"
                entries["Act Sngls Bkg"]       = m.Background.INCCActive.SinglesRate.ToString("F1");           //	"Active singles background"
                entries["Act Sngls Bkg Error"] = m.Background.INCCActive.Singles.err.ToString("F3");           //	"Active singles background error"
                break;

            case Selections.Summaries:
                if (m.INCCAnalysisState != null && m.INCCAnalysisResults != null)
                {
                    System.Collections.IEnumerator iter = m.INCCAnalysisResults.GetMeasSelectorResultsEnumerator();
                    while (iter.MoveNext())
                    {
                        MeasOptionSelector moskey = (MeasOptionSelector)iter.Current;
                        INCCResult         ir     = m.INCCAnalysisResults[moskey];
                        entries["Singles"]       = ir.DeadtimeCorrectedSinglesRate.v.ToString("F1");                   //	"Singles"
                        entries["Singles Error"] = ir.DeadtimeCorrectedSinglesRate.err.ToString("F3");                 //	"Singles error"
                        entries["Doubles"]       = ir.DeadtimeCorrectedDoublesRate.v.ToString("F2");                   //	"Doubles"
                        entries["Doubles Error"] = ir.DeadtimeCorrectedDoublesRate.err.ToString("F3");                 //	"Doubles error"
                        entries["Triples"]       = ir.DeadtimeCorrectedTriplesRate.v.ToString("F2");                   //	"Triples"
                        entries["Triples Error"] = ir.DeadtimeCorrectedTriplesRate.err.ToString("F3");                 //	"Triples error"
                        if (ir.Scaler1.v > 0 || ir.Scaler2.v > 0)
                        {
                            entries["Scaler 1"]       = ir.Scaler1.v.ToString("F1");
                            entries["Scaler 1 Error"] = ir.Scaler1.err.ToString("F3");
                            entries["Scaler 2"]       = ir.Scaler2.v.ToString("F1");
                            entries["Scaler 2 Error"] = ir.Scaler2.err.ToString("F3");
                        }
                        entries["Count Time"]  = (m.Cycles.Count > 0 ? m.Cycles[0].TS.TotalSeconds.ToString("F0") : "0"); // "Total count time for a measurement"
                        entries["Singles Sum"] = m.SinglesSum.ToString("F0");                                             // Sums - singles  Singles sum for a measurement"
                        entries["R+A Sum"]     = ir.RASum.ToString("F0");                                                 // Reals + accidentals sum for a measurement"
                        entries["A Sum"]       = ir.ASum.ToString("F0");                                                  // "Accidentals sum for a measurement"
                    }
                }
                break;

            case Selections.Comments:
                entries["Comment"] = m.AcquireState.comment;
                if (m.INCCAnalysisResults.TradResultsRec.acq.ending_comment &&
                    !string.IsNullOrEmpty(m.INCCAnalysisResults.TradResultsRec.acq.ending_comment_str))
                {
                    entries["End Comment"] = m.AcquireState.ending_comment_str;
                }
                break;

            case Selections.MassAnalysisMethods:
                break;

            case Selections.CalibrationCurve:
                INCCMethodResults.results_cal_curve_rec ccres = (INCCMethodResults.results_cal_curve_rec)
                                                                m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.CalibrationCurve, false);
                if (ccres != null)
                {
                    entries["Cal Cur Dcl Mass"]  = ccres.dcl_pu_mass.ToString("F2");               //	Calibration curve - declared mass"
                    entries["Cal Cur Mass"]      = ccres.pu_mass.v.ToString("F2");                 //	"Calibration curve - mass"
                    entries["Cal Cur Mass Err"]  = ccres.pu_mass.err.ToString("F3");               //	"Calibration curve - mass error"
                    entries["Cal Cur Dcl-Asy"]   = ccres.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Calibration curve - declared minus assay"
                    entries["Cal Cur Dcl-Asy %"] = ccres.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Calibration curve - declared minus assay %"
                    entries["Cal Cur Status"]    = ccres.pass ? "Pass": "";                        //	"Calibration curve - measurement status"
                }
                break;

            case Selections.KnownAlpha:
                INCCMethodResults.results_known_alpha_rec kares = (INCCMethodResults.results_known_alpha_rec)
                                                                  m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.KnownA, false);
                if (kares != null)
                {
                    entries["Known A Dcl Mass"]  = kares.dcl_pu_mass.ToString("F2");               //	Known alpha - declared mass"
                    entries["Known A Mass"]      = kares.pu_mass.v.ToString("F2");                 //	"Known alpha - mass"
                    entries["Known A Mass Err"]  = kares.pu_mass.err.ToString("F3");               //	"Known alpha - mass error"
                    entries["Known A Dcl-Asy"]   = kares.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Known alpha - declared minus assay"
                    entries["Known A Dcl-Asy %"] = kares.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Known alpha - declared minus assay %"
                    entries["Known A Mult"]      = kares.mult.ToString("F3");                      //	"Known alpha - multiplication"
                    entries["Known A Alpha"]     = kares.alphaK.ToString("F3");                    //	"Known alpha - alpha"
                    entries["Known A Status"]    = kares.pass ? "Pass": "";                        //	"Known alpha - measurement status"
                }
                break;

            case Selections.KnownM:
                INCCMethodResults.results_known_m_rec kmres = (INCCMethodResults.results_known_m_rec)
                                                              m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.KnownM, false);
                if (kmres != null)
                {
                    entries["Known M Dcl Mass"]  = kmres.dcl_pu_mass.ToString("F2");               //	Known M - declared mass"
                    entries["Known M Mass"]      = kmres.pu_mass.v.ToString("F2");                 //	"Known M - mass"
                    entries["Known M Mass Err"]  = kmres.pu_mass.err.ToString("F3");               //	"Known M - mass error"
                    entries["Known M Dcl-Asy"]   = kmres.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Known M - declared minus assay"
                    entries["Known M Dcl-Asy %"] = kmres.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Known M - declared minus assay %"
                    entries["Known M Mult"]      = kmres.mult.ToString("F3");                      //	"Known M - multiplication"
                    entries["Known M Alpha"]     = kmres.alpha.ToString("F3");                     //	"Known M - alpha"
                    entries["Known M Status"]    = kmres.pass ? "Pass": "";                        //	"Known M - measurement status"
                }
                break;

            case Selections.Multiplicity:
                INCCMethodResults.results_multiplicity_rec mres = (INCCMethodResults.results_multiplicity_rec)
                                                                  m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.Multiplicity, false);
                if (mres != null)
                {
                    entries["Mult Dcl Mass"]    = mres.dcl_pu_mass.ToString("F2");               //	Multiplicity - declared mass"
                    entries["Mult Mass"]        = mres.pu_mass.v.ToString("F2");                 //	"Multiplicity- mass"
                    entries["Mult Mass Err"]    = mres.pu_mass.err.ToString("F3");               //	"Multiplicity - mass error"
                    entries["Mult Dcl-Asy"]     = mres.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Multiplicity - declared minus assay"
                    entries["Mult Dcl-Asy %"]   = mres.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Multiplicity - declared minus assay %"
                    entries["Mult Mult"]        = mres.mult.v.ToString("F3");                    //	"Multiplicity - multiplication"
                    entries["Mult Mult Err"]    = mres.mult.err.ToString("F3");                  //	"Multiplicity - multiplication error"
                    entries["Mult Alpha"]       = mres.alphaK.v.ToString("F3");                  //	"Multiplicity - alpha"
                    entries["Mult Alpha Err"]   = mres.alphaK.err.ToString("F3");                //	"Multiplicity - alpha error"
                    entries["Mult Efficiency"]  = mres.efficiencyComputed.v.ToString("F3");      //	"Multiplicity - efficiency"
                    entries["Mult Eff Err"]     = mres.efficiencyComputed.err.ToString("F3");    //	"Multiplicity - efficiency error"
                    entries["Mult Status"]      = mres.pass ? "Pass": "";                        //	"Multiplicity - measurement status"
                    entries["Mult Predelay ms"] = m.Detector.SRParams.predelayMS.ToString();     //     "Multiplicity - predelay "
                    entries["Mult Gate ms"]     = m.Detector.SRParams.gateLengthMS.ToString();   //     "Multiplicity - gate width"
                }
                break;

            case Selections.AddASource:
                INCCMethodResults.results_add_a_source_rec aares = (INCCMethodResults.results_add_a_source_rec)
                                                                   m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.AddASource, false);
                if (aares != null)
                {
                    entries["Add-a-src Dcl Mass"]  = aares.dcl_pu_mass.ToString("F2");               //	Add-a-source - declared mass"
                    entries["Add-a-src Mass"]      = aares.pu_mass.v.ToString("F2");                 //	"Add-a-source - mass"
                    entries["Add-a-src Mass Err"]  = aares.pu_mass.err.ToString("F3");               //	"Add-a-source - mass error"
                    entries["Add-a-src Dcl-Asy"]   = aares.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Add-a-source - declared minus assay"
                    entries["Add-a-src Dcl-Asy %"] = aares.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Add-a-source - declared minus assay %"
                    entries["Add-a-src Status"]    = aares.pass ? "Pass": "";                        //	"Add-a-source - measurement status"
                    entries["Add-a-src Corr"]      = aares.corr_factor.v.ToString("F3");             //	"Add-a-source - measurement status"
                }
                break;

            case Selections.CuriumRatio:
                INCCMethodResults.results_curium_ratio_rec cures = (INCCMethodResults.results_curium_ratio_rec)
                                                                   m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.CuriumRatio, false);
                if (cures != null)
                {
                    entries["Cm Ratio ID"]       = cures.methodParams2.cm_id;                               // Curium ratio - ID"
                    entries["Cm Ratio Input ID"] = cures.methodParams2.cm_input_batch_id;                   // Curium ratio - input batch ID"
                    entries["Cm Ratio Cm/Pu"]    = cures.methodParams2.cm_pu_ratio.v.ToString("F4");        // Curium ratio - Cm/Pu ratio"
                    entries["Cm Ratio Cm/U"]     = cures.methodParams2.cm_u_ratio.v.ToString("F4");         // Curium ratio - Cm/U ratio"
                    entries["Cm Mass"]           = cures.cm_mass.v.ToString("F3");                          // Curium ratio - Cm mass"
                    entries["Cm Err"]            = cures.cm_mass.err.ToString("F3");                        // Curium ratio - Cm mass error"

                    entries["Cm Ratio Pu Dcl Mass"]    = cures.pu.dcl_pu_mass.ToString("F2");               // Curium ratio - declared mass"
                    entries["Cm Ratio Pu Mass"]        = cures.pu.pu_mass.v.ToString("F2");                 //	"Curium ratio - mass"
                    entries["Cm Ratio Pu Mass Err"]    = cures.pu.pu_mass.err.ToString("F3");               //	"Curium ratio - mass error"
                    entries["Cm Ratio Pu Dcl-Asy"]     = cures.pu.dcl_minus_asy_pu_mass.v.ToString("F2");   //	"Curium ratio - declared minus assay"
                    entries["Cm Ratio Pu Dcl-Asy %"]   = cures.pu.dcl_minus_asy_pu_mass_pct.ToString("F2"); //	"Curium ratio - declared minus assay %"
                    entries["Cm Ratio U Dcl Mass"]     = cures.u.dcl_mass.ToString("F2");                   // "Curium ratio - U declared mass"
                    entries["Cm Ratio U Mass"]         = cures.u.mass.v.ToString("F2");                     //	"Curium ratio - U mass"
                    entries["Cm Ratio U Mass Err"]     = cures.u.mass.err.ToString("F3");                   //	"Curium ratio - U mass error"
                    entries["Cm Ratio U Dcl-Asy"]      = cures.u.dcl_minus_asy_mass.v.ToString("F2");       //	"Curium ratio - U declared minus assay"
                    entries["Cm Ratio U Dcl-Asy %"]    = cures.u.dcl_minus_asy_mass_pct.ToString("F2");     //	"Curium ratio - U declared minus assay %"
                    entries["Cm Ratio U235 Dcl Mass"]  = cures.u235.dcl_mass.ToString("F2");                // Curium ratio - U235 declared mass"
                    entries["Cm Ratio U235 Mass"]      = cures.u235.mass.v.ToString("F2");                  //	"Curium ratio - U235 mass"
                    entries["Cm Ratio U235 Mass Err"]  = cures.u235.mass.err.ToString("F3");                //	"Curium ratio - U235 mass error"
                    entries["Cm Ratio U235 Dcl-Asy"]   = cures.u235.dcl_minus_asy_mass.v.ToString("F2");    //	"Curium ratio - U235 declared minus assay"
                    entries["Cm Ratio U235 Dcl-Asy %"] = cures.u235.dcl_minus_asy_mass_pct.ToString("F2");  //	"Curium ratio - U235 declared minus assay %"
                    entries["Cm Ratio Pu Status"]      = cures.pu.pass ? "Pass": "";                        //	"Curium ratio - Pu measurement status"
                    entries["Cm Ratio U Status"]       = cures.u.pass ? "Pass": "";                         //	"Curium ratio - U measurement status"
                }
                break;

            case Selections.TruncatedMultiplicity:
                INCCMethodResults.results_truncated_mult_rec tmres = (INCCMethodResults.results_truncated_mult_rec)
                                                                     m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.TruncatedMultiplicity, false);
                if (tmres != null)
                {
                    entries["Trunc Mult Dcl Mass"] = tmres.k.dcl_mass.ToString("F2");               // "Truncated multiplicity - declared mass"
                    entries["Trunc Mult Mass"]     = tmres.k.pu_mass.v.ToString("F2");              // "Truncated multiplicity - mass"
                    entries["Trunc Mult Mass Err"] = tmres.k.pu_mass.err.ToString("F3");            // "Truncated multiplicity - mass error"
                    entries["Trunc Mult Dcl-Asy"]  = tmres.k.dcl_minus_asy_mass.v.ToString("F2");   // "Truncated multiplicity - declared minus assay"
                    entries["Trunc Dcl-Asy %"]     = tmres.k.dcl_minus_asy_mass_pct.ToString("F2"); //"Truncated multiplicity - declared minus assay %"
                    entries["Trunc Mult Status"]   = tmres.k.pass ? "Pass": "";                     // "Truncated multiplicity - measurement status"  // todo: what about 's'?
                }
                break;

            case Selections.ActiveCalibCurve:
                INCCMethodResults.results_active_rec acres = (INCCMethodResults.results_active_rec)
                                                             m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.Active, false);
                if (acres != null)
                {
                    entries["Active Dcl Mass"]  = acres.dcl_u235_mass.ToString("F2");               //	Active calibration curve - declared mass"
                    entries["Active Mass"]      = acres.u235_mass.v.ToString("F2");                 //	"Active calibration curve - mass"
                    entries["Active Mass Err"]  = acres.u235_mass.err.ToString("F3");               //	"Active calibration curve - mass error"
                    entries["Active Dcl-Asy"]   = acres.dcl_minus_asy_u235_mass.v.ToString("F2");   //	"Active calibration curve - declared minus assay"
                    entries["Active Dcl-Asy %"] = acres.dcl_minus_asy_u235_mass_pct.ToString("F2"); //	"Active calibration curve - declared minus assay %"
                    entries["Active Status"]    = acres.pass ? "Pass": "";                          //	"Active calibration curve - measurement status"
                }
                break;

            case Selections.CollarAmLi:
                INCCMethodResults.results_collar_rec rcres = (INCCMethodResults.results_collar_rec)
                                                             m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.CollarAmLi, false);
                if (rcres != null)
                {
                    entries["Collar Dbls Rate"]     = rcres.total_corr_fact.v.ToString("F2");           //	Collar - corrected doubles rate"
                    entries["Collar Dbls Rate Err"] = rcres.total_corr_fact.v.ToString("F2");           //	Collar -- corrected doubles rate error"
                    entries["Collar Dcl Mass"]      = rcres.dcl_total_u235.v.ToString("F2");            //	Collar - declared mass"
                    entries["Collar Mass"]          = rcres.u235_mass.v.ToString("F2");                 //	"Collar - mass"
                    entries["Collar Mass Err"]      = rcres.u235_mass.err.ToString("F3");               //	"Collar - mass error"
                    entries["Collar Dcl-Asy"]       = rcres.dcl_minus_asy_u235_mass.v.ToString("F2");   //	"Collar - declared minus assay"
                    entries["Collar Dcl-Asy %"]     = rcres.dcl_minus_asy_u235_mass_pct.ToString("F2"); //	"Collar - declared minus assay %"
                    entries["Collar Status"]        = rcres.pass ? "Pass": "";                          //	"Collar - measurement status"
                }
                break;

            case Selections.CollarCf:
                rcres = (INCCMethodResults.results_collar_rec)
                        m.INCCAnalysisResults.LookupMethodResults(m.Detector.MultiplicityParams, m.INCCAnalysisState.Methods.selector, AnalysisMethod.CollarCf, false);
                if (rcres != null)
                {
                    entries["Collar Dbls Rate"]     = rcres.total_corr_fact.v.ToString("F2");           //	Collar - corrected doubles rate"
                    entries["Collar Dbls Rate Err"] = rcres.total_corr_fact.v.ToString("F2");           //	Collar -- corrected doubles rate error"
                    entries["Collar Dcl Mass"]      = rcres.dcl_total_u235.v.ToString("F2");            //	Collar - declared mass"
                    entries["Collar Mass"]          = rcres.u235_mass.v.ToString("F2");                 //	"Collar - mass"
                    entries["Collar Mass Err"]      = rcres.u235_mass.err.ToString("F3");               //	"Collar - mass error"
                    entries["Collar Dcl-Asy"]       = rcres.dcl_minus_asy_u235_mass.v.ToString("F2");   //	"Collar - declared minus assay"
                    entries["Collar Dcl-Asy %"]     = rcres.dcl_minus_asy_u235_mass_pct.ToString("F2"); //	"Collar - declared minus assay %"
                    entries["Collar Status"]        = rcres.pass ? "Pass" : "";                         //	"Collar - measurement status"
                }
                break;

            default:
                break;
            }
            return(entries);
        }
Ejemplo n.º 2
0
        // Based on the measurement type and result, show a bunch of stuff
        void FieldFiller()
        {
            Measurement m    = N.App.Opstate.Measurement;
            int         rep  = m.CountingAnalysisResults.GetResultsCount(typeof(Multiplicity));
            int         i    = 0;
            IEnumerator iter = m.CountingAnalysisResults.GetMultiplicityEnumerator();

            while (iter.MoveNext())
            {
                i++;
                string             augmenter = (rep > 1 ? " " + i.ToString() : ""); // use mkey indicator here, not just this indexer
                Multiplicity       mkey      = (Multiplicity)((KeyValuePair <SpecificCountingAnalyzerParams, object>)(iter.Current)).Key;
                INCCResult         r;
                MeasOptionSelector moskey = new MeasOptionSelector(m.MeasOption, mkey);
                bool found = m.INCCAnalysisResults.TryGetValue(moskey, out r);  // APluralityOfMultiplicityAnalyzers:
                switch (m.MeasOption)
                {
                case AssaySelector.MeasurementOption.rates:
                case AssaySelector.MeasurementOption.background:
                    //if (passive)
                    listView1.Items.Add(new ListViewItem(new string[] { "Passive rates" + augmenter }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format(" Singles: {0,13:F3} +- {1,9:F3}", r.DeadtimeCorrectedSinglesRate.v, r.DeadtimeCorrectedSinglesRate.err)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format(" Doubles: {0,13:F3} +- {1,9:F3}", r.DeadtimeCorrectedDoublesRate.v, r.DeadtimeCorrectedDoublesRate.err)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format(" Triples: {0,13:F3} +- {1,9:F3}", r.DeadtimeCorrectedTriplesRate.v, r.DeadtimeCorrectedTriplesRate.err)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Scaler 1: {0,13:F3} +- {1,9:F3}", r.Scaler1Rate.v, r.Scaler1Rate.err)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Scaler 2: {0,13:F3} +- {1,9:F3}", r.Scaler2Rate.v, r.Scaler2Rate.err)
                    }));
                    //if (active)
                    break;

                case AssaySelector.MeasurementOption.initial:
                    INCCResults.results_init_src_rec isr = (INCCResults.results_init_src_rec)r;
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("                 Source id: {0}", isr.init_src_id)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Initial source measurement: {0}", (isr.pass ? "passed" : "failed"))
                    }));
                    break;

                case AssaySelector.MeasurementOption.normalization:
                    INCCResults.results_bias_rec br = (INCCResults.results_bias_rec)r;
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Normalization results for reference source: {0}", br.sourceId)
                    }));
                    if (br.mode == NormTest.Cf252Doubles)
                    {
                        listView1.Items.Add(new ListViewItem(new string[] {
                            string.Format("Normalization doubles rate expected/measured: {0,13:F3} +- {1,9:F3}",
                                          br.biasDblsRateExpectMeas.v, br.biasDblsRateExpectMeas.err)
                        }));
                    }
                    else if (br.mode == NormTest.Cf252Singles)
                    {
                        listView1.Items.Add(new ListViewItem(new string[] {
                            string.Format("Normalization singles rate expected/measured: {0,13:F3} +- {1,9:F3}",
                                          br.biasDblsRateExpectMeas.v, br.biasDblsRateExpectMeas.err)
                        }));
                    }
                    else
                    {
                        listView1.Items.Add(new ListViewItem(new string[] {
                            string.Format("Normalization singles rate expected/measured: {0,13:F3} +- {1,9:F3}",
                                          br.biasSnglsRateExpectMeas.v, br.biasSnglsRateExpectMeas.err)
                        }));
                    }
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Normalization test {0}", (br.pass ? "passed" : "failed"))
                    }));
                    break;

                case AssaySelector.MeasurementOption.precision:
                    INCCResults.results_precision_rec pr = (INCCResults.results_precision_rec)r;
                    listView1.Items.Add(new ListViewItem(new string[] { "Precision results" + augmenter }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Chi-square lower limit: {0,13:F3}", pr.chiSqLowerLimit)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Chi-square upper limit: {0,13:F3}", pr.chiSqUpperLimit)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("       Sample variance: {0,13:F3}", pr.precSampleVar)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("  Theoretical variance: {0,13:F3}", pr.precTheoreticalVar)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("            Chi-square: {0,13:F3}", pr.precChiSq)
                    }));
                    listView1.Items.Add(new ListViewItem(new string[] {
                        string.Format("Precision test {0}.", (pr.pass ? "passed" : "failed"))
                    }));
                    break;

                case AssaySelector.MeasurementOption.calibration:
                    INCCMethodResults imrs;
                    bool ok = m.INCCAnalysisResults.TryGetINCCResults(moskey.MultiplicityParams, out imrs);
                    if (ok && imrs.Count > 0)     // should be true for verification and calibration
                    {
                        // we've got a distinct detector id and material type on the methods, so that is the indexer here
                        Dictionary <AnalysisMethod, INCCMethodResult> amimr = imrs[m.INCCAnalysisState.Methods.selector];

                        // now get an enumerator over the map of method results
                        Dictionary <AnalysisMethod, INCCMethodResult> .Enumerator ai = amimr.GetEnumerator();
                        while (ai.MoveNext())
                        {
                            INCCMethodResult imr = ai.Current.Value;
                            if (imr is INCCMethodResults.results_cal_curve_rec)
                            {
                                listView1.Items.Add(new ListViewItem(new string[] { "Passive calibration curve results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("       Pu mass: {0,13:F3}", ((INCCMethodResults.results_cal_curve_rec)imr).pu_mass.v)
                                }));
                            }
                            else if (imr is INCCMethodResults.results_known_alpha_rec)
                            {
                                listView1.Items.Add(new ListViewItem(new string[] { "Known alpha results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("Multiplication: {0,13:F3}", ((INCCMethodResults.results_known_alpha_rec)imr).mult)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("         Alpha: {0,13:F3}", ((INCCMethodResults.results_known_alpha_rec)imr).alphaK)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("       Pu mass: {0,13:F3}", ((INCCMethodResults.results_known_alpha_rec)imr).pu_mass.v)
                                }));
                            }
                            else if (imr is INCCMethodResults.results_add_a_source_rec)
                            {
                                listView1.Items.Add(new ListViewItem(new string[] { "Add-a-source results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("       Pu mass: {0,13:F3}", ((INCCMethodResults.results_add_a_source_rec)imr).pu_mass.v)
                                }));
                            }
                            else if (imr is INCCMethodResults.results_active_rec)
                            {
                                listView1.Items.Add(new ListViewItem(new string[] { "Active calibration curve results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("      U235 mass: {0,13:F3}", ((INCCMethodResults.results_active_rec)imr).u235_mass.v)
                                }));
                            }
                        }
                    }
                    break;

                case AssaySelector.MeasurementOption.verification:
                case AssaySelector.MeasurementOption.holdup:
                    INCCMethodResults imrvs;
                    bool okv = m.INCCAnalysisResults.TryGetINCCResults(moskey.MultiplicityParams, out imrvs);
                    if (okv && imrvs.Count > 0)     // should be true for verification and calibration
                    {
                        // we've got a distinct detector id and material type on the methods, so that is the indexer here
                        Dictionary <AnalysisMethod, INCCMethodResult> amimr = imrvs[m.INCCAnalysisState.Methods.selector];

                        // now get an enumerator over the map of method results
                        Dictionary <AnalysisMethod, INCCMethodResult> .Enumerator ai = amimr.GetEnumerator();
                        while (ai.MoveNext())
                        {
                            INCCMethodResult imr = ai.Current.Value;
                            if (imr is INCCMethodResults.results_cal_curve_rec)
                            {
                                INCCMethodResults.results_cal_curve_rec d = (INCCMethodResults.results_cal_curve_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Passive calibration curve results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu_mass.v, d.pu_mass.err)
                                }));
                                if (d.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_pu_mass.v, d.dcl_minus_asy_pu_mass.err, d.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_known_alpha_rec)
                            {
                                INCCMethodResults.results_known_alpha_rec d = (INCCMethodResults.results_known_alpha_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Known alpha results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("          Multiplication: {0,13:F3}", d.mult)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                   Alpha: {0,13:F3}", d.alphaK)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu_mass.v, d.pu_mass.err)
                                }));
                                if (d.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_pu_mass.v, d.dcl_minus_asy_pu_mass.err, d.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_known_m_rec)
                            {
                                INCCMethodResults.results_known_m_rec d = (INCCMethodResults.results_known_m_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Known M results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("          Multiplication: {0,13:F3}", d.mult)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                   Alpha: {0,13:F3}", d.alpha)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu_mass.v, d.pu_mass.err)
                                }));
                                if (d.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_pu_mass.v, d.dcl_minus_asy_pu_mass.err, d.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_multiplicity_rec)
                            {
                                INCCMethodResults.results_multiplicity_rec d = (INCCMethodResults.results_multiplicity_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Passive multiplicity results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("          Multiplication: {0,13:F3} +- {1,9:F3}", d.mult.v, d.mult.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                   Alpha: {0,13:F3} +- {1,9:F3}", d.alphaK.v, d.alphaK.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("       Correction factor: {0,13:F3}", d.corr_factor.v, d.corr_factor.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu_mass.v, d.pu_mass.err)
                                }));
                                if (d.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_pu_mass.v, d.dcl_minus_asy_pu_mass.err, d.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_add_a_source_rec)
                            {
                                INCCMethodResults.results_add_a_source_rec d = (INCCMethodResults.results_add_a_source_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Add-a-source results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                   Delta: {0,13:F3} +- {1,9:F3}", d.delta.v, d.delta.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("       Correction factor: {0,13:F3}", d.corr_factor.v, d.corr_factor.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu_mass.v, d.pu_mass.err)
                                }));
                                if (d.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_pu_mass.v, d.dcl_minus_asy_pu_mass.err, d.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_curium_ratio_rec)
                            {
                                INCCMethodResults.results_curium_ratio_rec d = (INCCMethodResults.results_curium_ratio_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Curium ratio results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Cm mass: {0,13:F3}  +- {1,9:F3}", d.cm_mass.v, d.cm_mass.err)
                                }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.pu.pu_mass.v, d.pu.pu_mass.err)
                                }));
                                if (d.pu.dcl_pu_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared Pu mass: {0,13:F3}", d.pu.dcl_pu_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.pu.dcl_minus_asy_pu_mass.v, d.pu.dcl_minus_asy_pu_mass.err, d.pu.dcl_minus_asy_pu_mass_pct)
                                    }));
                                }
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                  U mass: {0,13:F3} +- {1,9:F3}", d.u.mass.v, d.u.mass.err)
                                }));
                                if (d.u.dcl_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("         Declared U mass: {0,13:F3}", d.u.dcl_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format(" Declared - assay U mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.u.dcl_minus_asy_mass.v, d.u.dcl_minus_asy_mass.err, d.u.dcl_minus_asy_mass_pct)
                                    }));
                                }
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("      Declared U235 mass: {0,13:F3} +- {1,9:F3}", d.u235.mass.v, d.u235.mass.err)
                                }));
                                if (d.u235.dcl_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("      Declared U235 mass: {0,13:F3}", d.u235.dcl_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("  Decl - assay U235 mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.u235.dcl_minus_asy_mass.v, d.u235.dcl_minus_asy_mass.err, d.u235.dcl_minus_asy_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_truncated_mult_rec)
                            {
                                INCCMethodResults.results_truncated_mult_rec d = (INCCMethodResults.results_truncated_mult_rec)imr;
                                if (d.methodParams.known_eff)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] { "Known efficiency truncated multiplicity results" + augmenter }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.k.pu_mass.v, d.k.pu_mass.err)
                                    }));
                                    if (d.k.dcl_pu_mass > 0)
                                    {
                                        listView1.Items.Add(new ListViewItem(new string[] {
                                            string.Format("        Declared Pu mass: {0,13:F3}", d.k.dcl_pu_mass)
                                        }));
                                        listView1.Items.Add(new ListViewItem(new string[] {
                                            string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                          d.k.dcl_minus_asy_pu_mass.v, d.k.dcl_minus_asy_pu_mass.err, d.k.dcl_minus_asy_pu_mass_pct)
                                        }));
                                    }
                                }
                                if (d.methodParams.solve_eff)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] { "Solve efficiency truncated multiplicity results" + augmenter }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("                 Pu mass: {0,13:F3} +- {1,9:F3}", d.s.pu_mass.v, d.s.pu_mass.err)
                                    }));
                                    if (d.s.dcl_pu_mass > 0)
                                    {
                                        listView1.Items.Add(new ListViewItem(new string[] {
                                            string.Format("        Declared Pu mass: {0,13:F3}", d.s.dcl_pu_mass)
                                        }));
                                        listView1.Items.Add(new ListViewItem(new string[] {
                                            string.Format("Declared - assay Pu mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                          d.s.dcl_minus_asy_pu_mass.v, d.s.dcl_minus_asy_pu_mass.err, d.s.dcl_minus_asy_pu_mass_pct)
                                        }));
                                    }
                                }
                            }
                            else if (imr is INCCMethodResults.results_active_rec)
                            {
                                INCCMethodResults.results_active_rec d = (INCCMethodResults.results_active_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Active calibration curve results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 U235 mass: {0,13:F3} +- {1,9:F3}", d.u235_mass.v, d.u235_mass.err)
                                }));
                                if (d.dcl_u235_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared U235 mass: {0,13:F3}", d.dcl_u235_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay U235 mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_u235_mass.v, d.dcl_minus_asy_u235_mass.err, d.dcl_minus_asy_u235_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_active_passive_rec)
                            {
                                INCCMethodResults.results_active_passive_rec d = (INCCMethodResults.results_active_passive_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Active/passive results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 U235 mass: {0,13:F3} +- {1,9:F3}", d.u235_mass.v, d.u235_mass.err)
                                }));
                                if (d.dcl_u235_mass > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared U235 mass: {0,13:F3}", d.dcl_u235_mass)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay U235 mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_u235_mass.v, d.dcl_minus_asy_u235_mass.err, d.dcl_minus_asy_u235_mass_pct)
                                    }));
                                }
                            }
                            else if (imr is INCCMethodResults.results_collar_rec)
                            {
                                INCCMethodResults.results_collar_rec d = (INCCMethodResults.results_collar_rec)imr;
                                listView1.Items.Add(new ListViewItem(new string[] { "Collar results" + augmenter }));
                                listView1.Items.Add(new ListViewItem(new string[] {
                                    string.Format("                 U235 mass: {0,13:F3} +- {1,9:F3}", d.u235_mass.v, d.u235_mass.err)
                                }));
                                if (d.dcl_total_u235.v > 0)
                                {
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("        Declared U235 mass: {0,13:F3} +- {1,9:F3}", d.dcl_total_u235.v, d.dcl_total_u235.err)
                                    }));
                                    listView1.Items.Add(new ListViewItem(new string[] {
                                        string.Format("Declared - assay U235 mass: {0,13:F3} +- {1,9:F3} or {2,6:F2}%",
                                                      d.dcl_minus_asy_u235_mass.v, d.dcl_minus_asy_u235_mass.err, d.dcl_minus_asy_u235_mass_pct)
                                    }));
                                }
                            }
                        }
                    }
                    break;

                case AssaySelector.MeasurementOption.unspecified:
                    listView1.Items.Add(new ListViewItem(new string[] { "List mode results" + augmenter }));
                    listView1.Items.Add(new ListViewItem(new string[] { "TODO " }));     // todo: fill in with something useful for LM
                    break;
                }
            }
        }