def precompute(self, distance_modulus_array=None):
        """
        DEPRECATED: ADW 20170627

        Precompute color probabilities for background ('u_background')
        and signal ('u_color') for each star in catalog.  Precompute
        observable fraction in each ROI pixel.  # Precompute still
        operates over the full ROI, not just the likelihood region

        Parameters:
        -----------
        distance_modulus_array : Array of distance moduli 
        
        Returns:
        --------
        None
        """
        msg = "'%s.precompute': ADW 2017-09-20"%self.__class__.__name__
        DeprecationWarning(msg)

        if distance_modulus_array is not None:
            self.distance_modulus_array = distance_modulus_array
        else:
            self.distance_modulus_array = sel

        # Observable fraction for each pixel
        self.u_color_array = [[]] * len(self.distance_modulus_array)
        self.observable_fraction_sparse_array = [[]] * len(self.distance_modulus_array)

        logger.info('Looping over distance moduli in precompute ...')
        for ii, distance_modulus in enumerate(self.distance_modulus_array):
            logger.info('  (%i/%i) Distance Modulus = %.2f ...'%(ii+1, len(self.distance_modulus_array), distance_modulus))

            self.u_color_array[ii] = False
            if self.config['scan']['color_lut_infile'] is not None:
                DeprecationWarning("'color_lut' is deprecated")
                logger.info('  Precomputing signal color from %s'%(self.config['scan']['color_lut_infile']))
                self.u_color_array[ii] = ugali.analysis.color_lut.readColorLUT(self.config['scan']['color_lut_infile'],
                                                                               distance_modulus,
                                                                               self.loglike.catalog.mag_1,
                                                                               self.loglike.catalog.mag_2,
                                                                               self.loglike.catalog.mag_err_1,
                                                                               self.loglike.catalog.mag_err_2)
            if not np.any(self.u_color_array[ii]):
                logger.info('  Precomputing signal color on the fly...')
                self.u_color_array[ii] = self.loglike.calc_signal_color(distance_modulus) 
            
            # Calculate over all pixels in ROI
            self.observable_fraction_sparse_array[ii] = self.loglike.calc_observable_fraction(distance_modulus)

        self.u_color_array = np.array(self.u_color_array)