#!/usr/bin/python

import sys, re, os, math

#from numpy import *

nframes=float(sys.argv[1])

box_x=float(sys.argv[2])
box_y=float(sys.argv[3])

min_val=-5.0
max_val=5.0

#data_file_1 = sys.argv[1]
#data_file_2 = sys.argv[2]
#data_file_3 = sys.argv[3]
#histo_file = ('histo.xvg')

interval=0.001

unit=1000   # 1000 for e/A^3 and 1 for e/nm^3

volume=box_x * box_y * interval * nframes * unit

increment=6.5 / volume


#########################################
########   HEAD    ######################
########################################

histogram = [0]*(int((max_val-min_val)/interval))

histo_file_head=  ('histo_head.xvg')

points=open("new_distance_head.xvg")

for i in points:
    val=i.split()
    x = round(((float(val[1]) - min_val) / interval),0)
    y=int(x)
    histogram[y] += increment

o_head = open(histo_file_head, 'w')

for i in range(len(histogram)):
    o_head.write('%s %f \n' % ((i*interval+min_val), histogram[i]))

o_head.close()

#########################################
########   TAIL    ######################
########################################

histogram = [0]*(int((max_val-min_val)/interval))

histo_file_tail=  ('histo_tail.xvg')

points=open("new_distance_tail.xvg")

for i in points:
    val=i.split()
    x = round(((float(val[1]) - min_val) / interval),0)
    y=int(x)
    histogram[y] += increment

o_tail = open(histo_file_tail, 'w')

for i in range(len(histogram)):
    o_tail.write('%s %f \n' % ((i*interval+min_val), histogram[i]))

o_tail.close()

#########################################
########   WATER    ######################
########################################

histogram = [0]*(int((max_val-min_val)/interval))

histo_file_water=  ('histo_water.xvg')

points=open("new_distance_water.xvg")

for i in points:
    val=i.split()
    x = round(((float(val[1]) - min_val) / interval),0)
    y=int(x)
    histogram[y] += increment * 1.25

o_water = open(histo_file_water, 'w')

for i in range(len(histogram)):
    o_water.write('%s %f \n' % ((i*interval+min_val), histogram[i]))

o_water.close()

#########################################
########   PROTEIN    ######################
########################################

histogram = [0]*(int((max_val-min_val)/interval))

histo_file_protein=  ('histo_protein.xvg')

points=open("new_distance_protein.xvg")

for i in points:
    val=i.split()
    x = round(((float(val[1]) - min_val) / interval),0)
    y=int(x)
    histogram[y] += increment
   
o_protein = open(histo_file_protein, 'w')

for i in range(len(histogram)):
    o_protein.write('%s %f \n' % ((i*interval+min_val), histogram[i]))

o_protein.close()

