# -*- coding: utf-8 -*-
import numpy as np
import sys
import matplotlib.pyplot as plt
from pylab import setp
from matplotlib.pyplot import rcParams
import csv
import pandas as pd
rcParams['mathtext.default'] = 'regular'
def read_file(finame):
fi = open(finame, 'r')
rdr = csv.reader(fi, delimiter=',', skipinitialspace=True)
table = []
for row in rdr:
# print(row)
energy = float(row[0])
veff = float(row[1])
veff_err = float(row[2])
veff1 = float(row[3])
veff2 = float(row[4])
veff3 = float(row[5])
row = {'energy':energy, 'veff':veff, 'veff_err':veff_err, 'veff1':veff1, 'veff2':veff2, 'veff3':veff3}
table.append(row)
df=pd.DataFrame(table)
df_ordered=df.sort_values('energy',ascending=True)
# print(df_ordered)
return df_ordered
def beautify_veff(this_ax):
sizer=20
xlow = 1.e16 #the lower x limit
xup = 2.e20 #the uppper x limit
ylow =1e-3 #the lower x limit
yup = 6.e1 #the uppper x limit
this_ax.set_xlabel('Energy [eV]',size=sizer) #give it a title
this_ax.set_ylabel('[V$\Omega]_{eff}$ [km$^3$sr]',size=sizer)
this_ax.set_yscale('log')
this_ax.set_xscale('log')
this_ax.tick_params(labelsize=sizer)
this_ax.set_xlim([xlow,xup]) #set the x limits of the plot
this_ax.set_ylim([ylow,yup]) #set the y limits of the plot
this_ax.grid()
this_legend = this_ax.legend(loc='upper left')
setp(this_legend.get_texts(), fontsize=17)
setp(this_legend.get_title(), fontsize=17)
def main():
"""
arasim_energies = np.array([3.16e+16, 1e+17, 3.16e+17, 1e+18, 3.16e+18, 1e+19, 3.16e+19, 1e+20])
arasim_energies2 = np.array([3.16e+16, 1e+17, 3.16e+17, 1e+18, 1e+19, 3.16e+19, 1e+20])
#arasim_desA_veff = np.array([0.080894,0.290695,0.943223,2.388708,4.070498,6.824112,10.506490,13.969418])
arasim_desA_veff_s = np.array([0.067384,0.289591,0.996509,2.464464,4.945600,8.735506,13.357300,18.751915])
# arasim_desA_veff_ice = np.array([0.066291,0.303620,0.927647,2.427554,4.962093,8.465895,13.425852,18.706528])
arasim_desA_error = np.array([0.008367,0.017401,0.032222,0.084223,0.119240,0.221266,0.272460,0.320456])
# arasim_desA_error_ice = np.array([0.008345,0.017748,0.031295,0.083747,0.119370,0.217717,0.273075,0.319872])
# arasim_desB_veff = np.array([0.124111,0.417102,1.310555,3.648494,4.070E+0,11.675189,18.393961,13.688909])
arasim_desB_veff_s = np.array([0.064937,0.355747,1.289947,3.821705,8.002805,15.352981,25.391282,18.009545])
# arasim_desB_veff_ice = np.array([0.080070,0.340927,1.369081,3.938550,8.211407,15.190858,25.066541,18.021033])
arasim_desB_error = np.array([0.008268,0.019317,0.036926,0.105445,0.152488,0.296617,0.377997,0.314314])
# arasim_desB_error_ice = np.array([0.009220,0.019144,0.037966,0.107189,0.154430,0.293728,0.375827,0.314244])
arasim_desA_veff1_sm = np.array([0.054,0.231,0.868,2.239,4.586,8.339,12.910,18.301])
arasim_desA_veff2_sm = np.array([0.009,0.036,0.098,0.323,0.705,1.167,2.169,3.130])
arasim_desA_veff3_sm = np.array([0.011,0.074,0.193,0.664,1.208,2.347,3.689,4.814])
arasim_desA_veff1 = np.array([0.053,0.282,1.108,3.462,7.486,14.613,24.682,17.557])
arasim_desA_veff2 = np.array([0.006,0.040,0.121,0.322,0.636,1.308,1.961,2.708])
arasim_desA_veff3 = np.array([0.006,0.065,0.188,0.638,1.187,2.270,3.301,4.322])
"""
veff_A=read_file("Veff_desA.txt")
veff_B=read_file("Veff_desB.txt")
print("desA is \n", veff_A)
print("desB is \n", veff_B)
dfA = veff_A[['veff','veff_err']]
dfB = veff_B[['veff','veff_err']]
dfA.to_csv('veffA.csv', sep='\t',index=False)
dfB.to_csv('veffB.csv', sep='\t',index=False)
fig = plt.figure(figsize=(11,8.5))
ax1 = fig.add_subplot(1,1,1)
ax1.plot(veff_A['energy'], veff_A['veff'],'bs-',label='Strawman',markersize=8,linewidth=2)
ax1.plot(veff_B['energy'], veff_B['veff'],'gs-',label='Punch @100 m',markersize=8,linewidth=2)
ax1.fill_between(veff_A['energy'], veff_A['veff']-veff_A['veff_err'], veff_A['veff']+veff_A['veff_err'], alpha=0.2, color='red')
ax1.fill_between(veff_B['energy'], veff_B['veff']-veff_B['veff_err'], veff_B['veff']+veff_B['veff_err'], alpha=0.2, color='red')
beautify_veff(ax1)
ax1.set_title("Punch vs Strawman, noise + signal",fontsize=20)
fig.savefig("desAB.png",edgecolor='none',bbox_inches="tight") #save the figure
fig2 = plt.figure(figsize=(11,8.5))
ax2 = fig2.add_subplot(1,1,1)
#Triggers plot
ax2.plot(veff_B['energy'], veff_B['veff1'],'g^-',label='Phased array (Punch)',markersize=8,linewidth=2)
ax2.plot(veff_A['energy'], veff_A['veff1'],'gs-',label='Phased array (Strawman)',markersize=8,linewidth=2)
ax2.plot(veff_B['energy'], veff_B['veff2'],'b^-',label='LPDAs (Punch)',markersize=8,linewidth=2)
ax2.plot(veff_A['energy'], veff_A['veff2'],'bs-',label='LPDAs (Strawman)',markersize=8,linewidth=2)
ax2.plot(veff_B['energy'], veff_B['veff3'],'y^-',label='Bicones (Punch)',markersize=8,linewidth=2)
ax2.plot(veff_A['energy'], veff_A['veff3'],'ys-',label='Bicones (Strawman)',markersize=8,linewidth=2)
ax2.set_title("Triggers contribution, noise + signal",fontsize=20)
beautify_veff(ax2)
fig2.savefig("desAB_triggers.png",edgecolor='none',bbox_inches="tight") #save the figure
main()
|