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