Exemplo n.º 1
0
        public IDDCollarCrossRef(INCCAnalysisParams.collar_combined_rec c = null, bool mod = false)
        {
            InitializeComponent();
            mp = new MethodParamFormFields(AnalysisMethod.Collar);

            RelativeDoublesRateTextBox.ToValidate = NumericTextBox.ValidateType.Float;
            RelativeDoublesRateTextBox.NumberFormat = NumericTextBox.Formatter.F3;

            Integ.GetCurrentAcquireDetectorPair(ref mp.acq, ref mp.det);
            this.Text += " for " + mp.det.Id.DetectorName;
            modified = mod;
            mp.RefreshMatTypeComboBox(MaterialTypeComboBox);
            mp.SelectMaterialType(MaterialTypeComboBox);
            if (mp.HasMethod && c == null)
            {
                mp.imd = new INCCAnalysisParams.collar_combined_rec((INCCAnalysisParams.collar_combined_rec)mp.ams.GetMethodParameters(mp.am));
                col = (INCCAnalysisParams.collar_combined_rec)mp.imd;
            }
            else if (mp.HasMethod && c != null)
            {
                col = c;
            }
            else
            {
                mp.imd = new INCCAnalysisParams.collar_combined_rec(); // not mapped, so make a new one
                col = (INCCAnalysisParams.collar_combined_rec)mp.imd;
                modified = true;
            }

            CrossReferenceFieldFiller(col);
            this.TopMost = true;
        }
Exemplo n.º 2
0
        public IDDCorrectionFactors(INCCAnalysisParams.collar_combined_rec c, bool mod)
        {
            InitializeComponent();
            mp = new MethodParamFormFields(AnalysisMethod.Collar);
            modified = mod;
            Integ.GetCurrentAcquireDetectorPair(ref mp.acq, ref mp.det);
            this.Text += " for " + mp.det.Id.DetectorName;

            col = c;
            MaterialLabel.Text = mp.acq.item_type;
            ModeLabel.Text = col.collar.collar_mode ? "Fast(Cd)" : "Thermal (no Cd)";
            DetectorLabel.Text = mp.det.Id.DetectorName;

            ATextBox.NumberFormat = NumericTextBox.Formatter.E6;
            ATextBox.ToValidate = NumericTextBox.ValidateType.Double;
            AErrorTextBox.NumberFormat = NumericTextBox.Formatter.E6;
            AErrorTextBox.ToValidate = NumericTextBox.ValidateType.Double;
            BTextBox.NumberFormat = NumericTextBox.Formatter.E6;
            BTextBox.ToValidate = NumericTextBox.ValidateType.Double;
            BErrorTextBox.NumberFormat = NumericTextBox.Formatter.E6;
            BErrorTextBox.ToValidate = NumericTextBox.ValidateType.Double;

            FillForm();
            this.TopMost = true;
        }
Exemplo n.º 3
0
 public IDDPercentU235(AnalysisMethods ams_, INCCAnalysisParams.cal_curve_rec c)
 {
     InitializeComponent();
     percent = c.percent_u235;
     U235PercentTextBox.Text = percent.ToString("F3");
     Integ.GetCurrentAcquireDetectorPair(ref acq, ref det);
     ams = ams_;
 }
Exemplo n.º 4
0
 protected void FieldFiller(INCCAnalysisParams.active_mult_rec amr)
 {
     Thermal1stMomentTextBox.Text = amr.vt1.ToString("E6");
     Thermal2ndMomentTextBox.Text = amr.vt2.ToString("E6");
     Thermal3rdMomentTextBox.Text = amr.vt3.ToString("E6");
     Fast1stMomentTextBox.Text = amr.vf1.ToString("E6");
     Fast2ndMomentTextBox.Text = amr.vf2.ToString("E6");
     Fast3rdMomentTextBox.Text = amr.vf3.ToString("E6");
 }
Exemplo n.º 5
0
 public void RefreshCurveEqComboBox(ComboBox cb, INCCAnalysisParams.CurveEquationVals v)
 {
     cb.Items.Clear();
     foreach (INCCAnalysisParams.CurveEquation cs in System.Enum.GetValues(typeof(INCCAnalysisParams.CurveEquation)))
     {
         //Per Martyn, use equation string, not named value.  7/17/2014 HN
                 cb.Items.Add(cs.ToDisplayString());                
     }
     cb.Refresh();
     cb.SelectedIndex = cb.FindString (v.cal_curve_equation.ToDisplayString());
 }
Exemplo n.º 6
0
        public void FieldFiller(INCCAnalysisParams.CurveEquationVals cev)
        {
            LowerMassLimitTextBox.Value = cev.lower_mass_limit;
            UpperMassLimitTextBox.Value = cev.upper_mass_limit;
            LowerAlphaLimitTextBox.Value = known_alpha.lower_corr_factor_limit;
            UpperAlphaLimitTextBox.Value = known_alpha.upper_corr_factor_limit;
            ConventionalATextBox.Value = cev.a;
            ConventionalBTextBox.Value = cev.b;
            VarianceATextBox.Value = cev.var_a;
            VarianceBTextBox.Value = cev.var_b;

            CovarianceABTextBox.Value = cev.covar(Coeff.a, Coeff.b);
            
            SigmaXTextBox.Value = cev.sigma_x;
        }
Exemplo n.º 7
0
 public EqCoeffViewer(INCCAnalysisParams.CurveEquationVals coeff, INCCAnalysisParams.CurveEquation eq, CalibrationCurveList cclist)
 {
     InitializeComponent();
     det = Integ.GetCurrentAcquireDetector();
     Text += " for detector " + det.Id.DetectorName;
     disprows = new List<DataLoad>();
     CurveEquation = eq;
     Coefficients = coeff;
     CalcDataList = cclist;
     BuildRep();
     BuildRows();
     BuildCurveCombo();
     LowerMassLimitTextBox.Text = CalcDataList.LowerMassLimit.ToString("N4");
     UpperMassLimitTextBox.Text = CalcDataList.UpperMassLimit.ToString("N4");
     _reg = new Regex("[1-9][0-9]*\\.?[0-9]*([Ee][+-]?[0-9]+)?");  // reg ex for number test
 }
Exemplo n.º 8
0
 public void CalibrationFieldFiller(INCCAnalysisParams.CurveEquationVals cev)
 {
     LowerMassLimitTextBox.Text = cev.lower_mass_limit.ToString("N3");
     UpperMassLimitTextBox.Text = cev.upper_mass_limit.ToString("N3");
     ATextBox.Text = cev.a.ToString("E6");
     BTextBox.Text = cev.b.ToString("E6");
     CTextBox.Text = cev.c.ToString("E6");
     DTextBox.Text = cev.d.ToString("E6");
     VarianceATextBox.Text = cev.var_a.ToString("E6");
     VarianceBTextBox.Text = cev.var_b.ToString("E6");
     VarianceCTextBox.Text = cev.var_c.ToString("E6");
     VarianceDTextBox.Text = cev.var_d.ToString("E6");
     CovarianceABTextBox.Text = cev.covar(Coeff.a, Coeff.b).ToString("E6");
     CovarianceACTextBox.Text = cev.covar(Coeff.a, Coeff.c).ToString("E6");
     CovarianceADTextBox.Text = cev.covar(Coeff.a, Coeff.d).ToString("E6");
     CovarianceBCTextBox.Text = cev.covar(Coeff.b, Coeff.c).ToString("E6");
     CovarianceBDTextBox.Text = cev.covar(Coeff.b, Coeff.d).ToString("E6");
     CovarianceCDTextBox.Text = cev.covar(Coeff.c, Coeff.d).ToString("E6");
     SigmaXTextBox.Text = cev.sigma_x.ToString("E6");
 }
Exemplo n.º 9
0
        public IDDK5CollarItemData(INCCAnalysisParams.collar_combined_rec c, bool mod)
        {
            InitializeComponent();
            col = c;
            modified = mod;
            K5TextBox.ToValidate = NumericTextBox.ValidateType.Double;
            K5TextBox.NumberFormat = NumericTextBox.Formatter.E3;
            K5ErrorTextBox.ToValidate = NumericTextBox.ValidateType.Double;
            K5ErrorTextBox.NumberFormat = NumericTextBox.Formatter.E3;
            K5TextBox.Value = col.collar.sample_corr_fact.v;
            K5ErrorTextBox.Value = col.collar.sample_corr_fact.err;

            for (int i = 0; i < INCCAnalysisParams.MAX_COLLAR_K5_PARAMETERS; i ++)
            {
                if (col.k5.k5[i] != null)
                {
                    DataGridViewRow row = new DataGridViewRow();
                    row.CreateCells(dataGridView1);
                    dataGridView1.Rows.Add(new object[] { col.k5.k5_checkbox[i], col.k5.k5_label[i], col.k5.k5[i].v, col.k5.k5[i].err });
                }
            }
            k5TotalTextBox.Value = total;
            k5TotalErrTextBox.Value = totalerr;
        }
Exemplo n.º 10
0
            internal static unsafe known_alpha_rec MoveKA(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
            {
                INCCAnalysisParams.known_alpha_rec imr = (INCCAnalysisParams.known_alpha_rec)md;
                known_alpha_rec m = new known_alpha_rec();
                byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
                char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.known_alpha_detector_id);
                b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
                a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.known_alpha_item_type);
                m.ka_a = imr.cev.a;
                m.ka_b = imr.cev.b;
                m.ka_var_a = imr.cev.var_a;
                m.ka_var_b = imr.cev.var_b;
                m.ka_covar_ab = imr.cev.covar(Coeff.a, Coeff.b);
                m.ka_sigma_x = imr.cev.sigma_x;
                m.ka_ring_ratio_a = imr.ring_ratio.a;
                m.ka_ring_ratio_b = imr.ring_ratio.b;
                m.ka_ring_ratio_c = imr.ring_ratio.c;
                m.ka_ring_ratio_d = imr.ring_ratio.d;
                m.ka_alpha_wt = imr.alpha_wt;
                m.ka_rho_zero = imr.rho_zero;
                m.ka_ring_ratio_equation = (double)imr.ring_ratio.cal_curve_equation;
                m.ka_upper_mass_limit = imr.cev.upper_mass_limit;
                m.ka_lower_mass_limit = imr.cev.lower_mass_limit;
                m.ka_heavy_metal_corr_factor = imr.heavy_metal_corr_factor;
                m.ka_heavy_metal_reference = imr.heavy_metal_reference;
                m.ka_k = imr.k;
                m.ka_known_alpha_type = (double)imr.known_alpha_type;
                TransferUtils.CopyDbls(imr.dcl_mass, m.ka_dcl_mass);
                TransferUtils.CopyDbls(imr.doubles, m.ka_doubles);

                return m;
            }
Exemplo n.º 11
0
            internal static unsafe de_mult_rec MoveDE(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
            {
                INCCAnalysisParams.de_mult_rec imr = (INCCAnalysisParams.de_mult_rec)md;
                de_mult_rec m = new de_mult_rec();
                byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
                char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.de_detector_id);
                b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
                a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.de_item_type);
                m.de_inner_ring_efficiency = imr.inner_ring_efficiency;
                m.de_outer_ring_efficiency = imr.outer_ring_efficiency;

                TransferUtils.CopyDbls(imr.neutron_energy, m.de_neutron_energy);
                TransferUtils.CopyDbls(imr.detector_efficiency, m.de_detector_efficiency);
                TransferUtils.CopyDbls(imr.inner_outer_ring_ratio, m.de_inner_outer_ring_ratio);
                TransferUtils.CopyDbls(imr.relative_fission, m.de_relative_fission);
                return m;
            }
Exemplo n.º 12
0
 internal static unsafe curium_ratio_rec MoveCR(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.curium_ratio_rec imr = (INCCAnalysisParams.curium_ratio_rec)md;
     curium_ratio_rec m = new curium_ratio_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.curium_ratio_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.curium_ratio_item_type);
     m.cr_a = imr.cev.a;
     m.cr_b = imr.cev.b;
     m.cr_c = imr.cev.c;
     m.cr_d = imr.cev.d;
     m.curium_ratio_equation = (byte)imr.cev.cal_curve_equation;
     m.curium_ratio_type = NewToOldCRVariants(imr.curium_ratio_type);
     m.cr_covar_ab = imr.cev.covar(Coeff.a, Coeff.b);
     m.cr_covar_ac = imr.cev.covar(Coeff.a, Coeff.c);
     m.cr_covar_ad = imr.cev.covar(Coeff.a, Coeff.d);
     m.cr_covar_bc = imr.cev.covar(Coeff.b, Coeff.c);
     m.cr_covar_bd = imr.cev.covar(Coeff.b, Coeff.d);
     m.cr_covar_cd = imr.cev.covar(Coeff.c, Coeff.d);
     m.cr_var_a = imr.cev.var_a;
     m.cr_var_b = imr.cev.var_b;
     m.cr_var_c = imr.cev.var_c;
     m.cr_var_d = imr.cev.var_d;
     m.cr_sigma_x = imr.cev.sigma_x;
     m.cr_upper_mass_limit = imr.cev.upper_mass_limit;
     m.cr_lower_mass_limit = imr.cev.lower_mass_limit;
     return m;
 }
Exemplo n.º 13
0
            internal static unsafe collar_rec MoveCO(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
            {
                INCCAnalysisParams.collar_combined_rec imr = (INCCAnalysisParams.collar_combined_rec)md;
                collar_rec m = new collar_rec();
                byte[] b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
                char[] a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.collar_item_type);
                m.col_a = imr.collar.cev.a;
                m.col_b = imr.collar.cev.b;
                m.col_c = imr.collar.cev.c;
                m.col_d = imr.collar.cev.d;
                m.collar_equation = (byte)imr.collar.cev.cal_curve_equation;
                m.col_covar_ab = imr.collar.cev.covar(Coeff.a, Coeff.b);
                m.col_covar_ac = imr.collar.cev.covar(Coeff.a, Coeff.c);
                m.col_covar_ad = imr.collar.cev.covar(Coeff.a, Coeff.d);
                m.col_covar_bc = imr.collar.cev.covar(Coeff.b, Coeff.c);
                m.col_covar_bd = imr.collar.cev.covar(Coeff.b, Coeff.d);
                m.col_covar_cd = imr.collar.cev.covar(Coeff.c, Coeff.d);
                m.col_var_a = imr.collar.cev.var_a;
                m.col_var_b = imr.collar.cev.var_b;
                m.col_var_c = imr.collar.cev.var_c;
                m.col_var_d = imr.collar.cev.var_d;
                m.col_sigma_x = imr.collar.cev.sigma_x;
                m.col_upper_mass_limit = imr.collar.cev.upper_mass_limit;
                m.col_lower_mass_limit = imr.collar.cev.lower_mass_limit;

                m.col_number_calib_rods = imr.collar.number_calib_rods;
                m.col_sample_corr_fact = imr.collar.sample_corr_fact.v;
                m.col_sample_corr_fact_err = imr.collar.sample_corr_fact.err;
                m.col_u_mass_corr_fact_a = imr.collar.u_mass_corr_fact_a.v;
                m.col_u_mass_corr_fact_a_err = imr.collar.u_mass_corr_fact_a.err;
                m.col_u_mass_corr_fact_b = imr.collar.u_mass_corr_fact_b.v;
                m.col_u_mass_corr_fact_b_err = imr.collar.u_mass_corr_fact_b.err;
                m.collar_mode = (byte)(imr.collar.collar_mode ? 1 : 0);

                byte[] bb = new byte[INCC.MAX_POISON_ROD_TYPES * INCC.MAX_ROD_TYPE_LENGTH];
                int indx = 0;
                for (int i = 0; i < INCC.MAX_POISON_ROD_TYPES; i++)
                {
                    if (string.IsNullOrEmpty(imr.collar.poison_rod_type[i]))
                    {
                        char[] aa = imr.collar.poison_rod_type[i].ToCharArray(0, Math.Min(imr.collar.poison_rod_type[i].Length, INCC.MAX_ROD_TYPE_LENGTH));
                        Encoding.ASCII.GetBytes(aa, 0, aa.Length, bb, indx);
                    }
                    indx += 2;
                }
                TransferUtils.Copy(bb, 0, m.col_poison_rod_type, 0, INCC.MAX_POISON_ROD_TYPES * INCC.MAX_ROD_TYPE_LENGTH);

                TransferUtils.CopyDbls(imr.collar.poison_absorption_fact, m.col_poison_absorption_fact);
                CopyTuples(imr.collar.poison_rod_a, m.col_poison_rod_a, m.col_poison_rod_a_err, INCC.MAX_POISON_ROD_TYPES);
                CopyTuples(imr.collar.poison_rod_b, m.col_poison_rod_b, m.col_poison_rod_b_err, INCC.MAX_POISON_ROD_TYPES);
                CopyTuples(imr.collar.poison_rod_c, m.col_poison_rod_c, m.col_poison_rod_c_err, INCC.MAX_POISON_ROD_TYPES);
                return m;
            }
Exemplo n.º 14
0
            internal static unsafe collar_k5_rec MoveCK(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
            {
                INCCAnalysisParams.collar_combined_rec imr = (INCCAnalysisParams.collar_combined_rec)md;
                collar_k5_rec m = new collar_k5_rec();
                byte[] b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
                char[] a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.collar_k5_item_type);
                CopyTuples(imr.k5.k5, m.collar_k5, m.collar_k5_err, INCC.MAX_COLLAR_K5_PARAMETERS);
                TransferUtils.CopyBoolsToInts(imr.k5.k5_checkbox, m.collar_k5_checkbox);
                m.collar_k5_mode = (byte)(imr.k5.k5_mode ? 1 : 0);

                byte[] bb = new byte[INCC.MAX_COLLAR_K5_PARAMETERS * INCC.MAX_K5_LABEL_LENGTH];
                int indx = 0;
                for (int i = 0; i < INCC.MAX_COLLAR_K5_PARAMETERS; i++)
                {
                    char[] aa = imr.k5.k5_label[i].ToCharArray(0, Math.Min(imr.k5.k5_label[i].Length, INCC.MAX_K5_LABEL_LENGTH));
                    Encoding.ASCII.GetBytes(aa, 0, aa.Length, bb, indx);
                    indx += INCC.MAX_K5_LABEL_LENGTH;
                }
                TransferUtils.Copy(bb, 0, m.collar_k5_label, 0, INCC.MAX_COLLAR_K5_PARAMETERS * INCC.MAX_K5_LABEL_LENGTH);
                return m;
            }
Exemplo n.º 15
0
        void ApplyCoefficients(INCCAnalysisParams.CurveEquationVals coeff, CalibrationCurveList cclist)
        {
            INCCSelector sel = new INCCSelector(det.Id.DetectorId, Material);
            AnalysisMethods lam;
            bool found = N.App.DB.DetectorMaterialAnalysisMethods.TryGetValue(sel, out lam);
            if (!found)
            {
                lam = new AnalysisMethods(sel);
            }
            if (!lam.HasMethod(AnalysisMethod))  // create it from scratch here ????
            {
                MessageBox.Show(string.Format("{0} method not specified for detector {1} and material {2}",
                                    AnalysisMethod.FullName(), det.Id.DetectorId, Material),
                    "Coefficient File Ingester", MessageBoxButtons.OK);
                return;
            }

            INCCAnalysisParams.INCCMethodDescriptor imd = lam.GetMethodParameters(AnalysisMethod);
            switch (AnalysisMethod)
            {
            case AnalysisMethod.CalibrationCurve:
                INCCAnalysisParams.cal_curve_rec c = (INCCAnalysisParams.cal_curve_rec)imd;
                CopyCoefficients(coeff, c.cev);
                c.cev.cal_curve_equation = CurveEquation;
                c.cev.lower_mass_limit = cclist.LowerMassLimit;
                c.cev.upper_mass_limit = cclist.UpperMassLimit;
                c.dcl_mass = cclist.MassAsArray;
                c.doubles = cclist.DoublesAsArray;
                break;
            case AnalysisMethod.KnownA:
                INCCAnalysisParams.known_alpha_rec ka = (INCCAnalysisParams.known_alpha_rec)imd;
                CopyCoefficients(coeff, ka.cev);
                ka.cev.cal_curve_equation = CurveEquation;
                ka.cev.lower_mass_limit = cclist.LowerMassLimit;
                ka.cev.upper_mass_limit = cclist.UpperMassLimit;
                ka.dcl_mass = cclist.MassAsArray;
                ka.doubles = cclist.DoublesAsArray;
                break;
            case AnalysisMethod.AddASource:
                INCCAnalysisParams.add_a_source_rec aas = (INCCAnalysisParams.add_a_source_rec)imd;
                CopyCoefficients(coeff, aas.cev);
                aas.cev.cal_curve_equation = CurveEquation;
                aas.cev.lower_mass_limit = cclist.LowerMassLimit;
                aas.cev.upper_mass_limit = cclist.UpperMassLimit;
                aas.dcl_mass = cclist.MassAsArray;
                aas.doubles = cclist.DoublesAsArray;
                break;
            case AnalysisMethod.Active:
                INCCAnalysisParams.active_rec ac = (INCCAnalysisParams.active_rec)imd;
                CopyCoefficients(coeff, ac.cev);
                ac.cev.cal_curve_equation = CurveEquation;
                ac.cev.lower_mass_limit = cclist.LowerMassLimit;
                ac.cev.upper_mass_limit = cclist.UpperMassLimit;
                ac.dcl_mass = cclist.MassAsArray;
                ac.doubles = cclist.DoublesAsArray;
                break;
            }
            imd.modified = true;
            // ok save it now
            N.App.DB.UpdateAnalysisMethod(sel, lam);  // flush changes on internal map to the DB
            MessageBox.Show(string.Format("Calibration data for analysis method {0} and material type {1} successfully stored in the database",
                                    det.Id.DetectorId, Material),
                    "Coefficient File Ingester", MessageBoxButtons.OK);
        }
Exemplo n.º 16
0
 internal static unsafe truncated_mult_rec MoveTM(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.truncated_mult_rec imr = (INCCAnalysisParams.truncated_mult_rec)md;
     truncated_mult_rec m = new truncated_mult_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.truncated_mult_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.truncated_mult_item_type);
     m.tm_a = imr.a;
     m.tm_b = imr.b;
     m.tm_known_eff = (byte)(imr.known_eff ? 1 : 0);
     m.tm_solve_eff = (byte)(imr.solve_eff ? 1 : 0);
     return m;
 }
Exemplo n.º 17
0
 internal static unsafe add_a_source_rec MoveAS(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.add_a_source_rec imr = (INCCAnalysisParams.add_a_source_rec)md;
     add_a_source_rec m = new add_a_source_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.add_a_source_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.add_a_source_item_type);
     m.ad_a = imr.cev.a;
     m.ad_b = imr.cev.b;
     m.ad_c = imr.cev.c;
     m.ad_d = imr.cev.d;
     m.add_a_source_equation = (byte)imr.cev.cal_curve_equation;
     m.ad_covar_ab = imr.cev.covar(Coeff.a, Coeff.b);
     m.ad_covar_ac = imr.cev.covar(Coeff.a, Coeff.c);
     m.ad_covar_ad = imr.cev.covar(Coeff.a, Coeff.d);
     m.ad_covar_bc = imr.cev.covar(Coeff.b, Coeff.c);
     m.ad_covar_bd = imr.cev.covar(Coeff.b, Coeff.d);
     m.ad_covar_cd = imr.cev.covar(Coeff.c, Coeff.d);
     m.ad_var_a = imr.cev.var_a;
     m.ad_var_b = imr.cev.var_b;
     m.ad_var_c = imr.cev.var_c;
     m.ad_var_d = imr.cev.var_d;
     m.ad_sigma_x = imr.cev.sigma_x;
     m.ad_upper_mass_limit = imr.cev.upper_mass_limit;
     m.ad_lower_mass_limit = imr.cev.lower_mass_limit;
     TransferUtils.CopyDbls(imr.dcl_mass, m.ad_dcl_mass);
     TransferUtils.CopyDbls(imr.doubles, m.ad_doubles);
     TransferUtils.CopyDbls(imr.position_dzero, m.ad_position_dzero);
     m.ad_cf_a = imr.cf.a;
     m.ad_cf_b = imr.cf.b;
     m.ad_cf_c = imr.cf.c;
     m.ad_cf_d = imr.cf.d;
     m.ad_dzero_avg = imr.dzero_avg;
     m.ad_num_runs = imr.num_runs;
     m.ad_tm_dbls_rate_upper_limit = imr.tm_dbls_rate_upper_limit;
     m.ad_tm_weighting_factor = imr.tm_weighting_factor;
     m.ad_use_truncated_mult = imr.use_truncated_mult ? 1 : 0;
     b = new byte[INCC.DATE_TIME_LENGTH];
     a = imr.dzero_ref_date.ToString("yy.MM.dd").ToCharArray();
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.ad_dzero_ref_date);
     return m;
 }
Exemplo n.º 18
0
 unsafe void CollarK5(INCCAnalysisParams.collar_combined_rec combined, collar_k5_rec collar_k5, ushort bonk)
 {
     combined.k5 = new INCCAnalysisParams.collar_k5_rec();
     combined.k5.k5_mode = (collar_k5.collar_k5_mode  != 0 ? true: false);
     combined.k5.k5_item_type = TransferUtils.str(collar_k5.collar_k5_item_type, INCC.MAX_ITEM_TYPE_LENGTH);
     combined.k5.k5 = Copy(collar_k5.collar_k5, collar_k5.collar_k5_err, INCC.MAX_COLLAR_K5_PARAMETERS);
     combined.k5.k5_checkbox = TransferUtils.Copy(collar_k5.collar_k5_checkbox,INCC.MAX_COLLAR_K5_PARAMETERS);
     for (int i = 0; i < INCC.MAX_COLLAR_K5_PARAMETERS; i++)
     {
         int index = i * INCC.MAX_K5_LABEL_LENGTH;
         combined.k5.k5_label[i] = TransferUtils.str(collar_k5.collar_k5_label + index, INCC.MAX_K5_LABEL_LENGTH);
     }
     mlogger.TraceEvent(LogLevels.Verbose, 34214, " -- Collar k5 has mode {0} and is ready to be bonked", combined.k5.k5_mode);
 }
Exemplo n.º 19
0
 static void CalCurveDBSnock(INCCAnalysisParams.CurveEquationVals cev, DataRow dr)
 {
     if (dr == null) return;
     cev.cal_curve_equation = (INCCAnalysisParams.CurveEquation)(DB.Utils.DBInt32(dr["cal_curve_equation"]));
     cev.a = DB.Utils.DBDouble(dr["a"]);
     cev.b = DB.Utils.DBDouble(dr["b"]);
     cev.c = DB.Utils.DBDouble(dr["c"]);
     cev.d = DB.Utils.DBDouble(dr["d"]);
     cev.var_a = DB.Utils.DBDouble(dr["var_a"]);
     cev.var_b = DB.Utils.DBDouble(dr["var_b"]);
     cev.var_c = DB.Utils.DBDouble(dr["var_c"]);
     cev.var_d = DB.Utils.DBDouble(dr["var_d"]);
     cev.setcovar(Coeff.a, Coeff.b, DB.Utils.DBDouble(dr["covar_ab"]));
     cev.setcovar(Coeff.a, Coeff.c, DB.Utils.DBDouble(dr["covar_ac"]));
     cev.setcovar(Coeff.a, Coeff.d, DB.Utils.DBDouble(dr["covar_ad"]));
     cev.setcovar(Coeff.b, Coeff.c, DB.Utils.DBDouble(dr["covar_bc"]));
     cev.setcovar(Coeff.b, Coeff.d, DB.Utils.DBDouble(dr["covar_bd"]));
     cev.setcovar(Coeff.c, Coeff.d, DB.Utils.DBDouble(dr["covar_cd"]));
     cev.sigma_x = DB.Utils.DBDouble(dr["sigma_x"]);
     cev.upper_mass_limit = DB.Utils.DBDouble(dr["upper_mass_limit"]);
     cev.lower_mass_limit = DB.Utils.DBDouble(dr["lower_mass_limit"]);
 }
Exemplo n.º 20
0
 unsafe void CollarDet(INCCAnalysisParams.collar_combined_rec combined, collar_detector_rec collar_detector, ushort bonk)
 {
     combined.collar_det = new INCCAnalysisParams.collar_detector_rec();
     combined.collar_det.collar_mode = (collar_detector.collar_detector_mode == 0 ? false : true);
     combined.collar_det.reference_date = INCC.DateFrom(TransferUtils.str(collar_detector.col_reference_date, INCC.DATE_TIME_LENGTH));
     combined.collar_det.relative_doubles_rate = collar_detector.col_relative_doubles_rate;
     mlogger.TraceEvent(LogLevels.Verbose, 34212, " -- Collar det has mode {0} {1}",  combined.collar_det.collar_mode, bonk);
 }
Exemplo n.º 21
0
 private static ushort NewToOldCRVariants(INCCAnalysisParams.CuriumRatioVariant id)
 {
     ushort isdh = INCC.IDC_USE_DOUBLES;
     switch (id)
     {
         case INCCAnalysisParams.CuriumRatioVariant.UseDoubles:
             isdh = INCC.IDC_USE_DOUBLES;
             break;
     case INCCAnalysisParams.CuriumRatioVariant.UseSingles:
             isdh = INCC.IDC_USE_SINGLES;
             break;
         case INCCAnalysisParams.CuriumRatioVariant.UseAddASourceDoubles:
             isdh = INCC.IDC_USE_ADD_A_SOURCE_DOUBLES;
             break;
     }
     return isdh;
 }
Exemplo n.º 22
0
 private void CheckBox_fandango(Boolean ischecked, INCCAnalysisParams.KnownAlphaVariant known_alpha_type)
 {
     known_alpha.modified |= (known_alpha.known_alpha_type != known_alpha_type);
     known_alpha.known_alpha_type = known_alpha_type;
 }
Exemplo n.º 23
0
 internal static unsafe known_m_rec MoveKM(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.known_m_rec imr = (INCCAnalysisParams.known_m_rec)md;
     known_m_rec m = new known_m_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.known_m_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.known_m_item_type);
     m.km_b = imr.b;
     m.km_c = imr.c;
     m.km_sf_rate = imr.sf_rate;
     m.km_sigma_x = imr.sigma_x;
     m.km_upper_mass_limit = imr.upper_mass_limit;
     m.km_lower_mass_limit = imr.lower_mass_limit;
     m.km_vi1 = imr.vi1;
     m.km_vi2 = imr.vi2;
     m.km_vs1 = imr.vs1;
     m.km_vs2 = imr.vs2;
     return m;
 }
Exemplo n.º 24
0
 internal static unsafe cal_curve_rec MoveCC(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.cal_curve_rec imr = (INCCAnalysisParams.cal_curve_rec)md;
     cal_curve_rec m = new cal_curve_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.cal_curve_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.cal_curve_item_type);
     m.cc_a = imr.cev.a;
     m.cc_b = imr.cev.b;
     m.cc_c = imr.cev.c;
     m.cc_d = imr.cev.d;
     m.cc_cal_curve_type = (double)imr.CalCurveType;
     m.cc_covar_ab = imr.cev.covar(Coeff.a, Coeff.b);
     m.cc_covar_ac = imr.cev.covar(Coeff.a, Coeff.c);
     m.cc_covar_ad = imr.cev.covar(Coeff.a, Coeff.d);
     m.cc_covar_bc = imr.cev.covar(Coeff.b, Coeff.c);
     m.cc_covar_bd = imr.cev.covar(Coeff.b, Coeff.d);
     m.cc_covar_cd = imr.cev.covar(Coeff.c, Coeff.d);
     m.cc_var_a = imr.cev.var_a;
     m.cc_var_b = imr.cev.var_b;
     m.cc_var_c = imr.cev.var_c;
     m.cc_var_d = imr.cev.var_d;
     m.cc_sigma_x = imr.cev.sigma_x;
     m.cc_upper_mass_limit = imr.cev.upper_mass_limit;
     m.cc_lower_mass_limit = imr.cev.lower_mass_limit;
     m.cc_heavy_metal_corr_factor = imr.heavy_metal_corr_factor;
     m.cc_heavy_metal_reference = imr.heavy_metal_reference;
     m.cc_cal_curve_type = (double)imr.CalCurveType;
     m.cc_percent_u235 = imr.percent_u235;
     TransferUtils.CopyDbls(imr.dcl_mass, m.cc_dcl_mass);
     TransferUtils.CopyDbls(imr.doubles, m.cc_doubles);
     return m;
 }
Exemplo n.º 25
0
 internal static unsafe multiplicity_rec MoveMult(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.multiplicity_rec imr = (INCCAnalysisParams.multiplicity_rec)md;
     multiplicity_rec mr = new multiplicity_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, mr.multiplicity_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, mr.multiplicity_item_type);
     mr.mul_a = imr.a;
     mr.mul_b = imr.b;
     mr.mul_c = imr.c;
     mr.mul_vi1 = imr.vi1;
     mr.mul_vi2 = imr.vi2;
     mr.mul_vi3 = imr.vi3;
     mr.mul_vs1 = imr.vs1;
     mr.mul_vs2 = imr.vs2;
     mr.mul_vs3 = imr.vs3;
     mr.mul_alpha_weight = imr.alpha_weight;
     mr.mul_sf_rate = imr.sf_rate;
     mr.mul_sigma_x = imr.sigma_x;
     mr.mul_solve_efficiency = (byte)imr.solve_efficiency;
     return mr;
 }
Exemplo n.º 26
0
            internal static unsafe collar_detector_rec MoveCD(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
            {
                INCCAnalysisParams.collar_combined_rec imr = (INCCAnalysisParams.collar_combined_rec)md;
                collar_detector_rec m = new collar_detector_rec();
                byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
                char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.collar_detector_id);
                b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
                a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.collar_detector_item_type);
                m.collar_detector_mode = (byte)(imr.collar_det.collar_mode ? 1 : 0);

                b = new byte[INCC.DATE_TIME_LENGTH];
                a = imr.collar_det.reference_date.ToString("yy.MM.dd").ToCharArray();
                Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
                TransferUtils.Copy(b, m.col_reference_date);
                m.col_relative_doubles_rate = imr.collar_det.relative_doubles_rate;
                return m;
            }
Exemplo n.º 27
0
        unsafe void CollarParm(INCCAnalysisParams.collar_combined_rec combined, collar_rec collar, ushort bonk)
        {
            combined.collar = new INCCAnalysisParams.collar_rec();
            combined.collar.cev.lower_mass_limit = collar.col_lower_mass_limit;
            combined.collar.cev.upper_mass_limit = collar.col_upper_mass_limit;
            combined.collar.cev.a = collar.col_a;
            combined.collar.cev.b = collar.col_b;
            combined.collar.cev.c = collar.col_c;
            combined.collar.cev.d = collar.col_d;
            combined.collar.cev.var_a = collar.col_var_a;
            combined.collar.cev.var_b = collar.col_var_b;
            combined.collar.cev.var_c = collar.col_var_c;
            combined.collar.cev.var_d = collar.col_var_d;
            combined.collar.cev.setcovar(Coeff.a, Coeff.b, collar.col_covar_ab);
            combined.collar.cev._covar[0, 2] = collar.col_covar_ac;
            combined.collar.cev._covar[0, 3] = collar.col_covar_ad;
            combined.collar.cev._covar[1, 2] = collar.col_covar_bc;
            combined.collar.cev._covar[1, 3] = collar.col_covar_bd;
            combined.collar.cev._covar[2, 3] = collar.col_covar_cd;
            combined.collar.cev.cal_curve_equation = (INCCAnalysisParams.CurveEquation)collar.collar_equation;
            combined.collar.cev.sigma_x = collar.col_sigma_x;

            combined.collar.poison_absorption_fact = TransferUtils.Copy(collar.col_poison_absorption_fact, INCC.MAX_POISON_ROD_TYPES);
            combined.collar.poison_rod_a = Copy(collar.col_poison_rod_a, collar.col_poison_rod_a_err, INCC.MAX_POISON_ROD_TYPES);
            combined.collar.poison_rod_b = Copy(collar.col_poison_rod_b, collar.col_poison_rod_b_err, INCC.MAX_POISON_ROD_TYPES);
            combined.collar.poison_rod_c = Copy(collar.col_poison_rod_c, collar.col_poison_rod_c_err, INCC.MAX_POISON_ROD_TYPES);
            combined.collar.collar_mode = (collar.collar_mode == 0 ? false : true);
            combined.collar.u_mass_corr_fact_a.v = collar.col_u_mass_corr_fact_a;
            combined.collar.u_mass_corr_fact_a.err = collar.col_u_mass_corr_fact_a_err;
            combined.collar.u_mass_corr_fact_b.v = collar.col_u_mass_corr_fact_b;
            combined.collar.u_mass_corr_fact_b.err = collar.col_u_mass_corr_fact_b_err;
            combined.collar.sample_corr_fact.v = collar.col_sample_corr_fact;
            combined.collar.sample_corr_fact.err = collar.col_sample_corr_fact_err;
            combined.collar.number_calib_rods = (int)collar.col_number_calib_rods;
            for (int i = 0; i < INCC.MAX_POISON_ROD_TYPES; i++)
            {
                int index = i * INCC.MAX_ROD_TYPE_LENGTH;
                combined.collar.poison_rod_type[i] = TransferUtils.str(collar.col_poison_rod_type + index, INCC.MAX_ROD_TYPE_LENGTH);
            }
            mlogger.TraceEvent(LogLevels.Verbose, 34213, " -- Collar params has mode {0} {1}", combined.collar.collar_mode, bonk);
        }
Exemplo n.º 28
0
 void CopyCoefficients(INCCAnalysisParams.CurveEquationVals src, INCCAnalysisParams.CurveEquationVals tgt)
 {
     tgt.a = src.a;
     tgt.b = src.b;
     tgt.c = src.c;
     tgt.d = src.d;
     tgt.var_a = src.var_a;
     tgt.var_b = src.var_b;
     tgt.var_c = src.var_c;
     tgt.var_d = src.var_d;
     tgt.setcovar(Coeff.a, Coeff.b, src.covar(Coeff.a, Coeff.b));
     tgt.setcovar(Coeff.a, Coeff.c, src.covar(Coeff.a, Coeff.c));
     tgt.setcovar(Coeff.a, Coeff.d, src.covar(Coeff.a, Coeff.d));
     tgt.setcovar(Coeff.b, Coeff.c, src.covar(Coeff.b, Coeff.c));
     tgt.setcovar(Coeff.b, Coeff.d, src.covar(Coeff.b, Coeff.d));
     tgt.setcovar(Coeff.c, Coeff.d, src.covar(Coeff.c, Coeff.d));
 }
Exemplo n.º 29
0
 public void CrossReferenceFieldFiller(INCCAnalysisParams.collar_combined_rec col)
 {
     MaterialTypeComboBox.SelectedIndex = MaterialTypeComboBox.FindStringExact(mp.acq.item_type)>=0?MaterialTypeComboBox.FindStringExact(mp.acq.item_type):0;
     ModeComboBox.SelectedIndex = Convert.ToInt32(col.collar_det.collar_mode);
     RelativeDoublesRateTextBox.Value = col.collar_det.relative_doubles_rate;
     ReferenceDateTimePicker.Value = col.collar_det.reference_date;
     poison = NCC.CentralizedState.App.DB.PoisonRods.GetList();
     SetHelp();
 }
Exemplo n.º 30
0
 internal static unsafe active_mult_rec MoveAM(INCCSelector se, INCCAnalysisParams.INCCMethodDescriptor md)
 {
     INCCAnalysisParams.active_mult_rec imr = (INCCAnalysisParams.active_mult_rec)md;
     active_mult_rec m = new active_mult_rec();
     byte[] b = new byte[INCC.MAX_DETECTOR_ID_LENGTH];
     char[] a = se.detectorid.ToCharArray(0, Math.Min(se.detectorid.Length, INCC.MAX_DETECTOR_ID_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.active_mult_detector_id);
     b = new byte[INCC.MAX_ITEM_TYPE_LENGTH];
     a = se.material.ToCharArray(0, Math.Min(se.material.Length, INCC.MAX_ITEM_TYPE_LENGTH));
     Encoding.ASCII.GetBytes(a, 0, a.Length, b, 0);
     TransferUtils.Copy(b, m.active_mult_item_type);
     m.am_vf1 = imr.vf1;
     m.am_vf2 = imr.vf2;
     m.am_vf3 = imr.vf3;
     m.am_vt1 = imr.vt1;
     m.am_vt2 = imr.vt2;
     m.am_vt3 = imr.vt3;
     return m;
 }