import numpy as np

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

fo = open('PopIII_haloes_histogram_std.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])
  halolist[5].append(starcount[0]+starcount[1]+starcount[2]+starcount[3])
  line = f.readline()

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

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

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

for i in xrange(bins):
  sc0 = np.array(starcount[i][0])
  sc1 = np.array(starcount[i][1])
  sc2 = np.array(starcount[i][2])
  sc3 = np.array(starcount[i][3])
  sc4 = np.array(starcount[i][4])
  fo.write(str(1e7*10**(i*dbin))+" "+str(sc0.size)+" "+str(sc0.mean())+" "+str(sc0.std())+" "\
     +str(sc1.mean())+" "+str(sc1.std())+" "+str(sc2.mean())+" "+str(sc2.std())+" "+ \
     str(sc3.mean())+" "+str(sc3.std())+" "+str(sc4.mean())+" "+str(sc4.std())+"\n")

f.close()
fo.close()

