Page MenuHomec4science

satComputeNvsM.py
No OneTemporary

File Metadata

Created
Fri, Oct 18, 10:05

satComputeNvsM.py

#!/usr/bin/env python3
import sys,os,string
import argparse
import satlib
import numpy as np
import Ptools as pt
import pickle
from scipy.interpolate import splrep,splev
from tqdm import tqdm
####################################################################
# option parser
####################################################################
description=""
epilog =""""""
parser = argparse.ArgumentParser(description=description,epilog=epilog,formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument("--M0",
action="store",
dest="M0",
metavar='FLOAT',
type=float,
default=1e12,
help='host halo mass')
parser.add_argument("--Mmin",
action="store",
dest="Mmin",
metavar='FLOAT',
type=float,
default=5e6,
help='the min halo mass')
parser.add_argument("--Mmax",
action="store",
dest="Mmax",
metavar='FLOAT',
type=float,
default=1e9,
help='the max halo mass')
parser.add_argument("--DMmass",
action="store",
dest="DMmass",
metavar='FLOAT',
type=float,
default=2.0,
help='dark matter particle mass')
parser.add_argument("-N",
action="store",
dest="N",
metavar='INT',
type=int,
default=1000,
help='number of bins')
parser.add_argument("--Ngal",
action="store",
dest="Ngal",
metavar='INT',
type=int,
default=100,
help='number of galaxies')
parser.add_argument("--Nrealisations",
action="store",
dest="Nrealisations",
metavar='INT',
type=int,
default=100,
help='number of realizations')
parser.add_argument("-p",
action="store",
dest="ps",
metavar='FILE NAME',
type=str,
default=None,
help='output file name')
parser.add_argument("--dpi",
action="store",
dest="dpi",
type=float,
default=300,
help="DPI of the saved file",
metavar=" FLOAT")
####################################################################
# main
####################################################################
def MakePlot(opt):
# halo bins
lnMh = np.linspace(np.log10(opt.Mmin),np.log10(opt.Mmax),opt.N)
Mh0 = 10**lnMh
# define the DM models
#CDM = satlib.CDM_Sawala_Model(opt.Mmin,opt.Mmax,opt.N)
#WDM = satlib.CDM_Forouhar_Model(opt.Mmin,opt.Mmax,opt.N)
CDM = satlib.GEN_Model(opt.Mmin,opt.Mmax,opt.N,MDM=None,fWDM=0,M0=opt.M0)
pt.plot(CDM.mbin,CDM.Nsat,label=r"$\rm{CDM}$")
Ms = [3,5,7,9]
for DMmass in Ms:
print(DMmass)
WDM = satlib.GEN_Model(opt.Mmin,opt.Mmax,opt.N,MDM=DMmass,fWDM=1,M0=opt.M0)
pt.plot(WDM.mbin,WDM.Nsat,label=r"$%d\,\rm{keV}$"%DMmass)
###########################
# finalize
###########################
xmin = opt.Mmin
xmax = opt.Mmax
ymin = 8
ymax = 3e2
xlabel = r"$\rm{Halo\,\,Mass\,\,(M_{\rm halo})}\,\,[M_{\odot}]$"
ylabel = r"$dN/dm$"
pt.SetAxis(xmin,xmax,ymin,ymax,log="xy")
pt.xlabel(xlabel,fontsize=pt.labelfont)
pt.ylabel(ylabel,fontsize=pt.labelfont)
pt.grid(False)
#pt.title(r"$\rm{%d\,\,galaxies\,\,observed}$"%opt.Ngal,fontsize=pt.labelfont)
pt.legend()
if __name__ == '__main__':
opt = parser.parse_args()
files = []
pt.InitPlot(files, opt)
pt.labelfont=20
# pt.figure(figsize=(8*2,6*2))
# pt.figure(dpi=10)
#fig = pt.gcf()
# fig.subplots_adjust(left=0.1)
# fig.subplots_adjust(right=1)
# fig.subplots_adjust(bottom=0.12)
# fig.subplots_adjust(top=0.95)
# fig.subplots_adjust(wspace=0.25)
# fig.subplots_adjust(hspace=0.02)
MakePlot(opt)
pt.EndPlot(files, opt)

Event Timeline