コード例 #1
0
 public Form_Nota(SistemaDosimetrico sitDos = null, Equipo equipo = null, bool creaNota = false) //si no crea es porque solo estoy viendola
 {
     InitializeComponent();
 }
コード例 #2
0
ファイル: CalibracionFot.cs プロジェクト: pabloaberbuj/398
 public static double calcularTPR2010(double LV20, double LV10, int PDDoTPR, bool usarLB, Equipo equipo, EnergiaFotones energia, int DFSoISO)
 {
     if (usarLB)
     {
         return(obtenerCaliReferencia(equipo, energia, DFSoISO).TPR2010);
     }
     else if (PDDoTPR == 2)//está tildado D2010
     {
         double PDD20_10 = Math.Abs(LV20 / LV10);
         return(Math.Round(1.2661 * PDD20_10 - 0.0595, 4));
     }
     else
     {
         return(Math.Round(Math.Abs(LV20 / LV10), 4));
     }
 }
コード例 #3
0
ファイル: CalibracionFot.cs プロジェクト: pabloaberbuj/398
        public static double calcularDifConRef(double Dwref, Equipo equipo, EnergiaFotones energia, int DFSoISO)
        {
            double DwrefLB = obtenerCaliReferencia(equipo, energia, DFSoISO).Dwzref;

            return(Math.Round((Dwref - DwrefLB) / DwrefLB * 100, 4));
        }
コード例 #4
0
ファイル: CalibracionFot.cs プロジェクト: pabloaberbuj/398
 public static double calcularKpol(int signopol, double LVmas, double LVmenos, bool noUsa, bool usaLB, Equipo equipo, EnergiaFotones energia, int DFSoISO)
 {
     if (noUsa)
     {
         return(1);
     }
     else if (usaLB)
     {
         return(obtenerCaliReferencia(equipo, energia, DFSoISO).kpol);
     }
     else
     {
         if (signopol == 1) //polaridad positiva
         {
             return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmas)), 4));
         }
         else
         {
             return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmenos)), 4));
         }
     }
 }
コード例 #5
0
ファイル: CalibracionFot.cs プロジェクト: pabloaberbuj/398
        public static double calcularKs(double Vtot, double LVtot, double LVred, bool noUsa, bool usaLB, Equipo equipo, EnergiaFotones energia, int DFSoISO, double Vred)
        {
            if (noUsa)
            {
                return(1);
            }
            else if (usaLB)
            {
                return(obtenerCaliReferencia(equipo, energia, DFSoISO).ks);
            }
            else
            {
                if (equipo.Fuente == 1)//Co
                {
                    return(Math.Round((Math.Pow((Vtot / Vred), 2) - 1) / (Math.Pow((Vtot / Vred), 2) - (LVtot / LVred)), 4));
                }
                else
                {
                    double a0 = 0; double a1 = 0; double a2 = 0;
                    if (equipo.TipoDeHaz == 1) //Pulsado
                    {
                        string[] fid             = Tabla.Cargar(Tabla.tabla_Ks_pulsados);
                        double[] v1_v2Etiquetas  = Tabla.extraerDoubleArray(fid, 0);
                        string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1);
                        double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count());

                        a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                        a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                        a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                    }
                    else
                    {
                        string[] fid             = Tabla.Cargar(Tabla.tabla_Ks_pulsadosYbarridos);
                        double[] v1_v2Etiquetas  = Tabla.extraerDoubleArray(fid, 0);
                        string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1);
                        double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count());

                        a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                        a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                        a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla);
                    }
                    return(Math.Round(a0 + a1 * Math.Abs((LVtot / LVred)) + a2 * Math.Pow((LVtot / LVred), 2), 4));
                }
            }
        }
コード例 #6
0
ファイル: Analisis.cs プロジェクト: pabloaberbuj/398
        public static double calcularTendencia(BindingList <CalibracionElec> lista, bool fechas, DateTime desde, DateTime hasta, Equipo equipo, EnergiaElectrones energia, Chart grafico)
        {
            BindingList <CalibracionElec> listaFiltrada = new BindingList <CalibracionElec>();

            if (fechas)
            {
                foreach (CalibracionElec cali in lista)
                {
                    if (DateTime.Compare(cali.Fecha.Date, desde.Date) >= 0 && DateTime.Compare(cali.Fecha.Date, hasta.Date) <= 0)
                    {
                        listaFiltrada.Add(cali);
                    }
                }
            }
            else
            {
                listaFiltrada = lista;
            }
            if (listaFiltrada.Count() == 0)
            {
                MessageBox.Show("No hay calibraciones en el rango de fechas seleccionado");
                return(Double.NaN);
            }
            if (listaFiltrada.Count() == 1)
            {
                MessageBox.Show("En el rango de fechas seleccionado hay una única calibración.\nNo se puede realizar el análisis");
                return(Double.NaN);
            }
            else
            {
                List <Double> valores      = listaFiltrada.Select(q => q.Dwzref).ToList();
                List <Double> fechasDouble = listaFiltrada.Select(q => q.Fecha.ToOADate()).ToList();
                Graficar.agregarLineaTendencia(grafico, Calcular.cuadradosMinimos(fechasDouble, valores), fechasDouble.Min(), fechasDouble.Max());
                if (CalibracionElec.hayReferencia(equipo, energia))
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / CalibracionElec.obtenerCaliReferencia(equipo, energia).Dwzref * 100 * 30, 2)); //mensual
                }
                else
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / valores.Average() * 100 * 30, 2)); //mensual
                }
            }
        }
コード例 #7
0
 public static double calcularKqq0(Camara camara, Equipo equipo, EnergiaElectrones energia, double R50ion = double.NaN)
 {
     return(Math.Round(Calcular.interpolarLinea(energia.R50D, Tabla.R50etiquetas, camara.kqq0Elec), 4));
 }
コード例 #8
0
ファイル: Form_Equipos.cs プロジェクト: pabloaberbuj/398
 private void BT_ExportarEq_Click(object sender, EventArgs e)
 {
     Equipo.exportar(DGV_Equipo);
 }
コード例 #9
0
ファイル: Form_Equipos.cs プロジェクト: pabloaberbuj/398
 private void BT_EliminarEq_Click(object sender, EventArgs e)
 {
     Equipo.eliminar(DGV_Equipo);
     actualizarComboBoxCaliFotonesyElectrones(true);
 }
コード例 #10
0
ファイル: Form_Equipos.cs プロジェクト: pabloaberbuj/398
 private void BT_PredetEqu_Click(object sender, EventArgs e)
 {
     Equipo.hacerPredeterminado(DGV_Equipo);
     actualizarComboBoxCaliFotonesyElectrones(true);
 }