def mcmc_CH(self, walkerRatio, n_run, n_burn, mean_start, sigma_start, threadCount=1, init_pos=None, mpi=False):
        """
        runs mcmc on the parameter space given parameter bounds with CosmoHammerSampler
        returns the chain
        """
        lowerLimit, upperLimit = self.lower_limit, self.upper_limit

        mean_start = np.maximum(lowerLimit, mean_start)
        mean_start = np.minimum(upperLimit, mean_start)

        low_start = mean_start - sigma_start
        high_start = mean_start + sigma_start
        low_start = np.maximum(lowerLimit, low_start)
        high_start = np.minimum(upperLimit, high_start)
        sigma_start = (high_start - low_start) / 2
        mean_start = (high_start + low_start) / 2
        params = np.array([mean_start, lowerLimit, upperLimit, sigma_start]).T

        chain = LikelihoodComputationChain(
            min=lowerLimit,
            max=upperLimit)

        temp_dir = tempfile.mkdtemp("Hammer")
        file_prefix = os.path.join(temp_dir, "logs")
        #file_prefix = "./lenstronomy_debug"
        # chain.addCoreModule(CambCoreModule())
        chain.addLikelihoodModule(self.chain)
        chain.setup()

        store = InMemoryStorageUtil()
        #store = None
        if mpi is True:
            sampler = MpiCosmoHammerSampler(
            params=params,
            likelihoodComputationChain=chain,
            filePrefix=file_prefix,
            walkersRatio=walkerRatio,
            burninIterations=n_burn,
            sampleIterations=n_run,
            threadCount=1,
            initPositionGenerator=init_pos,
            storageUtil=store)
        else:
            sampler = CosmoHammerSampler(
                params=params,
                likelihoodComputationChain=chain,
                filePrefix=file_prefix,
                walkersRatio=walkerRatio,
                burninIterations=n_burn,
                sampleIterations=n_run,
                threadCount=threadCount,
                initPositionGenerator=init_pos,
                storageUtil=store)
        time_start = time.time()
        if sampler.isMaster():
            print('Computing the MCMC...')
            print('Number of walkers = ', len(mean_start)*walkerRatio)
            print('Burn-in iterations: ', n_burn)
            print('Sampling iterations:', n_run)
        sampler.startSampling()
        if sampler.isMaster():
            time_end = time.time()
            print(time_end - time_start, 'time taken for MCMC sampling')
        # if sampler._sampler.pool is not None:
        #     sampler._sampler.pool.close()
        try:
            shutil.rmtree(temp_dir)
        except Exception as ex:
            print(ex, 'shutil.rmtree did not work')
            pass
        #samples = np.loadtxt(file_prefix+".out")
        #prob = np.loadtxt(file_prefix+"prob.out")
        return store.samples, store.prob
def mcmc_CH ( self , walkerRatio , n_run , n_burn , mean_start , sigma_start , threadCount = 1 , init_pos = None , mpi = False ) : lowerLimit , upperLimit = self . lower_limit , self . upper_limit mean_start = np . maximum ( lowerLimit , mean_start ) mean_start = np . minimum ( upperLimit , mean_start ) low_start = mean_start - sigma_start high_start = mean_start + sigma_start low_start = np . maximum ( lowerLimit , low_start ) high_start = np . minimum ( upperLimit , high_start ) sigma_start = ( high_start - low_start ) / 2 mean_start = ( high_start + low_start ) / 2 params = np . array ( [ mean_start , lowerLimit , upperLimit , sigma_start ] ) . T chain = LikelihoodComputationChain ( min = lowerLimit , max = upperLimit ) temp_dir = tempfile . mkdtemp ( "Hammer" ) file_prefix = os . path . join ( temp_dir , "logs" ) chain . addLikelihoodModule ( self . chain ) chain . setup ( ) store = InMemoryStorageUtil ( ) if mpi is True : sampler = MpiCosmoHammerSampler ( params = params , likelihoodComputationChain = chain , filePrefix = file_prefix , walkersRatio = walkerRatio , burninIterations = n_burn , sampleIterations = n_run , threadCount = 1 , initPositionGenerator = init_pos , storageUtil = store ) else : sampler = CosmoHammerSampler ( params = params , likelihoodComputationChain = chain , filePrefix = file_prefix , walkersRatio = walkerRatio , burninIterations = n_burn , sampleIterations = n_run , threadCount = threadCount , initPositionGenerator = init_pos , storageUtil = store ) time_start = time . time ( ) if sampler . isMaster ( ) : print ( 'Computing the MCMC...' ) print ( 'Number of walkers = ' , len ( mean_start ) * walkerRatio ) print ( 'Burn-in iterations: ' , n_burn ) print ( 'Sampling iterations:' , n_run ) sampler . startSampling ( ) if sampler . isMaster ( ) : time_end = time . time ( ) print ( time_end - time_start , 'time taken for MCMC sampling' ) try : shutil . rmtree ( temp_dir ) except Exception as ex : print ( ex , 'shutil.rmtree did not work' ) pass return store . samples , store . prob
runs mcmc on the parameter space given parameter bounds with CosmoHammerSampler
        returns the chain