Files
musrfit/classPMsr2Data.html
Gitea Actions 8a8eac55b7 Deploy site
2025-12-27 12:57:44 +00:00

1716 lines
105 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>musrfit: PMsr2Data 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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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">musrfit<span id="projectnumber">&#160;1.9.9</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 */
$(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('',false,false,'search.php','Search',true);
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classPMsr2Data.html',''); initResizable(true); });
/* @license-end */
</script>
<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="classPMsr2Data-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PMsr2Data Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Utility class for msr2data: template-based msr-file generation and parameter extraction.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>&gt;</code></p>
<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:a061651c157c49266688b5a8e44814a7f" id="r_a061651c157c49266688b5a8e44814a7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a061651c157c49266688b5a8e44814a7f">PMsr2Data</a> (const std::string &amp;fileExtension)</td></tr>
<tr class="memdesc:a061651c157c49266688b5a8e44814a7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that initializes the msr2data handler. <br /></td></tr>
<tr class="separator:a061651c157c49266688b5a8e44814a7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbbb71deea87eb8148d88dd7c5518e33" id="r_abbbb71deea87eb8148d88dd7c5518e33"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abbbb71deea87eb8148d88dd7c5518e33">~PMsr2Data</a> ()</td></tr>
<tr class="memdesc:abbbb71deea87eb8148d88dd7c5518e33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor that cleans up resources. <br /></td></tr>
<tr class="separator:abbbb71deea87eb8148d88dd7c5518e33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b6ea62ae1cd98e8877825601325a2d9" id="r_a8b6ea62ae1cd98e8877825601325a2d9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8b6ea62ae1cd98e8877825601325a2d9">SetRunNumbers</a> (unsigned int runNumber)</td></tr>
<tr class="memdesc:a8b6ea62ae1cd98e8877825601325a2d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a single run number for processing. <br /></td></tr>
<tr class="separator:a8b6ea62ae1cd98e8877825601325a2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4be6ae5e48609f153fe213c411a7dee" id="r_ab4be6ae5e48609f153fe213c411a7dee"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab4be6ae5e48609f153fe213c411a7dee">SetRunNumbers</a> (unsigned int firstRun, unsigned int lastRun)</td></tr>
<tr class="memdesc:ab4be6ae5e48609f153fe213c411a7dee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a range of run numbers (from first to last, inclusive). <br /></td></tr>
<tr class="separator:ab4be6ae5e48609f153fe213c411a7dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74de0d2577f7aaaf71151db015d570da" id="r_a74de0d2577f7aaaf71151db015d570da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74de0d2577f7aaaf71151db015d570da">SetRunNumbers</a> (const std::string &amp;runListFileName)</td></tr>
<tr class="memdesc:a74de0d2577f7aaaf71151db015d570da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets run numbers from a run list file. <br /></td></tr>
<tr class="separator:a74de0d2577f7aaaf71151db015d570da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42002d8eaec2bc92978dbb252bb5946a" id="r_a42002d8eaec2bc92978dbb252bb5946a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a42002d8eaec2bc92978dbb252bb5946a">SetRunNumbers</a> (const std::vector&lt; unsigned int &gt; &amp;runVector)</td></tr>
<tr class="memdesc:a42002d8eaec2bc92978dbb252bb5946a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets run numbers from an explicit vector. <br /></td></tr>
<tr class="separator:a42002d8eaec2bc92978dbb252bb5946a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc01854602353ad313b11955fa04adfe" id="r_acc01854602353ad313b11955fa04adfe"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acc01854602353ad313b11955fa04adfe">GetPresentRun</a> () const</td></tr>
<tr class="memdesc:acc01854602353ad313b11955fa04adfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the current run number being processed. <br /></td></tr>
<tr class="separator:acc01854602353ad313b11955fa04adfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adafbd05a088858e477f248d933d0efe7" id="r_adafbd05a088858e477f248d933d0efe7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adafbd05a088858e477f248d933d0efe7">DetermineRunNumberDigits</a> (unsigned int maxRunNumber, bool templateFile) const</td></tr>
<tr class="memdesc:adafbd05a088858e477f248d933d0efe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the number of digits needed for run number formatting. <br /></td></tr>
<tr class="separator:adafbd05a088858e477f248d933d0efe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34384ba7b544c826b7217f124220f5e3" id="r_a34384ba7b544c826b7217f124220f5e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a34384ba7b544c826b7217f124220f5e3">CheckRunNumbersInRange</a> () const</td></tr>
<tr class="memdesc:a34384ba7b544c826b7217f124220f5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates that all run numbers are within acceptable ranges. <br /></td></tr>
<tr class="separator:a34384ba7b544c826b7217f124220f5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93b877dbce66b6d401455f3dc48f8164" id="r_a93b877dbce66b6d401455f3dc48f8164"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a93b877dbce66b6d401455f3dc48f8164">ParseXmlStartupFile</a> ()</td></tr>
<tr class="memdesc:a93b877dbce66b6d401455f3dc48f8164"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses the XML startup file for configuration. <br /></td></tr>
<tr class="separator:a93b877dbce66b6d401455f3dc48f8164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e684b22edeefb832db7a102b9baa026" id="r_a0e684b22edeefb832db7a102b9baa026"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0e684b22edeefb832db7a102b9baa026">ReadMsrFile</a> (const std::string &amp;msrFileName) const</td></tr>
<tr class="memdesc:a0e684b22edeefb832db7a102b9baa026"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads and parses an msr-file. <br /></td></tr>
<tr class="separator:a0e684b22edeefb832db7a102b9baa026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52ae3eea688a0f2d3b545810a019a881" id="r_a52ae3eea688a0f2d3b545810a019a881"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a52ae3eea688a0f2d3b545810a019a881">ReadRunDataFile</a> ()</td></tr>
<tr class="memdesc:a52ae3eea688a0f2d3b545810a019a881"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the run data file for the current run. <br /></td></tr>
<tr class="separator:a52ae3eea688a0f2d3b545810a019a881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a313bc2de426c5ba6eec4823e1db10982" id="r_a313bc2de426c5ba6eec4823e1db10982"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a313bc2de426c5ba6eec4823e1db10982">PrepareNewInputFile</a> (unsigned int templateNumber, bool sorted) const</td></tr>
<tr class="memdesc:a313bc2de426c5ba6eec4823e1db10982"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a new msr-file from a template. <br /></td></tr>
<tr class="separator:a313bc2de426c5ba6eec4823e1db10982"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c897d5ccdec66cd15a1eff325241489" id="r_a1c897d5ccdec66cd15a1eff325241489"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c897d5ccdec66cd15a1eff325241489">PrepareGlobalInputFile</a> (unsigned int templateNumber, const std::string &amp;globalOutputFile, unsigned int runListSize) const</td></tr>
<tr class="memdesc:a1c897d5ccdec66cd15a1eff325241489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates an msr-file for global (multi-run) fitting. <br /></td></tr>
<tr class="separator:a1c897d5ccdec66cd15a1eff325241489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1edd7ef749d41a90756ad67e8fe7ecc8" id="r_a1edd7ef749d41a90756ad67e8fe7ecc8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1edd7ef749d41a90756ad67e8fe7ecc8">WriteOutput</a> (const std::string &amp;outputFileName, const std::vector&lt; unsigned int &gt; &amp;parameters, bool dbFormat, unsigned int precision, bool global=false, unsigned int counter=0) const</td></tr>
<tr class="memdesc:a1edd7ef749d41a90756ad67e8fe7ecc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes extracted parameters to output file. <br /></td></tr>
<tr class="separator:a1edd7ef749d41a90756ad67e8fe7ecc8"><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:ac0d08c7b9cf4bed54b63f24a606e0300" id="r_ac0d08c7b9cf4bed54b63f24a606e0300"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac0d08c7b9cf4bed54b63f24a606e0300">PrepareNewSortedInputFile</a> (unsigned int templateNumber) const</td></tr>
<tr class="memdesc:ac0d08c7b9cf4bed54b63f24a606e0300"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a sorted msr-file from a template. <br /></td></tr>
<tr class="separator:ac0d08c7b9cf4bed54b63f24a606e0300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db11eacc6779c7e9ebd4d878281a0a4" id="r_a1db11eacc6779c7e9ebd4d878281a0a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPMsrHandler.html">PMsrHandler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1db11eacc6779c7e9ebd4d878281a0a4">GetSingleRunMsrFile</a> () const</td></tr>
<tr class="memdesc:a1db11eacc6779c7e9ebd4d878281a0a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves msr-file handler for a single run. <br /></td></tr>
<tr class="separator:a1db11eacc6779c7e9ebd4d878281a0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fa126f3cde7f2ad025dc902db2de871" id="r_a8fa126f3cde7f2ad025dc902db2de871"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8fa126f3cde7f2ad025dc902db2de871">WriteValue</a> (std::fstream &amp;outFile, const double &amp;value, const unsigned int &amp;width) const</td></tr>
<tr class="memdesc:a8fa126f3cde7f2ad025dc902db2de871"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a single numeric value to output stream. <br /></td></tr>
<tr class="separator:a8fa126f3cde7f2ad025dc902db2de871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a78886fe7744cb48924dfeb0908958" id="r_ae3a78886fe7744cb48924dfeb0908958"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae3a78886fe7744cb48924dfeb0908958">WriteValue</a> (std::fstream &amp;outFile, const double &amp;value, const double &amp;errValue, const unsigned int &amp;width, const bool &amp;db) const</td></tr>
<tr class="memdesc:ae3a78886fe7744cb48924dfeb0908958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a value with its error to output stream. <br /></td></tr>
<tr class="separator:ae3a78886fe7744cb48924dfeb0908958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7335214efdb8c1d67d5b200cb3e15984" id="r_a7335214efdb8c1d67d5b200cb3e15984"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7335214efdb8c1d67d5b200cb3e15984">GetFirstSignificantDigit</a> (const double &amp;value) const</td></tr>
<tr class="memdesc:a7335214efdb8c1d67d5b200cb3e15984"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the first significant digit position of a value. <br /></td></tr>
<tr class="separator:a7335214efdb8c1d67d5b200cb3e15984"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af303d2102b60c5c9a3e3224f0b2f1234" id="r_af303d2102b60c5c9a3e3224f0b2f1234"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af303d2102b60c5c9a3e3224f0b2f1234">InParameterList</a> (const unsigned int &amp;paramValue, const std::vector&lt; unsigned int &gt; &amp;paramList) const</td></tr>
<tr class="memdesc:af303d2102b60c5c9a3e3224f0b2f1234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a parameter is in the output parameter list. <br /></td></tr>
<tr class="separator:af303d2102b60c5c9a3e3224f0b2f1234"><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:a6ffb4bc7dd14e82e92e5ca5c4615a952" id="r_a6ffb4bc7dd14e82e92e5ca5c4615a952"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6ffb4bc7dd14e82e92e5ca5c4615a952">fFileExtension</a></td></tr>
<tr class="memdesc:a6ffb4bc7dd14e82e92e5ca5c4615a952"><td class="mdescLeft">&#160;</td><td class="mdescRight">File extension for data files (e.g., "bin", "root") <br /></td></tr>
<tr class="separator:a6ffb4bc7dd14e82e92e5ca5c4615a952"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac97af910184212efb4c2ae8d599ffd86" id="r_ac97af910184212efb4c2ae8d599ffd86"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac97af910184212efb4c2ae8d599ffd86">fRunVector</a></td></tr>
<tr class="memdesc:ac97af910184212efb4c2ae8d599ffd86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector of run numbers to process. <br /></td></tr>
<tr class="separator:ac97af910184212efb4c2ae8d599ffd86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47e90c5acd751dbc1e27de44e91198e8" id="r_a47e90c5acd751dbc1e27de44e91198e8"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsignedint &gt;::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a47e90c5acd751dbc1e27de44e91198e8">fRunVectorIter</a></td></tr>
<tr class="memdesc:a47e90c5acd751dbc1e27de44e91198e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator for current position in run vector. <br /></td></tr>
<tr class="separator:a47e90c5acd751dbc1e27de44e91198e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeed81886ffa983bcfde1a25b69458b09" id="r_aeed81886ffa983bcfde1a25b69458b09"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aeed81886ffa983bcfde1a25b69458b09">fRunListFile</a></td></tr>
<tr class="memdesc:aeed81886ffa983bcfde1a25b69458b09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating if run list is from a file. <br /></td></tr>
<tr class="separator:aeed81886ffa983bcfde1a25b69458b09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8ff0d59c522a8ec042e78d33dd0351f" id="r_ac8ff0d59c522a8ec042e78d33dd0351f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac8ff0d59c522a8ec042e78d33dd0351f">fIndVar</a></td></tr>
<tr class="memdesc:ac8ff0d59c522a8ec042e78d33dd0351f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Independent variables for output. <br /></td></tr>
<tr class="separator:ac8ff0d59c522a8ec042e78d33dd0351f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a121c8db9abf3c024e1fb4bf1ffef76c4" id="r_a121c8db9abf3c024e1fb4bf1ffef76c4"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; std::ifstream &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a121c8db9abf3c024e1fb4bf1ffef76c4">fRunListFileStream</a></td></tr>
<tr class="memdesc:a121c8db9abf3c024e1fb4bf1ffef76c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream for reading run list file. <br /></td></tr>
<tr class="separator:a121c8db9abf3c024e1fb4bf1ffef76c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a626e6bbafeb0214c051d34eb3a21f7ea" id="r_a626e6bbafeb0214c051d34eb3a21f7ea"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; TSAXParser &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a626e6bbafeb0214c051d34eb3a21f7ea">fSaxParser</a></td></tr>
<tr class="memdesc:a626e6bbafeb0214c051d34eb3a21f7ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">XML SAX parser for startup file. <br /></td></tr>
<tr class="separator:a626e6bbafeb0214c051d34eb3a21f7ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80f0a2819a39e89f5b29a52b153b3e8a" id="r_a80f0a2819a39e89f5b29a52b153b3e8a"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classPStartupHandler.html">PStartupHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a80f0a2819a39e89f5b29a52b153b3e8a">fStartupHandler</a></td></tr>
<tr class="memdesc:a80f0a2819a39e89f5b29a52b153b3e8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for XML startup file configuration. <br /></td></tr>
<tr class="separator:a80f0a2819a39e89f5b29a52b153b3e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af33ffef240fb724b8a63d24a36d34cc3" id="r_af33ffef240fb724b8a63d24a36d34cc3"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classPRunDataHandler.html">PRunDataHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af33ffef240fb724b8a63d24a36d34cc3">fDataHandler</a></td></tr>
<tr class="memdesc:af33ffef240fb724b8a63d24a36d34cc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for run data files. <br /></td></tr>
<tr class="separator:af33ffef240fb724b8a63d24a36d34cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b4400f17573e0fed9dc1da4ada5de26" id="r_a5b4400f17573e0fed9dc1da4ada5de26"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classPMsrHandler.html">PMsrHandler</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5b4400f17573e0fed9dc1da4ada5de26">fMsrHandler</a></td></tr>
<tr class="memdesc:a5b4400f17573e0fed9dc1da4ada5de26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for msr-file parsing and generation. <br /></td></tr>
<tr class="separator:a5b4400f17573e0fed9dc1da4ada5de26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74079e5d833ddb69f58364837ef4024f" id="r_a74079e5d833ddb69f58364837ef4024f"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74079e5d833ddb69f58364837ef4024f">fNumGlobalParam</a></td></tr>
<tr class="memdesc:a74079e5d833ddb69f58364837ef4024f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of global parameters in fit. <br /></td></tr>
<tr class="separator:a74079e5d833ddb69f58364837ef4024f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b2198cbf690a093b7f77ed7942264b9" id="r_a0b2198cbf690a093b7f77ed7942264b9"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b2198cbf690a093b7f77ed7942264b9">fNumSpecParam</a></td></tr>
<tr class="memdesc:a0b2198cbf690a093b7f77ed7942264b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of spectrum-specific parameters. <br /></td></tr>
<tr class="separator:a0b2198cbf690a093b7f77ed7942264b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42c55294c1fbab916ca71c9366fd86c8" id="r_a42c55294c1fbab916ca71c9366fd86c8"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a42c55294c1fbab916ca71c9366fd86c8">fNumTempRunBlocks</a></td></tr>
<tr class="memdesc:a42c55294c1fbab916ca71c9366fd86c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of temporary run blocks. <br /></td></tr>
<tr class="separator:a42c55294c1fbab916ca71c9366fd86c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a961e3c6e948e1ca388e6c72bd30eda93" id="r_a961e3c6e948e1ca388e6c72bd30eda93"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a961e3c6e948e1ca388e6c72bd30eda93">fRunNumberDigits</a></td></tr>
<tr class="memdesc:a961e3c6e948e1ca388e6c72bd30eda93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of digits for run number formatting. <br /></td></tr>
<tr class="separator:a961e3c6e948e1ca388e6c72bd30eda93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a922cf3519c448e32f8bc454dcc15475e" id="r_a922cf3519c448e32f8bc454dcc15475e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a922cf3519c448e32f8bc454dcc15475e">fHeaderWritten</a></td></tr>
<tr class="memdesc:a922cf3519c448e32f8bc454dcc15475e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag tracking if output header has been written. <br /></td></tr>
<tr class="separator:a922cf3519c448e32f8bc454dcc15475e"><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>Utility class for msr2data: template-based msr-file generation and parameter extraction. </p>
<p><a class="el" href="classPMsr2Data.html" title="Utility class for msr2data: template-based msr-file generation and parameter extraction.">PMsr2Data</a> provides comprehensive functionality for the msr2data tool, which is used to:</p><ul>
<li>Generate new msr-files from templates by substituting run numbers</li>
<li>Extract fit parameters from analyzed msr-files</li>
<li>Write collected parameters to database (DB) or plain ASCII files</li>
<li>Support both single-run and global (multi-run) fitting workflows</li>
</ul>
<p>Key Features:</p><ul>
<li>Template-based msr-file generation with automatic run number substitution</li>
<li>Flexible run number specification (single, range, list file, explicit list)</li>
<li>Parameter extraction from fitted msr-files</li>
<li>Multiple output formats (DB format, ASCII tables)</li>
<li>Global fitting support for combined multi-run analysis</li>
<li>XML-based configuration via startup files</li>
</ul>
<p>Implementation Note: This class uses std::string and standard C++ string handling exclusively (rather than ROOT's TString) to demonstrate modern C++ practices, though this occasionally requires conversions when interfacing with PMusr classes.</p>
<p>Typical Workflow:</p><ol type="1">
<li>Create <a class="el" href="classPMsr2Data.html" title="Utility class for msr2data: template-based msr-file generation and parameter extraction.">PMsr2Data</a> object with file extension</li>
<li>Parse XML startup file for configuration</li>
<li>Set run numbers (single, range, or list)</li>
<li>Generate msr-files from template or extract parameters from fitted files</li>
<li>Write output to DB or ASCII format</li>
</ol>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPStartupHandler.html" title="Handles the musrfit XML startup configuration file (musrfit_startup.xml).">PStartupHandler</a> for XML configuration parsing </dd>
<dd>
<a class="el" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data.">PRunDataHandler</a> for run data management </dd>
<dd>
<a class="el" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework.">PMsrHandler</a> for msr-file parsing and manipulation </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00080">80</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a061651c157c49266688b5a8e44814a7f" name="a061651c157c49266688b5a8e44814a7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a061651c157c49266688b5a8e44814a7f">&#9670;&#160;</a></span>PMsr2Data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PMsr2Data::PMsr2Data </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>ext</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that initializes the msr2data handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fileExtension</td><td>File extension for data files (e.g., "bin", "root", "mdu")</td></tr>
</table>
</dd>
</dl>
<p>Initializes all member variables and prepares the object for processing. Sets default values:</p><ul>
<li>Run number digits: 4 (typical for standard run numbering)</li>
<li>Global/specific parameter counts: 0</li>
<li>Header written flag: false</li>
<li>Run list file flag: false</li>
</ul>
<p>All handler pointers (SAX parser, startup handler, data handler, msr handler) are initialized to nullptr and will be created as needed during processing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ext</td><td>File extension for data files (e.g., ".bin", ".root", ".mdu") This extension is used to locate corresponding data files for each run</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The extension should include the leading dot if required </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00073">73</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00308">fDataHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00314">fHeaderWritten</a>, <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00310">fNumGlobalParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00311">fNumSpecParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00312">fNumTempRunBlocks</a>, <a class="el" href="PMsr2Data_8h_source.html#l00303">fRunListFile</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>, <a class="el" href="PMsr2Data_8h_source.html#l00306">fSaxParser</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00307">fStartupHandler</a>.</p>
</div>
</div>
<a id="abbbb71deea87eb8148d88dd7c5518e33" name="abbbb71deea87eb8148d88dd7c5518e33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbbb71deea87eb8148d88dd7c5518e33">&#9670;&#160;</a></span>~PMsr2Data()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PMsr2Data::~PMsr2Data </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor that cleans up resources. </p>
<p>Clears all vectors and resets iterators. The unique_ptr members (fRunListFileStream, fSaxParser, fStartupHandler, fDataHandler, fMsrHandler) are automatically cleaned up through their destructors. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00093">93</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00304">fIndVar</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a34384ba7b544c826b7217f124220f5e3" name="a34384ba7b544c826b7217f124220f5e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34384ba7b544c826b7217f124220f5e3">&#9670;&#160;</a></span>CheckRunNumbersInRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::CheckRunNumbersInRange </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Validates that all run numbers are within acceptable ranges. </p>
<p>Validates that all run numbers fit within the determined digit width.</p>
<dl class="section return"><dt>Returns</dt><dd>0 if all run numbers are valid, non-zero otherwise</dd></dl>
<p>Checks if all run numbers in the run vector can be represented with the number of digits determined from the data file naming convention. This prevents formatting errors when generating file names.</p>
<p>The check has been loosened since 2023 to accommodate LEM run numbers exceeding 9999 by allowing one extra digit beyond the determined width.</p>
<p>Maximum allowed run number = 10^(fRunNumberDigits+1) - 1</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if all run numbers are within the acceptable range</li>
<li>-1 if any run number exceeds the maximum</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Since 2023, uses fRunNumberDigits+1 instead of fRunNumberDigits to handle larger run numbers at facilities like LEM </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00238">238</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>.</p>
</div>
</div>
<a id="adafbd05a088858e477f248d933d0efe7" name="adafbd05a088858e477f248d933d0efe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adafbd05a088858e477f248d933d0efe7">&#9670;&#160;</a></span>DetermineRunNumberDigits()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::DetermineRunNumberDigits </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>runNo</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>normalMode</em></span>&#160;) const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the number of digits needed for run number formatting. </p>
<p>Determines the number of digits used for run number formatting.</p>
<p>Analyzes run numbers to determine zero-padding requirements for consistent file naming.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">maxRunNumber</td><td>Maximum run number to consider </td></tr>
<tr><td class="paramname">templateFile</td><td>Whether processing a template file </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of digits needed for run number formatting</dd></dl>
<p>Analyzes the first processable msr-file to determine how many digits are used for run number formatting in data file names. This ensures consistent zero-padding when generating new msr-files from templates.</p>
<p>The algorithm:</p><ol type="1">
<li>Attempts to open the msr-file for the specified run number</li>
<li>If in global mode and file not found, tries the "+global" variant</li>
<li>If first run fails, iterates through the run list to find an existing file</li>
<li>Searches the RUN block for the run number in the data file path</li>
<li>Counts leading zeros to determine the digit width</li>
</ol>
<p>Example: If the data file is "run_0042.bin", this determines 4 digits.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runNo</td><td>Run number to analyze </td></tr>
<tr><td class="paramname">normalMode</td><td>true for normal mode, false for global fitting mode</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if the number of digits was successfully determined</li>
<li>-1 if no msr-file could be opened</li>
<li>-2 if msr-file run number doesn't match data file run number</li>
<li>-3 if the msr-file contains no RUN block</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The determined digit count is stored in fRunNumberDigits </dd>
<dd>
In global mode, also checks for files with "+global" suffix </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00131">131</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>, <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>.</p>
</div>
</div>
<a id="a7335214efdb8c1d67d5b200cb3e15984" name="a7335214efdb8c1d67d5b200cb3e15984"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7335214efdb8c1d67d5b200cb3e15984">&#9670;&#160;</a></span>GetFirstSignificantDigit()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::GetFirstSignificantDigit </td>
<td>(</td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>value</em></span></td><td>)</td>
<td> const</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>Determines the first significant digit position of a value. </p>
<p>Determines the position of the first significant digit.</p>
<p>Used for intelligent formatting and precision control.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>Value to analyze </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Position of first significant digit</dd></dl>
<p>Calculates how many decimal places are needed to reach the first significant digit by repeatedly multiplying by 10 until the value is &gt;= 1.0. This is used for precision control in output formatting.</p>
<p>Examples:</p><ul>
<li>value = 2.03 → returns 1 (first significant digit in tenths place)</li>
<li>value = 0.00023 → returns 4 (first significant digit in ten-thousandths)</li>
<li>value = 0.5 → returns 1</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>Value to analyze (typically an error/uncertainty)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Position of first significant digit (1-19)</li>
<li>6 if no significant digit found after 20 iterations (default precision)</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Maximum 20 iterations to prevent infinite loops </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l02692">2692</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l02645">WriteValue()</a>.</p>
</div>
</div>
<a id="acc01854602353ad313b11955fa04adfe" name="acc01854602353ad313b11955fa04adfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc01854602353ad313b11955fa04adfe">&#9670;&#160;</a></span>GetPresentRun()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int PMsr2Data::GetPresentRun </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the current run number being processed. </p>
<p>Returns the current run number being processed.</p>
<dl class="section return"><dt>Returns</dt><dd>Current run number from the internal iterator</dd></dl>
<p>Retrieves the run number pointed to by the internal iterator. Used to track progress through the run list during processing.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Current run number if processing is ongoing</li>
<li>0 if all runs have been processed (iterator at end) </li>
</ul>
</dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00267">267</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<a id="a1db11eacc6779c7e9ebd4d878281a0a4" name="a1db11eacc6779c7e9ebd4d878281a0a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1db11eacc6779c7e9ebd4d878281a0a4">&#9670;&#160;</a></span>GetSingleRunMsrFile()</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="classPMsrHandler.html">PMsrHandler</a> * PMsr2Data::GetSingleRunMsrFile </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</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>Retrieves msr-file handler for a single run. </p>
<p>Retrieves msr-file handler for a single-run fit file.</p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to <a class="el" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework.">PMsrHandler</a> for the current run</dd></dl>
<p>Reads the "-OneRunFit" variant of the msr-file for the current run. This is used when extracting individual run results from global fits.</p>
<p>The file name format: "&lt;runNumber&gt;-OneRunFit&lt;extension&gt;.msr"</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Pointer to newly created <a class="el" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework.">PMsrHandler</a> on success</li>
<li>nullptr if file cannot be read or parsed</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Caller is responsible for deleting the returned handler </dd>
<dd>
Different from the class member fMsrHandler </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00556">556</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>, <a class="el" href="PMusr_8h_source.html#l00059">PMUSR_MSR_FILE_NOT_FOUND</a>, <a class="el" href="PMusr_8h_source.html#l00063">PMUSR_MSR_SYNTAX_ERROR</a>, <a class="el" href="PMusr_8h_source.html#l00053">PMUSR_SUCCESS</a>, <a class="el" href="PMsrHandler_8cpp_source.html#l00174">PMsrHandler::ReadMsrFile()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>.</p>
</div>
</div>
<a id="af303d2102b60c5c9a3e3224f0b2f1234" name="af303d2102b60c5c9a3e3224f0b2f1234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af303d2102b60c5c9a3e3224f0b2f1234">&#9670;&#160;</a></span>InParameterList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::InParameterList </td>
<td>(</td>
<td class="paramtype">const unsigned int &amp;</td> <td class="paramname"><span class="paramname"><em>paramValue</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; unsigned int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>paramList</em></span>&#160;) const</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>Checks if a parameter is in the output parameter list. </p>
<p>Checks if a parameter index should be included in output.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paramValue</td><td>Parameter index to check </td></tr>
<tr><td class="paramname">paramList</td><td>List of parameters to output </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if parameter should be output, false otherwise</dd></dl>
<p>Determines whether a given parameter should be written to the output file based on the user-specified parameter list. If the parameter list is empty, all parameters are included by default.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paramValue</td><td>Zero-based parameter index to check </td></tr>
<tr><td class="paramname">paramList</td><td>Vector of one-based parameter numbers to output (empty vector means output all parameters)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true if paramValue should be included in output</li>
<li>true if paramList is empty (output all parameters)</li>
<li>false if paramValue is not in the list</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>paramValue is zero-based while paramList contains one-based indices </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l02733">2733</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a93b877dbce66b6d401455f3dc48f8164" name="a93b877dbce66b6d401455f3dc48f8164"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93b877dbce66b6d401455f3dc48f8164">&#9670;&#160;</a></span>ParseXmlStartupFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::ParseXmlStartupFile </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parses the XML startup file for configuration. </p>
<p>Parses the musrfit XML startup file for configuration.</p>
<p>Reads and processes the msr2data XML startup file containing paths, templates, and other configuration settings.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on parsing errors</dd></dl>
<p>Creates a SAX parser and startup handler to read the musrfit_startup.xml configuration file. This file contains paths, templates, and other settings needed for msr2data operation.</p>
<p>The parseXmlFile function is used instead of ParseFile to avoid environment-specific issues encountered with direct parsing.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if parsing succeeded</li>
<li>Non-zero error code from parseXmlFile if parsing failed</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Outputs a warning to stderr if parsing fails</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPStartupHandler.html" title="Handles the musrfit XML startup configuration file (musrfit_startup.xml).">PStartupHandler</a> for XML configuration details </dd>
<dd>
<a class="el" href="PStartupHandler_8h.html#a2f473e587e18e6a64b260870ec870a5e" title="Replacement function for TSAXParser::ParseFile().">parseXmlFile</a> for the parsing implementation </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00482">482</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00306">fSaxParser</a>, <a class="el" href="PMsr2Data_8h_source.html#l00307">fStartupHandler</a>, <a class="el" href="PStartupHandler_8h.html#a2f473e587e18e6a64b260870ec870a5e">parseXmlFile()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00084">startup_path_name</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
</div>
</div>
<a id="a1c897d5ccdec66cd15a1eff325241489" name="a1c897d5ccdec66cd15a1eff325241489"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c897d5ccdec66cd15a1eff325241489">&#9670;&#160;</a></span>PrepareGlobalInputFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::PrepareGlobalInputFile </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>tempRun</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>msrOutFile</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>globalPlus</em></span>&#160;) const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates an msr-file for global (multi-run) fitting. </p>
<p>Creates a combined msr-file for global fits across multiple runs.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">templateNumber</td><td>Template identifier number </td></tr>
<tr><td class="paramname">globalOutputFile</td><td>Path to output global msr-file </td></tr>
<tr><td class="paramname">runListSize</td><td>Number of runs in the global fit </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true on success, false on failure</dd></dl>
<p>Generate a new global msr-file from a template</p>
<p><b>return:</b></p><ul>
<li>true if everything is OK</li>
<li>false otherwise</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tempRun</td><td>template run number </td></tr>
<tr><td class="paramname">msrOutFile</td><td>name of the global msr-file to be written </td></tr>
<tr><td class="paramname">globalPlus</td><td>tag of the global mode to be used:<ul>
<li>0: simple global mode with the same template starting parameters for each run</li>
<li>1: global mode including single run fits and data extraction for the global msr-file (same template for all runs)</li>
<li>2: global mode including single run fits and data extraction for the global msr-file (successive template generation) </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00779">779</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8cpp_source.html#l00746">compare_parameters()</a>, <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00310">fNumGlobalParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00311">fNumSpecParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00312">fNumTempRunBlocks</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>, <a class="el" href="PMsrHandler_8h_source.html#l00175">PMsrHandler::GetMsrParamList()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00556">GetSingleRunMsrFile()</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00053">PMUSR_SUCCESS</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00628">PrepareNewInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00517">ReadMsrFile()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
</div>
</div>
<a id="a313bc2de426c5ba6eec4823e1db10982" name="a313bc2de426c5ba6eec4823e1db10982"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a313bc2de426c5ba6eec4823e1db10982">&#9670;&#160;</a></span>PrepareNewInputFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::PrepareNewInputFile </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>tempRun</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>calledFromGlobalMode</em></span>&#160;) const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates a new msr-file from a template. </p>
<p>Creates an msr-file by substituting run number placeholders in the template with actual run numbers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">templateNumber</td><td>Template identifier number </td></tr>
<tr><td class="paramname">sorted</td><td>Whether to generate sorted output </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true on success, false on failure</dd></dl>
<p>Generate a new single-run msr file from a template</p>
<p><b>return:</b></p><ul>
<li>true if everything is OK</li>
<li>false otherwise</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tempRun</td><td>template run number </td></tr>
<tr><td class="paramname">calledFromGlobalMode</td><td>tag specifying if the routine is called as part of the global msr-file generation </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00628">628</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>.</p>
</div>
</div>
<a id="ac0d08c7b9cf4bed54b63f24a606e0300" name="ac0d08c7b9cf4bed54b63f24a606e0300"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0d08c7b9cf4bed54b63f24a606e0300">&#9670;&#160;</a></span>PrepareNewSortedInputFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::PrepareNewSortedInputFile </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>tempRun</em></span></td><td>)</td>
<td> const</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>Generates a sorted msr-file from a template. </p>
<p>Internal helper for creating sorted msr-files with proper histogram ordering.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">templateNumber</td><td>Template identifier number </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true on success, false on failure</dd></dl>
<p>Generate a new msr-file for a single run in which the parameters are sorted for a global fit An internal sorted msr-file data structure has to be present.</p>
<p><b>return:</b></p><ul>
<li>true if everything is OK</li>
<li>false otherwise</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tempRun</td><td>template run number </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l01669">1669</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00300">fFileExtension</a>, <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00310">fNumGlobalParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00312">fNumTempRunBlocks</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>, <a class="el" href="PMusr_8h_source.html#l00053">PMUSR_SUCCESS</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>.</p>
</div>
</div>
<a id="a0e684b22edeefb832db7a102b9baa026" name="a0e684b22edeefb832db7a102b9baa026"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e684b22edeefb832db7a102b9baa026">&#9670;&#160;</a></span>ReadMsrFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::ReadMsrFile </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>infile</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads and parses an msr-file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msrFileName</td><td>Path to the msr-file to read </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on read/parse errors</dd></dl>
<p>Creates a new <a class="el" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework.">PMsrHandler</a> and uses it to read and parse the specified msr-file into the internal data structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">infile</td><td>Path to the msr-file to read</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>PMUSR_SUCCESS if reading and parsing succeeded</li>
<li>Error code from <a class="el" href="classPMsrHandler.html#a97a4e2f51827849362bdd8ccfe6d637d" title="Reads and parses the MSR file.">PMsrHandler::ReadMsrFile</a> otherwise</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPMsrHandler.html#a97a4e2f51827849362bdd8ccfe6d637d" title="Reads and parses the MSR file.">PMsrHandler::ReadMsrFile</a> for parsing details </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00517">517</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, <a class="el" href="PMusr_8h_source.html#l00059">PMUSR_MSR_FILE_NOT_FOUND</a>, <a class="el" href="PMusr_8h_source.html#l00063">PMUSR_MSR_SYNTAX_ERROR</a>, <a class="el" href="PMusr_8h_source.html#l00053">PMUSR_SUCCESS</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>.</p>
</div>
</div>
<a id="a52ae3eea688a0f2d3b545810a019a881" name="a52ae3eea688a0f2d3b545810a019a881"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52ae3eea688a0f2d3b545810a019a881">&#9670;&#160;</a></span>ReadRunDataFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::ReadRunDataFile </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads the run data file for the current run. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on read errors</dd></dl>
<p>Creates a <a class="el" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data.">PRunDataHandler</a> and reads the experimental data file associated with the current msr-file. Uses data paths from the startup handler if available, otherwise uses defaults.</p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if all data was successfully read</li>
<li>1 if some data files could not be read (with warning)</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Outputs a warning to stderr if data is unavailable but continues processing</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data.">PRunDataHandler</a> for data file reading details </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00599">599</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00308">fDataHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00307">fStartupHandler</a>.</p>
</div>
</div>
<a id="a74de0d2577f7aaaf71151db015d570da" name="a74de0d2577f7aaaf71151db015d570da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74de0d2577f7aaaf71151db015d570da">&#9670;&#160;</a></span>SetRunNumbers() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::SetRunNumbers </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>runListFile</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets run numbers from a run list file. </p>
<p>Reads run numbers from a text file, one run number per line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runListFileName</td><td>Path to file containing run numbers </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on error</dd></dl>
<p>Reads run numbers from a text file with the following format:</p><ul>
<li>First line: "RUN" followed by optional independent variable names</li>
<li>Subsequent lines: run number followed by corresponding variable values</li>
<li>Comments start with '#' and are ignored</li>
<li>Empty lines are skipped</li>
</ul>
<p>Example run list file: </p><pre class="fragment">* RUN FIELD TEMP
* 1234 0.5 295.0
* 1235 1.0 295.0 # This is a comment
* 1236 1.5 295.0
* </pre><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runListFile</td><td>Path to run list file</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>-1 if the run list file cannot be opened</li>
<li>0 if all run numbers are valid</li>
<li>1 if any run number is invalid (&lt; 1) or file format is incorrect</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Sets fRunListFile flag to true and opens stream for reading variables </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00400">400</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00304">fIndVar</a>, <a class="el" href="PMsr2Data_8h_source.html#l00303">fRunListFile</a>, <a class="el" href="PMsr2Data_8h_source.html#l00305">fRunListFileStream</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<a id="a42002d8eaec2bc92978dbb252bb5946a" name="a42002d8eaec2bc92978dbb252bb5946a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42002d8eaec2bc92978dbb252bb5946a">&#9670;&#160;</a></span>SetRunNumbers() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::SetRunNumbers </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; unsigned int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>runListVector</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets run numbers from an explicit vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runVector</td><td>Vector of run numbers to process </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on error</dd></dl>
<p>Clears any existing run list and copies the provided vector of run numbers. All run numbers in the vector must be valid (&gt;= 1).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runListVector</td><td>Vector containing run numbers to process</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>-1 if the vector is empty</li>
<li>0 if all run numbers are valid</li>
<li>1 if any run number is invalid (&lt; 1) </li>
</ul>
</dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00355">355</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<a id="ab4be6ae5e48609f153fe213c411a7dee" name="ab4be6ae5e48609f153fe213c411a7dee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4be6ae5e48609f153fe213c411a7dee">&#9670;&#160;</a></span>SetRunNumbers() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::SetRunNumbers </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>runNoStart</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>runNoEnd</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a range of run numbers (from first to last, inclusive). </p>
<p>Sets a range of run numbers for processing.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">firstRun</td><td>First run number in the range </td></tr>
<tr><td class="paramname">lastRun</td><td>Last run number in the range </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on error</dd></dl>
<p>Clears any existing run list and populates it with all run numbers from runNoStart to runNoEnd (inclusive). Handles both ascending and descending ranges automatically.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runNoStart</td><td>First run number in the range (must be &gt;= 1) </td></tr>
<tr><td class="paramname">runNoEnd</td><td>Last run number in the range (must be &gt;= 1)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if both run numbers are valid</li>
<li>1 if either run number is invalid (&lt; 1)</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If runNoStart &gt; runNoEnd, the range is generated in descending order </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00321">321</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<a id="a8b6ea62ae1cd98e8877825601325a2d9" name="a8b6ea62ae1cd98e8877825601325a2d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b6ea62ae1cd98e8877825601325a2d9">&#9670;&#160;</a></span>SetRunNumbers() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::SetRunNumbers </td>
<td>(</td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>runNo</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets a single run number for processing. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runNumber</td><td>Single run number to process </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on error</dd></dl>
<p>Clears any existing run list and initializes with a single run number. The internal iterator is reset to point to the beginning.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runNo</td><td>Run number to process (must be &gt;= 1)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if the run number is valid</li>
<li>1 if the run number is invalid (&lt; 1) </li>
</ul>
</dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l00290">290</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, and <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>.</p>
</div>
</div>
<a id="a1edd7ef749d41a90756ad67e8fe7ecc8" name="a1edd7ef749d41a90756ad67e8fe7ecc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1edd7ef749d41a90756ad67e8fe7ecc8">&#9670;&#160;</a></span>WriteOutput()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PMsr2Data::WriteOutput </td>
<td>(</td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>outfile</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; unsigned int &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>paramList</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>db</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>withHeader</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>global</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int</td> <td class="paramname"><span class="paramname"><em>counter</em></span><span class="paramdefsep"> = </span><span class="paramdefval">0</span>&#160;) const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes extracted parameters to output file. </p>
<p>Outputs fit parameters in either DB format or ASCII table format.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outputFileName</td><td>Output file path </td></tr>
<tr><td class="paramname">parameters</td><td>Vector of parameter indices to output </td></tr>
<tr><td class="paramname">dbFormat</td><td>Whether to use DB format (true) or ASCII (false) </td></tr>
<tr><td class="paramname">precision</td><td>Number of significant digits for output </td></tr>
<tr><td class="paramname">global</td><td>Whether this is global fit output </td></tr>
<tr><td class="paramname">counter</td><td>Counter for global fit indexing </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on write errors</dd></dl>
<p>Append fit parameters of a msr file to the DB or ASCII file</p>
<p><b>return:</b></p><ul>
<li>PMUSR_SUCCESS if everything is OK</li>
<li>-1 in case of a fatal error</li>
<li>-2 if a fit has not converged (and the data is not appended to the output file)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outfile</td><td>name of the DB/ASCII output file </td></tr>
<tr><td class="paramname">paramList</td><td>parameter list which shall be written to the output file </td></tr>
<tr><td class="paramname">db</td><td>DB or plain ASCII output </td></tr>
<tr><td class="paramname">withHeader</td><td>write output file header or not </td></tr>
<tr><td class="paramname">global</td><td>global mode or not </td></tr>
<tr><td class="paramname">counter</td><td>counter used within the global mode to determine how many runs have been processed already </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l01775">1775</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMusr_8h_source.html#l01317">PMsrStatisticStructure::fChisq</a>, <a class="el" href="PMsr2Data_8h_source.html#l00308">fDataHandler</a>, <a class="el" href="PMsr2Data_8h_source.html#l00314">fHeaderWritten</a>, <a class="el" href="PMsr2Data_8h_source.html#l00304">fIndVar</a>, <a class="el" href="PMusr_8h_source.html#l01318">PMsrStatisticStructure::fMin</a>, <a class="el" href="PMsr2Data_8h_source.html#l00309">fMsrHandler</a>, <a class="el" href="PMusr_8h_source.html#l01320">PMsrStatisticStructure::fNdf</a>, <a class="el" href="PMsr2Data_8h_source.html#l00310">fNumGlobalParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00311">fNumSpecParam</a>, <a class="el" href="PMsr2Data_8h_source.html#l00312">fNumTempRunBlocks</a>, <a class="el" href="PMsr2Data_8h_source.html#l00303">fRunListFile</a>, <a class="el" href="PMsr2Data_8h_source.html#l00305">fRunListFileStream</a>, <a class="el" href="PMsr2Data_8h_source.html#l00313">fRunNumberDigits</a>, <a class="el" href="PMsr2Data_8h_source.html#l00301">fRunVector</a>, <a class="el" href="PMsr2Data_8h_source.html#l00302">fRunVectorIter</a>, <a class="el" href="PMusr_8h_source.html#l01314">PMsrStatisticStructure::fValid</a>, <a class="el" href="PMusr_8h_source.html#l00864">PRawRunData::GetEnergy()</a>, <a class="el" href="PMusr_8h_source.html#l00859">PRawRunData::GetField()</a>, <a class="el" href="PMusr_8h_source.html#l00843">PRawRunData::GetMuonSpinAngle()</a>, <a class="el" href="PMusr_8h_source.html#l00860">PRawRunData::GetNoOfTemperatures()</a>, <a class="el" href="PMusr_8h_source.html#l00866">PRawRunData::GetRingAnode()</a>, <a class="el" href="PMusr_8h_source.html#l00861">PRawRunData::GetTemperature()</a>, <a class="el" href="PMusr_8cpp_source.html#l00671">PRawRunData::GetTempError()</a>, <a class="el" href="PMusr_8h_source.html#l00865">PRawRunData::GetTransport()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l02733">InParameterList()</a>, <a class="el" href="PMusr_8h_source.html#l00053">PMUSR_SUCCESS</a>, <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l02609">WriteValue()</a>.</p>
</div>
</div>
<a id="ae3a78886fe7744cb48924dfeb0908958" name="ae3a78886fe7744cb48924dfeb0908958"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3a78886fe7744cb48924dfeb0908958">&#9670;&#160;</a></span>WriteValue() <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">void PMsr2Data::WriteValue </td>
<td>(</td>
<td class="paramtype">std::fstream &amp;</td> <td class="paramname"><span class="paramname"><em>outFile</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>value</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>errValue</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int &amp;</td> <td class="paramname"><span class="paramname"><em>width</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool &amp;</td> <td class="paramname"><span class="paramname"><em>db</em></span>&#160;) const</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>Writes a value with its error to output stream. </p>
<p>Writes a value with error-based precision formatting.</p>
<p>Formats output based on DB or ASCII mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outFile</td><td>Output file stream </td></tr>
<tr><td class="paramname">value</td><td>Value to write </td></tr>
<tr><td class="paramname">errValue</td><td>Error/uncertainty value </td></tr>
<tr><td class="paramname">width</td><td>Field width for formatting </td></tr>
<tr><td class="paramname">db</td><td>Whether to use DB format (true) or ASCII (false)</td></tr>
</table>
</dd>
</dl>
<p>Formats output with precision determined by the error value, ensuring significant digits are preserved appropriately. The precision is calculated based on the first significant digit of the error.</p>
<p>Examples:</p><ul>
<li>value=17.0023 ± errValue=0.0018 → formatted with 4 decimal places</li>
<li>value=73212.081 ± errValue=0.033 → formatted with 2 decimal places</li>
</ul>
<p>Formatting rules:</p><ul>
<li>Precision based on error's first significant digit</li>
<li>Scientific notation if |value| &gt;= 1e6 or (|value| &lt; 1e-4 and value != 0)</li>
<li>Extra space added after value in ASCII mode for readability</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outFile</td><td>Output file stream </td></tr>
<tr><td class="paramname">value</td><td>Numeric value to write </td></tr>
<tr><td class="paramname">errValue</td><td>Error/uncertainty value (determines precision) </td></tr>
<tr><td class="paramname">width</td><td>Field width for formatted output </td></tr>
<tr><td class="paramname">db</td><td>true for DB format, false for ASCII format (adds extra space)</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a7335214efdb8c1d67d5b200cb3e15984" title="Determines the first significant digit position of a value.">GetFirstSignificantDigit</a> for precision calculation </dd></dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l02645">2645</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">References <a class="el" href="PMsr2Data_8cpp_source.html#l02692">GetFirstSignificantDigit()</a>.</p>
</div>
</div>
<a id="a8fa126f3cde7f2ad025dc902db2de871" name="a8fa126f3cde7f2ad025dc902db2de871"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fa126f3cde7f2ad025dc902db2de871">&#9670;&#160;</a></span>WriteValue() <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">void PMsr2Data::WriteValue </td>
<td>(</td>
<td class="paramtype">std::fstream &amp;</td> <td class="paramname"><span class="paramname"><em>outFile</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double &amp;</td> <td class="paramname"><span class="paramname"><em>value</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int &amp;</td> <td class="paramname"><span class="paramname"><em>width</em></span>&#160;) const</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>Writes a single numeric value to output stream. </p>
<p>Writes a formatted numeric value to output stream.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outFile</td><td>Output file stream </td></tr>
<tr><td class="paramname">value</td><td>Value to write </td></tr>
<tr><td class="paramname">width</td><td>Field width for formatting</td></tr>
</table>
</dd>
</dl>
<p>Formats the value for column-aligned ASCII output with automatic selection of scientific notation for very large or very small numbers.</p>
<p>Formatting rules:</p><ul>
<li>Scientific notation if |value| &gt;= 1e6 or (|value| &lt; 1e-4 and value != 0)</li>
<li>Fixed-point notation otherwise</li>
<li>Left-aligned in field of specified width</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outFile</td><td>Output file stream </td></tr>
<tr><td class="paramname">value</td><td>Numeric value to write </td></tr>
<tr><td class="paramname">width</td><td>Column width for formatting </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8cpp_source.html#l02609">2609</a> of file <a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af33ffef240fb724b8a63d24a36d34cc3" name="af33ffef240fb724b8a63d24a36d34cc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af33ffef240fb724b8a63d24a36d34cc3">&#9670;&#160;</a></span>fDataHandler</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&lt;<a class="el" href="classPRunDataHandler.html">PRunDataHandler</a>&gt; PMsr2Data::fDataHandler</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handler for run data files. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00308">308</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00599">ReadRunDataFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a6ffb4bc7dd14e82e92e5ca5c4615a952" name="a6ffb4bc7dd14e82e92e5ca5c4615a952"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ffb4bc7dd14e82e92e5ca5c4615a952">&#9670;&#160;</a></span>fFileExtension</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string PMsr2Data::fFileExtension</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>File extension for data files (e.g., "bin", "root") </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00300">300</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00556">GetSingleRunMsrFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00628">PrepareNewInputFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>.</p>
</div>
</div>
<a id="a922cf3519c448e32f8bc454dcc15475e" name="a922cf3519c448e32f8bc454dcc15475e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a922cf3519c448e32f8bc454dcc15475e">&#9670;&#160;</a></span>fHeaderWritten</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::fHeaderWritten</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Flag tracking if output header has been written. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00314">314</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="ac8ff0d59c522a8ec042e78d33dd0351f" name="ac8ff0d59c522a8ec042e78d33dd0351f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8ff0d59c522a8ec042e78d33dd0351f">&#9670;&#160;</a></span>fIndVar</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;std::string&gt; PMsr2Data::fIndVar</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>Independent variables for output. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00304">304</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00400">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l00093">~PMsr2Data()</a>.</p>
</div>
</div>
<a id="a5b4400f17573e0fed9dc1da4ada5de26" name="a5b4400f17573e0fed9dc1da4ada5de26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b4400f17573e0fed9dc1da4ada5de26">&#9670;&#160;</a></span>fMsrHandler</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&lt;<a class="el" href="classPMsrHandler.html">PMsrHandler</a>&gt; PMsr2Data::fMsrHandler</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handler for msr-file parsing and generation. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00309">309</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00517">ReadMsrFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00599">ReadRunDataFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a74079e5d833ddb69f58364837ef4024f" name="a74079e5d833ddb69f58364837ef4024f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74079e5d833ddb69f58364837ef4024f">&#9670;&#160;</a></span>fNumGlobalParam</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int PMsr2Data::fNumGlobalParam</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of global parameters in fit. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00310">310</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a0b2198cbf690a093b7f77ed7942264b9" name="a0b2198cbf690a093b7f77ed7942264b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b2198cbf690a093b7f77ed7942264b9">&#9670;&#160;</a></span>fNumSpecParam</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int PMsr2Data::fNumSpecParam</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of spectrum-specific parameters. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00311">311</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a42c55294c1fbab916ca71c9366fd86c8" name="a42c55294c1fbab916ca71c9366fd86c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42c55294c1fbab916ca71c9366fd86c8">&#9670;&#160;</a></span>fNumTempRunBlocks</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int PMsr2Data::fNumTempRunBlocks</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of temporary run blocks. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00312">312</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="aeed81886ffa983bcfde1a25b69458b09" name="aeed81886ffa983bcfde1a25b69458b09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeed81886ffa983bcfde1a25b69458b09">&#9670;&#160;</a></span>fRunListFile</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool PMsr2Data::fRunListFile</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 if run list is from a file. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00303">303</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00400">SetRunNumbers()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a121c8db9abf3c024e1fb4bf1ffef76c4" name="a121c8db9abf3c024e1fb4bf1ffef76c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a121c8db9abf3c024e1fb4bf1ffef76c4">&#9670;&#160;</a></span>fRunListFileStream</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&lt;std::ifstream&gt; PMsr2Data::fRunListFileStream</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>Stream for reading run list file. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00305">305</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00400">SetRunNumbers()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="a961e3c6e948e1ca388e6c72bd30eda93" name="a961e3c6e948e1ca388e6c72bd30eda93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a961e3c6e948e1ca388e6c72bd30eda93">&#9670;&#160;</a></span>fRunNumberDigits</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int PMsr2Data::fRunNumberDigits</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of digits for run number formatting. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00313">313</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00238">CheckRunNumbersInRange()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00628">PrepareNewInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>.</p>
</div>
</div>
<a id="ac97af910184212efb4c2ae8d599ffd86" name="ac97af910184212efb4c2ae8d599ffd86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac97af910184212efb4c2ae8d599ffd86">&#9670;&#160;</a></span>fRunVector</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;unsigned int&gt; PMsr2Data::fRunVector</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>Vector of run numbers to process. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00301">301</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00238">CheckRunNumbersInRange()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00267">GetPresentRun()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00628">PrepareNewInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00400">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00355">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00321">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00290">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l00093">~PMsr2Data()</a>.</p>
</div>
</div>
<a id="a47e90c5acd751dbc1e27de44e91198e8" name="a47e90c5acd751dbc1e27de44e91198e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47e90c5acd751dbc1e27de44e91198e8">&#9670;&#160;</a></span>fRunVectorIter</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;unsignedint&gt;::const_iterator PMsr2Data::fRunVectorIter</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterator for current position in run vector. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00302">302</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00131">DetermineRunNumberDigits()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00267">GetPresentRun()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00556">GetSingleRunMsrFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00779">PrepareGlobalInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00628">PrepareNewInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01669">PrepareNewSortedInputFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00400">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00355">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00321">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00290">SetRunNumbers()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l01775">WriteOutput()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l00093">~PMsr2Data()</a>.</p>
</div>
</div>
<a id="a626e6bbafeb0214c051d34eb3a21f7ea" name="a626e6bbafeb0214c051d34eb3a21f7ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a626e6bbafeb0214c051d34eb3a21f7ea">&#9670;&#160;</a></span>fSaxParser</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&lt;TSAXParser&gt; PMsr2Data::fSaxParser</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>XML SAX parser for startup file. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00306">306</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00482">ParseXmlStartupFile()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>.</p>
</div>
</div>
<a id="a80f0a2819a39e89f5b29a52b153b3e8a" name="a80f0a2819a39e89f5b29a52b153b3e8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80f0a2819a39e89f5b29a52b153b3e8a">&#9670;&#160;</a></span>fStartupHandler</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&lt;<a class="el" href="classPStartupHandler.html">PStartupHandler</a>&gt; PMsr2Data::fStartupHandler</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>Handler for XML startup file configuration. </p>
<p class="definition">Definition at line <a class="el" href="PMsr2Data_8h_source.html#l00307">307</a> of file <a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PMsr2Data_8cpp_source.html#l00482">ParseXmlStartupFile()</a>, <a class="el" href="PMsr2Data_8cpp_source.html#l00073">PMsr2Data()</a>, and <a class="el" href="PMsr2Data_8cpp_source.html#l00599">ReadRunDataFile()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/workspace/LMU/musrfit/src/include/<a class="el" href="PMsr2Data_8h_source.html">PMsr2Data.h</a></li>
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PMsr2Data_8cpp_source.html">PMsr2Data.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classPMsr2Data.html">PMsr2Data</a></li>
<li class="footer">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 </li>
</ul>
</div>
</body>
</html>