print ",".join(header) step = args.step #Only calculate once all particles are present. in_loop = True with open(args.list_of_directories) as f: directories = [line.rstrip() for line in f] trials_step_size = 10 last_trials_step = int(math.floor(len(directories)/trials_step_size)) for i in range(1,last_trials_step): number_trials = i*trials_step_size trial_dirs = random.sample(directories,number_trials) sum_covariance_matrix = MyEditableCovarianceMatrix() mean_phase_volume=Phase6DVolume(mass=mass_of_macroparticle) for directory in trial_dirs: cov_matrix = MyEditableCovarianceMatrix() cov_matrix.readCovarianceMatrix(os.path.join(directory,str(args.step)+"_cov_matrix.txt")) sum_covariance_matrix.cov_matrix += cov_matrix.cov_matrix mean_phase_volume.injectFile(os.path.join(directory,str(args.step)+"_mean.txt"),mass=mass_of_macroparticle) sum_covariance_matrix.cov_matrix = sum_covariance_matrix.cov_matrix/len(mean_phase_volume) #sum_covariance_matrix.printCovarianceMatrix() det_cov_matrix = sum_covariance_matrix.getSubDeterminant() ref_cov_matrix = mean_phase_volume.getCovarianceMatrix() det_ref_cov_matrix = ref_cov_matrix.getSubDeterminant() #ref_cov_matrix.printCovarianceMatrix() log_emittance = np.log10(det_ref_cov_matrix) + (args.number_of_particles-1)*np.log10(det_cov_matrix) output = [] output.append(number_trials) output.append(det_ref_cov_matrix) output.append(det_cov_matrix) output.append(log_emittance) print ",".join([str(o) for o in output])