import numpy as np

f=open('PopIII_haloes_new.txt','r')

fo = open('PopIII_haloes_histogram.txt','w')
halolist = [[],[],[],[],[]]
line = f.readline()
while line !='':
  temp = line.split()
  halomass = float(line.split()[0])
  starcount = int(temp[1]),int(temp[4]),int(temp[7]),int(temp[10])
  halolist[0].append(halomass)
  halolist[1].append(starcount[0])
  halolist[2].append(starcount[1])
  halolist[3].append(starcount[2])
  halolist[4].append(starcount[3])
  line = f.readline()

bins = 100
max = max(halolist[0])
min = 1e7

dbin=np.log10(max/min)/bins

starcount = np.zeros([bins,5])
for i in xrange(len(halolist[0])):
    index = int(np.log10(halolist[0][i]/min)/dbin)
    starcount[index][0] = starcount[index][0]+halolist[1][i]
    starcount[index][1] = starcount[index][1]+halolist[2][i]
    starcount[index][2] = starcount[index][2]+halolist[3][i]
    starcount[index][3] = starcount[index][3]+halolist[4][i] 
    starcount[index][4] = starcount[index][4]+1

for i in xrange(bins):
  fo.write(str(1e7*10**(i*dbin))+" "+str(starcount[i][4])+" "+str(starcount[i][0])+" "+str(starcount[i][1])+" "+ \
     str(starcount[i][2])+" "+str(starcount[i][3])+"\n")

f.close()
fo.close()

