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.skipSaveFigures (1,1) logical options.showProgressBar (1,1) logical options.measurementName (1,:) char options.folderPath (1,:) char options.baseDataFolder (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