function [ReducedClausingFactor, NormalizationConstantForAngularDistribution] = calculateReducedClausingFactor(this)
    ThetaArray = linspace(0.0001, pi/2, 1000);
    AngularDistribution = zeros(1,length(ThetaArray));
    parfor k = 1:length(ThetaArray)
        AngularDistribution(k) = this.angularDistributionFunction(ThetaArray(k));
    end
    
    NormalizationConstantForAngularDistribution         = max(2 * pi .* sin(ThetaArray) .* AngularDistribution);

    ReducedClausingFactor = 0;       % We have to calculate the probability of an atom coming out of the oven subject to the physical constraint
    parfor p = 1:length(ThetaArray)  % that the angle of divergence is not more than the angle subtended at the mouth of the nozzle
        if ThetaArray(p) <= this.ExitDivergence
            ReducedClausingFactor = ReducedClausingFactor + (2 * pi * sin(ThetaArray(p)) * AngularDistribution(p) * (ThetaArray(2)-ThetaArray(1)));
        end
    end
    ReducedClausingFactor = ReducedClausingFactor / pi;
end