import numpy as np
import sys
from math import log10


n=int(sys.argv[1])
halomin=float(sys.argv[2])
halomax=float(sys.argv[3])
halobins=int(sys.argv[4])
fractionbins=int(sys.argv[5])

masstophoton=1.12e46

f=open('RD0073_escape_fraction.txt','r')
lines = f.readlines()
f.close()

halomass=[[] for i in range(halobins)]
halowidth = (halomax-halomin)/halobins

for line in lines[1:]:
    mass=log10(float(line.split()[2]))
    if mass < halomin: continue
    if mass > halomax: continue
    astar=float(line.split()[5])
    fesc=float(line.split()[7])
    halomass[int((mass-halomin)/halowidth)].append(abs(astar*masstophoton*fesc))
 
escapephotons = np.zeros([halobins,fractionbins])
for j,escapephoton in enumerate(halomass):
    escapephoton.sort()
    escapephoton = np.array(escapephoton)
    k=0
    for i in range(fractionbins):
        while (float(i+1)/fractionbins > float(k+1)/escapephoton.size):
              k=k+1
        escapephotons[j][i] = escapephoton[k]

print escapephotons
    
fo=open('RD%04i_halomass_escape_photon.txt'%n,'w') 
for i in range(halobins):
    for j in range(fractionbins):
        fo.write('%12.6e '%escapephotons[i][j])
    fo.write('\n')

