Beispiel #1
0
def FourierP(Signal, lum, lumDiv, T, k, M5, massList, mpnk):

    #Initialize variables
    Psq = 0

    #Bins to scan over
    binMin = bisect_left(massList, max(k, 150))
    binMax = bisect_left(massList, max((1 + mpnk) * k, binMin))

    #Loop over signal
    for b in range(binMin, binMax - 1):
        if lumDiv:
            lumT = lum[b]
        else:
            lumT = 1

        Psq += 1 / (2 * math.pi)**0.5 * Signal[b] / lumT * cmath.exp(
            1j * 2 * math.pi * Basic.R(M5, k) *
            (massList[b]**2 - k**2)**0.5 / T) * (massList[b + 1] - massList[b])

    #Return P(T)
    return (numpy.absolute(Psq))**2