Files
musrfit/mupp/html/classPVarHandler.html
T
Gitea Actions b6fac619f9 Deploy site
2026-05-28 07:32:41 +00:00

819 lines
47 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>mupp: PVarHandler 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">mupp<span id="projectnumber">&#160;1.1.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&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;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&amp;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&amp;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> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classPVarHandler-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PVarHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>The <a class="el" href="classPVarHandler.html" title="The PVarHandler class handles variable parsing, evaluation, and data management.">PVarHandler</a> class handles variable parsing, evaluation, and data management.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for PVarHandler:</div>
<div class="dyncontent">
<div class="center"><img src="classPVarHandler__coll__graph.png" border="0" usemap="#aPVarHandler_coll__map" alt="Collaboration graph"/></div>
<map name="aPVarHandler_coll__map" id="aPVarHandler_coll__map">
<area shape="rect" title="The PVarHandler class handles variable parsing, evaluation, and data management." alt="" coords="106,98,204,126"/>
<area shape="rect" href="classPmuppCollection.html" title="Represents a collection of related experimental runs." alt="" coords="5,5,132,33"/>
<area shape="poly" title=" " alt="" coords="93,42,145,96,141,99,89,46"/>
<area shape="rect" href="classmupp_1_1prog_1_1PVarHandler.html" title="The PVarHandler class manages variable data during evaluation." alt="" coords="156,5,330,33"/>
<area shape="poly" title=" " alt="" coords="222,46,170,99,166,96,218,42"/>
</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:a789f4312eff670499010d94c497e812a" id="r_a789f4312eff670499010d94c497e812a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a789f4312eff670499010d94c497e812a">PVarHandler</a> ()</td></tr>
<tr class="memdesc:a789f4312eff670499010d94c497e812a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a789f4312eff670499010d94c497e812a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c7b1113a0a3e511fa25f3b16e48975e" id="r_a4c7b1113a0a3e511fa25f3b16e48975e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4c7b1113a0a3e511fa25f3b16e48975e">PVarHandler</a> (<a class="el" href="classPmuppCollection.html">PmuppCollection</a> *coll, std::string parse_str, std::string var_name=&quot;&quot;, const std::vector&lt; <a class="el" href="classPmuppCollection.html">PmuppCollection</a> * &gt; &amp;allColl=std::vector&lt; <a class="el" href="classPmuppCollection.html">PmuppCollection</a> * &gt;())</td></tr>
<tr class="memdesc:a4c7b1113a0a3e511fa25f3b16e48975e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that parses and evaluates a variable expression. <br /></td></tr>
<tr class="separator:a4c7b1113a0a3e511fa25f3b16e48975e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c2dc30b07d27e08fb44917501790df5" id="r_a9c2dc30b07d27e08fb44917501790df5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9c2dc30b07d27e08fb44917501790df5">isValid</a> ()</td></tr>
<tr class="memdesc:a9c2dc30b07d27e08fb44917501790df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the parsing and evaluation were successful. <br /></td></tr>
<tr class="separator:a9c2dc30b07d27e08fb44917501790df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8cc103d9297773ba990cdd3bd2503ae" id="r_af8cc103d9297773ba990cdd3bd2503ae"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af8cc103d9297773ba990cdd3bd2503ae">getCollName</a> ()</td></tr>
<tr class="memdesc:af8cc103d9297773ba990cdd3bd2503ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the collection name. <br /></td></tr>
<tr class="separator:af8cc103d9297773ba990cdd3bd2503ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55ec7701f98f23a1eb4a924e4425be4d" id="r_a55ec7701f98f23a1eb4a924e4425be4d"><td class="memItemLeft" align="right" valign="top">QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a55ec7701f98f23a1eb4a924e4425be4d">getVarName</a> ()</td></tr>
<tr class="memdesc:a55ec7701f98f23a1eb4a924e4425be4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the variable name. <br /></td></tr>
<tr class="separator:a55ec7701f98f23a1eb4a924e4425be4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8ee7357e752f75efb3ad1482cdb1724" id="r_ad8ee7357e752f75efb3ad1482cdb1724"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad8ee7357e752f75efb3ad1482cdb1724">getValues</a> ()</td></tr>
<tr class="memdesc:ad8ee7357e752f75efb3ad1482cdb1724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the computed values for the variable. <br /></td></tr>
<tr class="separator:ad8ee7357e752f75efb3ad1482cdb1724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48adfad2c1f5d9db9328879e8b59b795" id="r_a48adfad2c1f5d9db9328879e8b59b795"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a48adfad2c1f5d9db9328879e8b59b795">getErrors</a> ()</td></tr>
<tr class="memdesc:a48adfad2c1f5d9db9328879e8b59b795"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the computed errors for the variable. <br /></td></tr>
<tr class="separator:a48adfad2c1f5d9db9328879e8b59b795"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ac6342cc8710dd9427999a2456f102453" id="r_ac6342cc8710dd9427999a2456f102453"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac6342cc8710dd9427999a2456f102453">injectPredefVariables</a> ()</td></tr>
<tr class="memdesc:ac6342cc8710dd9427999a2456f102453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Injects predefined variables from the collection into the AST. <br /></td></tr>
<tr class="separator:ac6342cc8710dd9427999a2456f102453"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d989e4462ea51720fbde780382efaf3" id="r_a8d989e4462ea51720fbde780382efaf3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8d989e4462ea51720fbde780382efaf3">evaluatePython</a> ()</td></tr>
<tr class="memdesc:a8d989e4462ea51720fbde780382efaf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates the variable using an embedded Python3 interpreter (TPython). <br /></td></tr>
<tr class="separator:a8d989e4462ea51720fbde780382efaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acee1feb321c30c8b329abdd0c741b68d" id="r_acee1feb321c30c8b329abdd0c741b68d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acee1feb321c30c8b329abdd0c741b68d">getVarName</a> (int idx)</td></tr>
<tr class="memdesc:acee1feb321c30c8b329abdd0c741b68d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the variable name at a specific parameter index. <br /></td></tr>
<tr class="separator:acee1feb321c30c8b329abdd0c741b68d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab989d72288707043527eb5b48b3d10b8" id="r_ab989d72288707043527eb5b48b3d10b8"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab989d72288707043527eb5b48b3d10b8">getData</a> (int idx)</td></tr>
<tr class="memdesc:ab989d72288707043527eb5b48b3d10b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the data values for a specific parameter across all runs. <br /></td></tr>
<tr class="separator:ab989d72288707043527eb5b48b3d10b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb6bdf78c0859d947dd46a1c7303f576" id="r_afb6bdf78c0859d947dd46a1c7303f576"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afb6bdf78c0859d947dd46a1c7303f576">getDataErr</a> (int idx)</td></tr>
<tr class="memdesc:afb6bdf78c0859d947dd46a1c7303f576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the error values for a specific parameter across all runs. <br /></td></tr>
<tr class="separator:afb6bdf78c0859d947dd46a1c7303f576"><td class="memSeparator" colspan="2">&#160;</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 class="memitem:a2ff55b35f1b907b5de8ffbea7ac3d85c" id="r_a2ff55b35f1b907b5de8ffbea7ac3d85c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPmuppCollection.html">PmuppCollection</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2ff55b35f1b907b5de8ffbea7ac3d85c">fColl</a></td></tr>
<tr class="memdesc:a2ff55b35f1b907b5de8ffbea7ac3d85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">pointer to collection containing run data needed for parsing and evaluation <br /></td></tr>
<tr class="separator:a2ff55b35f1b907b5de8ffbea7ac3d85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74bd932b3a2c3db258a31c2bfcb42ab3" id="r_a74bd932b3a2c3db258a31c2bfcb42ab3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classPmuppCollection.html">PmuppCollection</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74bd932b3a2c3db258a31c2bfcb42ab3">fAllColl</a></td></tr>
<tr class="memdesc:a74bd932b3a2c3db258a31c2bfcb42ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">all loaded collections (handler-index order); Python path only, exposed as coll[]/collErr[] <br /></td></tr>
<tr class="separator:a74bd932b3a2c3db258a31c2bfcb42ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe06291081e7ce513f26e269b05c691a" id="r_abe06291081e7ce513f26e269b05c691a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe06291081e7ce513f26e269b05c691a">fParseStr</a></td></tr>
<tr class="memdesc:abe06291081e7ce513f26e269b05c691a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the variable input string to be parsed <br /></td></tr>
<tr class="separator:abe06291081e7ce513f26e269b05c691a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8a5d170bba046d9dcbb30f121ff1ee3" id="r_af8a5d170bba046d9dcbb30f121ff1ee3"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af8a5d170bba046d9dcbb30f121ff1ee3">fVarName</a></td></tr>
<tr class="memdesc:af8a5d170bba046d9dcbb30f121ff1ee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">name of the variable to extract from evaluation results <br /></td></tr>
<tr class="separator:af8a5d170bba046d9dcbb30f121ff1ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8bc9182605c82e204031f29a74486b4" id="r_ad8bc9182605c82e204031f29a74486b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmupp_1_1prog_1_1PVarHandler.html">mupp::prog::PVarHandler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad8bc9182605c82e204031f29a74486b4">fVar</a></td></tr>
<tr class="memdesc:ad8bc9182605c82e204031f29a74486b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">variable handler storing the computed values and errors <br /></td></tr>
<tr class="separator:ad8bc9182605c82e204031f29a74486b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaf8c2c31ebc61e8fb5cc54d52525bef" id="r_acaf8c2c31ebc61e8fb5cc54d52525bef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acaf8c2c31ebc61e8fb5cc54d52525bef">fIsValid</a></td></tr>
<tr class="memdesc:acaf8c2c31ebc61e8fb5cc54d52525bef"><td class="mdescLeft">&#160;</td><td class="mdescRight">flag indicating whether parsing and evaluation succeeded <br /></td></tr>
<tr class="separator:acaf8c2c31ebc61e8fb5cc54d52525bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7dc645f4ddbb6a4f69dadfc18145016" id="r_af7dc645f4ddbb6a4f69dadfc18145016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemupp_1_1ast.html#a70c0971fe1d0c227c4fbe28b6fd0b7fe">mupp::ast::statement_list</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af7dc645f4ddbb6a4f69dadfc18145016">fAst</a></td></tr>
<tr class="memdesc:af7dc645f4ddbb6a4f69dadfc18145016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract Syntax Tree generated from parsing. <br /></td></tr>
<tr class="separator:af7dc645f4ddbb6a4f69dadfc18145016"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classPVarHandler.html" title="The PVarHandler class handles variable parsing, evaluation, and data management.">PVarHandler</a> class handles variable parsing, evaluation, and data management. </p>
<p>This class provides the main interface for parsing variable definition strings, evaluating expressions using the Boost.Spirit parser framework, and managing the resulting computed values and errors. It integrates with <a class="el" href="classPmuppCollection.html" title="Represents a collection of related experimental runs.">PmuppCollection</a> to access run data and inject predefined variables for use in expressions.</p>
<p>The variable syntax supports:</p><ul>
<li>Variable declarations: var &lt;name&gt; = &lt;expression&gt;</li>
<li>Identifiers (prefixed with '$'): $varName</li>
<li>Mathematical functions: sin, cos, tan, exp, log, sqrt, pow, etc.</li>
<li>Arithmetic operations: +, -, *, /</li>
<li>Error variables (suffixed with 'Err'): must be defined for each variable</li>
</ul>
<p>Example usage: </p><div class="fragment"><div class="line"><a class="code hl_class" href="classPmuppCollection.html">PmuppCollection</a> *coll = ...;</div>
<div class="line">std::string expr = <span class="stringliteral">&quot;var sigma = pow(abs(pow($T1,2.0)-pow(0.11,2.0)),0.5)&quot;</span>;</div>
<div class="line"><a class="code hl_function" href="#a789f4312eff670499010d94c497e812a">PVarHandler</a> handler(coll, expr, <span class="stringliteral">&quot;sigma&quot;</span>);</div>
<div class="line"><span class="keywordflow">if</span> (handler.isValid()) {</div>
<div class="line"> std::vector&lt;double&gt; values = handler.getValues();</div>
<div class="line"> std::vector&lt;double&gt; errors = handler.getErrors();</div>
<div class="line">}</div>
<div class="ttc" id="aclassPVarHandler_html_a789f4312eff670499010d94c497e812a"><div class="ttname"><a href="#a789f4312eff670499010d94c497e812a">PVarHandler::PVarHandler</a></div><div class="ttdeci">PVarHandler()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition</b> <a href="PVarHandler_8cpp_source.html#l00286">PVarHandler.cpp:286</a></div></div>
<div class="ttc" id="aclassPmuppCollection_html"><div class="ttname"><a href="classPmuppCollection.html">PmuppCollection</a></div><div class="ttdoc">Represents a collection of related experimental runs.</div><div class="ttdef"><b>Definition</b> <a href="Pmupp_8h_source.html#l00234">Pmupp.h:234</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00069">69</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a789f4312eff670499010d94c497e812a" name="a789f4312eff670499010d94c497e812a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a789f4312eff670499010d94c497e812a">&#9670;&#160;</a></span>PVarHandler() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PVarHandler::PVarHandler </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<p>Default constructor creating an invalid handler.</p>
<p>Creates an invalid <a class="el" href="classPVarHandler.html" title="The PVarHandler class handles variable parsing, evaluation, and data management.">PVarHandler</a> instance with null pointers and empty strings.</p>
<p>Initializes all members to default/null values, resulting in an invalid handler that will return false from <a class="el" href="#a9c2dc30b07d27e08fb44917501790df5" title="Checks if the parsing and evaluation were successful.">isValid()</a>. </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00286">286</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="a4c7b1113a0a3e511fa25f3b16e48975e" name="a4c7b1113a0a3e511fa25f3b16e48975e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c7b1113a0a3e511fa25f3b16e48975e">&#9670;&#160;</a></span>PVarHandler() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PVarHandler::PVarHandler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPmuppCollection.html">PmuppCollection</a> *</td> <td class="paramname"><span class="paramname"><em>coll</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string</td> <td class="paramname"><span class="paramname"><em>parse_str</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string</td> <td class="paramname"><span class="paramname"><em>var_name</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classPmuppCollection.html">PmuppCollection</a> * &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>allColl</em></span><span class="paramdefsep"> = </span><span class="paramdefval">std::vector&lt;<a class="el" href="classPmuppCollection.html">PmuppCollection</a>*&gt;()</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that parses and evaluates a variable expression. </p>
<p>Parses the provided expression string, performs semantic analysis, injects predefined variables from the collection, evaluates the expression, and stores the results.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coll</td><td>pointer to the <a class="el" href="classPmuppCollection.html" title="Represents a collection of related experimental runs.">PmuppCollection</a> containing run data and parameters </td></tr>
<tr><td class="paramname">parse_str</td><td>the variable definition string to parse (e.g., "var x = $T1 + 1.0") </td></tr>
<tr><td class="paramname">var_name</td><td>optional variable name to extract from the evaluation results; if empty, only parsing/checking is performed </td></tr>
<tr><td class="paramname">allColl</td><td>optional list of all loaded collections (in handler-index order). Only used by the Python path, where it is exposed inside the &lt;python&gt; block as coll[]/collErr[] (see <a class="el" href="#a8d989e4462ea51720fbde780382efaf3" title="Evaluates the variable using an embedded Python3 interpreter (TPython).">evaluatePython()</a>). If empty, only the bound collection 'coll' is injected (bare names and par[]/parErr[]).</td></tr>
</table>
</dd>
</dl>
<p>Performs the complete variable processing pipeline:</p><ol type="1">
<li>Injects predefined variables from the collection into the AST</li>
<li>Parses the input string using the PStatement grammar</li>
<li>Performs semantic analysis using PProgram</li>
<li>Injects actual data values from the collection</li>
<li>Evaluates the expression using PProgEval</li>
<li>Extracts and stores the requested variable results</li>
</ol>
<p>If parsing, semantic analysis, or evaluation fails, fIsValid is set to false and error messages are logged to ~/.musrfit/mupp/mupp_err.log.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coll</td><td>pointer to the collection containing run data </td></tr>
<tr><td class="paramname">parse_str</td><td>the variable definition string to parse </td></tr>
<tr><td class="paramname">var_name</td><td>optional variable name to extract; if empty, only validation is performed </td></tr>
<tr><td class="paramname">allColl</td><td>optional list of all loaded collections (Python path only) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00312">312</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a8d989e4462ea51720fbde780382efaf3" name="a8d989e4462ea51720fbde780382efaf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d989e4462ea51720fbde780382efaf3">&#9670;&#160;</a></span>evaluatePython()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PVarHandler::evaluatePython </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluates the variable using an embedded Python3 interpreter (TPython). </p>
<p>Evaluates a &lt;python&gt; ... &lt;/python&gt; variable block via ROOT's TPython.</p>
<p>Used when the input string contains a &lt;python&gt; ... &lt;/python&gt; block. The bound collection's parameters are injected into the interpreter as bare-name lists (one value per run) plus par[]/parErr[] dictionaries as a fallback for names that are not valid Python identifiers (e.g. the keyword 'lambda'). In addition, every loaded collection passed via fAllColl is exposed through the coll[]/collErr[] dictionaries, addressable both by integer index (matching the script 'col &lt;idx&gt;') and by collection name; index and name keys reference the same per-parameter dict. This lets a single &lt;python&gt; block compute (and combine) variables for several collections. The user script must assign the requested variable and its error counterpart (&lt;name&gt;Err). Both value and error arrays are read back and stored in fVar.</p>
<p>If mupp was built without TPython support, the handler is marked invalid.</p>
<p>See the declaration in <a class="el" href="PVarHandler_8h.html">PVarHandler.h</a> for the data contract. On any failure a message is written to ~/.musrfit/mupp/mupp_err.log and fIsValid stays false. </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00368">368</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="af8cc103d9297773ba990cdd3bd2503ae" name="af8cc103d9297773ba990cdd3bd2503ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8cc103d9297773ba990cdd3bd2503ae">&#9670;&#160;</a></span>getCollName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">QString PVarHandler::getCollName </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 inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the collection name. </p>
<dl class="section return"><dt>Returns</dt><dd>QString containing the name of the associated collection </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00107">107</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="ab989d72288707043527eb5b48b3d10b8" name="ab989d72288707043527eb5b48b3d10b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab989d72288707043527eb5b48b3d10b8">&#9670;&#160;</a></span>getData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; double &gt; PVarHandler::getData </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></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>Gets the data values for a specific parameter across all runs. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index in the collection </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vector of data values from all runs for the specified parameter</dd></dl>
<p>Collects the value of the specified parameter from every run in the collection, returning them as a vector.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index (0-based) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vector of parameter values from all runs, or empty vector if index is out of range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00607">607</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="afb6bdf78c0859d947dd46a1c7303f576" name="afb6bdf78c0859d947dd46a1c7303f576"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb6bdf78c0859d947dd46a1c7303f576">&#9670;&#160;</a></span>getDataErr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; double &gt; PVarHandler::getDataErr </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></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>Gets the error values for a specific parameter across all runs. </p>
<p>Computes the geometric mean of positive and negative errors for each run. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index in the collection </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vector of error values (geometric mean of pos/neg errors) from all runs</dd></dl>
<p>Collects the error of the specified parameter from every run in the collection. The error is computed as the geometric mean of the positive and negative errors: sqrt(abs(posErr * negErr)).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index (0-based) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vector of parameter errors from all runs, or empty vector if index is out of range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00635">635</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="a48adfad2c1f5d9db9328879e8b59b795" name="a48adfad2c1f5d9db9328879e8b59b795"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48adfad2c1f5d9db9328879e8b59b795">&#9670;&#160;</a></span>getErrors()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; double &gt; PVarHandler::getErrors </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the computed errors for the variable. </p>
<p>Gets the computed error values for the variable.</p>
<dl class="section return"><dt>Returns</dt><dd>vector of double error values computed from the expression evaluation</dd></dl>
<p>Returns the vector of error values computed during expression evaluation. Each element corresponds to a different run in the collection.</p>
<dl class="section return"><dt>Returns</dt><dd>vector of computed error values, or empty vector if not valid </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00536">536</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="ad8ee7357e752f75efb3ad1482cdb1724" name="ad8ee7357e752f75efb3ad1482cdb1724"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8ee7357e752f75efb3ad1482cdb1724">&#9670;&#160;</a></span>getValues()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; double &gt; PVarHandler::getValues </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the computed values for the variable. </p>
<dl class="section return"><dt>Returns</dt><dd>vector of double values computed from the expression evaluation</dd></dl>
<p>Returns the vector of values computed during expression evaluation. Each element corresponds to a different run in the collection.</p>
<dl class="section return"><dt>Returns</dt><dd>vector of computed values, or empty vector if not valid </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00518">518</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="a55ec7701f98f23a1eb4a924e4425be4d" name="a55ec7701f98f23a1eb4a924e4425be4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55ec7701f98f23a1eb4a924e4425be4d">&#9670;&#160;</a></span>getVarName() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">QString PVarHandler::getVarName </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 inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the variable name. </p>
<dl class="section return"><dt>Returns</dt><dd>QString containing the variable name </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00113">113</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="acee1feb321c30c8b329abdd0c741b68d" name="acee1feb321c30c8b329abdd0c741b68d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acee1feb321c30c8b329abdd0c741b68d">&#9670;&#160;</a></span>getVarName() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string PVarHandler::getVarName </td>
<td>(</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></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>Gets the variable name at a specific parameter index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index in the collection </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>variable name as a string, or "??" if index is out of range</dd></dl>
<p>Retrieves the parameter name from the collection's first run at the specified index.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>the parameter index (0-based) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the parameter name, or "??" if index is out of range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00586">586</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="ac6342cc8710dd9427999a2456f102453" name="ac6342cc8710dd9427999a2456f102453"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6342cc8710dd9427999a2456f102453">&#9670;&#160;</a></span>injectPredefVariables()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PVarHandler::injectPredefVariables </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Injects predefined variables from the collection into the AST. </p>
<p>Extracts all parameter names from the collection's first run and creates variable declarations for both the parameter names and their corresponding error variables (suffixed with 'Err'). These declarations are prepended to the AST before evaluation.</p>
<p>For each parameter in the collection's first run, creates variable declarations for both the parameter name and its corresponding error variable (with 'Err' suffix). These declarations are prepended to the AST so they are processed before user-defined variables, making all collection parameters available for use in expressions. </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8cpp_source.html#l00555">555</a> of file <a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a>.</p>
</div>
</div>
<a id="a9c2dc30b07d27e08fb44917501790df5" name="a9c2dc30b07d27e08fb44917501790df5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c2dc30b07d27e08fb44917501790df5">&#9670;&#160;</a></span>isValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PVarHandler::isValid </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 inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the parsing and evaluation were successful. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the expression was parsed and evaluated successfully, false otherwise </dd></dl>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00101">101</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a74bd932b3a2c3db258a31c2bfcb42ab3" name="a74bd932b3a2c3db258a31c2bfcb42ab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74bd932b3a2c3db258a31c2bfcb42ab3">&#9670;&#160;</a></span>fAllColl</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classPmuppCollection.html">PmuppCollection</a>*&gt; PVarHandler::fAllColl</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>all loaded collections (handler-index order); Python path only, exposed as coll[]/collErr[] </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00129">129</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="af7dc645f4ddbb6a4f69dadfc18145016" name="af7dc645f4ddbb6a4f69dadfc18145016"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7dc645f4ddbb6a4f69dadfc18145016">&#9670;&#160;</a></span>fAst</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacemupp_1_1ast.html#a70c0971fe1d0c227c4fbe28b6fd0b7fe">mupp::ast::statement_list</a> PVarHandler::fAst</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>Abstract Syntax Tree generated from parsing. </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00135">135</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="a2ff55b35f1b907b5de8ffbea7ac3d85c" name="a2ff55b35f1b907b5de8ffbea7ac3d85c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ff55b35f1b907b5de8ffbea7ac3d85c">&#9670;&#160;</a></span>fColl</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classPmuppCollection.html">PmuppCollection</a>* PVarHandler::fColl</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>pointer to collection containing run data needed for parsing and evaluation </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00128">128</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="acaf8c2c31ebc61e8fb5cc54d52525bef" name="acaf8c2c31ebc61e8fb5cc54d52525bef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acaf8c2c31ebc61e8fb5cc54d52525bef">&#9670;&#160;</a></span>fIsValid</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PVarHandler::fIsValid</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>flag indicating whether parsing and evaluation succeeded </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00134">134</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="abe06291081e7ce513f26e269b05c691a" name="abe06291081e7ce513f26e269b05c691a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe06291081e7ce513f26e269b05c691a">&#9670;&#160;</a></span>fParseStr</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string PVarHandler::fParseStr</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>the variable input string to be parsed </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00130">130</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="ad8bc9182605c82e204031f29a74486b4" name="ad8bc9182605c82e204031f29a74486b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8bc9182605c82e204031f29a74486b4">&#9670;&#160;</a></span>fVar</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classmupp_1_1prog_1_1PVarHandler.html">mupp::prog::PVarHandler</a> PVarHandler::fVar</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>variable handler storing the computed values and errors </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00132">132</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a>.</p>
</div>
</div>
<a id="af8a5d170bba046d9dcbb30f121ff1ee3" name="af8a5d170bba046d9dcbb30f121ff1ee3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8a5d170bba046d9dcbb30f121ff1ee3">&#9670;&#160;</a></span>fVarName</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string PVarHandler::fVarName</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>name of the variable to extract from evaluation results </p>
<p class="definition">Definition at line <a class="el" href="PVarHandler_8h_source.html#l00131">131</a> of file <a class="el" href="PVarHandler_8h_source.html">PVarHandler.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/mupp/var/include/<a class="el" href="PVarHandler_8h_source.html">PVarHandler.h</a></li>
<li>/workspace/LMU/musrfit/src/musredit_qt6/mupp/var/src/<a class="el" href="PVarHandler_8cpp_source.html">PVarHandler.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<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>