public static Tuple <double, double, double[]> GetQuality (string pathbase , Universe univ , Universe univ_scrn , string hesstype , double GetHessCoarseResiIter_thres_zeroblk ) { Universe luniv; Func <Hess.HessInfo> GetHessInfo; switch (hesstype) { case "NMA": luniv = univ; GetHessInfo = delegate() { return(Hess.GetHessNMA(luniv, luniv.GetCoords(), tempbase, 16)); }; break; case "scrnNMA": luniv = univ_scrn; GetHessInfo = delegate() { return(Hess.GetHessNMA(luniv, luniv.GetCoords(), tempbase, 16, "CUTOFF 9", "TAPER")); }; break; case "sbNMA": luniv = univ; GetHessInfo = delegate() { return(Hess.GetHessSbNMA(luniv, luniv.GetCoords(), double.PositiveInfinity)); }; break; case "ssNMA": luniv = univ; GetHessInfo = delegate() { return(Hess.GetHessSsNMA(luniv, luniv.GetCoords(), double.PositiveInfinity)); }; break; case "eANM": luniv = univ; GetHessInfo = delegate() { return(Hess.GetHessEAnm(luniv, luniv.GetCoords())); }; break; case "AA-ANM": luniv = univ; GetHessInfo = delegate() { return(Hess.GetHessAnm(luniv, luniv.GetCoords(), 4.5)); }; break; default: throw new HException(); } string pathcache = pathbase + string.Format("{0}.{1}.txt", hesstype, GetHessCoarseResiIter_thres_zeroblk); Tuple <double, double, double[]> corr_wovlp_ovlps; try { corr_wovlp_ovlps = GetQuality(pathcache, luniv, GetHessInfo, GetHessCoarseResiIter_thres_zeroblk); return(corr_wovlp_ovlps); } catch { return(null); } }