\doxysection{PMusr\+Step Class Reference}
\hypertarget{classPMusrStep}{}\label{classPMusrStep}\index{PMusrStep@{PMusrStep}}


Main dialog class for the musr\+Step application.  




{\ttfamily \#include $<$PMusr\+Step.\+h$>$}

Inheritance diagram for PMusr\+Step\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classPMusrStep}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classPMusrStep_ae5a323788b3ba63cdde7e57fd992ceaf}{PMusr\+Step}} (const char \texorpdfstring{$\ast$}{*}fln, QWidget \texorpdfstring{$\ast$}{*}parent=Q\+\_\+\+NULLPTR)
\begin{DoxyCompactList}\small\item\em Constructor for \doxylink{classPMusrStep}{PMusr\+Step} dialog. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classPMusrStep_ab7a41b585c9dc0a1a2eea2f36550be0f}{is\+Valid}} ()
\begin{DoxyCompactList}\small\item\em Checks if the dialog was initialized successfully. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classPMusrStep_af03a31fa62bf15304cd3d2a82d66beef}{handle\+Cell\+Changed}} (int row, int column)
\begin{DoxyCompactList}\small\item\em Slot called when a table cell value changes. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_ab6814af44878fe06aa1ef6c908eefbe9}{check\+Specific}} ()
\begin{DoxyCompactList}\small\item\em Slot that allows selection of parameters by name template. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_affab10a8a48eeac2d68872c06a2718e3}{check\+All}} ()
\begin{DoxyCompactList}\small\item\em Slot that selects all non-\/fixed parameters. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_a6216b14d3b253739dd46806c56052898}{un\+Check\+All}} ()
\begin{DoxyCompactList}\small\item\em Slot that deselects all parameters. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_a688f2396de9c346c7fba453ff804f83f}{modify\+Auto}} ()
\begin{DoxyCompactList}\small\item\em Slot that applies automatic step modification to all non-\/fixed parameters. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_abd24a0cb8a3cbb11241cb74e288503bb}{modify\+Checked}} ()
\begin{DoxyCompactList}\small\item\em Slot that opens the \doxylink{classPModSelect}{PMod\+Select} dialog for checked parameters. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_aec2d0397ed83bf339a9626e396acab6e}{save\+And\+Quit}} ()
\begin{DoxyCompactList}\small\item\em Slot that saves the modified msr-\/file and closes the dialog. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPMusrStep_aa37bcdcd4a9dc06a5519a7cb9026cbf0}{handle\+Mod\+Select}} (bool automatic, double factor, bool abs\+Val)
\begin{DoxyCompactList}\small\item\em Slot that handles the selection made in the \doxylink{classPModSelect}{PMod\+Select} dialog. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classPMusrStep_a16c2acd93220d1ba42111af5a8221abf}{init\+Param}} (\mbox{\hyperlink{structPParam}{PParam}} \&param)
\begin{DoxyCompactList}\small\item\em Initializes a \doxylink{structPParam}{PParam} structure with empty strings. \end{DoxyCompactList}\item 
double \mbox{\hyperlink{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b}{lookup\+Table}} (const QString str, bool \&abs\+Val)
\begin{DoxyCompactList}\small\item\em Determines the appropriate step size factor based on parameter name. \end{DoxyCompactList}\item 
QString \mbox{\hyperlink{classPMusrStep_a75eae8b3f7b3831055c55c468575c8a7}{adopt\+Step}} (const QString str, double factor, bool abs\+Val)
\begin{DoxyCompactList}\small\item\em Calculates the new step value based on the current value and factor. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classPMusrStep_af53caa0a604b5966e07b06b37a16e543}{read\+Msr\+File}} ()
\begin{DoxyCompactList}\small\item\em Reads and parses the FITPARAMETER block from the msr-\/file. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classPMusrStep_a30abe3e3ce9c9a913427045df86c9bca}{write\+Msr\+File}} ()
\begin{DoxyCompactList}\small\item\em Writes the modified parameters back to the msr-\/file. \end{DoxyCompactList}\item 
QString \mbox{\hyperlink{classPMusrStep_a8387983ab49c7db65da6f9285fd01836}{get\+Line}} (QByte\+Array \&data, int \&idx)
\begin{DoxyCompactList}\small\item\em Extracts a single line from a byte array. \end{DoxyCompactList}\item 
QString \mbox{\hyperlink{classPMusrStep_a50f93b2a5d936a4bff7ce88254ffee5c}{update\+Param\+Line}} (const QString str)
\begin{DoxyCompactList}\small\item\em Reconstructs a parameter line with updated values. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
QString \mbox{\hyperlink{classPMusrStep_a32c24ed446ed454fc9f5fb316d81ac3c}{f\+Msr\+File\+Name}}
\begin{DoxyCompactList}\small\item\em Path to the currently open msr-\/file. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classPMusrStep_af6c7c2bc35b2644ea7aebea2ff734bff}{f\+Valid}}
\begin{DoxyCompactList}\small\item\em Flag indicating successful initialization. \end{DoxyCompactList}\item 
QVector$<$ \mbox{\hyperlink{structPParam}{PParam}} $>$ \mbox{\hyperlink{classPMusrStep_afc8659958175f5d39ec809ee0c146630}{f\+Param\+Vec}}
\begin{DoxyCompactList}\small\item\em Vector storing all fit parameters. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QLabel $>$ \mbox{\hyperlink{classPMusrStep_a5938a7e42180c4bc030f637cfe6f55f3}{f\+Title\+Label}}
\begin{DoxyCompactList}\small\item\em Label displaying the file name. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QTable\+Widget $>$ \mbox{\hyperlink{classPMusrStep_a2159c442a7007d1c03f8d6b74be8fe1d}{f\+Param\+Table}}
\begin{DoxyCompactList}\small\item\em Table widget for parameter display. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_a88137805d4ed7689326e6bb5c4d9ffb8}{f\+Check\+Specific}}
\begin{DoxyCompactList}\small\item\em Button to select by template. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_af89cc1cf20e7fef24d9ced5508817980}{f\+Check\+All}}
\begin{DoxyCompactList}\small\item\em Button to select all parameters. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_a15c23756c9460e88231a72b7cbcff5e8}{f\+Un\+Check\+All}}
\begin{DoxyCompactList}\small\item\em Button to deselect all parameters. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_aafb64bf7b1733dbecd5361a55753a79f}{f\+Modify\+Auto}}
\begin{DoxyCompactList}\small\item\em Button for automatic modification. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_a5b11aa27d4f78655f060cf5e0ef50cca}{f\+Modify\+Selected}}
\begin{DoxyCompactList}\small\item\em Button to modify selected parameters. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_a983f9d91d6b0889d009320125ac014fa}{f\+Save}}
\begin{DoxyCompactList}\small\item\em Button to save and quit. \end{DoxyCompactList}\item 
std\+::unique\+\_\+ptr$<$ QPush\+Button $>$ \mbox{\hyperlink{classPMusrStep_a81bb9b9d3ca59946a2a443048a16f9b6}{f\+Cancel}}
\begin{DoxyCompactList}\small\item\em Button to cancel without saving. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classPModSelect}{PMod\+Select}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classPMusrStep_a8842277920f629ced2f9180aab1cd0a8}{f\+Mod\+Select}}
\begin{DoxyCompactList}\small\item\em Pointer to the modification options dialog. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Main dialog class for the musr\+Step application. 

This class implements the main user interface for viewing and modifying fit parameter step sizes in mu\+SR msr-\/files. It provides\+:
\begin{DoxyItemize}
\item A table view displaying all fit parameters with their values and step sizes
\item Selection mechanisms for choosing which parameters to modify
\item Automatic and manual step size adjustment options
\item File I/O for reading and writing msr-\/files
\end{DoxyItemize}

The automatic step size adjustment uses a lookup table based on common mu\+SR parameter naming conventions to determine appropriate step sizes.

\begin{DoxySeeAlso}{See also}
\doxylink{classPModSelect}{PMod\+Select} for the modification options dialog 

\doxylink{structPParam}{PParam} for the parameter data structure 
\end{DoxySeeAlso}


\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classPMusrStep_ae5a323788b3ba63cdde7e57fd992ceaf}\index{PMusrStep@{PMusrStep}!PMusrStep@{PMusrStep}}
\index{PMusrStep@{PMusrStep}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{PMusrStep()}{PMusrStep()}}
{\footnotesize\ttfamily \label{classPMusrStep_ae5a323788b3ba63cdde7e57fd992ceaf} 
PMusr\+Step\+::\+PMusr\+Step (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{fln}{, }\item[{QWidget \texorpdfstring{$\ast$}{*}}]{parent}{ = {\ttfamily Q\+\_\+NULLPTR}}\end{DoxyParamCaption})}



Constructor for \doxylink{classPMusrStep}{PMusr\+Step} dialog. 

Constructor for the \doxylink{classPMusrStep}{PMusr\+Step} main dialog.

Initializes the dialog, reads the msr-\/file, and populates the parameter table. Sets up all UI elements and signal/slot connections. 
\begin{DoxyParams}{Parameters}
{\em fln} & Path to the msr-\/file to open \\
\hline
{\em parent} & Pointer to the parent widget (default\+: Q\+\_\+\+NULLPTR)\\
\hline
\end{DoxyParams}
Initializes the dialog with the following operations\+:
\begin{DoxyEnumerate}
\item Sets up the window title and icon based on the current theme
\item Reads and parses the msr-\/file to extract fit parameters
\item Creates the parameter table with columns for name, value, and step
\item Sets up selection buttons (Check Specific, Check All, Uncheck All)
\item Sets up modification buttons (Modify Automatic, Modify Selected)
\item Sets up action buttons (Save\&Quit, Cancel)
\item Creates the \doxylink{classPModSelect}{PMod\+Select} sub-\/dialog for detailed modification options
\end{DoxyEnumerate}

The dialog height is automatically adjusted based on the number of parameters, with a maximum limit based on screen resolution.


\begin{DoxyParams}{Parameters}
{\em fln} & Path to the msr-\/file to open and edit \\
\hline
{\em parent} & Pointer to the parent widget (default\+: Q\+\_\+\+NULLPTR) \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\Hypertarget{classPMusrStep_a75eae8b3f7b3831055c55c468575c8a7}\index{PMusrStep@{PMusrStep}!adoptStep@{adoptStep}}
\index{adoptStep@{adoptStep}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{adoptStep()}{adoptStep()}}
{\footnotesize\ttfamily \label{classPMusrStep_a75eae8b3f7b3831055c55c468575c8a7} 
QString PMusr\+Step\+::adopt\+Step (\begin{DoxyParamCaption}\item[{const QString}]{str}{, }\item[{double}]{factor}{, }\item[{bool}]{abs\+Val}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Calculates the new step value based on the current value and factor. 

Calculates the new step value based on current value and factor.


\begin{DoxyParams}{Parameters}
{\em str} & The current parameter value as a string \\
\hline
{\em factor} & The scaling factor to apply \\
\hline
{\em abs\+Val} & If true, return factor directly; if false, return factor \texorpdfstring{$\ast$}{*} value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new step value as a string
\end{DoxyReturn}
Computes the new step size using either\+:
\begin{DoxyItemize}
\item Absolute mode (abs\+Val=true)\+: Returns the factor directly as the step
\item Multiplicative mode (abs\+Val=false)\+: Returns factor \texorpdfstring{$\ast$}{*} current\+\_\+value
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em str} & The current parameter value as a string \\
\hline
{\em factor} & The scaling factor to apply \\
\hline
{\em abs\+Val} & If true, return factor directly; if false, multiply by value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new step value as a QString 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_affab10a8a48eeac2d68872c06a2718e3}\index{PMusrStep@{PMusrStep}!checkAll@{checkAll}}
\index{checkAll@{checkAll}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{checkAll}{checkAll}}
{\footnotesize\ttfamily \label{classPMusrStep_affab10a8a48eeac2d68872c06a2718e3} 
void PMusr\+Step\+::check\+All (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that selects all non-\/fixed parameters. 

Selects all non-\/fixed parameters in the table.

Checks all parameters except those with step == 0.

Iterates through all rows and checks parameters whose step value is not "{}0"{} or "{}0.\+0"{} (fixed parameters remain unchecked). \Hypertarget{classPMusrStep_ab6814af44878fe06aa1ef6c908eefbe9}\index{PMusrStep@{PMusrStep}!checkSpecific@{checkSpecific}}
\index{checkSpecific@{checkSpecific}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{checkSpecific}{checkSpecific}}
{\footnotesize\ttfamily \label{classPMusrStep_ab6814af44878fe06aa1ef6c908eefbe9} 
void PMusr\+Step\+::check\+Specific (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that allows selection of parameters by name template. 

Allows selection of parameters matching a template string.

Opens an input dialog for the user to enter a template string. All parameters whose names contain the template are selected.

Opens an input dialog where the user can enter a template string. All parameters whose names contain this template (case-\/sensitive) are then checked, except for fixed parameters (step == 0 or "{}0.\+0"{}). \Hypertarget{classPMusrStep_a8387983ab49c7db65da6f9285fd01836}\index{PMusrStep@{PMusrStep}!getLine@{getLine}}
\index{getLine@{getLine}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{getLine()}{getLine()}}
{\footnotesize\ttfamily \label{classPMusrStep_a8387983ab49c7db65da6f9285fd01836} 
QString PMusr\+Step\+::get\+Line (\begin{DoxyParamCaption}\item[{QByte\+Array \&}]{data}{, }\item[{int \&}]{idx}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Extracts a single line from a byte array. 

Extracts a single line from a byte array at the given position.


\begin{DoxyParams}{Parameters}
{\em data} & Reference to the byte array containing file data \\
\hline
{\em idx} & Reference to the current position index (updated on return) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The extracted line as a QString
\end{DoxyReturn}
Searches for the next newline character starting at idx and extracts the text between the current position and the newline. The idx parameter is updated to point to the character after the newline.


\begin{DoxyParams}{Parameters}
{\em data} & Reference to the byte array containing file data \\
\hline
{\em idx} & Reference to the current position index (updated to next line start) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The extracted line as a QString, or empty string if no newline found 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_af03a31fa62bf15304cd3d2a82d66beef}\index{PMusrStep@{PMusrStep}!handleCellChanged@{handleCellChanged}}
\index{handleCellChanged@{handleCellChanged}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{handleCellChanged}{handleCellChanged}}
{\footnotesize\ttfamily \label{classPMusrStep_af03a31fa62bf15304cd3d2a82d66beef} 
void PMusr\+Step\+::handle\+Cell\+Changed (\begin{DoxyParamCaption}\item[{int}]{row}{, }\item[{int}]{column}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot called when a table cell value changes. 

Handles changes to cells in the parameter table.

Validates changes to step values and prevents selection of fixed parameters (step == 0). 
\begin{DoxyParams}{Parameters}
{\em row} & The row index of the changed cell \\
\hline
{\em column} & The column index of the changed cell\\
\hline
\end{DoxyParams}
Performs validation when table cells are modified\+:
\begin{DoxyItemize}
\item Column 0 (name)\+: Prevents selection of fixed parameters (step == 0)
\item Column 2 (step)\+: Validates that entered values are valid numbers
\end{DoxyItemize}

If an invalid step value is entered, the cell is restored to its previous value from f\+Param\+Vec.


\begin{DoxyParams}{Parameters}
{\em row} & The row index of the changed cell \\
\hline
{\em column} & The column index of the changed cell \\
\hline
\end{DoxyParams}
\Hypertarget{classPMusrStep_aa37bcdcd4a9dc06a5519a7cb9026cbf0}\index{PMusrStep@{PMusrStep}!handleModSelect@{handleModSelect}}
\index{handleModSelect@{handleModSelect}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{handleModSelect}{handleModSelect}}
{\footnotesize\ttfamily \label{classPMusrStep_aa37bcdcd4a9dc06a5519a7cb9026cbf0} 
void PMusr\+Step\+::handle\+Mod\+Select (\begin{DoxyParamCaption}\item[{bool}]{automatic}{, }\item[{double}]{factor}{, }\item[{bool}]{abs\+Val}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that handles the selection made in the \doxylink{classPModSelect}{PMod\+Select} dialog. 

Processes the scaling selection from the \doxylink{classPModSelect}{PMod\+Select} dialog.

Applies the specified scaling operation to all checked parameters. 
\begin{DoxyParams}{Parameters}
{\em automatic} & If true, use automatic scaling based on parameter names \\
\hline
{\em factor} & The scaling factor to apply \\
\hline
{\em abs\+Val} & If true, factor is used as absolute value; if false, as multiplier\\
\hline
\end{DoxyParams}
Applies the specified scaling operation to all checked parameters. If automatic mode is selected, the factor is determined by \doxylink{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b}{lookup\+Table()} for each parameter individually.


\begin{DoxyParams}{Parameters}
{\em automatic} & If true, use automatic scaling based on parameter names \\
\hline
{\em factor} & The scaling factor (used when automatic is false) \\
\hline
{\em abs\+Val} & If true, factor is used as absolute value; if false, as multiplier \\
\hline
\end{DoxyParams}
\Hypertarget{classPMusrStep_a16c2acd93220d1ba42111af5a8221abf}\index{PMusrStep@{PMusrStep}!initParam@{initParam}}
\index{initParam@{initParam}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{initParam()}{initParam()}}
{\footnotesize\ttfamily \label{classPMusrStep_a16c2acd93220d1ba42111af5a8221abf} 
void PMusr\+Step\+::init\+Param (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structPParam}{PParam}} \&}]{param}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initializes a \doxylink{structPParam}{PParam} structure with empty strings. 


\begin{DoxyParams}{Parameters}
{\em param} & Reference to the \doxylink{structPParam}{PParam} structure to initialize\\
\hline
\end{DoxyParams}
Sets all fields of the parameter structure to empty QString objects. Used before populating a new parameter from file data.


\begin{DoxyParams}{Parameters}
{\em param} & Reference to the \doxylink{structPParam}{PParam} structure to initialize \\
\hline
\end{DoxyParams}
\Hypertarget{classPMusrStep_ab7a41b585c9dc0a1a2eea2f36550be0f}\index{PMusrStep@{PMusrStep}!isValid@{isValid}}
\index{isValid@{isValid}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{isValid()}{isValid()}}
{\footnotesize\ttfamily \label{classPMusrStep_ab7a41b585c9dc0a1a2eea2f36550be0f} 
bool PMusr\+Step\+::is\+Valid (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Checks if the dialog was initialized successfully. 

Returns false if the msr-\/file could not be read or parsed. \begin{DoxyReturn}{Returns}
true if the dialog is valid and ready for use, false otherwise 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b}\index{PMusrStep@{PMusrStep}!lookupTable@{lookupTable}}
\index{lookupTable@{lookupTable}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{lookupTable()}{lookupTable()}}
{\footnotesize\ttfamily \label{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b} 
double PMusr\+Step\+::lookup\+Table (\begin{DoxyParamCaption}\item[{const QString}]{str}{, }\item[{bool \&}]{abs\+Val}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Determines the appropriate step size factor based on parameter name. 

Uses naming conventions to identify parameter types\+:
\begin{DoxyItemize}
\item freq/frq/field\+: factor = 1e-\/3
\item lambda/sigma/rlx/rate\+: factor = 0.\+1
\item phase/phs\+: factor = 5.\+0 (absolute)
\item N0/\+Nrm/\+N\+\_\+bkg/\+Bgr\+: factor = 0.\+01
\item default\+: factor = 0.\+01 
\begin{DoxyParams}{Parameters}
{\em str} & The parameter name to look up \\
\hline
{\em abs\+Val} & Output flag set to true if factor should be used as absolute value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The scaling factor to apply
\end{DoxyReturn}
Uses common mu\+SR parameter naming conventions to identify parameter types and return appropriate scaling factors\+:
\item freq, frq, field\+: factor = 1e-\/3 (high precision for frequency/field)
\item lambda, sigma, rlx, rate\+: factor = 0.\+1 (relaxation rates)
\item phase, phs\+: factor = 5.\+0 (absolute value, for phase parameters)
\item N0, Nrm, N\+\_\+bkg, Bgr\+: factor = 0.\+01 (normalization/background)
\item default\+: factor = 0.\+01
\end{DoxyItemize}

The comparison is case-\/insensitive and matches the start of the parameter name.


\begin{DoxyParams}{Parameters}
{\em str} & The parameter name to look up \\
\hline
{\em abs\+Val} & Output flag set to true if factor should be used as absolute value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The scaling factor to apply 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_a688f2396de9c346c7fba453ff804f83f}\index{PMusrStep@{PMusrStep}!modifyAuto@{modifyAuto}}
\index{modifyAuto@{modifyAuto}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{modifyAuto}{modifyAuto}}
{\footnotesize\ttfamily \label{classPMusrStep_a688f2396de9c346c7fba453ff804f83f} 
void PMusr\+Step\+::modify\+Auto (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that applies automatic step modification to all non-\/fixed parameters. 

Applies automatic step size modification to all non-\/fixed parameters.

Uses the \doxylink{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b}{lookup\+Table()} function to determine appropriate step sizes based on parameter naming conventions.

Iterates through all parameters and applies automatic scaling using \doxylink{classPMusrStep_af1fbdd6991c2f5c0320ffa9e94c4943b}{lookup\+Table()} and \doxylink{classPMusrStep_a75eae8b3f7b3831055c55c468575c8a7}{adopt\+Step()}. Fixed parameters (step == 0) are skipped. Both the table display and the internal f\+Param\+Vec are updated. \Hypertarget{classPMusrStep_abd24a0cb8a3cbb11241cb74e288503bb}\index{PMusrStep@{PMusrStep}!modifyChecked@{modifyChecked}}
\index{modifyChecked@{modifyChecked}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{modifyChecked}{modifyChecked}}
{\footnotesize\ttfamily \label{classPMusrStep_abd24a0cb8a3cbb11241cb74e288503bb} 
void PMusr\+Step\+::modify\+Checked (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that opens the \doxylink{classPModSelect}{PMod\+Select} dialog for checked parameters. 

Opens the modification dialog for checked parameters.

Shows the \doxylink{classPModSelect}{PMod\+Select} dialog, which allows the user to choose between automatic scaling and manual factor-\/based scaling for the currently selected parameters. \Hypertarget{classPMusrStep_af53caa0a604b5966e07b06b37a16e543}\index{PMusrStep@{PMusrStep}!readMsrFile@{readMsrFile}}
\index{readMsrFile@{readMsrFile}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{readMsrFile()}{readMsrFile()}}
{\footnotesize\ttfamily \label{classPMusrStep_af53caa0a604b5966e07b06b37a16e543} 
int PMusr\+Step\+::read\+Msr\+File (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Reads and parses the FITPARAMETER block from the msr-\/file. 

Populates f\+Param\+Vec with all parameters found between FITPARAMETER and THEORY blocks. \begin{DoxyReturn}{Returns}
1 on success, -\/1 if file cannot be opened, -\/2 on parse error
\end{DoxyReturn}
Opens the msr-\/file specified in f\+Msr\+File\+Name and extracts all parameters from the FITPARAMETER block (between FITPARAMETER and THEORY keywords). Each parameter line must have either 5 or 7 space-\/separated fields\+:
\begin{DoxyItemize}
\item 5 fields\+: number, name, value, step, pos\+Err
\item 7 fields\+: above plus bound\+Low, bound\+High
\end{DoxyItemize}

Comment lines (starting with \#) and empty lines are ignored.

\begin{DoxyReturn}{Returns}
1 on success 

-\/1 if file cannot be opened 

-\/2 if a parameter line has invalid format 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_aec2d0397ed83bf339a9626e396acab6e}\index{PMusrStep@{PMusrStep}!saveAndQuit@{saveAndQuit}}
\index{saveAndQuit@{saveAndQuit}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{saveAndQuit}{saveAndQuit}}
{\footnotesize\ttfamily \label{classPMusrStep_aec2d0397ed83bf339a9626e396acab6e} 
void PMusr\+Step\+::save\+And\+Quit (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that saves the modified msr-\/file and closes the dialog. 

Saves the modified msr-\/file and closes the dialog.

Calls \doxylink{classPMusrStep_a30abe3e3ce9c9a913427045df86c9bca}{write\+Msr\+File()} to save all modifications, then accepts the dialog to close it with a success status. \Hypertarget{classPMusrStep_a6216b14d3b253739dd46806c56052898}\index{PMusrStep@{PMusrStep}!unCheckAll@{unCheckAll}}
\index{unCheckAll@{unCheckAll}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{unCheckAll}{unCheckAll}}
{\footnotesize\ttfamily \label{classPMusrStep_a6216b14d3b253739dd46806c56052898} 
void PMusr\+Step\+::un\+Check\+All (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



Slot that deselects all parameters. 

Deselects all parameters in the table.

Iterates through all rows and unchecks every parameter, regardless of whether it is fixed or not. \Hypertarget{classPMusrStep_a50f93b2a5d936a4bff7ce88254ffee5c}\index{PMusrStep@{PMusrStep}!updateParamLine@{updateParamLine}}
\index{updateParamLine@{updateParamLine}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{updateParamLine()}{updateParamLine()}}
{\footnotesize\ttfamily \label{classPMusrStep_a50f93b2a5d936a4bff7ce88254ffee5c} 
QString PMusr\+Step\+::update\+Param\+Line (\begin{DoxyParamCaption}\item[{const QString}]{str}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Reconstructs a parameter line with updated values. 

Formats the parameter line with proper field widths for msr-\/file compatibility. 
\begin{DoxyParams}{Parameters}
{\em str} & The original parameter line \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The updated parameter line, or empty string if not a parameter line
\end{DoxyReturn}
Searches f\+Param\+Vec for a parameter matching the given line, then formats a new parameter line with proper field widths\+:
\begin{DoxyItemize}
\item Column 1 (10 chars, right-\/aligned)\+: parameter number
\item Column 2 (12+ chars, left-\/aligned)\+: parameter name
\item Columns 3-\/5 (11 chars each)\+: value, step, pos\+Err
\item Columns 6-\/7 (11 chars each, optional)\+: bound\+Low, bound\+High
\end{DoxyItemize}

The parameter is identified by finding its name sandwiched between spaces in the input string to avoid partial matches.


\begin{DoxyParams}{Parameters}
{\em str} & The original parameter line to update \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The reconstructed parameter line, or empty string if no match found 
\end{DoxyReturn}
\Hypertarget{classPMusrStep_a30abe3e3ce9c9a913427045df86c9bca}\index{PMusrStep@{PMusrStep}!writeMsrFile@{writeMsrFile}}
\index{writeMsrFile@{writeMsrFile}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{writeMsrFile()}{writeMsrFile()}}
{\footnotesize\ttfamily \label{classPMusrStep_a30abe3e3ce9c9a913427045df86c9bca} 
int PMusr\+Step\+::write\+Msr\+File (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Writes the modified parameters back to the msr-\/file. 

Preserves all non-\/parameter content and updates only the FITPARAMETER block with new step values. \begin{DoxyReturn}{Returns}
1 on success, -\/1 if input file cannot be opened, -\/2 if output file cannot be opened
\end{DoxyReturn}
Reads the entire original msr-\/file, then rewrites it with updated step values in the FITPARAMETER block. All other content is preserved unchanged. A "{}\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} FIT DID NOT CONVERGE \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}"{} marker is appended to indicate the file has been modified.

\begin{DoxyReturn}{Returns}
1 on success 

-\/1 if input file cannot be opened for reading 

-\/2 if output file cannot be opened for writing 
\end{DoxyReturn}


\doxysubsection{Member Data Documentation}
\Hypertarget{classPMusrStep_a81bb9b9d3ca59946a2a443048a16f9b6}\index{PMusrStep@{PMusrStep}!fCancel@{fCancel}}
\index{fCancel@{fCancel}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fCancel}{fCancel}}
{\footnotesize\ttfamily \label{classPMusrStep_a81bb9b9d3ca59946a2a443048a16f9b6} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Cancel\hspace{0.3cm}{\ttfamily [private]}}



Button to cancel without saving. 

\Hypertarget{classPMusrStep_af89cc1cf20e7fef24d9ced5508817980}\index{PMusrStep@{PMusrStep}!fCheckAll@{fCheckAll}}
\index{fCheckAll@{fCheckAll}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fCheckAll}{fCheckAll}}
{\footnotesize\ttfamily \label{classPMusrStep_af89cc1cf20e7fef24d9ced5508817980} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Check\+All\hspace{0.3cm}{\ttfamily [private]}}



Button to select all parameters. 

\Hypertarget{classPMusrStep_a88137805d4ed7689326e6bb5c4d9ffb8}\index{PMusrStep@{PMusrStep}!fCheckSpecific@{fCheckSpecific}}
\index{fCheckSpecific@{fCheckSpecific}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fCheckSpecific}{fCheckSpecific}}
{\footnotesize\ttfamily \label{classPMusrStep_a88137805d4ed7689326e6bb5c4d9ffb8} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Check\+Specific\hspace{0.3cm}{\ttfamily [private]}}



Button to select by template. 

\Hypertarget{classPMusrStep_aafb64bf7b1733dbecd5361a55753a79f}\index{PMusrStep@{PMusrStep}!fModifyAuto@{fModifyAuto}}
\index{fModifyAuto@{fModifyAuto}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fModifyAuto}{fModifyAuto}}
{\footnotesize\ttfamily \label{classPMusrStep_aafb64bf7b1733dbecd5361a55753a79f} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Modify\+Auto\hspace{0.3cm}{\ttfamily [private]}}



Button for automatic modification. 

\Hypertarget{classPMusrStep_a5b11aa27d4f78655f060cf5e0ef50cca}\index{PMusrStep@{PMusrStep}!fModifySelected@{fModifySelected}}
\index{fModifySelected@{fModifySelected}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fModifySelected}{fModifySelected}}
{\footnotesize\ttfamily \label{classPMusrStep_a5b11aa27d4f78655f060cf5e0ef50cca} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Modify\+Selected\hspace{0.3cm}{\ttfamily [private]}}



Button to modify selected parameters. 

\Hypertarget{classPMusrStep_a8842277920f629ced2f9180aab1cd0a8}\index{PMusrStep@{PMusrStep}!fModSelect@{fModSelect}}
\index{fModSelect@{fModSelect}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fModSelect}{fModSelect}}
{\footnotesize\ttfamily \label{classPMusrStep_a8842277920f629ced2f9180aab1cd0a8} 
\mbox{\hyperlink{classPModSelect}{PMod\+Select}}\texorpdfstring{$\ast$}{*} PMusr\+Step\+::f\+Mod\+Select\hspace{0.3cm}{\ttfamily [private]}}



Pointer to the modification options dialog. 

\Hypertarget{classPMusrStep_a32c24ed446ed454fc9f5fb316d81ac3c}\index{PMusrStep@{PMusrStep}!fMsrFileName@{fMsrFileName}}
\index{fMsrFileName@{fMsrFileName}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fMsrFileName}{fMsrFileName}}
{\footnotesize\ttfamily \label{classPMusrStep_a32c24ed446ed454fc9f5fb316d81ac3c} 
QString PMusr\+Step\+::f\+Msr\+File\+Name\hspace{0.3cm}{\ttfamily [private]}}



Path to the currently open msr-\/file. 

\Hypertarget{classPMusrStep_a2159c442a7007d1c03f8d6b74be8fe1d}\index{PMusrStep@{PMusrStep}!fParamTable@{fParamTable}}
\index{fParamTable@{fParamTable}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fParamTable}{fParamTable}}
{\footnotesize\ttfamily \label{classPMusrStep_a2159c442a7007d1c03f8d6b74be8fe1d} 
std\+::unique\+\_\+ptr$<$QTable\+Widget$>$ PMusr\+Step\+::f\+Param\+Table\hspace{0.3cm}{\ttfamily [private]}}



Table widget for parameter display. 

\Hypertarget{classPMusrStep_afc8659958175f5d39ec809ee0c146630}\index{PMusrStep@{PMusrStep}!fParamVec@{fParamVec}}
\index{fParamVec@{fParamVec}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fParamVec}{fParamVec}}
{\footnotesize\ttfamily \label{classPMusrStep_afc8659958175f5d39ec809ee0c146630} 
QVector$<$\mbox{\hyperlink{structPParam}{PParam}}$>$ PMusr\+Step\+::f\+Param\+Vec\hspace{0.3cm}{\ttfamily [private]}}



Vector storing all fit parameters. 

\Hypertarget{classPMusrStep_a983f9d91d6b0889d009320125ac014fa}\index{PMusrStep@{PMusrStep}!fSave@{fSave}}
\index{fSave@{fSave}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fSave}{fSave}}
{\footnotesize\ttfamily \label{classPMusrStep_a983f9d91d6b0889d009320125ac014fa} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Save\hspace{0.3cm}{\ttfamily [private]}}



Button to save and quit. 

\Hypertarget{classPMusrStep_a5938a7e42180c4bc030f637cfe6f55f3}\index{PMusrStep@{PMusrStep}!fTitleLabel@{fTitleLabel}}
\index{fTitleLabel@{fTitleLabel}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fTitleLabel}{fTitleLabel}}
{\footnotesize\ttfamily \label{classPMusrStep_a5938a7e42180c4bc030f637cfe6f55f3} 
std\+::unique\+\_\+ptr$<$QLabel$>$ PMusr\+Step\+::f\+Title\+Label\hspace{0.3cm}{\ttfamily [private]}}



Label displaying the file name. 

\Hypertarget{classPMusrStep_a15c23756c9460e88231a72b7cbcff5e8}\index{PMusrStep@{PMusrStep}!fUnCheckAll@{fUnCheckAll}}
\index{fUnCheckAll@{fUnCheckAll}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fUnCheckAll}{fUnCheckAll}}
{\footnotesize\ttfamily \label{classPMusrStep_a15c23756c9460e88231a72b7cbcff5e8} 
std\+::unique\+\_\+ptr$<$QPush\+Button$>$ PMusr\+Step\+::f\+Un\+Check\+All\hspace{0.3cm}{\ttfamily [private]}}



Button to deselect all parameters. 

\Hypertarget{classPMusrStep_af6c7c2bc35b2644ea7aebea2ff734bff}\index{PMusrStep@{PMusrStep}!fValid@{fValid}}
\index{fValid@{fValid}!PMusrStep@{PMusrStep}}
\doxysubsubsection{\texorpdfstring{fValid}{fValid}}
{\footnotesize\ttfamily \label{classPMusrStep_af6c7c2bc35b2644ea7aebea2ff734bff} 
bool PMusr\+Step\+::f\+Valid\hspace{0.3cm}{\ttfamily [private]}}



Flag indicating successful initialization. 



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
/workspace/\+LMU/musrfit/src/musredit\+\_\+qt6/musr\+Step/\mbox{\hyperlink{PMusrStep_8h}{PMusr\+Step.\+h}}\item 
/workspace/\+LMU/musrfit/src/musredit\+\_\+qt6/musr\+Step/\mbox{\hyperlink{PMusrStep_8cpp}{PMusr\+Step.\+cpp}}\end{DoxyCompactItemize}
