mmikhasenko / ThreeBodyDecays.jl

Builder of the three-body decay model using cascade approach
https://mmikhasenko.github.io/ThreeBodyDecays.jl/
MIT License
2 stars 0 forks source link

Projection to cos(theta) #41

Open mmikhasenko opened 1 month ago

mmikhasenko commented 1 month ago
function project_cosθij_intergand(fs, ms, z; k) 
    # 
    i,j = ij_from_k(k)
    mi, mj, mk, m0 = ms[i], ms[j], ms[k], ms[4]
    # 
    function integrand(xσk)
        σs = x2σs([xσk, (z+1)/2], ms; k)
        σk = σs[k]
        jac = sqrt(Kallen(σk,mk^2,m0^2)*Kallen(σk,mi^2,mj^2))/σk
        return fs(σs) / 2 * jac * ((m0-mk)^2-(mi+mj)^2)
    end
    return integrand
end
mmikhasenko commented 1 month ago

tests:

let Nb = 100
    [sum(range(-1, 1, Nb)) do z
        integrand = project_cosθij_intergand(I, ms, z; k) 
        quadgk(integrand, 0, 1)[1] * 2/Nb
    end for k in 1:3]
end

and

let Nb = 100
    binwidth = diff(collect(lims(ms; k=1)))[1] / Nb
    [sum(range(lims(ms; k)..., Nb)) do σk
        integrand = projection_integrand(I, ms, σk; k) 
        quadgk(integrand, 0, 1)[1] * binwidth
    end for k in 1:3]
end