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

#f=open("star_count.txt",'a')

tunit=6.88027e+14/3.157e7 # cenverted to year
deltat = 2.0e6/tunit # 2 million years

dlist = glob.glob('RD00??')
dlist.sort()
#output = int(re.sub(r'\D',"",fn))

#for folder in dlist:
#n = int(re.sub(r'\D',"",folder))
#if n > 5 :continue
if glob.glob('PopII_haloes_*.txt') !=[]: 
  name,= glob.glob('RedshiftOutput????')
  n = int(re.sub(r'\D',"",name))
  f=open('PopII_haloes_%04i.txt'%n,'r')
  f2=open('Overlaped_haloes_list.txt','r')
  f3=open('../Ionization/FOF/RedshiftOutput%04i-halos.dat'%n,'r')
  a=commands.getoutput('grep InitialTime '+name)
  currenttime=float(a.split()[2])
  overlaped=[]
  line=f2.readline()
  while line !='':
   overlaped.append(int(line))
   line=f2.readline()
  f2.close()
  virialmass=[];stellarmass=[];gasmass=[]
  line=f3.readline();line=f3.readline()
  while line!='':
   virialmass.append(float(line.split()[4]))
   stellarmass.append(float(line.split()[6]))
   gasmass.append(float(line.split()[7]))
   line=f3.readline()
  fo = open('PopII_haloes_SFR.txt','w')
  line = f.readline()
  j=0
  while line !='':
   mass = line.split()[1]
   vm=virialmass.pop(0)
   sm=stellarmass.pop(0)
   bm=gasmass.pop(0)
   line = f.readline()
   pn = line.split()[0] 
   m = []
   for i in xrange(int(pn)):
     line=f.readline()
     if currenttime-float(line.split()[2])< deltat:
       starmass = float(line.split()[1])
       m.append(starmass)
   if len(m) == 0: 
      tm = 0; sfr =0
   else:
      tm=np.array(m).sum()
      sfr=tm/tunit/deltat
   if j not in overlaped:
      fo.write(str(mass)+" "+str(vm)+" "+str(sm)+" "+str(tm)+" "+str(sfr)+" "+str(bm)+" "+str(bm/vm)+" "+str(sm/bm)+"\n")
   f.readline();f.readline()
   line = f.readline()
   j=j+1
  f.close()
  fo.close()

