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

985 lines
59 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: PPrepFourier 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('classPPrepFourier.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classPPrepFourier-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PPrepFourier Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Prepares time-domain μSR data for Fourier transformation.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1aa21bd9fd4d55950735bbec83fff3a5" id="r_a1aa21bd9fd4d55950735bbec83fff3a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1aa21bd9fd4d55950735bbec83fff3a5">PPrepFourier</a> ()</td></tr>
<tr class="memdesc:a1aa21bd9fd4d55950735bbec83fff3a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor (requires separate configuration) <br /></td></tr>
<tr class="separator:a1aa21bd9fd4d55950735bbec83fff3a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2833ae16430525c2af7b83621f4e1e60" id="r_a2833ae16430525c2af7b83621f4e1e60"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2833ae16430525c2af7b83621f4e1e60">PPrepFourier</a> (const Int_t packing, const Int_t *bkgRange, <a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> bkg)</td></tr>
<tr class="memdesc:a2833ae16430525c2af7b83621f4e1e60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Full constructor with all configuration parameters. <br /></td></tr>
<tr class="separator:a2833ae16430525c2af7b83621f4e1e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf2c672a55f2756ed9167e7ffdfa99ea" id="r_abf2c672a55f2756ed9167e7ffdfa99ea"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abf2c672a55f2756ed9167e7ffdfa99ea">~PPrepFourier</a> ()</td></tr>
<tr class="memdesc:abf2c672a55f2756ed9167e7ffdfa99ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:abf2c672a55f2756ed9167e7ffdfa99ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd10441692ac8ed71026884517503d76" id="r_acd10441692ac8ed71026884517503d76"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acd10441692ac8ed71026884517503d76">SetBkgRange</a> (const Int_t *bkgRange)</td></tr>
<tr class="memdesc:acd10441692ac8ed71026884517503d76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets background range for automatic background calculation. <br /></td></tr>
<tr class="separator:acd10441692ac8ed71026884517503d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b559b72575685af207b58e60ad42078" id="r_a6b559b72575685af207b58e60ad42078"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6b559b72575685af207b58e60ad42078">SetBkg</a> (<a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> bkg)</td></tr>
<tr class="memdesc:a6b559b72575685af207b58e60ad42078"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets explicit background values for each data set. <br /></td></tr>
<tr class="separator:a6b559b72575685af207b58e60ad42078"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a394499b54820ae8cb9d1107792593f0d" id="r_a394499b54820ae8cb9d1107792593f0d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a394499b54820ae8cb9d1107792593f0d">SetPacking</a> (const Int_t packing)</td></tr>
<tr class="memdesc:a394499b54820ae8cb9d1107792593f0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets rebinning/packing factor for data reduction. <br /></td></tr>
<tr class="separator:a394499b54820ae8cb9d1107792593f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a875fe89e6329f9cc12cbc3c7dd1f869a" id="r_a875fe89e6329f9cc12cbc3c7dd1f869a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a875fe89e6329f9cc12cbc3c7dd1f869a">AddData</a> (<a class="el" href="structmusrFT__data.html">musrFT_data</a> &amp;data)</td></tr>
<tr class="memdesc:a875fe89e6329f9cc12cbc3c7dd1f869a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a time-domain data set for processing. <br /></td></tr>
<tr class="separator:a875fe89e6329f9cc12cbc3c7dd1f869a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2bb08c600fe75952a23608baaedec68" id="r_ac2bb08c600fe75952a23608baaedec68"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac2bb08c600fe75952a23608baaedec68">DoBkgCorrection</a> ()</td></tr>
<tr class="memdesc:ac2bb08c600fe75952a23608baaedec68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies background correction to all data sets. <br /></td></tr>
<tr class="separator:ac2bb08c600fe75952a23608baaedec68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3cd12283299c1f97336e17af238bca6" id="r_ad3cd12283299c1f97336e17af238bca6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3cd12283299c1f97336e17af238bca6">DoPacking</a> ()</td></tr>
<tr class="memdesc:ad3cd12283299c1f97336e17af238bca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies rebinning/packing to reduce data points. <br /></td></tr>
<tr class="separator:ad3cd12283299c1f97336e17af238bca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a255e2c01230bb50d86c66e029c1b603b" id="r_a255e2c01230bb50d86c66e029c1b603b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a255e2c01230bb50d86c66e029c1b603b">DoLifeTimeCorrection</a> (Double_t fudge)</td></tr>
<tr class="memdesc:a255e2c01230bb50d86c66e029c1b603b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies muon lifetime correction for theory-free analysis. <br /></td></tr>
<tr class="separator:a255e2c01230bb50d86c66e029c1b603b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace4af02c903de1f5d1c2d60f58593784" id="r_ace4af02c903de1f5d1c2d60f58593784"><td class="memItemLeft" align="right" valign="top">TString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ace4af02c903de1f5d1c2d60f58593784">GetInfo</a> (const UInt_t idx)</td></tr>
<tr class="memdesc:ace4af02c903de1f5d1c2d60f58593784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns metadata string for a specific data set. <br /></td></tr>
<tr class="separator:ace4af02c903de1f5d1c2d60f58593784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d2cd921962f00583ed0c8bf20828ad1" id="r_a6d2cd921962f00583ed0c8bf20828ad1"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6d2cd921962f00583ed0c8bf20828ad1">GetDataSetTag</a> (const UInt_t idx)</td></tr>
<tr class="memdesc:a6d2cd921962f00583ed0c8bf20828ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns data set tag identifier. <br /></td></tr>
<tr class="separator:a6d2cd921962f00583ed0c8bf20828ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62a2eb0b76ec27a974812edf324b51b6" id="r_a62a2eb0b76ec27a974812edf324b51b6"><td class="memItemLeft" align="right" valign="top">UInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a62a2eb0b76ec27a974812edf324b51b6">GetNoOfData</a> ()</td></tr>
<tr class="memdesc:a62a2eb0b76ec27a974812edf324b51b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of stored data sets. <br /></td></tr>
<tr class="separator:a62a2eb0b76ec27a974812edf324b51b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ffcdb36c6bc58cb190b05f079f85de6" id="r_a9ffcdb36c6bc58cb190b05f079f85de6"><td class="memItemLeft" align="right" valign="top">std::vector&lt; TH1F * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9ffcdb36c6bc58cb190b05f079f85de6">GetData</a> ()</td></tr>
<tr class="memdesc:a9ffcdb36c6bc58cb190b05f079f85de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates ROOT histograms for all processed data sets. <br /></td></tr>
<tr class="separator:a9ffcdb36c6bc58cb190b05f079f85de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0c324b07894654c2b4dd8920a1d881" id="r_afc0c324b07894654c2b4dd8920a1d881"><td class="memItemLeft" align="right" valign="top">TH1F *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afc0c324b07894654c2b4dd8920a1d881">GetData</a> (const UInt_t idx)</td></tr>
<tr class="memdesc:afc0c324b07894654c2b4dd8920a1d881"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates ROOT histogram for a specific processed data set. <br /></td></tr>
<tr class="separator:afc0c324b07894654c2b4dd8920a1d881"><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:a0455e674cd1842bb83754b1084763f9d" id="r_a0455e674cd1842bb83754b1084763f9d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0455e674cd1842bb83754b1084763f9d">InitData</a> ()</td></tr>
<tr class="memdesc:a0455e674cd1842bb83754b1084763f9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes processed data from raw data. <br /></td></tr>
<tr class="separator:a0455e674cd1842bb83754b1084763f9d"><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:a4cb1d810af8d7b86f3b93fff0c205987" id="r_a4cb1d810af8d7b86f3b93fff0c205987"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmusrFT__data.html">musrFT_data</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4cb1d810af8d7b86f3b93fff0c205987">fRawData</a></td></tr>
<tr class="memdesc:a4cb1d810af8d7b86f3b93fff0c205987"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw input data sets with metadata. <br /></td></tr>
<tr class="separator:a4cb1d810af8d7b86f3b93fff0c205987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15b3b4d35aa7291a4d617fb1bb099605" id="r_a15b3b4d35aa7291a4d617fb1bb099605"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a15b3b4d35aa7291a4d617fb1bb099605">fData</a></td></tr>
<tr class="memdesc:a15b3b4d35aa7291a4d617fb1bb099605"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processed data (after t0, corrections, packing) <br /></td></tr>
<tr class="separator:a15b3b4d35aa7291a4d617fb1bb099605"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c6fb8719ac8f5a0dc7d58be16e4d3b7" id="r_a0c6fb8719ac8f5a0dc7d58be16e4d3b7"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0c6fb8719ac8f5a0dc7d58be16e4d3b7">fBkgRange</a> [2]</td></tr>
<tr class="memdesc:a0c6fb8719ac8f5a0dc7d58be16e4d3b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Background range: [0]=start bin, [1]=end bin (-1=unused) <br /></td></tr>
<tr class="separator:a0c6fb8719ac8f5a0dc7d58be16e4d3b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5993a545db9948f69edf299ce1618626" id="r_a5993a545db9948f69edf299ce1618626"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5993a545db9948f69edf299ce1618626">fBkg</a></td></tr>
<tr class="memdesc:a5993a545db9948f69edf299ce1618626"><td class="mdescLeft">&#160;</td><td class="mdescRight">Explicit background values (one per data set) <br /></td></tr>
<tr class="separator:a5993a545db9948f69edf299ce1618626"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a267fdf23cb296b79957024ae5d3f65a6" id="r_a267fdf23cb296b79957024ae5d3f65a6"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a267fdf23cb296b79957024ae5d3f65a6">fPacking</a></td></tr>
<tr class="memdesc:a267fdf23cb296b79957024ae5d3f65a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebinning factor (1=no rebinning, N=combine N bins) <br /></td></tr>
<tr class="separator:a267fdf23cb296b79957024ae5d3f65a6"><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>Prepares time-domain μSR data for Fourier transformation. </p>
<p><a class="el" href="classPPrepFourier.html" title="Prepares time-domain μSR data for Fourier transformation.">PPrepFourier</a> is a utility class that processes raw time-domain μSR data before Fourier transformation. It performs essential preprocessing steps:</p><ul>
<li>Background correction (using range or explicit values)</li>
<li>Data rebinning/packing for improved statistics</li>
<li>Muon lifetime correction for theory-free analysis</li>
<li>Time range selection</li>
</ul>
<p>The class handles multiple data sets simultaneously and prepares them for subsequent Fourier analysis without requiring theoretical fit functions.</p>
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line"><a class="code hl_function" href="#a1aa21bd9fd4d55950735bbec83fff3a5">PPrepFourier</a> prep(packing, bkgRange, bkgValues);</div>
<div class="line">prep.AddData(dataSet1);</div>
<div class="line">prep.AddData(dataSet2);</div>
<div class="line">prep.DoBkgCorrection();</div>
<div class="line">prep.DoPacking();</div>
<div class="line">prep.DoLifeTimeCorrection(1.0);</div>
<div class="line">std::vector&lt;TH1F*&gt; histos = prep.GetData();</div>
<div class="ttc" id="aclassPPrepFourier_html_a1aa21bd9fd4d55950735bbec83fff3a5"><div class="ttname"><a href="#a1aa21bd9fd4d55950735bbec83fff3a5">PPrepFourier::PPrepFourier</a></div><div class="ttdeci">PPrepFourier()</div><div class="ttdoc">Default constructor (requires separate configuration)</div><div class="ttdef"><b>Definition</b> <a href="PPrepFourier_8cpp_source.html#l00043">PPrepFourier.cpp:43</a></div></div>
</div><!-- fragment --></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structmusrFT__data.html" title="Data structure holding raw time-domain μSR data with metadata.">musrFT_data</a> for the input data structure </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00087">87</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1aa21bd9fd4d55950735bbec83fff3a5" name="a1aa21bd9fd4d55950735bbec83fff3a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1aa21bd9fd4d55950735bbec83fff3a5">&#9670;&#160;</a></span>PPrepFourier() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PPrepFourier::PPrepFourier </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor (requires separate configuration) </p>
<p>Default constructor that initializes to default values.</p>
<p>Sets background range to unused (-1, -1) and packing to 1 (no rebinning). Background values and data must be set separately using setter methods. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00043">43</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00195">fBkgRange</a>, and <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>.</p>
</div>
</div>
<a id="a2833ae16430525c2af7b83621f4e1e60" name="a2833ae16430525c2af7b83621f4e1e60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2833ae16430525c2af7b83621f4e1e60">&#9670;&#160;</a></span>PPrepFourier() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PPrepFourier::PPrepFourier </td>
<td>(</td>
<td class="paramtype">const Int_t</td> <td class="paramname"><span class="paramname"><em>packing</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Int_t *</td> <td class="paramname"><span class="paramname"><em>bkgRange</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a></td> <td class="paramname"><span class="paramname"><em>bkg</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Full constructor with all configuration parameters. </p>
<p>Full constructor that initializes all configuration parameters.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">packing</td><td>Rebinning factor (1=no rebinning, 2=combine 2 bins, etc.) </td></tr>
<tr><td class="paramname">bkgRange</td><td>Background range [start, end] in bins (-1 if not used) </td></tr>
<tr><td class="paramname">bkg</td><td>Vector of explicit background values (one per data set)</td></tr>
</table>
</dd>
</dl>
<p>Creates a <a class="el" href="classPPrepFourier.html" title="Prepares time-domain μSR data for Fourier transformation.">PPrepFourier</a> instance with complete configuration. Background can be specified either via range (for automatic calculation) or via explicit values (one per data set to be added later).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">packing</td><td>Rebinning factor (1=no rebinning, N=combine N bins) </td></tr>
<tr><td class="paramname">bkgRange</td><td>Background range [start, end] in bins (-1 if not used) </td></tr>
<tr><td class="paramname">bkg</td><td>Vector of explicit background values (one per data set) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00064">64</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00149">SetBkg()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00099">SetBkgRange()</a>.</p>
</div>
</div>
<a id="abf2c672a55f2756ed9167e7ffdfa99ea" name="abf2c672a55f2756ed9167e7ffdfa99ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf2c672a55f2756ed9167e7ffdfa99ea">&#9670;&#160;</a></span>~PPrepFourier()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PPrepFourier::~PPrepFourier </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. </p>
<p>Destructor that cleans up internal data structures.</p>
<p>Clears both raw data and processed data vectors. Note that TH1F objects returned by <a class="el" href="#a9ffcdb36c6bc58cb190b05f079f85de6" title="Creates ROOT histograms for all processed data sets.">GetData()</a> are owned by the caller and not cleaned up here. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00080">80</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, and <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a875fe89e6329f9cc12cbc3c7dd1f869a" name="a875fe89e6329f9cc12cbc3c7dd1f869a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a875fe89e6329f9cc12cbc3c7dd1f869a">&#9670;&#160;</a></span>AddData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::AddData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structmusrFT__data.html">musrFT_data</a> &amp;</td> <td class="paramname"><span class="paramname"><em>data</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>Adds a time-domain data set for processing. </p>
<p>Adds a time-domain data set to the internal collection.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td><a class="el" href="structmusrFT__data.html" title="Data structure holding raw time-domain μSR data with metadata.">musrFT_data</a> structure containing raw data and metadata</td></tr>
</table>
</dd>
</dl>
<p>Stores the raw data and metadata for later processing. Multiple data sets can be added and will be processed together by <a class="el" href="#ac2bb08c600fe75952a23608baaedec68" title="Applies background correction to all data sets.">DoBkgCorrection()</a>, <a class="el" href="#ad3cd12283299c1f97336e17af238bca6" title="Applies rebinning/packing to reduce data points.">DoPacking()</a>, and <a class="el" href="#a255e2c01230bb50d86c66e029c1b603b" title="Applies muon lifetime correction for theory-free analysis.">DoLifeTimeCorrection()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td><a class="el" href="structmusrFT__data.html" title="Data structure holding raw time-domain μSR data with metadata.">musrFT_data</a> structure containing raw histogram data and metadata </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00188">188</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="ac2bb08c600fe75952a23608baaedec68" name="ac2bb08c600fe75952a23608baaedec68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2bb08c600fe75952a23608baaedec68">&#9670;&#160;</a></span>DoBkgCorrection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::DoBkgCorrection </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>Applies background correction to all data sets. </p>
<p>Uses either the background range (averaged over range) or explicit background values. Background is subtracted from all data points.</p>
<p>Subtracts background from each data point. The background can be specified in two ways:</p><ol type="1">
<li>Background range: Calculates average over the specified bin range</li>
<li>Explicit values: Uses the background values set via <a class="el" href="#a6b559b72575685af207b58e60ad42078" title="Sets explicit background values for each data set.">SetBkg()</a></li>
</ol>
<p>If fData is not yet initialized, calls <a class="el" href="#a0455e674cd1842bb83754b1084763f9d" title="Initializes processed data from raw data.">InitData()</a> first. If neither background range nor explicit values are provided, no correction is applied. Validates that background range is within data bounds and that the number of explicit background values matches the number of data sets. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00209">209</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00196">fBkg</a>, <a class="el" href="PPrepFourier_8h_source.html#l00195">fBkgRange</a>, <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00548">InitData()</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="a255e2c01230bb50d86c66e029c1b603b" name="a255e2c01230bb50d86c66e029c1b603b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a255e2c01230bb50d86c66e029c1b603b">&#9670;&#160;</a></span>DoLifeTimeCorrection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::DoLifeTimeCorrection </td>
<td>(</td>
<td class="paramtype">Double_t</td> <td class="paramname"><span class="paramname"><em>fudge</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>Applies muon lifetime correction for theory-free analysis. </p>
<p>Applies muon lifetime correction for theory-free Fourier analysis.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fudge</td><td>Rescaling factor for estimated N0 (typically ~1.0)</td></tr>
</table>
</dd>
</dl>
<p>Multiplies data by exp(t/τ) to remove muon decay, estimates N0 from the average, and normalizes to create asymmetry-like data. Works best for high fields (&gt;few kGauss) where depolarization is minimal.</p>
<p>Performs a theory-free lifetime correction by:</p><ol type="1">
<li>Multiplying data by exp(t/τ_μ) to remove muon decay</li>
<li>Estimating N0 as the average of the corrected data</li>
<li>Subtracting N0 and normalizing by N0 to get asymmetry-like data</li>
</ol>
<p>This approach works well for high fields (&gt;few kGauss) where depolarization is minimal, but may be less accurate for low fields where significant relaxation occurs during the muon lifetime.</p>
<p>If fData is not yet initialized, calls <a class="el" href="#a0455e674cd1842bb83754b1084763f9d" title="Initializes processed data from raw data.">InitData()</a> first. Background correction should typically be applied before lifetime correction.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fudge</td><td>Rescaling factor for estimated N0 (typically ~1.0, allows fine-tuning) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00322">322</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00548">InitData()</a>, and <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="ad3cd12283299c1f97336e17af238bca6" name="ad3cd12283299c1f97336e17af238bca6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3cd12283299c1f97336e17af238bca6">&#9670;&#160;</a></span>DoPacking()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::DoPacking </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>Applies rebinning/packing to reduce data points. </p>
<p>Applies rebinning/packing to reduce the number of data points.</p>
<p>Combines adjacent bins according to the packing factor to improve statistics and reduce the number of data points.</p>
<p>Combines adjacent bins according to the packing factor to improve statistics and reduce data size. Bins are summed in groups of fPacking size. If fPacking=1, no rebinning is performed.</p>
<p>If fData is not yet initialized, calls <a class="el" href="#a0455e674cd1842bb83754b1084763f9d" title="Initializes processed data from raw data.">InitData()</a> first. The time resolution should be adjusted accordingly (multiplied by fPacking) when creating histograms. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00273">273</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>, <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00548">InitData()</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="a9ffcdb36c6bc58cb190b05f079f85de6" name="a9ffcdb36c6bc58cb190b05f079f85de6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ffcdb36c6bc58cb190b05f079f85de6">&#9670;&#160;</a></span>GetData() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; TH1F * &gt; PPrepFourier::GetData </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates ROOT histograms for all processed data sets. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of TH1F pointers (caller owns the histograms)</dd></dl>
<p>Creates histograms with proper time binning, respecting time ranges and packing. The caller is responsible for deleting the histograms.</p>
<p>Converts the processed data into TH1F histograms with proper time binning. The time range, bin width, and histogram titles are taken from the <a class="el" href="structmusrFT__data.html" title="Data structure holding raw time-domain μSR data with metadata.">musrFT_data</a> metadata. The packing factor is applied to the time resolution.</p>
<dl class="section return"><dt>Returns</dt><dd>Vector of TH1F pointers (caller owns and must delete)</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The caller is responsible for deleting the returned histograms. </dd>
<dd>
Returns empty vector if no data is present. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00411">411</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>, and <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="afc0c324b07894654c2b4dd8920a1d881" name="afc0c324b07894654c2b4dd8920a1d881"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc0c324b07894654c2b4dd8920a1d881">&#9670;&#160;</a></span>GetData() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TH1F * PPrepFourier::GetData </td>
<td>(</td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates ROOT histogram for a specific processed data set. </p>
<p>Creates a ROOT histogram for a specific processed data set.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TH1F pointer (caller owns), or nullptr if idx out of range</dd></dl>
<p>Creates a histogram with proper time binning for the specified data set. The caller is responsible for deleting the histogram.</p>
<p>Converts a single processed data set into a TH1F histogram with proper time binning. The time range, bin width, and histogram title are taken from the <a class="el" href="structmusrFT__data.html" title="Data structure holding raw time-domain μSR data with metadata.">musrFT_data</a> metadata. The packing factor is applied to the time resolution.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TH1F pointer (caller owns and must delete), or nullptr if idx out of range</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The caller is responsible for deleting the returned histogram. </dd>
<dd>
Returns nullptr if no data is present or idx is out of range. </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00488">488</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>, and <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
</div>
</div>
<a id="a6d2cd921962f00583ed0c8bf20828ad1" name="a6d2cd921962f00583ed0c8bf20828ad1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d2cd921962f00583ed0c8bf20828ad1">&#9670;&#160;</a></span>GetDataSetTag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Int_t PPrepFourier::GetDataSetTag </td>
<td>(</td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns data set tag identifier. </p>
<p>Returns the data set tag identifier.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data set tag, or -1 if idx out of range</dd></dl>
<p>The data set tag is used to label and group related data sets, particularly for average-per-data-set operations in Fourier analysis.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data set tag value, or -1 if idx out of range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00386">386</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="ace4af02c903de1f5d1c2d60f58593784" name="ace4af02c903de1f5d1c2d60f58593784"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace4af02c903de1f5d1c2d60f58593784">&#9670;&#160;</a></span>GetInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TString PPrepFourier::GetInfo </td>
<td>(</td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns metadata string for a specific data set. </p>
<p>Returns the metadata string for a specific data set.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Metadata string, or empty string if idx out of range</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Data set index </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Metadata string from <a class="el" href="structmusrFT__data.html#ad24d8dc700def7e318df82ffefb7177d" title="Metadata string (run name, histogram info, etc.)">musrFT_data.info</a>, or empty string if idx out of range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00364">364</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
</div>
</div>
<a id="a62a2eb0b76ec27a974812edf324b51b6" name="a62a2eb0b76ec27a974812edf324b51b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62a2eb0b76ec27a974812edf324b51b6">&#9670;&#160;</a></span>GetNoOfData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UInt_t PPrepFourier::GetNoOfData </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns number of stored data sets. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of data sets added via <a class="el" href="#a875fe89e6329f9cc12cbc3c7dd1f869a" title="Adds a time-domain data set for processing.">AddData()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00171">171</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<a id="a0455e674cd1842bb83754b1084763f9d" name="a0455e674cd1842bb83754b1084763f9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0455e674cd1842bb83754b1084763f9d">&#9670;&#160;</a></span>InitData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::InitData </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes processed data from raw data. </p>
<p>Initializes processed data by copying from raw data starting at t0.</p>
<p>Copies raw data to fData starting from t0 bin. This is called automatically by processing methods if needed.</p>
<p>Creates the fData vectors from fRawData, starting from the t0 bin for each data set. This effectively removes pre-t0 bins and creates a working copy for subsequent processing (background correction, packing, lifetime correction).</p>
<p>If t0 is negative or not set, data is copied from bin 0. This method is called automatically by processing methods if fData is not yet initialized. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00548">548</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00194">fData</a>, and <a class="el" href="PPrepFourier_8h_source.html#l00193">fRawData</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00209">DoBkgCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00322">DoLifeTimeCorrection()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00273">DoPacking()</a>.</p>
</div>
</div>
<a id="a6b559b72575685af207b58e60ad42078" name="a6b559b72575685af207b58e60ad42078"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b559b72575685af207b58e60ad42078">&#9670;&#160;</a></span>SetBkg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::SetBkg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a></td> <td class="paramname"><span class="paramname"><em>bkg</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>Sets explicit background values for each data set. </p>
<p>Sets explicit background values for all data sets.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bkg</td><td>Vector of background values (one per histogram)</td></tr>
</table>
</dd>
</dl>
<p>Provides pre-calculated background values (one per data set) instead of calculating them from a background range. This allows different background values for each histogram.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bkg</td><td>Vector of background values (should match number of data sets) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00149">149</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00196">fBkg</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00064">PPrepFourier()</a>.</p>
</div>
</div>
<a id="acd10441692ac8ed71026884517503d76" name="acd10441692ac8ed71026884517503d76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd10441692ac8ed71026884517503d76">&#9670;&#160;</a></span>SetBkgRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::SetBkgRange </td>
<td>(</td>
<td class="paramtype">const Int_t *</td> <td class="paramname"><span class="paramname"><em>bkgRange</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>Sets background range for automatic background calculation. </p>
<p>Sets the background range for automatic background calculation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bkgRange</td><td>Array [start, end] specifying background bins (both ≥-1)</td></tr>
</table>
</dd>
</dl>
<p>Specifies the bin range [start, end] for calculating background by averaging. Values of -1 indicate that background range is not used (explicit background values should be provided instead). Validates that both values are ≥-1 and prints warnings if invalid values are encountered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bkgRange</td><td>Array [start, end] with background bin range (both must be ≥-1) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00099">99</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00195">fBkgRange</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00064">PPrepFourier()</a>.</p>
</div>
</div>
<a id="a394499b54820ae8cb9d1107792593f0d" name="a394499b54820ae8cb9d1107792593f0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a394499b54820ae8cb9d1107792593f0d">&#9670;&#160;</a></span>SetPacking()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PPrepFourier::SetPacking </td>
<td>(</td>
<td class="paramtype">const Int_t</td> <td class="paramname"><span class="paramname"><em>packing</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>Sets rebinning/packing factor for data reduction. </p>
<p>Sets the rebinning/packing factor for data reduction.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">packing</td><td>Number of bins to combine (must be &gt; 0)</td></tr>
</table>
</dd>
</dl>
<p>Specifies how many adjacent bins to combine during <a class="el" href="#ad3cd12283299c1f97336e17af238bca6" title="Applies rebinning/packing to reduce data points.">DoPacking()</a>. A value of 1 means no rebinning, 2 combines pairs of bins, etc. Invalid values (≤0) are rejected with a warning.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">packing</td><td>Number of bins to combine (must be &gt; 0) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8cpp_source.html#l00167">167</a> of file <a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.cpp</a>.</p>
<p class="reference">References <a class="el" href="PPrepFourier_8h_source.html#l00197">fPacking</a>.</p>
<p class="reference">Referenced by <a class="el" href="musrFT_8cpp_source.html#l00996">main()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a5993a545db9948f69edf299ce1618626" name="a5993a545db9948f69edf299ce1618626"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5993a545db9948f69edf299ce1618626">&#9670;&#160;</a></span>fBkg</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#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> PPrepFourier::fBkg</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>Explicit background values (one per data set) </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00196">196</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00209">DoBkgCorrection()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00149">SetBkg()</a>.</p>
</div>
</div>
<a id="a0c6fb8719ac8f5a0dc7d58be16e4d3b7" name="a0c6fb8719ac8f5a0dc7d58be16e4d3b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c6fb8719ac8f5a0dc7d58be16e4d3b7">&#9670;&#160;</a></span>fBkgRange</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PPrepFourier::fBkgRange[2]</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>Background range: [0]=start bin, [1]=end bin (-1=unused) </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00195">195</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00209">DoBkgCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00043">PPrepFourier()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00099">SetBkgRange()</a>.</p>
</div>
</div>
<a id="a15b3b4d35aa7291a4d617fb1bb099605" name="a15b3b4d35aa7291a4d617fb1bb099605"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15b3b4d35aa7291a4d617fb1bb099605">&#9670;&#160;</a></span>fData</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&gt; PPrepFourier::fData</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>Processed data (after t0, corrections, packing) </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00194">194</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00209">DoBkgCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00322">DoLifeTimeCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00273">DoPacking()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00411">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00488">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00548">InitData()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00080">~PPrepFourier()</a>.</p>
</div>
</div>
<a id="a267fdf23cb296b79957024ae5d3f65a6" name="a267fdf23cb296b79957024ae5d3f65a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a267fdf23cb296b79957024ae5d3f65a6">&#9670;&#160;</a></span>fPacking</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PPrepFourier::fPacking</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>Rebinning factor (1=no rebinning, N=combine N bins) </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00197">197</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00273">DoPacking()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00411">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00488">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00043">PPrepFourier()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00064">PPrepFourier()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00167">SetPacking()</a>.</p>
</div>
</div>
<a id="a4cb1d810af8d7b86f3b93fff0c205987" name="a4cb1d810af8d7b86f3b93fff0c205987"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cb1d810af8d7b86f3b93fff0c205987">&#9670;&#160;</a></span>fRawData</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="structmusrFT__data.html">musrFT_data</a>&gt; PPrepFourier::fRawData</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>Raw input data sets with metadata. </p>
<p class="definition">Definition at line <a class="el" href="PPrepFourier_8h_source.html#l00193">193</a> of file <a class="el" href="PPrepFourier_8h_source.html">PPrepFourier.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PPrepFourier_8cpp_source.html#l00188">AddData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00209">DoBkgCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00322">DoLifeTimeCorrection()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00273">DoPacking()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00411">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00488">GetData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00386">GetDataSetTag()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00364">GetInfo()</a>, <a class="el" href="PPrepFourier_8h_source.html#l00171">GetNoOfData()</a>, <a class="el" href="PPrepFourier_8cpp_source.html#l00548">InitData()</a>, and <a class="el" href="PPrepFourier_8cpp_source.html#l00080">~PPrepFourier()</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="PPrepFourier_8h_source.html">PPrepFourier.h</a></li>
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PPrepFourier_8cpp_source.html">PPrepFourier.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="classPPrepFourier.html">PPrepFourier</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>