f'''
Определение чувствительности спектрометра к нейтронному излучению Плутоний-Бериллиевого источника.
'''
import random
import statistics
from tkinter import ROUND


NMEAN = float(245)     # среднее арифметическое значение скорости счета импульсов фотонного излучения, cps
r0 = 100            # расстояние от центра источника до центра детектора
NBACK = float(0.36)     # скорость счета импульсов фонового нейтронного излучения
phir0 = float(235)  # плотность потока нейтроновв Pu-Be источника на расстоянии r0
                    # на дату поверки (из свидетельства), нейтр.* с^(-1) * cm^(-2)
br0K = float(0.366)  # коэффициент, учитывающий вклад рассеянного нейтронного излучения
                    # K - коэффициент, используемый при поверке на установках типа УПН и обусловленный зависимостью
                    # чувствительности нейтронного детектора от энергии нейтронного излучения
                    # Коэффициент К равен отношению чувствительности нейтронного детектора при измерениях в
                    # открытой геометрии к чувствительности при измерениях на установках типа УПН
                    # и определяется на конкретной установке типа УПН для данного типа нейтронного детектора.
                    # При проведении измерений в открытой геометрии K = 1
                    # b(r0) = (N - Nc) / (N - N0)
                    # N - скорость счета импульсов от нейтронного источника в точке поверки
                    # N0 - корость счета импульсов фонового нейтронного источника
                    # Nc - скорость счета импульсов от нейтронного излучения, измеренная с устанновленным между источником и спектрометром теневым конусом
                    # b(ro) * K = (S0 * phi(r0)) / (N - N0)
                    # S0 - чувствительность спектрометра, определенная в условиях открытой геометрии, имп * с^(-1) / (нейтр. * c^(-1) * cm^(-2))
                    # phi(r0) - лотность потока нейтронов на расстоянии r0, для установки типа УПН, (нейтр. * c^(-1) * cm^(-2))
                    # N - скорость счета импульсов от нейтронного источника в точке поверки
                    # N0 - корость счета импульсов фонового нейтронного источника
ring = int(3)
error = 1.5         # (%) погрешность измерений скорости счета импульсов нейтронного излучения (1-3%)

def N(N, error, ring):
    NLIST = []
    for i in range(3):
        var = round(random.uniform((N - error * N),(N + error * N)),ring)
        NLIST.append(var)
    return NLIST, round(statistics.mean(NLIST),ring)

SENSITIVITY = (NMEAN - NBACK) / phir0 * br0K
ROUNDSENSITIVITY = round(SENSITIVITY, ring)
if __name__ == '__main__':
    print('Чувствительность к нейтронам =', ROUNDSENSITIVITY, 'имп * с^(-1) / (нейтр. * c^(-1) * cm^(-2))')