import numpy as np
import glob
import pylab as P

fo=open('Luminosity_UV.out','w')
for i in xrange(3265):
 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
 jj=0
 for j,Li in enumerate(L):
    if WL[j] < 1450: continue
    if WL[j] > 1550: break
    jj=jj+1
    sumL = sumL+Li
    #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)
 sumL = sumL/jj*100
 fo.write(str(i)+" "+str(sumL)+" "+str(5.48-2.5*np.log10(sumL))+"\n")

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

f.close()
L=np.array(L)
xmin = -16
xmax = -1
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_UV.png')
f=open('LF_UV.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()
   
