import numpy as np
import glob
import pylab as P

#fo=open('Luminosity.out','w')
for i in xrange(0):
 if glob.glob('halo%05i.out'%i) ==  []:continue
 f=open('halo%05i.out'%i,'r')
 L=[]
 WL=[]
 for line in f:
    L.append(float(line.split()[1]))
    WL.append(float(line.split()[0]))
 f.close()
 sumL=0.0
 for j,Li in enumerate(L):
    if np.logical_and(j>0,j<len(L)-1):
       sumL=sumL+0.5*(WL[j+1]-WL[j-1])*Li
    elif j==0:
       sumL=sumL+(WL[j+1]-WL[j])*Li
    elif j==len(L)-1:
       sumL=sumL+(WL[j]-WL[j-1])*Li
 #print sumL,4.74-2.5*np.log10(sumL)
 fo.write(str(i)+" "+str(sumL)+" "+str(4.74-2.5*np.log10(sumL))+"\n")

#fo.close()
  
f=open('Luminosity.out','r')
L=[]
for line in f:
    L.append(float(line.split()[2]))

f.close()
L=np.array(L)
xmin = -20
xmax = -5
bin = 15
n, bins, patches = P.hist(L, bin,range=(xmin,xmax), normed=0, histtype='step',log=1) 
#P.setp(patches, 'facecolor', 'g', 'alpha', 0.75)
P.savefig('LF.png')
f=open('LF.txt','w')
conv=1.0/(xmax-xmin)*bin/(6*6*6.125)
for M,ni in zip(bins,n):
    f.write(str(M)+" "+str(ni*conv)+"\n") 

f.close()
   
