function results = performAnalysis(options) arguments options.scan_parameter (1,:) char options.scan_reference_values (1,:) double options.cam (1,1) double options.angle (1,1) double options.center (1,2) double options.span (1,2) double options.fraction (1,2) double options.ImagingMode (1,:) char options.PulseDuration (1,1) double options.removeFringes (1,1) logical options.skipUnshuffling (1,1) logical options.pixel_size (1,1) double options.magnification (1,1) double options.zoom_size (1,1) double options.N_angular_bins (1,1) double options.Angular_Threshold (1,1) double options.Angular_Sigma (1,1) double options.Angular_WindowSize (1,1) double options.theta_min (1,1) double options.theta_max (1,1) double options.N_radial_bins (1,1) double options.Radial_Sigma (1,1) double options.Radial_WindowSize (1,1) double options.k_min (1,1) double options.k_max (1,1) double options.skipPreprocessing (1,1) logical options.skipMasking (1,1) logical options.skipIntensityThresholding (1,1) logical options.skipBinarization (1,1) logical options.skipNormalization (1,1) logical options.skipLivePlot (1,1) logical options.skipMovieRender (1,1) logical options.skipSaveFigures (1,1) logical options.skipSaveOD (1,1) logical options.showProgressBar (1,1) logical options.savefileName (1,:) char options.folderPath (1,:) char options.saveDirectory (1,:) char options.titleString (1,:) char options.font (1,:) char end % Collect OD images [od_imgs, scan_parameter_values, ~] = Helper.collectODImages(options); % Conduct spectral analysis fprintf('\nInitiating spectral analysis...\n'); spectral_analysis_results = Analyzer.conductSpectralAnalysis(od_imgs, scan_parameter_values, options); N_shots = length(od_imgs); % Extract angular correlations full_g2_results = Analyzer.extractAutocorrelation(... spectral_analysis_results.theta_vals, ... spectral_analysis_results.angular_spectral_distribution, ... scan_parameter_values, N_shots, options.N_angular_bins); custom_g_results = Analyzer.extractCustomCorrelation(... spectral_analysis_results.angular_spectral_distribution, ... scan_parameter_values, N_shots, options.N_angular_bins); fprintf('\nSpectral analysis complete!\n'); % PCA % Lattice Reconstruction % Package results into struct results = struct(); results.spectral_analysis_results = spectral_analysis_results; results.full_g2_results = full_g2_results; results.custom_g_results = custom_g_results; end