import sys
from yt.mods import *
import numpy as np
from yt.analysis_modules.halo_finding.api import *
import glob
import re
import commands

#output = 23

fo=open("star_mass.txt",'a')

#fn = 'output_%04i'%(output)
#fn = 'RedshiftOutput%04i'%output
dlist = glob.glob('Redshift*')
dlist.sort()
dlist.reverse() 
#output = int(re.sub(r'\D',"",fn))
for folder in dlist:
  filename = glob.glob(folder+"/RedshiftOutput????")
  i = int(re.sub(r'\D',"",filename[0].split('/')[1]))
  a=commands.getoutput('grep CurrentRedshift '+folder+'/RedshiftOutput00??')
  z=float(a.split()[2])
  a=commands.getoutput('grep InitialTime '+folder+'/RedshiftOutput00??')
  time=float(a.split()[2])
  f=open(folder+'/PopII_list_%04i.txt'%i,'r')
  lines = f.readlines()
  f.close()
  lines.pop(0)
  MPopII = 0.0
  for line in lines:
   MPopII = MPopII + float(line.split()[1])
  f=open(folder+'/PopIII_list_%04i_type1.txt'%i,'r')
  lines = f.readlines()
  f.close()
  lines.pop(0)
  MPopIII1 = 0.0
  for line in lines:
   MPopIII1 = MPopIII1 + float(line.split()[1])
  f=open(folder+'/PopIII_list_%04i_type5.txt'%i,'r')
  lines = f.readlines()
  f.close()
  lines.pop(0)
  MPopIII5 = 0.0
  for line in lines:
   mass = float(line.split()[1])
   if mass > 1.0e20: mass=mass/1.0e20
   MPopIII5 = MPopIII5 + mass
  fo.write(str(z)+" "+str(time)+" "+str(MPopII)+" "+str(MPopIII1)+" "+str(MPopIII5)+" "+str(MPopIII1+MPopIII5)+"\n")

#f.write('#  Mass CreationTime Position (x,y,z) \n')
#for i in xrange(ct.size):
#    f.write(str(i)+"  "+str(sm[i])+"  "+str(ct[i])+"  "+str(px[i])+"  "+str(py[i])+"  "+str(pz[i])+"\n")
f.close()   
