function plotFreeMolecularFluxVsTemp(obj, Temperature)
    
    f_h = Helper.getFigureByTag('Tube Flux');
    set(groot,'CurrentFigure',f_h);
    a_h = get(f_h, 'CurrentAxes');
    if ~isempty(get(a_h, 'Children')) 
        clf(f_h);
    end
    f_h.Name  = 'Tube Flux';
    f_h.Units = 'pixels';
    
    set(0,'units','pixels');
    screensize = get(0,'ScreenSize');
    f_h.Position = [[screensize(3)/4.5 screensize(4)/4.5] 920 750];
    
    hold on
    
    for i=1:length(Temperature)
        beta = linspace(0.01,0.5,200);
        obj.OvenTemperature = Temperature(i);
        flux = zeros(1,length(beta));
        for j=1:length(beta)
            obj.NozzleLength = (2 * obj.NozzleRadius) / beta(j);
            [ReducedClausingFactor, ~] = obj.calculateReducedClausingFactor();
            flux(j)  = ReducedClausingFactor * obj.calculateFreeMolecularRegimeFlux();
        end
        plot(beta, flux, 'DisplayName', sprintf('T = %.1f ℃', Temperature(i)), 'Linewidth', 1.5)
    end
    set(gca,'yscale','log')
    
    obj.restoreDefaults();
    
    xline(obj.Beta, 'k--','Linewidth', 0.5);
    fmf = obj.ReducedClausingFactor * obj.calculateFreeMolecularRegimeFlux();
    yline(fmf, 'k--', 'Linewidth', 1.5);
    textstring = [sprintf('%1.e',fmf) ' atoms/s for ' '$$ \beta $$ = ' num2str(obj.Beta, '%.2f')  sprintf(' @ %.2f K', obj.OvenTemperatureinKelvin)];
    txt = text((obj.Beta + 0.05*obj.Beta), (max(fmf) + 0.2*fmf), textstring, 'Interpreter','latex');
    
    hold off
    
    leg = legend('Location', 'southeast');
    leg.String = leg.String(1:end-2); % Remove xline and yline legend entries
    hXLabel = xlabel('\beta');
    hYLabel = ylabel('Flux (atoms/s)');
    hTitle    = sgtitle('Total Flux from a Tube (Free Molecular Flow)');

    set([hXLabel, hYLabel, txt, leg]  , ...
        'FontSize'   , 14          );
    set( hTitle                    , ...
        'FontSize'   , 18          );
    
    grid on
    Helper.bringFiguresWithTagInForeground();
end