orlox / SideKicks.jl

Statistical Inference to DEtermine KICKS on compact objects
GNU General Public License v3.0
3 stars 0 forks source link

Move sampling distributions (and their numerical boundaries) out of the KickMCMC.jl file #12

Closed avigna closed 1 month ago

avigna commented 5 months ago

Currently, the createEccentricMCMCModel function begins with the specification of prior distributions within numerical defined range:

function createEccentricMCMCModel(observations::Vector{Symbol}, observed_values::Vector{Float64}, observed_errors::Vector{Float64};
    bhModel = arbitraryEjectaBH,
    logm1_i_dist::ContinuousUnivariateDistribution = Uniform(0.1,3), 
    logm2_i_dist::ContinuousUnivariateDistribution = Uniform(0.1,3),
    logP_i_dist::ContinuousUnivariateDistribution = Uniform(-1,3),
    e_dist::ContinuousUnivariateDistribution = Uniform(0,0.01),
    vkick_dist::ContinuousUnivariateDistribution = Exponential(1),
    vsys_N_i_dist::ContinuousUnivariateDistribution = Normal(0,0.1), # in 100 km/s
    vsys_E_i_dist::ContinuousUnivariateDistribution = Normal(0,0.1), # in 100 km/s
    vsys_r_i_dist::ContinuousUnivariateDistribution = Normal(0,0.1), # in 100 km/s
    frac_dist::ContinuousUnivariateDistribution = Uniform(0,1.0))

I consider these functions and their numerical boundaries should be somewhere where the user can access them and modify them, instead of in the main source code for the MCMC.

orlox commented 5 months ago

Perhaps this can be part of an outer-level interface. We could use input files to allow the definition of all these things in input text files, including the observables with their values+errors, number of samples, number of chains, etc... This could be run as a program then (I think it is possible to provide static executables, though that requires extra maintenance), and then the user would really not need concern themselves with julia. But that is plenty of work.