public DataPoint[] FittedDataPoint()
            {
                if (edges.Length == 0) { return new DataPoint[0];}
                FitResult result = new FitResult(minuit);

                DataPoint[] ret = new DataPoint[edges.Length - 1];

                for (int i = 0; i < this.edges.Length - 1; i++)
                {
                    double y = Integral.Integrate1D(pdf.Compute, edges[i], edges[i + 1], 5, result.PartialArg());
                    double x = (this.edges[i]+this.edges[i+1])/2.0;
                    ret[i] = new DataPoint(x, y);
                }
                return ret;
            }
 /// <summary>
 /// 
 /// </summary>
 /// <returns></returns>
 public double[] FittedValue()
 {
     FitResult result = new FitResult(minuit);
     double[] ret = new double[edges.Length - 1];
     for (int i = 0; i < this.edges.Length - 1; i++)
     {
         ret[i] = Integral.Integrate1D(pdf.Compute, edges[i], edges[i + 1], 5, result.PartialArg());
     }
     return ret;
 }