570 lines
32 KiB
HTML
570 lines
32 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>musredit: PFitOutputHandler Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">musredit<span id="projectnumber"> 1.0.0</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',false);
|
|
$(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){ initResizable(false); });
|
|
/* @license-end */
|
|
</script>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div><!-- top -->
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pri-slots">Private Slots</a> |
|
|
<a href="classPFitOutputHandler-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">PFitOutputHandler Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Dialog for executing and monitoring musrfit fitting processes.
|
|
<a href="#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for PFitOutputHandler:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="classPFitOutputHandler__inherit__graph.png" border="0" usemap="#aPFitOutputHandler_inherit__map" alt="Inheritance graph"/></div>
|
|
<map name="aPFitOutputHandler_inherit__map" id="aPFitOutputHandler_inherit__map">
|
|
<area shape="rect" title="Dialog for executing and monitoring musrfit fitting processes." alt="" coords="5,81,142,109"/>
|
|
<area shape="rect" title=" " alt="" coords="38,5,109,33"/>
|
|
<area shape="poly" title=" " alt="" coords="76,49,76,81,71,81,71,49"/>
|
|
</map>
|
|
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
|
<div class="dynheader">
|
|
Collaboration diagram for PFitOutputHandler:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="classPFitOutputHandler__coll__graph.png" border="0" usemap="#aPFitOutputHandler_coll__map" alt="Collaboration graph"/></div>
|
|
<map name="aPFitOutputHandler_coll__map" id="aPFitOutputHandler_coll__map">
|
|
<area shape="rect" title="Dialog for executing and monitoring musrfit fitting processes." alt="" coords="5,81,142,109"/>
|
|
<area shape="rect" title=" " alt="" coords="38,5,109,33"/>
|
|
<area shape="poly" title=" " alt="" coords="76,49,76,81,71,81,71,49"/>
|
|
</map>
|
|
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a69090483a386953cb24eb45fe8de5fc4" id="r_a69090483a386953cb24eb45fe8de5fc4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a69090483a386953cb24eb45fe8de5fc4">PFitOutputHandler</a> (QString workingDirectory, QVector< QString > &cmd)</td></tr>
|
|
<tr class="memdesc:a69090483a386953cb24eb45fe8de5fc4"><td class="mdescLeft"> </td><td class="mdescRight">Constructs the fit output handler dialog and starts the musrfit process. <br /></td></tr>
|
|
<tr class="separator:a69090483a386953cb24eb45fe8de5fc4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0b0029c63a01d50943b1f9497d9645db" id="r_a0b0029c63a01d50943b1f9497d9645db"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b0029c63a01d50943b1f9497d9645db">~PFitOutputHandler</a> ()</td></tr>
|
|
<tr class="memdesc:a0b0029c63a01d50943b1f9497d9645db"><td class="mdescLeft"> </td><td class="mdescRight">Destructor - ensures the musrfit process is terminated. <br /></td></tr>
|
|
<tr class="separator:a0b0029c63a01d50943b1f9497d9645db"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-slots" name="pri-slots"></a>
|
|
Private Slots</h2></td></tr>
|
|
<tr class="memitem:a70ec52d319f16584c0d3f8f82381c78d" id="r_a70ec52d319f16584c0d3f8f82381c78d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a70ec52d319f16584c0d3f8f82381c78d">readFromStdOut</a> ()</td></tr>
|
|
<tr class="memdesc:a70ec52d319f16584c0d3f8f82381c78d"><td class="mdescLeft"> </td><td class="mdescRight">Slot to read and display standard output from musrfit. <br /></td></tr>
|
|
<tr class="separator:a70ec52d319f16584c0d3f8f82381c78d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad559a7b1e9b70ac1697a26cc994248cb" id="r_ad559a7b1e9b70ac1697a26cc994248cb"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad559a7b1e9b70ac1697a26cc994248cb">readFromStdErr</a> ()</td></tr>
|
|
<tr class="memdesc:ad559a7b1e9b70ac1697a26cc994248cb"><td class="mdescLeft"> </td><td class="mdescRight">Slot to read and display standard error from musrfit. <br /></td></tr>
|
|
<tr class="separator:ad559a7b1e9b70ac1697a26cc994248cb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afac583e5249e84c28608f401a67473c6" id="r_afac583e5249e84c28608f401a67473c6"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#afac583e5249e84c28608f401a67473c6">quitButtonPressed</a> ()</td></tr>
|
|
<tr class="memdesc:afac583e5249e84c28608f401a67473c6"><td class="mdescLeft"> </td><td class="mdescRight">Slot called when the Quit/Done button is pressed. <br /></td></tr>
|
|
<tr class="separator:afac583e5249e84c28608f401a67473c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a62194f97ac617b9d62c2ff379aec283d" id="r_a62194f97ac617b9d62c2ff379aec283d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a62194f97ac617b9d62c2ff379aec283d">processDone</a> (int exitCode, QProcess::ExitStatus exitStatus)</td></tr>
|
|
<tr class="memdesc:a62194f97ac617b9d62c2ff379aec283d"><td class="mdescLeft"> </td><td class="mdescRight">Slot called when the musrfit process finishes. <br /></td></tr>
|
|
<tr class="separator:a62194f97ac617b9d62c2ff379aec283d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr><td colspan="2"><div class="groupHeader">Process Management</div></td></tr>
|
|
<tr><td colspan="2"><div class="groupText"><p>Members for managing the musrfit process. </p>
|
|
</div></td></tr>
|
|
<tr class="memitem:a5e90f3f19f458abcc385ef1938382057" id="r_a5e90f3f19f458abcc385ef1938382057"><td class="memItemLeft" align="right" valign="top">qint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5e90f3f19f458abcc385ef1938382057">fProcPID</a></td></tr>
|
|
<tr class="memdesc:a5e90f3f19f458abcc385ef1938382057"><td class="mdescLeft"> </td><td class="mdescRight">Process ID of the running musrfit process. <br /></td></tr>
|
|
<tr class="separator:a5e90f3f19f458abcc385ef1938382057"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abcef8f3a64d51ea98fe208d6060557f1" id="r_abcef8f3a64d51ea98fe208d6060557f1"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< QProcess > </td><td class="memItemRight" valign="bottom"><a class="el" href="#abcef8f3a64d51ea98fe208d6060557f1">fProc</a></td></tr>
|
|
<tr class="memdesc:abcef8f3a64d51ea98fe208d6060557f1"><td class="mdescLeft"> </td><td class="mdescRight">QProcess object managing the musrfit execution. <br /></td></tr>
|
|
<tr class="separator:abcef8f3a64d51ea98fe208d6060557f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr><td colspan="2"><div class="groupHeader">UI Components</div></td></tr>
|
|
<tr><td colspan="2"><div class="groupText"><p>Dialog user interface elements. </p>
|
|
</div></td></tr>
|
|
<tr class="memitem:acee76a7831d09bd2f36bd4829db95545" id="r_acee76a7831d09bd2f36bd4829db95545"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< QVBoxLayout > </td><td class="memItemRight" valign="bottom"><a class="el" href="#acee76a7831d09bd2f36bd4829db95545">fVbox</a></td></tr>
|
|
<tr class="memdesc:acee76a7831d09bd2f36bd4829db95545"><td class="mdescLeft"> </td><td class="mdescRight">Vertical layout manager for dialog widgets. <br /></td></tr>
|
|
<tr class="separator:acee76a7831d09bd2f36bd4829db95545"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab6fe23b7b271222e44ffa6743cd0f0dc" id="r_ab6fe23b7b271222e44ffa6743cd0f0dc"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< QPlainTextEdit > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab6fe23b7b271222e44ffa6743cd0f0dc">fOutput</a></td></tr>
|
|
<tr class="memdesc:ab6fe23b7b271222e44ffa6743cd0f0dc"><td class="mdescLeft"> </td><td class="mdescRight">Read-only text widget displaying musrfit output (max 1000 lines). <br /></td></tr>
|
|
<tr class="separator:ab6fe23b7b271222e44ffa6743cd0f0dc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae37d220475e438a262b73e0a6eeb21c2" id="r_ae37d220475e438a262b73e0a6eeb21c2"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< QPushButton > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae37d220475e438a262b73e0a6eeb21c2">fQuitButton</a></td></tr>
|
|
<tr class="memdesc:ae37d220475e438a262b73e0a6eeb21c2"><td class="mdescLeft"> </td><td class="mdescRight">Button showing "Fitting..." during fit, "Done" after completion. <br /></td></tr>
|
|
<tr class="separator:ae37d220475e438a262b73e0a6eeb21c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Dialog for executing and monitoring musrfit fitting processes. </p>
|
|
<p>This class provides a dialog that executes musrfit as a child process and displays its output in real-time. It allows users to monitor the fitting progress, including MINUIT2 iterations, chi-square values, warnings, and error messages.</p>
|
|
<dl class="section user"><dt>Features:</dt><dd><ul>
|
|
<li>Executes musrfit as a child process via QProcess</li>
|
|
<li>Captures both stdout and stderr output in real-time</li>
|
|
<li>Displays output in a scrollable, read-only text widget (limited to 1000 lines)</li>
|
|
<li>Button shows "Fitting..." during execution, changes to "Done" when complete</li>
|
|
<li>Allows interrupting a running fit by pressing the button</li>
|
|
<li>Proper process cleanup on dialog close or destruction</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="section user"><dt>Usage:</dt><dd><div class="fragment"><div class="line">QVector<QString> cmd;</div>
|
|
<div class="line">cmd << <span class="stringliteral">"/path/to/musrfit"</span> << <span class="stringliteral">"file.msr"</span>;</div>
|
|
<div class="line"><a class="code hl_function" href="#a69090483a386953cb24eb45fe8de5fc4">PFitOutputHandler</a> dialog(<span class="stringliteral">"/path/to/working/dir"</span>, cmd);</div>
|
|
<div class="line">dialog.exec();</div>
|
|
<div class="ttc" id="aclassPFitOutputHandler_html_a69090483a386953cb24eb45fe8de5fc4"><div class="ttname"><a href="#a69090483a386953cb24eb45fe8de5fc4">PFitOutputHandler::PFitOutputHandler</a></div><div class="ttdeci">PFitOutputHandler(QString workingDirectory, QVector< QString > &cmd)</div><div class="ttdoc">Constructs the fit output handler dialog and starts the musrfit process.</div><div class="ttdef"><b>Definition</b> <a href="PFitOutputHandler_8cpp_source.html#l00076">PFitOutputHandler.cpp:76</a></div></div>
|
|
</div><!-- fragment --></dd></dl>
|
|
<dl class="section user"><dt>Platform Notes:</dt><dd><ul>
|
|
<li>On macOS: Sets DYLD_LIBRARY_PATH for ROOT library access</li>
|
|
<li>On Linux: Sets LD_LIBRARY_PATH for ROOT library access</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="section user"><dt>Output Files:</dt><dd>The working directory parameter determines where musrfit saves its output files, including the .mlog fit log file.</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPDumpOutputHandler.html" title="Dialog for executing and displaying dump_header command output.">PDumpOutputHandler</a> For similar handling of dump_header output </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00097">97</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a69090483a386953cb24eb45fe8de5fc4" name="a69090483a386953cb24eb45fe8de5fc4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a69090483a386953cb24eb45fe8de5fc4">◆ </a></span>PFitOutputHandler()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">PFitOutputHandler::PFitOutputHandler </td>
|
|
<td>(</td>
|
|
<td class="paramtype">QString</td> <td class="paramname"><span class="paramname"><em>workingDirectory</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">QVector< QString > &</td> <td class="paramname"><span class="paramname"><em>cmd</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructs the fit output handler dialog and starts the musrfit process. </p>
|
|
<p>Initializes the dialog UI and starts the musrfit fitting process. The constructor performs the following steps:</p><ol type="1">
|
|
<li>Creates the dialog layout with a plain text output area (max 1000 lines) and button</li>
|
|
<li>Configures the process environment with appropriate library paths</li>
|
|
<li>Sets the working directory for output files (mlog, etc.)</li>
|
|
<li>Extracts the program and arguments from the command vector</li>
|
|
<li>Connects process signals for output capture and completion notification</li>
|
|
<li>Starts the musrfit process</li>
|
|
</ol>
|
|
<dl class="section user"><dt>Environment Configuration:</dt><dd><ul>
|
|
<li>On macOS: Sets DYLD_LIBRARY_PATH to include $ROOTSYS/lib</li>
|
|
<li>On Linux: Sets LD_LIBRARY_PATH to include $ROOTSYS/lib</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">workingDirectory</td><td>Directory where musrfit will run and save output files (mlog files, MINUIT2 output, etc.). </td></tr>
|
|
<tr><td class="paramname">cmd</td><td>Command vector where cmd[0] is the musrfit executable path and subsequent elements are command-line arguments (msr filename, options).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>If the command vector is empty, the constructor returns immediately without creating the UI. If the process fails to start, an error dialog is displayed. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00076">76</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0b0029c63a01d50943b1f9497d9645db" name="a0b0029c63a01d50943b1f9497d9645db"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0b0029c63a01d50943b1f9497d9645db">◆ </a></span>~PFitOutputHandler()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">PFitOutputHandler::~PFitOutputHandler </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Destructor - ensures the musrfit process is terminated. </p>
|
|
<p>Performs cleanup by ensuring the musrfit child process is properly terminated. The termination sequence is:</p><ol type="1">
|
|
<li>Attempt graceful termination with QProcess::terminate() (SIGTERM)</li>
|
|
<li>Wait for process to finish</li>
|
|
<li>If still running, use QProcess::kill() (SIGKILL)</li>
|
|
<li>As a last resort, use system kill -9 command with stored PID</li>
|
|
</ol>
|
|
<p>This multi-stage approach ensures the process doesn't become orphaned, even if musrfit doesn't respond to normal termination signals (e.g., if stuck in a long calculation). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00144">144</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a62194f97ac617b9d62c2ff379aec283d" name="a62194f97ac617b9d62c2ff379aec283d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a62194f97ac617b9d62c2ff379aec283d">◆ </a></span>processDone</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFitOutputHandler::processDone </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>exitCode</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">QProcess::ExitStatus</td> <td class="paramname"><span class="paramname"><em>exitStatus</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span><span class="mlabel slot">slot</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Slot called when the musrfit process finishes. </p>
|
|
<p>Slot called when the musrfit process finishes execution.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">exitCode</td><td>The exit code returned by musrfit. </td></tr>
|
|
<tr><td class="paramname">exitStatus</td><td>The exit status (normal or crash).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This slot is connected to QProcess::finished signal and is called when musrfit terminates, whether normally or due to a crash. It updates the button text from "Fitting..." to "Done" to indicate the fit has completed.</p>
|
|
<p>If the process crashed (exitStatus == QProcess::CrashExit), a debug message is logged with the exit code for diagnostic purposes.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">exitCode</td><td>The exit code returned by musrfit (0 typically indicates success). </td></tr>
|
|
<tr><td class="paramname">exitStatus</td><td>The exit status: QProcess::NormalExit for normal termination, QProcess::CrashExit if the process crashed. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00215">215</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afac583e5249e84c28608f401a67473c6" name="afac583e5249e84c28608f401a67473c6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afac583e5249e84c28608f401a67473c6">◆ </a></span>quitButtonPressed</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFitOutputHandler::quitButtonPressed </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span><span class="mlabel slot">slot</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Slot called when the Quit/Done button is pressed. </p>
|
|
<p>Handles user request to close the dialog. The behavior depends on whether the fit is still running:</p><ul>
|
|
<li>If running: Attempts to terminate musrfit gracefully using QProcess::terminate(). If graceful termination fails within the timeout period, forcefully kills the process using QProcess::kill().</li>
|
|
<li>If finished: Simply closes the dialog.</li>
|
|
</ul>
|
|
<p>After ensuring the process is stopped (or was already stopped), accepts the dialog (closes it with QDialog::Accepted result). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00237">237</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad559a7b1e9b70ac1697a26cc994248cb" name="ad559a7b1e9b70ac1697a26cc994248cb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad559a7b1e9b70ac1697a26cc994248cb">◆ </a></span>readFromStdErr</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFitOutputHandler::readFromStdErr </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span><span class="mlabel slot">slot</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Slot to read and display standard error from musrfit. </p>
|
|
<p>Slot to capture and display standard error from musrfit.</p>
|
|
<p>Reads all available data from the musrfit process's standard error stream and appends it to the text display widget. This slot is connected to the QProcess::readyReadStandardError signal and may be called multiple times as error output arrives in chunks.</p>
|
|
<p>Error output typically includes warnings about parameter bounds, convergence issues, file access problems, and other diagnostic messages. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00193">193</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a70ec52d319f16584c0d3f8f82381c78d" name="a70ec52d319f16584c0d3f8f82381c78d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a70ec52d319f16584c0d3f8f82381c78d">◆ </a></span>readFromStdOut</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFitOutputHandler::readFromStdOut </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span><span class="mlabel slot">slot</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Slot to read and display standard output from musrfit. </p>
|
|
<p>Slot to capture and display standard output from musrfit.</p>
|
|
<p>Reads all available data from the musrfit process's standard output stream and appends it to the text display widget. This slot is connected to the QProcess::readyReadStandardOutput signal and may be called multiple times as output arrives in chunks during the fitting process.</p>
|
|
<p>The output typically includes MINUIT2 iteration progress, parameter values, and chi-square information. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8cpp_source.html#l00174">174</a> of file <a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="ab6fe23b7b271222e44ffa6743cd0f0dc" name="ab6fe23b7b271222e44ffa6743cd0f0dc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab6fe23b7b271222e44ffa6743cd0f0dc">◆ </a></span>fOutput</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::unique_ptr<QPlainTextEdit> PFitOutputHandler::fOutput</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Read-only text widget displaying musrfit output (max 1000 lines). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00142">142</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abcef8f3a64d51ea98fe208d6060557f1" name="abcef8f3a64d51ea98fe208d6060557f1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abcef8f3a64d51ea98fe208d6060557f1">◆ </a></span>fProc</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::unique_ptr<QProcess> PFitOutputHandler::fProc</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>QProcess object managing the musrfit execution. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00134">134</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5e90f3f19f458abcc385ef1938382057" name="a5e90f3f19f458abcc385ef1938382057"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5e90f3f19f458abcc385ef1938382057">◆ </a></span>fProcPID</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">qint64 PFitOutputHandler::fProcPID</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Process ID of the running musrfit process. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00133">133</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae37d220475e438a262b73e0a6eeb21c2" name="ae37d220475e438a262b73e0a6eeb21c2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae37d220475e438a262b73e0a6eeb21c2">◆ </a></span>fQuitButton</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::unique_ptr<QPushButton> PFitOutputHandler::fQuitButton</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Button showing "Fitting..." during fit, "Done" after completion. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00143">143</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="acee76a7831d09bd2f36bd4829db95545" name="acee76a7831d09bd2f36bd4829db95545"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acee76a7831d09bd2f36bd4829db95545">◆ </a></span>fVbox</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::unique_ptr<QVBoxLayout> PFitOutputHandler::fVbox</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Vertical layout manager for dialog widgets. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFitOutputHandler_8h_source.html#l00141">141</a> of file <a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>/workspace/LMU/musrfit/src/musredit_qt6/musredit/<a class="el" href="PFitOutputHandler_8h_source.html">PFitOutputHandler.h</a></li>
|
|
<li>/workspace/LMU/musrfit/src/musredit_qt6/musredit/<a class="el" href="PFitOutputHandler_8cpp_source.html">PFitOutputHandler.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2
|
|
</small></address>
|
|
</div><!-- doc-content -->
|
|
</body>
|
|
</html>
|