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

1710 lines
112 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: PStartupHandler 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('classPStartupHandler.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-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classPStartupHandler-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PStartupHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Handles the musrfit XML startup configuration file (musrfit_startup.xml).
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PStartupHandler:</div>
<div class="dyncontent">
<div class="center"><img src="classPStartupHandler__inherit__graph.png" border="0" usemap="#aPStartupHandler_inherit__map" alt="Inheritance graph"/></div>
<map name="aPStartupHandler_inherit__map" id="aPStartupHandler_inherit__map">
<area shape="rect" title="Handles the musrfit XML startup configuration file (musrfit_startup.xml)." alt="" coords="26,81,149,109"/>
<area shape="rect" title=" " alt="" coords="5,5,74,33"/>
<area shape="poly" title=" " alt="" coords="59,45,81,79,77,82,54,48"/>
<area shape="rect" title=" " alt="" coords="98,5,176,33"/>
<area shape="poly" title=" " alt="" coords="122,48,98,82,94,79,117,45"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PStartupHandler:</div>
<div class="dyncontent">
<div class="center"><img src="classPStartupHandler__coll__graph.png" border="0" usemap="#aPStartupHandler_coll__map" alt="Collaboration graph"/></div>
<map name="aPStartupHandler_coll__map" id="aPStartupHandler_coll__map">
<area shape="rect" title="Handles the musrfit XML startup configuration file (musrfit_startup.xml)." alt="" coords="76,98,198,126"/>
<area shape="rect" title=" " alt="" coords="5,5,74,33"/>
<area shape="poly" title=" " alt="" coords="66,42,125,96,121,100,63,46"/>
<area shape="rect" title=" " alt="" coords="98,5,176,33"/>
<area shape="poly" title=" " alt="" coords="140,48,140,98,134,98,134,48"/>
<area shape="rect" href="structPMsrFourierStructure.html" title=" " alt="" coords="200,5,348,33"/>
<area shape="poly" title=" " alt="" coords="243,44,158,100,155,95,240,40"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a06f25c6c6d082752b1456382752408b6" id="r_a06f25c6c6d082752b1456382752408b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a06f25c6c6d082752b1456382752408b6">PStartupHandler</a> (bool reset_startup_file=false)</td></tr>
<tr class="memdesc:a06f25c6c6d082752b1456382752408b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that locates and parses the musrfit startup configuration file. <br /></td></tr>
<tr class="separator:a06f25c6c6d082752b1456382752408b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a920d637d0a9c0150bfb0e03297b86489" id="r_a920d637d0a9c0150bfb0e03297b86489"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a920d637d0a9c0150bfb0e03297b86489">~PStartupHandler</a> ()</td></tr>
<tr class="memdesc:a920d637d0a9c0150bfb0e03297b86489"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor releasing allocated resources. <br /></td></tr>
<tr class="separator:a920d637d0a9c0150bfb0e03297b86489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9483464ce996f79b80fcaa72819221f" id="r_ac9483464ce996f79b80fcaa72819221f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac9483464ce996f79b80fcaa72819221f">OnStartDocument</a> ()</td></tr>
<tr class="memdesc:ac9483464ce996f79b80fcaa72819221f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML document parsing begins. Initializes all configuration variables to default values. <br /></td></tr>
<tr class="separator:ac9483464ce996f79b80fcaa72819221f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a991ca3bce4d30a6527018b59e5f16a18" id="r_a991ca3bce4d30a6527018b59e5f16a18"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a991ca3bce4d30a6527018b59e5f16a18">OnEndDocument</a> ()</td></tr>
<tr class="memdesc:a991ca3bce4d30a6527018b59e5f16a18"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML document parsing ends. Triggers <a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> to ensure all required settings have values. <br /></td></tr>
<tr class="separator:a991ca3bce4d30a6527018b59e5f16a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe0a932e3efe080e5d7955e9d5cf352d" id="r_abe0a932e3efe080e5d7955e9d5cf352d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe0a932e3efe080e5d7955e9d5cf352d">OnStartElement</a> (const Char_t *, const TList *)</td></tr>
<tr class="memdesc:abe0a932e3efe080e5d7955e9d5cf352d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when an XML start element is encountered. <br /></td></tr>
<tr class="separator:abe0a932e3efe080e5d7955e9d5cf352d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a843c569c9df05589731af92ac220cecc" id="r_a843c569c9df05589731af92ac220cecc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a843c569c9df05589731af92ac220cecc">OnEndElement</a> (const Char_t *)</td></tr>
<tr class="memdesc:a843c569c9df05589731af92ac220cecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when an XML end element is encountered. <br /></td></tr>
<tr class="separator:a843c569c9df05589731af92ac220cecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87a5f728b9c74988ca7da86a2b767e4d" id="r_a87a5f728b9c74988ca7da86a2b767e4d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a87a5f728b9c74988ca7da86a2b767e4d">OnCharacters</a> (const Char_t *)</td></tr>
<tr class="memdesc:a87a5f728b9c74988ca7da86a2b767e4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called with element text content. <br /></td></tr>
<tr class="separator:a87a5f728b9c74988ca7da86a2b767e4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1611437ea5eb6ef2f741d5c59d4a57fb" id="r_a1611437ea5eb6ef2f741d5c59d4a57fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1611437ea5eb6ef2f741d5c59d4a57fb">OnComment</a> (const Char_t *)</td></tr>
<tr class="memdesc:a1611437ea5eb6ef2f741d5c59d4a57fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML comment is found (unused). <br /></td></tr>
<tr class="separator:a1611437ea5eb6ef2f741d5c59d4a57fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a724db9d4193a4888d07621cbd597ec" id="r_a6a724db9d4193a4888d07621cbd597ec"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6a724db9d4193a4888d07621cbd597ec">OnWarning</a> (const Char_t *)</td></tr>
<tr class="memdesc:a6a724db9d4193a4888d07621cbd597ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML parser issues a warning. <br /></td></tr>
<tr class="separator:a6a724db9d4193a4888d07621cbd597ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c1283fd393495eb2134ad34dd97806c" id="r_a6c1283fd393495eb2134ad34dd97806c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c1283fd393495eb2134ad34dd97806c">OnError</a> (const Char_t *)</td></tr>
<tr class="memdesc:a6c1283fd393495eb2134ad34dd97806c"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML parser encounters an error. <br /></td></tr>
<tr class="separator:a6c1283fd393495eb2134ad34dd97806c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cb0fafe1aa86780c75870f5d883a75a" id="r_a6cb0fafe1aa86780c75870f5d883a75a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6cb0fafe1aa86780c75870f5d883a75a">OnFatalError</a> (const Char_t *)</td></tr>
<tr class="memdesc:a6cb0fafe1aa86780c75870f5d883a75a"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called when XML parser encounters a fatal error. <br /></td></tr>
<tr class="separator:a6cb0fafe1aa86780c75870f5d883a75a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa04509fa69626e542db9ed25c9d450fb" id="r_aa04509fa69626e542db9ed25c9d450fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa04509fa69626e542db9ed25c9d450fb">OnCdataBlock</a> (const Char_t *, Int_t)</td></tr>
<tr class="memdesc:aa04509fa69626e542db9ed25c9d450fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAX callback: Called for CDATA blocks (unused). <br /></td></tr>
<tr class="separator:aa04509fa69626e542db9ed25c9d450fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1856293e1f89cb048c8d0f288a214485" id="r_a1856293e1f89cb048c8d0f288a214485"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1856293e1f89cb048c8d0f288a214485">StartupFileFound</a> ()</td></tr>
<tr class="memdesc:a1856293e1f89cb048c8d0f288a214485"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the startup configuration file was successfully located. <br /></td></tr>
<tr class="separator:a1856293e1f89cb048c8d0f288a214485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13d61e7fb243d9cc7404ad2b87e7e093" id="r_a13d61e7fb243d9cc7404ad2b87e7e093"><td class="memItemLeft" align="right" valign="top">virtual TString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13d61e7fb243d9cc7404ad2b87e7e093">GetStartupFilePath</a> ()</td></tr>
<tr class="memdesc:a13d61e7fb243d9cc7404ad2b87e7e093"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the full path to the located startup configuration file. <br /></td></tr>
<tr class="separator:a13d61e7fb243d9cc7404ad2b87e7e093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1091d317382d2ce61d73fcb8c38a717a" id="r_a1091d317382d2ce61d73fcb8c38a717a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a">CheckLists</a> ()</td></tr>
<tr class="memdesc:a1091d317382d2ce61d73fcb8c38a717a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates configuration lists and fills missing entries with defaults. <br /></td></tr>
<tr class="separator:a1091d317382d2ce61d73fcb8c38a717a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af687ae5109ba9cf60599b6a1b7d34702" id="r_af687ae5109ba9cf60599b6a1b7d34702"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structPMsrFourierStructure.html">PMsrFourierStructure</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af687ae5109ba9cf60599b6a1b7d34702">GetFourierDefaults</a> ()</td></tr>
<tr class="memdesc:af687ae5109ba9cf60599b6a1b7d34702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns Fourier transform default settings. <br /></td></tr>
<tr class="separator:af687ae5109ba9cf60599b6a1b7d34702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294bfa3c12c36bb2cf6bccda698ca104" id="r_a294bfa3c12c36bb2cf6bccda698ca104"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="PMusr_8h.html#a01ff11ebda5d1a9096e8c9a65d085778">PRunNameTemplateList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a294bfa3c12c36bb2cf6bccda698ca104">GetRunNameTemplateList</a> ()</td></tr>
<tr class="memdesc:a294bfa3c12c36bb2cf6bccda698ca104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of instrument-specific run name templates. <br /></td></tr>
<tr class="separator:a294bfa3c12c36bb2cf6bccda698ca104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac67e5e0a0d3b11c4379b10464f076204" id="r_ac67e5e0a0d3b11c4379b10464f076204"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac67e5e0a0d3b11c4379b10464f076204">GetDataPathList</a> () const</td></tr>
<tr class="memdesc:ac67e5e0a0d3b11c4379b10464f076204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of data file search paths. <br /></td></tr>
<tr class="separator:ac67e5e0a0d3b11c4379b10464f076204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ae245b4e1a356cbdb808c1527f55c1" id="r_af6ae245b4e1a356cbdb808c1527f55c1"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af6ae245b4e1a356cbdb808c1527f55c1">GetMarkerList</a> () const</td></tr>
<tr class="memdesc:af6ae245b4e1a356cbdb808c1527f55c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of ROOT marker codes for plotting. <br /></td></tr>
<tr class="separator:af6ae245b4e1a356cbdb808c1527f55c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3099b4507100cb72c030918856971b2" id="r_ae3099b4507100cb72c030918856971b2"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae3099b4507100cb72c030918856971b2">GetColorList</a> () const</td></tr>
<tr class="memdesc:ae3099b4507100cb72c030918856971b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the list of ROOT color codes for plotting. <br /></td></tr>
<tr class="separator:ae3099b4507100cb72c030918856971b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a7e57711dce649f49bece4633b99b296a" id="r_a7e57711dce649f49bece4633b99b296a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e57711dce649f49bece4633b99b296a">EKeyWords</a> { <br />
&#160;&#160;<a class="el" href="#a7e57711dce649f49bece4633b99b296aa4bdbb0990ac68ea2d27984aad12369db">eEmpty</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aac290e7eae0b45303999ff2df0c2483a9">eComment</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aafe3cb7eef009e3f8e1943bdfef0ab95b">eDataPath</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aaeb1edf002142f43323180aae5fd0f3b2">eRunNameTemplate</a>
, <br />
&#160;&#160;<a class="el" href="#a7e57711dce649f49bece4633b99b296aa222af33cf2e1086737933a8e1be7146a">eOptions</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa63ab0473da93e785dfcd952bdcc04b10">eFourierSettings</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa7160a7c1aa2efb7d1c4b0eaa1a3d6b57">eUnits</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa178d828560101cb5bb608cbc0d1e4ca6">eFourierPower</a>
, <br />
&#160;&#160;<a class="el" href="#a7e57711dce649f49bece4633b99b296aa0f492b0bcf76c3b96356423449b3c97f">eApodization</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aaa4f05d54163518d55c435b84979baa2a">ePlot</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa99a5c77a181d0a6c850a9634aa60ef0d">ePhase</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa6cf0c747dab60179d81ec6f7be5af418">ePhaseIncrement</a>
, <br />
&#160;&#160;<a class="el" href="#a7e57711dce649f49bece4633b99b296aa34050dd1fb0ce11acb65296ae926672f">eRootSettings</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa7f11a038dfc42494adde9df8d35df60a">eMarkerList</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aa6a558e4b29f100d62b2661ee7a227b92">eMarker</a>
, <a class="el" href="#a7e57711dce649f49bece4633b99b296aaf37afb04f0b28f02658be2bbf6c24c0c">eColorList</a>
, <br />
&#160;&#160;<a class="el" href="#a7e57711dce649f49bece4633b99b296aaa78de6e5ded43578c2daeff43b5b29df">eColor</a>
<br />
}</td></tr>
<tr class="memdesc:a7e57711dce649f49bece4633b99b296a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration of XML element types for SAX parser state machine. <a href="#a7e57711dce649f49bece4633b99b296a">More...</a><br /></td></tr>
<tr class="separator:a7e57711dce649f49bece4633b99b296a"><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:af5cff2749d7ab62ffd3178d78f22a6cd" id="r_af5cff2749d7ab62ffd3178d78f22a6cd"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af5cff2749d7ab62ffd3178d78f22a6cd">StartupFileExists</a> (Char_t *fln)</td></tr>
<tr class="memdesc:af5cff2749d7ab62ffd3178d78f22a6cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a file exists at the specified path. <br /></td></tr>
<tr class="separator:af5cff2749d7ab62ffd3178d78f22a6cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9decfe25e92a078a905957517e904c85" id="r_a9decfe25e92a078a905957517e904c85"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9decfe25e92a078a905957517e904c85">WriteDefaultStartupFile</a> (bool reset_startup_file=false)</td></tr>
<tr class="memdesc:a9decfe25e92a078a905957517e904c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates or overwrites a startup file with default configuration. <br /></td></tr>
<tr class="separator:a9decfe25e92a078a905957517e904c85"><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:a6e54cc3e0367016ddbe804a4b9cb90f6" id="r_a6e54cc3e0367016ddbe804a4b9cb90f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a7e57711dce649f49bece4633b99b296a">EKeyWords</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6e54cc3e0367016ddbe804a4b9cb90f6">fKey</a></td></tr>
<tr class="memdesc:a6e54cc3e0367016ddbe804a4b9cb90f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current XML element type (SAX parser state) <br /></td></tr>
<tr class="separator:a6e54cc3e0367016ddbe804a4b9cb90f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a679b8c7d43535bdfc8d3b219d966d62b" id="r_a679b8c7d43535bdfc8d3b219d966d62b"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a679b8c7d43535bdfc8d3b219d966d62b">fStartupFileFound</a></td></tr>
<tr class="memdesc:a679b8c7d43535bdfc8d3b219d966d62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if musrfit_startup.xml was located. <br /></td></tr>
<tr class="separator:a679b8c7d43535bdfc8d3b219d966d62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75fcf5719c4e220547cc107d386574e8" id="r_a75fcf5719c4e220547cc107d386574e8"><td class="memItemLeft" align="right" valign="top">TString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a75fcf5719c4e220547cc107d386574e8">fStartupFilePath</a></td></tr>
<tr class="memdesc:a75fcf5719c4e220547cc107d386574e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Full path to located startup file (empty if not found) <br /></td></tr>
<tr class="separator:a75fcf5719c4e220547cc107d386574e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f132eb32a41a9e6149211d246f61f55" id="r_a7f132eb32a41a9e6149211d246f61f55"><td class="memItemLeft" align="right" valign="top">TString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f132eb32a41a9e6149211d246f61f55">fCurrentInstrumentName</a></td></tr>
<tr class="memdesc:a7f132eb32a41a9e6149211d246f61f55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instrument name from run_name_template inst attribute. <br /></td></tr>
<tr class="separator:a7f132eb32a41a9e6149211d246f61f55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab139f4f8950b3da25f534f8f145021e5" id="r_ab139f4f8950b3da25f534f8f145021e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPMsrFourierStructure.html">PMsrFourierStructure</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab139f4f8950b3da25f534f8f145021e5">fFourierDefaults</a></td></tr>
<tr class="memdesc:ab139f4f8950b3da25f534f8f145021e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fourier transform default settings structure. <br /></td></tr>
<tr class="separator:ab139f4f8950b3da25f534f8f145021e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56654b7a8ce85ae4bc1a7047d2389287" id="r_a56654b7a8ce85ae4bc1a7047d2389287"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a56654b7a8ce85ae4bc1a7047d2389287">fDataPathList</a></td></tr>
<tr class="memdesc:a56654b7a8ce85ae4bc1a7047d2389287"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of directories to search for data files. <br /></td></tr>
<tr class="separator:a56654b7a8ce85ae4bc1a7047d2389287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03888e42f4251e7fd80fb4aed2e94fb3" id="r_a03888e42f4251e7fd80fb4aed2e94fb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#a01ff11ebda5d1a9096e8c9a65d085778">PRunNameTemplateList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a03888e42f4251e7fd80fb4aed2e94fb3">fRunNameTemplate</a></td></tr>
<tr class="memdesc:a03888e42f4251e7fd80fb4aed2e94fb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of instrument-specific run name patterns. <br /></td></tr>
<tr class="separator:a03888e42f4251e7fd80fb4aed2e94fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90561ce5087b5dd85753761714bfe1f0" id="r_a90561ce5087b5dd85753761714bfe1f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a90561ce5087b5dd85753761714bfe1f0">fMarkerList</a></td></tr>
<tr class="memdesc:a90561ce5087b5dd85753761714bfe1f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of ROOT TMarker style codes for plotting. <br /></td></tr>
<tr class="separator:a90561ce5087b5dd85753761714bfe1f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f70aaf675235662a13af51bac862262" id="r_a2f70aaf675235662a13af51bac862262"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f70aaf675235662a13af51bac862262">fColorList</a></td></tr>
<tr class="memdesc:a2f70aaf675235662a13af51bac862262"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of ROOT TColor codes (from RGB) for plotting. <br /></td></tr>
<tr class="separator:a2f70aaf675235662a13af51bac862262"><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>Handles the musrfit XML startup configuration file (musrfit_startup.xml). </p>
<p><a class="el" href="classPStartupHandler.html" title="Handles the musrfit XML startup configuration file (musrfit_startup.xml).">PStartupHandler</a> is responsible for locating, parsing, and providing access to the musrfit startup configuration file. This XML file contains default settings that customize musrfit behavior across different installations and user preferences.</p>
<h1><a class="anchor" id="startup_contents"></a>
Configuration File Contents</h1>
<p>The musrfit_startup.xml file stores:</p><ul>
<li><b>Data search paths:</b> Directories to search for μSR data files</li>
<li><b>Run name templates:</b> Instrument-specific patterns for constructing data file paths</li>
<li><b>Fourier transform defaults:</b> Units, apodization, plot type, phase settings</li>
<li><b>ROOT marker list:</b> Marker styles for data point display</li>
<li><b>ROOT color list:</b> RGB colors for multi-run plotting</li>
</ul>
<h1><a class="anchor" id="startup_search"></a>
File Search Order</h1>
<p>The startup file is searched in the following locations (first found wins):</p><ol type="1">
<li>Current working directory: <code></code>./musrfit_startup.xml</li>
<li>User config directory: <code>$HOME/</code>.musrfit/musrfit_startup.xml</li>
<li>MUSRFITPATH environment: <code>$MUSRFITPATH/musrfit_startup</code>.xml</li>
<li>ROOT installation: <code>$ROOTSYS/bin/musrfit_startup</code>.xml (with warning)</li>
</ol>
<p>If no file is found, a default configuration is automatically created in <code>$HOME/</code>.musrfit/musrfit_startup.xml.</p>
<h1><a class="anchor" id="startup_xml"></a>
XML File Structure</h1>
<div class="fragment"><div class="line">&lt;?<span class="keyword">xml</span> <span class="keyword">version</span>=<span class="stringliteral">&quot;1.0&quot;</span> <span class="keyword">encoding</span>=<span class="stringliteral">&quot;UTF-8&quot;</span>?&gt;</div>
<div class="line">&lt;<span class="keywordtype">musrfit</span> <span class="keyword">xmlns</span>=<span class="stringliteral">&quot;http://lmu.web.psi.ch/musrfit/user/MUSR/WebHome.html&quot;</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">comment</span>&gt;<span class="keyword">Configuration</span> <span class="keyword">description</span>&lt;/<span class="keywordtype">comment</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">data_path</span>&gt;/<span class="keyword">path</span>/<span class="keyword">to</span>/<span class="keyword">data</span>/<span class="keyword">directory</span>&lt;/<span class="keywordtype">data_path</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">run_name_template</span> <span class="keyword">inst</span>=<span class="stringliteral">&quot;gps&quot;</span>&gt;<span class="keyword">d</span>%<span class="keyword">yyyy</span>%/<span class="keyword">tdc</span>/<span class="keyword">root</span>/<span class="keyword">deltat_tdc_gps_</span>%<span class="keyword">yyyy</span>%<span class="keyword">_</span>%<span class="keyword">rrrr</span>%.<span class="keyword">root</span>&lt;/<span class="keywordtype">run_name_template</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">fourier_settings</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">units</span>&gt;<span class="keyword">Gauss</span>&lt;/<span class="keywordtype">units</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">fourier_power</span>&gt;0&lt;/<span class="keywordtype">fourier_power</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">apodization</span>&gt;<span class="keyword">none</span>&lt;/<span class="keywordtype">apodization</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">plot</span>&gt;<span class="keyword">real_and_imag</span>&lt;/<span class="keywordtype">plot</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">phase</span>&gt;0.0&lt;/<span class="keywordtype">phase</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">phase_increment</span>&gt;1.0&lt;/<span class="keywordtype">phase_increment</span>&gt;</div>
<div class="line"> &lt;/<span class="keywordtype">fourier_settings</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">root_settings</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">marker_list</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">marker</span>&gt;24&lt;/<span class="keywordtype">marker</span>&gt;</div>
<div class="line"> &lt;/<span class="keywordtype">marker_list</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">color_list</span>&gt;</div>
<div class="line"> &lt;<span class="keywordtype">color</span>&gt;255,0,0&lt;/<span class="keywordtype">color</span>&gt;</div>
<div class="line"> &lt;/<span class="keywordtype">color_list</span>&gt;</div>
<div class="line"> &lt;/<span class="keywordtype">root_settings</span>&gt;</div>
<div class="line">&lt;/<span class="keywordtype">musrfit</span>&gt;</div>
</div><!-- fragment --><h1><a class="anchor" id="startup_templates"></a>
Run Name Templates</h1>
<p>Run name templates use placeholders for automatic file path construction:</p><ul>
<li><code>yyyy%</code> : 4-digit year (e.g., 2024)</li>
<li><code>yy%</code> : 2-digit year (e.g., 24)</li>
<li><code>rrrr%</code> : 4-digit run number with leading zeros</li>
<li><code>rrrrr%</code> : 5-digit run number with leading zeros</li>
</ul>
<p>Example: <code>dyyyy%/tdc/root/deltat_tdc_gps_yyyy_rrrr%</code>.root → <code>d2024/tdc/root/deltat_tdc_gps_2024_1234.root</code> </p>
<h1><a class="anchor" id="startup_sax"></a>
SAX Parser Implementation</h1>
<p>This class implements the TQObject signal/slot mechanism to handle SAX parser callbacks. The parser events trigger the following methods:</p><ul>
<li><a class="el" href="#ac9483464ce996f79b80fcaa72819221f" title="SAX callback: Called when XML document parsing begins. Initializes all configuration variables to def...">OnStartDocument()</a>: Initialize default values</li>
<li><a class="el" href="#abe0a932e3efe080e5d7955e9d5cf352d" title="SAX callback: Called when an XML start element is encountered.">OnStartElement()</a>: Identify XML element type, set parsing state</li>
<li><a class="el" href="#a87a5f728b9c74988ca7da86a2b767e4d" title="SAX callback: Called with element text content.">OnCharacters()</a>: Extract element content</li>
<li><a class="el" href="#a843c569c9df05589731af92ac220cecc" title="SAX callback: Called when an XML end element is encountered.">OnEndElement()</a>: Reset parsing state</li>
<li><a class="el" href="#a991ca3bce4d30a6527018b59e5f16a18" title="SAX callback: Called when XML document parsing ends. Triggers CheckLists() to ensure all required set...">OnEndDocument()</a>: Validate and fill missing defaults</li>
<li>OnWarning/OnError/OnFatalError(): Error handling</li>
</ul>
<h1><a class="anchor" id="startup_usage"></a>
Usage Example</h1>
<div class="fragment"><div class="line"><span class="comment">// Create handler (searches for and parses startup file)</span></div>
<div class="line"><a class="code hl_function" href="#a06f25c6c6d082752b1456382752408b6">PStartupHandler</a> startupHandler;</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Check if configuration was loaded successfully</span></div>
<div class="line"><span class="keywordflow">if</span> (startupHandler.<a class="code hl_function" href="#a1856293e1f89cb048c8d0f288a214485">StartupFileFound</a>()) {</div>
<div class="line"> <span class="comment">// Get data search paths</span></div>
<div class="line"> <a class="code hl_typedef" href="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a> paths = startupHandler.<a class="code hl_function" href="#ac67e5e0a0d3b11c4379b10464f076204">GetDataPathList</a>();</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Get Fourier transform defaults</span></div>
<div class="line"> <a class="code hl_struct" href="structPMsrFourierStructure.html">PMsrFourierStructure</a> fourier = startupHandler.<a class="code hl_function" href="#af687ae5109ba9cf60599b6a1b7d34702">GetFourierDefaults</a>();</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Get plotting colors and markers</span></div>
<div class="line"> <a class="code hl_typedef" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> colors = startupHandler.<a class="code hl_function" href="#ae3099b4507100cb72c030918856971b2">GetColorList</a>();</div>
<div class="line"> <a class="code hl_typedef" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> markers = startupHandler.<a class="code hl_function" href="#af6ae245b4e1a356cbdb808c1527f55c1">GetMarkerList</a>();</div>
<div class="line">}</div>
<div class="ttc" id="aPMusr_8h_html_aa9c3d2033e27c38e4dbb98e26f1c4e54"><div class="ttname"><a href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a></div><div class="ttdeci">std::vector&lt; Int_t &gt; PIntVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00367">PMusr.h:367</a></div></div>
<div class="ttc" id="aPMusr_8h_html_ae50e503cc0f1bbc1fda5b86735ea9983"><div class="ttname"><a href="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a></div><div class="ttdeci">std::vector&lt; TString &gt; PStringVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00403">PMusr.h:403</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_a06f25c6c6d082752b1456382752408b6"><div class="ttname"><a href="#a06f25c6c6d082752b1456382752408b6">PStartupHandler::PStartupHandler</a></div><div class="ttdeci">PStartupHandler(bool reset_startup_file=false)</div><div class="ttdoc">Constructor that locates and parses the musrfit startup configuration file.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8cpp_source.html#l00148">PStartupHandler.cpp:148</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_a1856293e1f89cb048c8d0f288a214485"><div class="ttname"><a href="#a1856293e1f89cb048c8d0f288a214485">PStartupHandler::StartupFileFound</a></div><div class="ttdeci">virtual Bool_t StartupFileFound()</div><div class="ttdoc">Checks if the startup configuration file was successfully located.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8h_source.html#l00244">PStartupHandler.h:244</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_ac67e5e0a0d3b11c4379b10464f076204"><div class="ttname"><a href="#ac67e5e0a0d3b11c4379b10464f076204">PStartupHandler::GetDataPathList</a></div><div class="ttdeci">virtual const PStringVector GetDataPathList() const</div><div class="ttdoc">Returns the list of data file search paths.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8h_source.html#l00280">PStartupHandler.h:280</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_ae3099b4507100cb72c030918856971b2"><div class="ttname"><a href="#ae3099b4507100cb72c030918856971b2">PStartupHandler::GetColorList</a></div><div class="ttdeci">virtual const PIntVector GetColorList() const</div><div class="ttdoc">Returns the list of ROOT color codes for plotting.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8h_source.html#l00292">PStartupHandler.h:292</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_af687ae5109ba9cf60599b6a1b7d34702"><div class="ttname"><a href="#af687ae5109ba9cf60599b6a1b7d34702">PStartupHandler::GetFourierDefaults</a></div><div class="ttdeci">virtual PMsrFourierStructure GetFourierDefaults()</div><div class="ttdoc">Returns Fourier transform default settings.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8h_source.html#l00268">PStartupHandler.h:268</a></div></div>
<div class="ttc" id="aclassPStartupHandler_html_af6ae245b4e1a356cbdb808c1527f55c1"><div class="ttname"><a href="#af6ae245b4e1a356cbdb808c1527f55c1">PStartupHandler::GetMarkerList</a></div><div class="ttdeci">virtual const PIntVector GetMarkerList() const</div><div class="ttdoc">Returns the list of ROOT marker codes for plotting.</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8h_source.html#l00286">PStartupHandler.h:286</a></div></div>
<div class="ttc" id="astructPMsrFourierStructure_html"><div class="ttname"><a href="structPMsrFourierStructure.html">PMsrFourierStructure</a></div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01247">PMusr.h:1247</a></div></div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework.">PMsrHandler</a> for MSR file parsing </dd>
<dd>
<a class="el" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data.">PRunDataHandler</a> for data file loading with path resolution </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00162">162</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a7e57711dce649f49bece4633b99b296a" name="a7e57711dce649f49bece4633b99b296a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e57711dce649f49bece4633b99b296a">&#9670;&#160;</a></span>EKeyWords</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#a7e57711dce649f49bece4633b99b296a">PStartupHandler::EKeyWords</a></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>Enumeration of XML element types for SAX parser state machine. </p>
<p>Used by <a class="el" href="#abe0a932e3efe080e5d7955e9d5cf352d" title="SAX callback: Called when an XML start element is encountered.">OnStartElement()</a> to set parsing context and by <a class="el" href="#a87a5f728b9c74988ca7da86a2b767e4d" title="SAX callback: Called with element text content.">OnCharacters()</a> to determine how to interpret element content. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa4bdbb0990ac68ea2d27984aad12369db" name="a7e57711dce649f49bece4633b99b296aa4bdbb0990ac68ea2d27984aad12369db"></a>eEmpty&#160;</td><td class="fielddoc"><p>No active element (between elements or unknown) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aac290e7eae0b45303999ff2df0c2483a9" name="a7e57711dce649f49bece4633b99b296aac290e7eae0b45303999ff2df0c2483a9"></a>eComment&#160;</td><td class="fielddoc"><p>Inside &lt;comment&gt; element. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aafe3cb7eef009e3f8e1943bdfef0ab95b" name="a7e57711dce649f49bece4633b99b296aafe3cb7eef009e3f8e1943bdfef0ab95b"></a>eDataPath&#160;</td><td class="fielddoc"><p>Inside &lt;data_path&gt; element. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aaeb1edf002142f43323180aae5fd0f3b2" name="a7e57711dce649f49bece4633b99b296aaeb1edf002142f43323180aae5fd0f3b2"></a>eRunNameTemplate&#160;</td><td class="fielddoc"><p>Inside &lt;run_name_template&gt; element. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa222af33cf2e1086737933a8e1be7146a" name="a7e57711dce649f49bece4633b99b296aa222af33cf2e1086737933a8e1be7146a"></a>eOptions&#160;</td><td class="fielddoc"><p>Inside &lt;options&gt; element (reserved) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa63ab0473da93e785dfcd952bdcc04b10" name="a7e57711dce649f49bece4633b99b296aa63ab0473da93e785dfcd952bdcc04b10"></a>eFourierSettings&#160;</td><td class="fielddoc"><p>Inside &lt;fourier_settings&gt; container. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa7160a7c1aa2efb7d1c4b0eaa1a3d6b57" name="a7e57711dce649f49bece4633b99b296aa7160a7c1aa2efb7d1c4b0eaa1a3d6b57"></a>eUnits&#160;</td><td class="fielddoc"><p>Inside &lt;units&gt; element (Gauss/Tesla/MHz/Mc/s) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa178d828560101cb5bb608cbc0d1e4ca6" name="a7e57711dce649f49bece4633b99b296aa178d828560101cb5bb608cbc0d1e4ca6"></a>eFourierPower&#160;</td><td class="fielddoc"><p>Inside &lt;fourier_power&gt; element (0-20) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa0f492b0bcf76c3b96356423449b3c97f" name="a7e57711dce649f49bece4633b99b296aa0f492b0bcf76c3b96356423449b3c97f"></a>eApodization&#160;</td><td class="fielddoc"><p>Inside &lt;apodization&gt; element (none/weak/medium/strong) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aaa4f05d54163518d55c435b84979baa2a" name="a7e57711dce649f49bece4633b99b296aaa4f05d54163518d55c435b84979baa2a"></a>ePlot&#160;</td><td class="fielddoc"><p>Inside &lt;plot&gt; element (real/imag/real_and_imag/power/phase) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa99a5c77a181d0a6c850a9634aa60ef0d" name="a7e57711dce649f49bece4633b99b296aa99a5c77a181d0a6c850a9634aa60ef0d"></a>ePhase&#160;</td><td class="fielddoc"><p>Inside &lt;phase&gt; element (degrees) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa6cf0c747dab60179d81ec6f7be5af418" name="a7e57711dce649f49bece4633b99b296aa6cf0c747dab60179d81ec6f7be5af418"></a>ePhaseIncrement&#160;</td><td class="fielddoc"><p>Inside &lt;phase_increment&gt; element (degrees per step) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa34050dd1fb0ce11acb65296ae926672f" name="a7e57711dce649f49bece4633b99b296aa34050dd1fb0ce11acb65296ae926672f"></a>eRootSettings&#160;</td><td class="fielddoc"><p>Inside &lt;root_settings&gt; container. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa7f11a038dfc42494adde9df8d35df60a" name="a7e57711dce649f49bece4633b99b296aa7f11a038dfc42494adde9df8d35df60a"></a>eMarkerList&#160;</td><td class="fielddoc"><p>Inside &lt;marker_list&gt; container. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aa6a558e4b29f100d62b2661ee7a227b92" name="a7e57711dce649f49bece4633b99b296aa6a558e4b29f100d62b2661ee7a227b92"></a>eMarker&#160;</td><td class="fielddoc"><p>Inside &lt;marker&gt; element (ROOT marker code) </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aaf37afb04f0b28f02658be2bbf6c24c0c" name="a7e57711dce649f49bece4633b99b296aaf37afb04f0b28f02658be2bbf6c24c0c"></a>eColorList&#160;</td><td class="fielddoc"><p>Inside &lt;color_list&gt; container. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7e57711dce649f49bece4633b99b296aaa78de6e5ded43578c2daeff43b5b29df" name="a7e57711dce649f49bece4633b99b296aaa78de6e5ded43578c2daeff43b5b29df"></a>eColor&#160;</td><td class="fielddoc"><p>Inside &lt;color&gt; element (RGB comma-separated) </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00301">301</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a06f25c6c6d082752b1456382752408b6" name="a06f25c6c6d082752b1456382752408b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06f25c6c6d082752b1456382752408b6">&#9670;&#160;</a></span>PStartupHandler()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PStartupHandler::PStartupHandler </td>
<td>(</td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reset_startup_file</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that locates and parses the musrfit startup configuration file. </p>
<p>Constructor that locates and optionally resets the musrfit startup configuration.</p>
<p>Searches for musrfit_startup.xml in standard locations and parses it if found. If no file is found, creates a default configuration in $HOME/.musrfit/.</p>
<p><b>Search order:</b></p><ol type="1">
<li>./musrfit_startup.xml (current directory)</li>
<li>$HOME/.musrfit/musrfit_startup.xml</li>
<li>$MUSRFITPATH/musrfit_startup.xml</li>
<li>$ROOTSYS/bin/musrfit_startup.xml (with warning)</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reset_startup_file</td><td>If true and file is found, rewrites it with default content. Useful for restoring corrupted or outdated configurations.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The actual XML parsing is performed by connecting this handler to a TSAXParser and calling <a class="el" href="PStartupHandler_8h.html#a2f473e587e18e6a64b260870ec870a5e" title="Replacement function for TSAXParser::ParseFile().">parseXmlFile()</a> externally.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a1856293e1f89cb048c8d0f288a214485" title="Checks if the startup configuration file was successfully located.">StartupFileFound()</a>, <a class="el" href="#a13d61e7fb243d9cc7404ad2b87e7e093" title="Returns the full path to the located startup configuration file.">GetStartupFilePath()</a></dd></dl>
<p>Searches for the musrfit_startup.xml configuration file in standard locations and initializes the handler. If no file is found, creates a default configuration.</p>
<p><b>Search Order:</b></p><ol type="1">
<li>Current working directory: <code></code>./musrfit_startup.xml</li>
<li>User config directory: <code>$HOME/</code>.musrfit/musrfit_startup.xml</li>
<li>MUSRFITPATH environment variable: <code>$MUSRFITPATH/musrfit_startup</code>.xml</li>
<li>ROOT installation: <code>$ROOTSYS/bin/musrfit_startup</code>.xml (with warning)</li>
</ol>
<p><b>File Creation:</b> If no startup file is found in any location, a default configuration is automatically created at <code>$HOME/</code>.musrfit/musrfit_startup.xml. This includes:</p><ul>
<li>Standard PSI facility data paths</li>
<li>Run name templates for all PSI instruments</li>
<li>Default Fourier transform settings</li>
<li>Standard marker and color lists</li>
</ul>
<p><b>Reset Mode:</b> When reset_startup_file=true and a file is found, the existing file is overwritten with default content. This is useful for:</p><ul>
<li>Restoring corrupted configurations</li>
<li>Updating to new default settings after software updates</li>
<li>Resetting user customizations to defaults</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reset_startup_file</td><td>If true, overwrites existing startup file with defaults. If false (default), uses existing file or creates new one.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This constructor only locates the file. Actual XML parsing must be performed separately by connecting this handler to a TSAXParser and calling <a class="el" href="PStartupHandler_8h.html#a2f473e587e18e6a64b260870ec870a5e" title="Replacement function for TSAXParser::ParseFile().">parseXmlFile()</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a1856293e1f89cb048c8d0f288a214485" title="Checks if the startup configuration file was successfully located.">StartupFileFound()</a>, <a class="el" href="#a13d61e7fb243d9cc7404ad2b87e7e093" title="Returns the full path to the located startup configuration file.">GetStartupFilePath()</a>, <a class="el" href="#a9decfe25e92a078a905957517e904c85" title="Creates or overwrites a startup file with default configuration.">WriteDefaultStartupFile()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00148">148</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00322">fStartupFileFound</a>, <a class="el" href="PStartupHandler_8h_source.html#l00323">fStartupFilePath</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00084">startup_path_name</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00834">StartupFileExists()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00899">WriteDefaultStartupFile()</a>.</p>
</div>
</div>
<a id="a920d637d0a9c0150bfb0e03297b86489" name="a920d637d0a9c0150bfb0e03297b86489"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a920d637d0a9c0150bfb0e03297b86489">&#9670;&#160;</a></span>~PStartupHandler()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PStartupHandler::~PStartupHandler </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor releasing allocated resources. </p>
<p>Destructor that releases all allocated configuration data.</p>
<p>Clears all configuration vectors:</p><ul>
<li>fDataPathList</li>
<li>fMarkerList</li>
<li>fColorList</li>
<li>fRunNameTemplate</li>
</ul>
<p>Clears all configuration vectors to free memory:</p><ul>
<li>fDataPathList: Data file search paths</li>
<li>fMarkerList: ROOT marker style codes</li>
<li>fColorList: ROOT color codes</li>
<li>fRunNameTemplate: Instrument run name patterns</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>The Fourier defaults structure is a value type and is automatically cleaned up when the object is destroyed. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00246">246</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00329">fColorList</a>, <a class="el" href="PStartupHandler_8h_source.html#l00326">fDataPathList</a>, <a class="el" href="PStartupHandler_8h_source.html#l00328">fMarkerList</a>, and <a class="el" href="PStartupHandler_8h_source.html#l00327">fRunNameTemplate</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1091d317382d2ce61d73fcb8c38a717a" name="a1091d317382d2ce61d73fcb8c38a717a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1091d317382d2ce61d73fcb8c38a717a">&#9670;&#160;</a></span>CheckLists()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::CheckLists </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Validates configuration lists and fills missing entries with defaults. </p>
<p>Validates configuration lists and populates empty ones with defaults.</p>
<p>Called at end of XML parsing to ensure all required lists have values. If a list is empty, populates it with sensible defaults:</p><ul>
<li>Data paths: PSI facility standard locations</li>
<li>Markers: ROOT marker codes (circles, squares, triangles, etc.)</li>
<li>Colors: Standard plotting colors (black, red, green, blue, etc.)</li>
</ul>
<p>Called at the end of XML parsing (OnEndDocument) to ensure all required configuration lists have values. If any list is empty after parsing, it is populated with sensible defaults.</p>
<p><b>Default Data Paths:</b> Standard PSI facility data directories:</p><ul>
<li>/mnt/data/nemu/his</li>
<li>/psi.ch/group/lmu/public/data/XXX/his/, where XXX=lem, alc, dolly, flame, gpd, gps, hal, ltf, or vms</li>
</ul>
<p><b>Default Markers:</b> ROOT TMarker style codes for distinguishing multiple data sets:</p><ul>
<li>24 (open circle), 25 (open square), 26 (open triangle)</li>
<li>27 (open diamond), 28 (open cross), 29 (full star)</li>
<li>30 (open star), 20 (full circle), 21 (full square)</li>
<li>22 (full triangle), 23 (full down triangle)</li>
<li>2 (thin cross), 3 (thin star), 5 (thin x)</li>
</ul>
<p><b>Default Colors:</b> Standard plotting colors (RGB → ROOT color code):</p><ul>
<li>Black (0,0,0), Red (255,0,0), Green (0,255,0)</li>
<li>Blue (0,0,255), Magenta (255,0,255), Cyan (0,255,255)</li>
<li>Violet (156,0,255), Yellow-ish (99,101,49)</li>
<li>Dark Green (49,101,49), Orange (156,48,0)</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>This method only populates empty lists. If a list has any entries from the XML file, no defaults are added. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00765">765</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00329">fColorList</a>, <a class="el" href="PStartupHandler_8h_source.html#l00326">fDataPathList</a>, and <a class="el" href="PStartupHandler_8h_source.html#l00328">fMarkerList</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00311">OnEndDocument()</a>.</p>
</div>
</div>
<a id="ae3099b4507100cb72c030918856971b2" name="ae3099b4507100cb72c030918856971b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3099b4507100cb72c030918856971b2">&#9670;&#160;</a></span>GetColorList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> PStartupHandler::GetColorList </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 inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the list of ROOT color codes for plotting. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of ROOT TColor codes (generated from RGB values) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00292">292</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00329">fColorList</a>.</p>
</div>
</div>
<a id="ac67e5e0a0d3b11c4379b10464f076204" name="ac67e5e0a0d3b11c4379b10464f076204"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac67e5e0a0d3b11c4379b10464f076204">&#9670;&#160;</a></span>GetDataPathList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a> PStartupHandler::GetDataPathList </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 inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the list of data file search paths. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of directory paths to search for μSR data files </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00280">280</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00326">fDataPathList</a>.</p>
</div>
</div>
<a id="af687ae5109ba9cf60599b6a1b7d34702" name="af687ae5109ba9cf60599b6a1b7d34702"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af687ae5109ba9cf60599b6a1b7d34702">&#9670;&#160;</a></span>GetFourierDefaults()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="structPMsrFourierStructure.html">PMsrFourierStructure</a> PStartupHandler::GetFourierDefaults </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns Fourier transform default settings. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structPMsrFourierStructure.html">PMsrFourierStructure</a> containing units, apodization, plot type, phase settings </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00268">268</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00325">fFourierDefaults</a>.</p>
</div>
</div>
<a id="af6ae245b4e1a356cbdb808c1527f55c1" name="af6ae245b4e1a356cbdb808c1527f55c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6ae245b4e1a356cbdb808c1527f55c1">&#9670;&#160;</a></span>GetMarkerList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> PStartupHandler::GetMarkerList </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 inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the list of ROOT marker codes for plotting. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of ROOT TMarker style codes (e.g., 24=open circle, 25=open square) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00286">286</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00328">fMarkerList</a>.</p>
</div>
</div>
<a id="a294bfa3c12c36bb2cf6bccda698ca104" name="a294bfa3c12c36bb2cf6bccda698ca104"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a294bfa3c12c36bb2cf6bccda698ca104">&#9670;&#160;</a></span>GetRunNameTemplateList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="PMusr_8h.html#a01ff11ebda5d1a9096e8c9a65d085778">PRunNameTemplateList</a> PStartupHandler::GetRunNameTemplateList </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the list of instrument-specific run name templates. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of <a class="el" href="structPRunNameTemplate.html">PRunNameTemplate</a> structures (instrument name + path pattern) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00274">274</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00327">fRunNameTemplate</a>.</p>
</div>
</div>
<a id="a13d61e7fb243d9cc7404ad2b87e7e093" name="a13d61e7fb243d9cc7404ad2b87e7e093"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13d61e7fb243d9cc7404ad2b87e7e093">&#9670;&#160;</a></span>GetStartupFilePath()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual TString PStartupHandler::GetStartupFilePath </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the full path to the located startup configuration file. </p>
<dl class="section return"><dt>Returns</dt><dd>Full path including filename (e.g., "/home/user/.musrfit/musrfit_startup.xml"), or empty string if not found </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00251">251</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00323">fStartupFilePath</a>.</p>
</div>
</div>
<a id="aa04509fa69626e542db9ed25c9d450fb" name="aa04509fa69626e542db9ed25c9d450fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa04509fa69626e542db9ed25c9d450fb">&#9670;&#160;</a></span>OnCdataBlock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnCdataBlock </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Int_t</td> <td class="paramname"><span class="paramname"><em>len</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called for CDATA blocks (unused). </p>
<p>SAX callback invoked when a CDATA section is encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>CDATA content </td></tr>
<tr><td class="paramname">len</td><td>Length of CDATA content</td></tr>
</table>
</dd>
</dl>
<p>Currently does nothing. CDATA sections in the startup file are not used. CDATA sections would typically be used for content containing special characters that would otherwise need escaping.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>CDATA content (without &lt;![CDATA[ and ]]&gt; delimiters) </td></tr>
<tr><td class="paramname">len</td><td>Length of the CDATA content in characters</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The musrfit_startup.xml format does not require CDATA sections as all content uses standard XML escaping where needed. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00727">727</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
</div>
</div>
<a id="a87a5f728b9c74988ca7da86a2b767e4d" name="a87a5f728b9c74988ca7da86a2b767e4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87a5f728b9c74988ca7da86a2b767e4d">&#9670;&#160;</a></span>OnCharacters()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnCharacters </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called with element text content. </p>
<p>SAX callback invoked with text content between XML element tags.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Text content between XML tags (the actual configuration values)</td></tr>
</table>
</dd>
</dl>
<p>Processes element content based on the current parsing state (fKey) set by <a class="el" href="#abe0a932e3efe080e5d7955e9d5cf352d" title="SAX callback: Called when an XML start element is encountered.">OnStartElement()</a>. Each element type has specific parsing logic and validation.</p>
<p><b>Element Processing:</b></p>
<ul>
<li><b>eDataPath:</b> Adds path string directly to fDataPathList</li>
<li><b>eRunNameTemplate:</b> Creates <a class="el" href="structPRunNameTemplate.html">PRunNameTemplate</a> with current instrument name and template string, adds to fRunNameTemplate</li>
<li><b>eMarker:</b> Validates numeric string, converts to int, adds to fMarkerList</li>
<li><b>eColor:</b> Parses "R,G,B" format (comma-separated integers 0-255), converts to ROOT color code via TColor::GetColor(), adds to fColorList</li>
<li><b>eUnits:</b> Maps string to FOURIER_UNIT_* constant:<ul>
<li>"gauss" → FOURIER_UNIT_GAUSS</li>
<li>"tesla" → FOURIER_UNIT_TESLA</li>
<li>"mhz" → FOURIER_UNIT_FREQ</li>
<li>"mc/s" → FOURIER_UNIT_CYCLES</li>
</ul>
</li>
<li><b>eFourierPower:</b> Validates integer 0-20, sets fFourierDefaults.fFourierPower</li>
<li><b>eApodization:</b> Maps string to FOURIER_APOD_* constant:<ul>
<li>"none" → FOURIER_APOD_NONE</li>
<li>"weak" → FOURIER_APOD_WEAK</li>
<li>"medium" → FOURIER_APOD_MEDIUM</li>
<li>"strong" → FOURIER_APOD_STRONG</li>
</ul>
</li>
<li><b>ePlot:</b> Maps string to FOURIER_PLOT_* constant:<ul>
<li>"real" → FOURIER_PLOT_REAL</li>
<li>"imag" → FOURIER_PLOT_IMAG</li>
<li>"real_and_imag" → FOURIER_PLOT_REAL_AND_IMAG</li>
<li>"power" → FOURIER_PLOT_POWER</li>
<li>"phase" → FOURIER_PLOT_PHASE</li>
</ul>
</li>
<li><b>ePhase:</b> Validates float, adds to fFourierDefaults.fPhase vector</li>
<li><b>ePhaseIncrement:</b> Validates float, sets fFourierDefaults.fPhaseIncrement</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Text content between XML tags</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Invalid values generate warning messages to stderr but do not cause parsing to fail. The invalid value is simply ignored. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00452">452</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00310">eApodization</a>, <a class="el" href="PStartupHandler_8h_source.html#l00318">eColor</a>, <a class="el" href="PStartupHandler_8h_source.html#l00304">eDataPath</a>, <a class="el" href="PStartupHandler_8h_source.html#l00309">eFourierPower</a>, <a class="el" href="PStartupHandler_8h_source.html#l00316">eMarker</a>, <a class="el" href="PStartupHandler_8h_source.html#l00312">ePhase</a>, <a class="el" href="PStartupHandler_8h_source.html#l00313">ePhaseIncrement</a>, <a class="el" href="PStartupHandler_8h_source.html#l00311">ePlot</a>, <a class="el" href="PStartupHandler_8h_source.html#l00305">eRunNameTemplate</a>, <a class="el" href="PStartupHandler_8h_source.html#l00308">eUnits</a>, <a class="el" href="PStartupHandler_8h_source.html#l00329">fColorList</a>, <a class="el" href="PStartupHandler_8h_source.html#l00324">fCurrentInstrumentName</a>, <a class="el" href="PStartupHandler_8h_source.html#l00326">fDataPathList</a>, <a class="el" href="PStartupHandler_8h_source.html#l00325">fFourierDefaults</a>, <a class="el" href="PStartupHandler_8h_source.html#l00321">fKey</a>, <a class="el" href="PStartupHandler_8h_source.html#l00328">fMarkerList</a>, <a class="el" href="PMusr_8h_source.html#l00296">FOURIER_APOD_MEDIUM</a>, <a class="el" href="PMusr_8h_source.html#l00292">FOURIER_APOD_NONE</a>, <a class="el" href="PMusr_8h_source.html#l00298">FOURIER_APOD_STRONG</a>, <a class="el" href="PMusr_8h_source.html#l00294">FOURIER_APOD_WEAK</a>, <a class="el" href="PMusr_8h_source.html#l00312">FOURIER_PLOT_IMAG</a>, <a class="el" href="PMusr_8h_source.html#l00318">FOURIER_PLOT_PHASE</a>, <a class="el" href="PMusr_8h_source.html#l00316">FOURIER_PLOT_POWER</a>, <a class="el" href="PMusr_8h_source.html#l00310">FOURIER_PLOT_REAL</a>, <a class="el" href="PMusr_8h_source.html#l00314">FOURIER_PLOT_REAL_AND_IMAG</a>, <a class="el" href="PMusr_8h_source.html#l00278">FOURIER_UNIT_CYCLES</a>, <a class="el" href="PMusr_8h_source.html#l00276">FOURIER_UNIT_FREQ</a>, <a class="el" href="PMusr_8h_source.html#l00272">FOURIER_UNIT_GAUSS</a>, <a class="el" href="PMusr_8h_source.html#l00274">FOURIER_UNIT_TESLA</a>, <a class="el" href="PStartupHandler_8h_source.html#l00327">fRunNameTemplate</a>, <a class="el" href="PMusr_8h_source.html#l01433">PRunNameTemplate::instrument</a>, and <a class="el" href="PMusr_8h_source.html#l01434">PRunNameTemplate::runNameTemplate</a>.</p>
</div>
</div>
<a id="a1611437ea5eb6ef2f741d5c59d4a57fb" name="a1611437ea5eb6ef2f741d5c59d4a57fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1611437ea5eb6ef2f741d5c59d4a57fb">&#9670;&#160;</a></span>OnComment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnComment </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML comment is found (unused). </p>
<p>SAX callback invoked when an XML comment is encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Comment text</td></tr>
</table>
</dd>
</dl>
<p>Currently does nothing. XML comments in the startup file are ignored.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Comment text content (without &lt;!-- and &ndash;&gt; delimiters)</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Comments in musrfit_startup.xml are for documentation purposes only and have no effect on configuration. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00637">637</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
</div>
</div>
<a id="a991ca3bce4d30a6527018b59e5f16a18" name="a991ca3bce4d30a6527018b59e5f16a18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a991ca3bce4d30a6527018b59e5f16a18">&#9670;&#160;</a></span>OnEndDocument()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnEndDocument </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML document parsing ends. Triggers <a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> to ensure all required settings have values. </p>
<p>SAX callback invoked at the end of XML document parsing.</p>
<p>Finalizes configuration by calling <a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> to ensure all required settings have values. If any list is empty after parsing, it will be populated with default values.</p>
<dl class="section note"><dt>Note</dt><dd>This is a SAX parser callback connected via TQObject signals. It is automatically called by TSAXParser when parsing completes.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00311">311</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8cpp_source.html#l00765">CheckLists()</a>.</p>
</div>
</div>
<a id="a843c569c9df05589731af92ac220cecc" name="a843c569c9df05589731af92ac220cecc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a843c569c9df05589731af92ac220cecc">&#9670;&#160;</a></span>OnEndElement()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnEndElement </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when an XML end element is encountered. </p>
<p>SAX callback invoked when an XML end element tag is encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Element name (unused, resets parsing state)</td></tr>
</table>
</dd>
</dl>
<p>Resets the parsing state (fKey) to eEmpty, indicating that any subsequent character data should be ignored until the next start element is found.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>XML element name (unused, state is always reset to eEmpty)</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The element name parameter is not used because all elements reset to the same state. This simplifies handling of nested elements. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00395">395</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00302">eEmpty</a>, and <a class="el" href="PStartupHandler_8h_source.html#l00321">fKey</a>.</p>
</div>
</div>
<a id="a6c1283fd393495eb2134ad34dd97806c" name="a6c1283fd393495eb2134ad34dd97806c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c1283fd393495eb2134ad34dd97806c">&#9670;&#160;</a></span>OnError()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnError </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML parser encounters an error. </p>
<p>SAX callback invoked when the XML parser encounters an error.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Error message (output to stderr)</td></tr>
</table>
</dd>
</dl>
<p>Outputs the error message to stderr with a "PStartupHandler **ERROR**" prefix. Errors indicate significant parsing problems such as:</p><ul>
<li>Malformed XML syntax</li>
<li>Missing required elements</li>
<li>Invalid attribute values</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Error message from the XML parser</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Depending on error severity, parsing may or may not continue. The configuration may be incomplete after errors. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00681">681</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
</div>
</div>
<a id="a6cb0fafe1aa86780c75870f5d883a75a" name="a6cb0fafe1aa86780c75870f5d883a75a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cb0fafe1aa86780c75870f5d883a75a">&#9670;&#160;</a></span>OnFatalError()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnFatalError </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML parser encounters a fatal error. </p>
<p>SAX callback invoked when the XML parser encounters a fatal error.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Fatal error message (output to stderr)</td></tr>
</table>
</dd>
</dl>
<p>Outputs the error message to stderr with a "PStartupHandler **FATAL ERROR**" prefix. Fatal errors indicate unrecoverable parsing failures such as:</p><ul>
<li>Document not well-formed (mismatched tags)</li>
<li>Invalid XML declaration</li>
<li>Character encoding that cannot be processed</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Fatal error message from the XML parser</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>After a fatal error, parsing stops immediately and the configuration will be incomplete. <a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> will provide default values for missing settings when <a class="el" href="#a991ca3bce4d30a6527018b59e5f16a18" title="SAX callback: Called when XML document parsing ends. Triggers CheckLists() to ensure all required set...">OnEndDocument()</a> is called. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00705">705</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
</div>
</div>
<a id="ac9483464ce996f79b80fcaa72819221f" name="ac9483464ce996f79b80fcaa72819221f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9483464ce996f79b80fcaa72819221f">&#9670;&#160;</a></span>OnStartDocument()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnStartDocument </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML document parsing begins. Initializes all configuration variables to default values. </p>
<p>SAX callback invoked at the start of XML document parsing.</p>
<p>Initializes all configuration variables to default values before parsing begins. This ensures a clean state even if the same handler is reused.</p>
<p><b>Initialization:</b></p><ul>
<li>fKey = eEmpty (no active element)</li>
<li>Fourier defaults:<ul>
<li>fFourierBlockPresent = false</li>
<li>fUnits = FOURIER_UNIT_GAUSS</li>
<li>fFourierPower = 0 (no zero-padding)</li>
<li>fApodization = FOURIER_APOD_NONE</li>
<li>fPlotTag = FOURIER_PLOT_REAL_AND_IMAG</li>
<li>fRangeForPhaseCorrection = [-1.0, -1.0] (auto)</li>
<li>fPlotRange = [-1.0, -1.0] (auto)</li>
<li>fPhaseIncrement = 1.0 degree</li>
</ul>
</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>This is a SAX parser callback connected via TQObject signals. It is automatically called by TSAXParser at document start. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00279">279</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00302">eEmpty</a>, <a class="el" href="PStartupHandler_8h_source.html#l00325">fFourierDefaults</a>, <a class="el" href="PStartupHandler_8h_source.html#l00321">fKey</a>, <a class="el" href="PMusr_8h_source.html#l00292">FOURIER_APOD_NONE</a>, <a class="el" href="PMusr_8h_source.html#l00314">FOURIER_PLOT_REAL_AND_IMAG</a>, and <a class="el" href="PMusr_8h_source.html#l00272">FOURIER_UNIT_GAUSS</a>.</p>
</div>
</div>
<a id="abe0a932e3efe080e5d7955e9d5cf352d" name="abe0a932e3efe080e5d7955e9d5cf352d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe0a932e3efe080e5d7955e9d5cf352d">&#9670;&#160;</a></span>OnStartElement()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnStartElement </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const TList *</td> <td class="paramname"><span class="paramname"><em>attributes</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when an XML start element is encountered. </p>
<p>SAX callback invoked when an XML start element tag is encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Element name (e.g., "data_path", "marker", "units") </td></tr>
<tr><td class="paramname">attributes</td><td>XML attributes (used for inst attribute in run_name_template)</td></tr>
</table>
</dd>
</dl>
<p>Identifies the element type and sets the parsing state (fKey) accordingly. This state is used by <a class="el" href="#a87a5f728b9c74988ca7da86a2b767e4d" title="SAX callback: Called with element text content.">OnCharacters()</a> to determine how to process element content.</p>
<p><b>Recognized Elements:</b></p><ul>
<li><code>data_path</code> → eDataPath (data file search directory)</li>
<li><code>run_name_template</code> → eRunNameTemplate (with inst attribute extraction)</li>
<li><code>marker</code> → eMarker (ROOT marker style code)</li>
<li><code>color</code> → eColor (RGB color specification)</li>
<li><code>units</code> → eUnits (Fourier frequency units)</li>
<li><code>fourier_power</code> → eFourierPower (zero-padding power)</li>
<li><code>apodization</code> → eApodization (windowing function)</li>
<li><code>plot</code> → ePlot (Fourier plot type)</li>
<li><code>phase</code> → ePhase (Fourier phase value)</li>
<li><code>phase_increment</code> → ePhaseIncrement (phase adjustment step)</li>
</ul>
<p><b>Attribute Handling:</b> For <code>run_name_template</code> elements, extracts the <code>inst</code> attribute value and stores it in fCurrentInstrumentName for use when processing the element content.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>XML element name (tag name without angle brackets) </td></tr>
<tr><td class="paramname">attributes</td><td>TList of TXMLAttr objects containing element attributes</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Unrecognized elements leave fKey unchanged (typically eEmpty), causing their content to be ignored. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00349">349</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00310">eApodization</a>, <a class="el" href="PStartupHandler_8h_source.html#l00318">eColor</a>, <a class="el" href="PStartupHandler_8h_source.html#l00304">eDataPath</a>, <a class="el" href="PStartupHandler_8h_source.html#l00309">eFourierPower</a>, <a class="el" href="PStartupHandler_8h_source.html#l00316">eMarker</a>, <a class="el" href="PStartupHandler_8h_source.html#l00312">ePhase</a>, <a class="el" href="PStartupHandler_8h_source.html#l00313">ePhaseIncrement</a>, <a class="el" href="PStartupHandler_8h_source.html#l00311">ePlot</a>, <a class="el" href="PStartupHandler_8h_source.html#l00305">eRunNameTemplate</a>, <a class="el" href="PStartupHandler_8h_source.html#l00308">eUnits</a>, <a class="el" href="PStartupHandler_8h_source.html#l00324">fCurrentInstrumentName</a>, and <a class="el" href="PStartupHandler_8h_source.html#l00321">fKey</a>.</p>
</div>
</div>
<a id="a6a724db9d4193a4888d07621cbd597ec" name="a6a724db9d4193a4888d07621cbd597ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a724db9d4193a4888d07621cbd597ec">&#9670;&#160;</a></span>OnWarning()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PStartupHandler::OnWarning </td>
<td>(</td>
<td class="paramtype">const Char_t *</td> <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SAX callback: Called when XML parser issues a warning. </p>
<p>SAX callback invoked when the XML parser generates a warning.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Warning message (output to stderr)</td></tr>
</table>
</dd>
</dl>
<p>Outputs the warning message to stderr with a "PStartupHandler **WARNING**" prefix. Warnings typically indicate non-fatal issues such as:</p><ul>
<li>Deprecated XML constructs</li>
<li>Minor schema violations</li>
<li>Character encoding issues</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>Warning message from the XML parser</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Parsing continues after warnings; they do not cause failure. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00658">658</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
</div>
</div>
<a id="af5cff2749d7ab62ffd3178d78f22a6cd" name="af5cff2749d7ab62ffd3178d78f22a6cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5cff2749d7ab62ffd3178d78f22a6cd">&#9670;&#160;</a></span>StartupFileExists()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PStartupHandler::StartupFileExists </td>
<td>(</td>
<td class="paramtype">Char_t *</td> <td class="paramname"><span class="paramname"><em>fln</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if a file exists at the specified path. </p>
<p>Checks if a file exists and is readable at the specified path.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fln</td><td>Full path to check </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if file exists and is readable, false otherwise</dd></dl>
<p>Attempts to open the file for reading to verify its existence and accessibility. The file is immediately closed after the check.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fln</td><td>Full filesystem path to the file to check</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if file exists and can be opened for reading, false if file does not exist or cannot be accessed</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This method uses std::ifstream for portability across platforms. It only checks readability, not write permissions. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00834">834</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00148">PStartupHandler()</a>.</p>
</div>
</div>
<a id="a1856293e1f89cb048c8d0f288a214485" name="a1856293e1f89cb048c8d0f288a214485"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1856293e1f89cb048c8d0f288a214485">&#9670;&#160;</a></span>StartupFileFound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Bool_t PStartupHandler::StartupFileFound </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the startup configuration file was successfully located. </p>
<dl class="section return"><dt>Returns</dt><dd>true if musrfit_startup.xml was found (in any search location), false otherwise </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00244">244</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00322">fStartupFileFound</a>.</p>
</div>
</div>
<a id="a9decfe25e92a078a905957517e904c85" name="a9decfe25e92a078a905957517e904c85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9decfe25e92a078a905957517e904c85">&#9670;&#160;</a></span>WriteDefaultStartupFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PStartupHandler::WriteDefaultStartupFile </td>
<td>(</td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>reset_startup_file</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates or overwrites a startup file with default configuration. </p>
<p>Creates or overwrites a startup configuration file with default content.</p>
<p>Writes a complete musrfit_startup.xml with:</p><ul>
<li>Standard PSI data paths</li>
<li>Run name templates for all PSI instruments</li>
<li>Default Fourier settings</li>
<li>Standard marker and color lists</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reset_startup_file</td><td>If true, overwrites existing file at fStartupFilePath. If false, creates new file at $HOME/.musrfit/musrfit_startup.xml. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true on success, false on write failure</dd></dl>
<p>Writes a complete musrfit_startup.xml file containing comprehensive default settings for the musrfit package. This method is called when:</p><ul>
<li>No startup file is found in any search location</li>
<li>User requests reset of existing configuration (reset_startup_file=true)</li>
</ul>
<p><b>File Location:</b></p><ul>
<li>If reset_startup_file=true: Overwrites file at fStartupFilePath</li>
<li>If reset_startup_file=false: Creates new file at $HOME/.musrfit/musrfit_startup.xml (creates .musrfit directory if it doesn't exist)</li>
</ul>
<p><b>Default Content Includes:</b></p>
<p><b>Data Paths:</b></p><ul>
<li>PSI LEM, GPS, GPD, Dolly, Flame, HIFI, LTF, ALC data directories</li>
<li>Both local mount points and NFS paths</li>
</ul>
<p><b>Run Name Templates:</b></p><ul>
<li>Templates for all PSI μSR instruments (GPS, GPD, Dolly, Flame, etc.)</li>
<li>Templates for various data formats (ROOT, binary, MDU)</li>
<li>Year and run number placeholder patterns</li>
</ul>
<p><b>Fourier Settings:</b></p><ul>
<li>Units: Gauss</li>
<li>Fourier power: 0 (no zero-padding)</li>
<li>Apodization: none</li>
<li>Plot type: real_and_imag</li>
<li>Phase: 0.0 degrees</li>
<li>Phase increment: 1.0 degree</li>
</ul>
<p><b>ROOT Settings:</b></p><ul>
<li>Marker list: 14 distinct marker styles</li>
<li>Color list: 10 distinct colors (RGB format)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reset_startup_file</td><td>If true, overwrites existing file at fStartupFilePath. If false, creates new file at $HOME/.musrfit/musrfit_startup.xml.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if file was successfully written, false on error:<ul>
<li>$HOME environment variable not set</li>
<li>Cannot create .musrfit directory</li>
<li>Cannot open file for writing</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a06f25c6c6d082752b1456382752408b6" title="Constructor that locates and parses the musrfit startup configuration file.">PStartupHandler()</a> constructor, <a class="el" href="#a1091d317382d2ce61d73fcb8c38a717a" title="Validates configuration lists and fills missing entries with defaults.">CheckLists()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8cpp_source.html#l00899">899</a> of file <a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.cpp</a>.</p>
<p class="reference">References <a class="el" href="PStartupHandler_8h_source.html#l00323">fStartupFilePath</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00084">startup_path_name</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00148">PStartupHandler()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a2f70aaf675235662a13af51bac862262" name="a2f70aaf675235662a13af51bac862262"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f70aaf675235662a13af51bac862262">&#9670;&#160;</a></span>fColorList</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="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> PStartupHandler::fColorList</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>List of ROOT TColor codes (from RGB) for plotting. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00329">329</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00765">CheckLists()</a>, <a class="el" href="PStartupHandler_8h_source.html#l00292">GetColorList()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00246">~PStartupHandler()</a>.</p>
</div>
</div>
<a id="a7f132eb32a41a9e6149211d246f61f55" name="a7f132eb32a41a9e6149211d246f61f55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f132eb32a41a9e6149211d246f61f55">&#9670;&#160;</a></span>fCurrentInstrumentName</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TString PStartupHandler::fCurrentInstrumentName</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>Instrument name from run_name_template inst attribute. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00324">324</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00349">OnStartElement()</a>.</p>
</div>
</div>
<a id="a56654b7a8ce85ae4bc1a7047d2389287" name="a56654b7a8ce85ae4bc1a7047d2389287"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56654b7a8ce85ae4bc1a7047d2389287">&#9670;&#160;</a></span>fDataPathList</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="PMusr_8h.html#ae50e503cc0f1bbc1fda5b86735ea9983">PStringVector</a> PStartupHandler::fDataPathList</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>List of directories to search for data files. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00326">326</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00765">CheckLists()</a>, <a class="el" href="PStartupHandler_8h_source.html#l00280">GetDataPathList()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00246">~PStartupHandler()</a>.</p>
</div>
</div>
<a id="ab139f4f8950b3da25f534f8f145021e5" name="ab139f4f8950b3da25f534f8f145021e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab139f4f8950b3da25f534f8f145021e5">&#9670;&#160;</a></span>fFourierDefaults</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="structPMsrFourierStructure.html">PMsrFourierStructure</a> PStartupHandler::fFourierDefaults</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>Fourier transform default settings structure. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00325">325</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8h_source.html#l00268">GetFourierDefaults()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00279">OnStartDocument()</a>.</p>
</div>
</div>
<a id="a6e54cc3e0367016ddbe804a4b9cb90f6" name="a6e54cc3e0367016ddbe804a4b9cb90f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e54cc3e0367016ddbe804a4b9cb90f6">&#9670;&#160;</a></span>fKey</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="#a7e57711dce649f49bece4633b99b296a">EKeyWords</a> PStartupHandler::fKey</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>Current XML element type (SAX parser state) </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00321">321</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00395">OnEndElement()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00279">OnStartDocument()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00349">OnStartElement()</a>.</p>
</div>
</div>
<a id="a90561ce5087b5dd85753761714bfe1f0" name="a90561ce5087b5dd85753761714bfe1f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90561ce5087b5dd85753761714bfe1f0">&#9670;&#160;</a></span>fMarkerList</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="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> PStartupHandler::fMarkerList</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>List of ROOT TMarker style codes for plotting. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00328">328</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00765">CheckLists()</a>, <a class="el" href="PStartupHandler_8h_source.html#l00286">GetMarkerList()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00246">~PStartupHandler()</a>.</p>
</div>
</div>
<a id="a03888e42f4251e7fd80fb4aed2e94fb3" name="a03888e42f4251e7fd80fb4aed2e94fb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03888e42f4251e7fd80fb4aed2e94fb3">&#9670;&#160;</a></span>fRunNameTemplate</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="PMusr_8h.html#a01ff11ebda5d1a9096e8c9a65d085778">PRunNameTemplateList</a> PStartupHandler::fRunNameTemplate</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>List of instrument-specific run name patterns. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00327">327</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8h_source.html#l00274">GetRunNameTemplateList()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00452">OnCharacters()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00246">~PStartupHandler()</a>.</p>
</div>
</div>
<a id="a679b8c7d43535bdfc8d3b219d966d62b" name="a679b8c7d43535bdfc8d3b219d966d62b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a679b8c7d43535bdfc8d3b219d966d62b">&#9670;&#160;</a></span>fStartupFileFound</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PStartupHandler::fStartupFileFound</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>True if musrfit_startup.xml was located. </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00322">322</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8cpp_source.html#l00148">PStartupHandler()</a>, and <a class="el" href="PStartupHandler_8h_source.html#l00244">StartupFileFound()</a>.</p>
</div>
</div>
<a id="a75fcf5719c4e220547cc107d386574e8" name="a75fcf5719c4e220547cc107d386574e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75fcf5719c4e220547cc107d386574e8">&#9670;&#160;</a></span>fStartupFilePath</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TString PStartupHandler::fStartupFilePath</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>Full path to located startup file (empty if not found) </p>
<p class="definition">Definition at line <a class="el" href="PStartupHandler_8h_source.html#l00323">323</a> of file <a class="el" href="PStartupHandler_8h_source.html">PStartupHandler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PStartupHandler_8h_source.html#l00251">GetStartupFilePath()</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00148">PStartupHandler()</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00899">WriteDefaultStartupFile()</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="PStartupHandler_8h_source.html">PStartupHandler.h</a></li>
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PStartupHandler_8cpp_source.html">PStartupHandler.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="classPStartupHandler.html">PStartupHandler</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>