Documentation updated

This commit is contained in:
fjosw 2023-01-07 10:24:16 +00:00
parent c636b39ba8
commit 4b0451613c
4 changed files with 4839 additions and 4869 deletions

File diff suppressed because it is too large Load diff

View file

@ -1028,205 +1028,204 @@
</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> <span class="n">proj_qtop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a>
</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="k">return</span> <span class="n">reto</span>
</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="k">return</span> <span class="n">reto</span>
</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a>
</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a>
</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a>
</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a>
</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> Parameters</span>
</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> ----------</span>
</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a><span class="sd"> path : str</span>
</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> path of the measurement files</span>
</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a><span class="sd"> prefix : str</span>
</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> prefix of the measurement files, e.g. &lt;prefix&gt;_id0_r0.ms.dat</span>
</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a><span class="sd"> c : double</span>
</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="sd"> target : int</span>
</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a><span class="sd"> dtr_cnfg : int</span>
</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> between two configs.</span>
</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a><span class="sd"> steps : int</span>
</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a><span class="sd"> version : str</span>
</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a><span class="sd"> L : int</span>
</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a><span class="sd"> this in the header</span>
</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a><span class="sd"> r_start : list</span>
</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a><span class="sd"> later on with other Obs</span>
</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a><span class="sd"> r_stop : list</span>
</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a><span class="sd"> files : list</span>
</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a><span class="sd"> specify the exact files that need to be read</span>
</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a><span class="sd"> names : list</span>
</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="sd"> Has to have the appropriate length</span>
</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a><span class="sd"> Zeuthen_flow : bool</span>
</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a><span class="sd"> for version==&#39;sfqcd&#39; If False, the Wilson flow is used.</span>
</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a>
</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;&#39;target&#39; has to be an integer.&quot;</span><span class="p">)</span>
</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a>
</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;integer_charge&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a>
</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a>
</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a><span class="sd"> Parameters</span>
</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> ----------</span>
</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> path : str</span>
</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a><span class="sd"> path of the measurement files</span>
</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> prefix : str</span>
</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a><span class="sd"> prefix of the measurement files, e.g. &lt;prefix&gt;_id0_r0.ms.dat</span>
</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> c : double</span>
</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="sd"> target : int</span>
</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a><span class="sd"> dtr_cnfg : int</span>
</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a><span class="sd"> between two configs.</span>
</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a><span class="sd"> steps : int</span>
</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a><span class="sd"> version : str</span>
</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a><span class="sd"> L : int</span>
</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="sd"> this in the header</span>
</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a><span class="sd"> r_start : list</span>
</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a><span class="sd"> later on with other Obs</span>
</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a><span class="sd"> r_stop : list</span>
</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a><span class="sd"> files : list</span>
</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a><span class="sd"> specify the exact files that need to be read</span>
</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a><span class="sd"> names : list</span>
</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a><span class="sd"> Has to have the appropriate length</span>
</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="sd"> Zeuthen_flow : bool</span>
</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a><span class="sd"> for version==&#39;sfqcd&#39; If False, the Wilson flow is used.</span>
</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a>
</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;&#39;target&#39; has to be an integer.&quot;</span><span class="p">)</span>
</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a>
</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;integer_charge&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a>
</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a>
</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a>
</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a>
</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a>
</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a><span class="sd"> Parameters</span>
</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a><span class="sd"> ----------</span>
</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a><span class="sd"> path : str</span>
</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a><span class="sd"> The directory to search for the files in.</span>
</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a><span class="sd"> prefix : str</span>
</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a><span class="sd"> The prefix to match the files against.</span>
</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a><span class="sd"> qc : str</span>
</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a><span class="sd"> The quark combination extension to match the files against.</span>
</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a><span class="sd"> corr : str</span>
</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a><span class="sd"> The correlator to extract data for.</span>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a><span class="sd"> sep : str, optional</span>
</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a><span class="sd"> The separator to use when parsing the replika names.</span>
</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a><span class="sd"> **kwargs</span>
</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a><span class="sd"> Additional keyword arguments. The following keyword arguments are recognized:</span>
</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a>
</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a><span class="sd"> - names (List[str]): A list of names to use for the replicas.</span>
</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a>
</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a><span class="sd"> Returns</span>
</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a><span class="sd"> -------</span>
</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a><span class="sd"> Corr</span>
</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a><span class="sd"> A complex valued `Corr` object containing the data read from the files. In case of boudary to bulk correlators.</span>
</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a><span class="sd"> or</span>
</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a><span class="sd"> CObs</span>
</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a><span class="sd"> A complex valued `CObs` object containing the data read from the files. In case of boudary to boundary correlators.</span>
</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a>
</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a><span class="sd"> Parameters</span>
</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a><span class="sd"> ----------</span>
</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a><span class="sd"> path : str</span>
</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a><span class="sd"> The directory to search for the files in.</span>
</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a><span class="sd"> prefix : str</span>
</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a><span class="sd"> The prefix to match the files against.</span>
</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a><span class="sd"> qc : str</span>
</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a><span class="sd"> The quark combination extension to match the files against.</span>
</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a><span class="sd"> corr : str</span>
</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a><span class="sd"> The correlator to extract data for.</span>
</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a><span class="sd"> sep : str, optional</span>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a><span class="sd"> The separator to use when parsing the replika names.</span>
</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a><span class="sd"> **kwargs</span>
</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a><span class="sd"> Additional keyword arguments. The following keyword arguments are recognized:</span>
</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a>
</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a><span class="sd"> - names (List[str]): A list of names to use for the replicas.</span>
</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a>
</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a><span class="sd"> Returns</span>
</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a><span class="sd"> -------</span>
</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a><span class="sd"> Corr</span>
</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a><span class="sd"> A complex valued `Corr` object containing the data read from the files. In case of boudary to bulk correlators.</span>
</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a><span class="sd"> or</span>
</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a><span class="sd"> CObs</span>
</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a><span class="sd"> A complex valued `CObs` object containing the data read from the files. In case of boudary to boundary correlators.</span>
</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a>
</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a>
</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a>
</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a><span class="sd"> Raises</span>
</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a><span class="sd"> ------</span>
</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a><span class="sd"> FileNotFoundError</span>
</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a><span class="sd"> If no files matching the specified prefix and quark combination extension are found in the specified directory.</span>
</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a><span class="sd"> IOError</span>
</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a><span class="sd"> If there is an error reading a file.</span>
</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a><span class="sd"> struct.error</span>
</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a><span class="sd"> If there is an error unpacking binary data.</span>
</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a>
</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">found</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">):</span>
</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="n">found</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="k">break</span>
</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a>
</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">found</span><span class="p">:</span>
</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;*.ms5_xsf_&quot;</span> <span class="o">+</span> <span class="n">qc</span> <span class="o">+</span> <span class="s2">&quot;.dat&quot;</span><span class="p">):</span>
</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sep</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;|r&quot;</span> <span class="o">+</span> <span class="n">f</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a>
</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="k">if</span> <span class="s2">&quot;names&quot;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">names</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;names&quot;</span><span class="p">)</span>
</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a>
</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">cnfgs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">realsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">imagsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="n">repnum</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a>
</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="n">kappa</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="n">csw</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">dF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">zF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a>
</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="n">bnd</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a>
</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="n">placesBI</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;gS&quot;</span><span class="p">,</span> <span class="s2">&quot;gP&quot;</span><span class="p">,</span>
</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="s2">&quot;gA&quot;</span><span class="p">,</span> <span class="s2">&quot;gV&quot;</span><span class="p">,</span>
</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="s2">&quot;gVt&quot;</span><span class="p">,</span> <span class="s2">&quot;lA&quot;</span><span class="p">,</span>
</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="s2">&quot;lV&quot;</span><span class="p">,</span> <span class="s2">&quot;lVt&quot;</span><span class="p">,</span>
</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="s2">&quot;lT&quot;</span><span class="p">,</span> <span class="s2">&quot;lTt&quot;</span><span class="p">]</span>
</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="n">placesBB</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;g1&quot;</span><span class="p">,</span> <span class="s2">&quot;l1&quot;</span><span class="p">]</span>
</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a>
</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="c1"># the chunks have the following structure:</span>
</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="c1"># confignumber, 10x timedependent complex correlators as doubles, 2x timeindependent complex correlators as doubles</span>
</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a>
</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="n">chunksize</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">packstr</span> <span class="o">=</span> <span class="s1">&#39;=i&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="n">cnfgs</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">realsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="n">imagsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tmax</span><span class="p">):</span>
</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a>
</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="n">cnfgt</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">chunksize</span><span class="p">)</span>
</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">cnfgt</span><span class="p">:</span>
</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="k">break</span>
</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="n">asascii</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">packstr</span><span class="p">,</span> <span class="n">cnfgt</span><span class="p">)</span>
</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="n">cnfg</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="n">cnfgs</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">)</span>
</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a>
</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="k">if</span> <span class="n">corr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">placesBB</span><span class="p">:</span>
</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span><span class="p">]</span>
</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span>
</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a>
</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">corrres</span> <span class="o">=</span> <span class="p">[[],</span> <span class="p">[]]</span>
</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)):</span>
</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">corrres</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="n">repnum</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a>
</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="n">s</span> <span class="o">=</span> <span class="s2">&quot;Read correlator &quot;</span> <span class="o">+</span> <span class="n">corr</span> <span class="o">+</span> <span class="s2">&quot; from &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">repnum</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; replika with &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">repnum</span><span class="p">):</span>
</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot;, &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot; samples&quot;</span>
</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Asserted run parameters:</span><span class="se">\n</span><span class="s2"> T:&quot;</span><span class="p">,</span> <span class="n">tmax</span><span class="p">,</span> <span class="s2">&quot;kappa:&quot;</span><span class="p">,</span> <span class="n">kappa</span><span class="p">,</span> <span class="s2">&quot;csw:&quot;</span><span class="p">,</span> <span class="n">csw</span><span class="p">,</span> <span class="s2">&quot;dF:&quot;</span><span class="p">,</span> <span class="n">dF</span><span class="p">,</span> <span class="s2">&quot;zF:&quot;</span><span class="p">,</span> <span class="n">zF</span><span class="p">,</span> <span class="s2">&quot;bnd:&quot;</span><span class="p">,</span> <span class="n">bnd</span><span class="p">)</span>
</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a>
</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="c1"># we have the data now... but we need to re format the whole thing and put it into Corr objects.</span>
</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a>
</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="n">compObs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a>
</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="n">compObs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CObs</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">),</span>
</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">Obs</span><span class="p">([</span><span class="n">imagsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">)))</span>
</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a>
</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">return</span> <span class="n">compObs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="k">return</span> <span class="n">Corr</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span>
</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a><span class="sd"> Raises</span>
</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a><span class="sd"> ------</span>
</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a><span class="sd"> FileNotFoundError</span>
</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a><span class="sd"> If no files matching the specified prefix and quark combination extension are found in the specified directory.</span>
</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a><span class="sd"> IOError</span>
</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a><span class="sd"> If there is an error reading a file.</span>
</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a><span class="sd"> struct.error</span>
</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a><span class="sd"> If there is an error unpacking binary data.</span>
</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a>
</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">found</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">):</span>
</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="n">found</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="k">break</span>
</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a>
</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">found</span><span class="p">:</span>
</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;*.ms5_xsf_&quot;</span> <span class="o">+</span> <span class="n">qc</span> <span class="o">+</span> <span class="s2">&quot;.dat&quot;</span><span class="p">):</span>
</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sep</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;|r&quot;</span> <span class="o">+</span> <span class="n">f</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a>
</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="k">if</span> <span class="s2">&quot;names&quot;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="n">names</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;names&quot;</span><span class="p">)</span>
</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a>
</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="n">cnfgs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">realsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">imagsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">repnum</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a>
</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="n">kappa</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="n">csw</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="n">dF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="n">zF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a>
</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">bnd</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a>
</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="n">placesBI</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;gS&quot;</span><span class="p">,</span> <span class="s2">&quot;gP&quot;</span><span class="p">,</span>
</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="s2">&quot;gA&quot;</span><span class="p">,</span> <span class="s2">&quot;gV&quot;</span><span class="p">,</span>
</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="s2">&quot;gVt&quot;</span><span class="p">,</span> <span class="s2">&quot;lA&quot;</span><span class="p">,</span>
</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="s2">&quot;lV&quot;</span><span class="p">,</span> <span class="s2">&quot;lVt&quot;</span><span class="p">,</span>
</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="s2">&quot;lT&quot;</span><span class="p">,</span> <span class="s2">&quot;lTt&quot;</span><span class="p">]</span>
</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="n">placesBB</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;g1&quot;</span><span class="p">,</span> <span class="s2">&quot;l1&quot;</span><span class="p">]</span>
</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a>
</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="c1"># the chunks have the following structure:</span>
</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="c1"># confignumber, 10x timedependent complex correlators as doubles, 2x timeindependent complex correlators as doubles</span>
</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a>
</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="n">chunksize</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="n">packstr</span> <span class="o">=</span> <span class="s1">&#39;=i&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">cnfgs</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="n">realsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">imagsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tmax</span><span class="p">):</span>
</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a>
</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="n">cnfgt</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">chunksize</span><span class="p">)</span>
</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">cnfgt</span><span class="p">:</span>
</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">break</span>
</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="n">asascii</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">packstr</span><span class="p">,</span> <span class="n">cnfgt</span><span class="p">)</span>
</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="n">cnfg</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="n">cnfgs</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">)</span>
</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a>
</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="k">if</span> <span class="n">corr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">placesBB</span><span class="p">:</span>
</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span><span class="p">]</span>
</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span>
</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a>
</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="n">corrres</span> <span class="o">=</span> <span class="p">[[],</span> <span class="p">[]]</span>
</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)):</span>
</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">corrres</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">repnum</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a>
</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="n">s</span> <span class="o">=</span> <span class="s2">&quot;Read correlator &quot;</span> <span class="o">+</span> <span class="n">corr</span> <span class="o">+</span> <span class="s2">&quot; from &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">repnum</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; replika with &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">repnum</span><span class="p">):</span>
</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot;, &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot; samples&quot;</span>
</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Asserted run parameters:</span><span class="se">\n</span><span class="s2"> T:&quot;</span><span class="p">,</span> <span class="n">tmax</span><span class="p">,</span> <span class="s2">&quot;kappa:&quot;</span><span class="p">,</span> <span class="n">kappa</span><span class="p">,</span> <span class="s2">&quot;csw:&quot;</span><span class="p">,</span> <span class="n">csw</span><span class="p">,</span> <span class="s2">&quot;dF:&quot;</span><span class="p">,</span> <span class="n">dF</span><span class="p">,</span> <span class="s2">&quot;zF:&quot;</span><span class="p">,</span> <span class="n">zF</span><span class="p">,</span> <span class="s2">&quot;bnd:&quot;</span><span class="p">,</span> <span class="n">bnd</span><span class="p">)</span>
</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a>
</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="c1"># we have the data now... but we need to re format the whole thing and put it into Corr objects.</span>
</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a>
</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="n">compObs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a>
</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="n">compObs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CObs</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">),</span>
</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="n">Obs</span><span class="p">([</span><span class="n">imagsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">)))</span>
</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a>
</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="k">return</span> <span class="n">compObs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="k">return</span> <span class="n">Corr</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span>
</span></pre></div>
@ -2076,8 +2075,7 @@ postfix of the file to read, e.g. '.gfms.dat' for openQCD-files</li>
</span><span id="qtop_projection-933"><a href="#qtop_projection-933"><span class="linenos">933</span></a> <span class="n">proj_qtop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span> <span class="k">if</span> <span class="nb">round</span><span class="p">(</span><span class="n">qtop</span><span class="o">.</span><span class="n">r_values</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+</span> <span class="n">q</span><span class="p">)</span> <span class="o">==</span> <span class="n">target</span> <span class="k">else</span> <span class="mi">0</span> <span class="k">for</span> <span class="n">q</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">n</span><span class="p">]]))</span>
</span><span id="qtop_projection-934"><a href="#qtop_projection-934"><span class="linenos">934</span></a>
</span><span id="qtop_projection-935"><a href="#qtop_projection-935"><span class="linenos">935</span></a> <span class="n">reto</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">proj_qtop</span><span class="p">,</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="p">[</span><span class="n">qtop</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">qtop</span><span class="o">.</span><span class="n">names</span><span class="p">])</span>
</span><span id="qtop_projection-936"><a href="#qtop_projection-936"><span class="linenos">936</span></a> <span class="n">reto</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">qtop</span><span class="o">.</span><span class="n">is_merged</span>
</span><span id="qtop_projection-937"><a href="#qtop_projection-937"><span class="linenos">937</span></a> <span class="k">return</span> <span class="n">reto</span>
</span><span id="qtop_projection-936"><a href="#qtop_projection-936"><span class="linenos">936</span></a> <span class="k">return</span> <span class="n">reto</span>
</span></pre></div>
@ -2106,57 +2104,57 @@ Specifies the topological sector to be reweighted to (default 0)</li>
</div>
<a class="headerlink" href="#read_qtop_sector"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-940"><a href="#read_qtop_sector-940"><span class="linenos">940</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_qtop_sector-941"><a href="#read_qtop_sector-941"><span class="linenos">941</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="read_qtop_sector-942"><a href="#read_qtop_sector-942"><span class="linenos">942</span></a>
</span><span id="read_qtop_sector-943"><a href="#read_qtop_sector-943"><span class="linenos">943</span></a><span class="sd"> Parameters</span>
</span><span id="read_qtop_sector-944"><a href="#read_qtop_sector-944"><span class="linenos">944</span></a><span class="sd"> ----------</span>
</span><span id="read_qtop_sector-945"><a href="#read_qtop_sector-945"><span class="linenos">945</span></a><span class="sd"> path : str</span>
</span><span id="read_qtop_sector-946"><a href="#read_qtop_sector-946"><span class="linenos">946</span></a><span class="sd"> path of the measurement files</span>
</span><span id="read_qtop_sector-947"><a href="#read_qtop_sector-947"><span class="linenos">947</span></a><span class="sd"> prefix : str</span>
</span><span id="read_qtop_sector-948"><a href="#read_qtop_sector-948"><span class="linenos">948</span></a><span class="sd"> prefix of the measurement files, e.g. &lt;prefix&gt;_id0_r0.ms.dat</span>
</span><span id="read_qtop_sector-949"><a href="#read_qtop_sector-949"><span class="linenos">949</span></a><span class="sd"> c : double</span>
</span><span id="read_qtop_sector-950"><a href="#read_qtop_sector-950"><span class="linenos">950</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
</span><span id="read_qtop_sector-951"><a href="#read_qtop_sector-951"><span class="linenos">951</span></a><span class="sd"> target : int</span>
</span><span id="read_qtop_sector-952"><a href="#read_qtop_sector-952"><span class="linenos">952</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
</span><span id="read_qtop_sector-953"><a href="#read_qtop_sector-953"><span class="linenos">953</span></a><span class="sd"> dtr_cnfg : int</span>
</span><span id="read_qtop_sector-954"><a href="#read_qtop_sector-954"><span class="linenos">954</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
</span><span id="read_qtop_sector-955"><a href="#read_qtop_sector-955"><span class="linenos">955</span></a><span class="sd"> between two configs.</span>
</span><span id="read_qtop_sector-956"><a href="#read_qtop_sector-956"><span class="linenos">956</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
</span><span id="read_qtop_sector-957"><a href="#read_qtop_sector-957"><span class="linenos">957</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
</span><span id="read_qtop_sector-958"><a href="#read_qtop_sector-958"><span class="linenos">958</span></a><span class="sd"> steps : int</span>
</span><span id="read_qtop_sector-959"><a href="#read_qtop_sector-959"><span class="linenos">959</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
</span><span id="read_qtop_sector-960"><a href="#read_qtop_sector-960"><span class="linenos">960</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
</span><span id="read_qtop_sector-961"><a href="#read_qtop_sector-961"><span class="linenos">961</span></a><span class="sd"> version : str</span>
</span><span id="read_qtop_sector-962"><a href="#read_qtop_sector-962"><span class="linenos">962</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
</span><span id="read_qtop_sector-963"><a href="#read_qtop_sector-963"><span class="linenos">963</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
</span><span id="read_qtop_sector-964"><a href="#read_qtop_sector-964"><span class="linenos">964</span></a><span class="sd"> L : int</span>
</span><span id="read_qtop_sector-965"><a href="#read_qtop_sector-965"><span class="linenos">965</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
</span><span id="read_qtop_sector-966"><a href="#read_qtop_sector-966"><span class="linenos">966</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
</span><span id="read_qtop_sector-967"><a href="#read_qtop_sector-967"><span class="linenos">967</span></a><span class="sd"> this in the header</span>
</span><span id="read_qtop_sector-968"><a href="#read_qtop_sector-968"><span class="linenos">968</span></a><span class="sd"> r_start : list</span>
</span><span id="read_qtop_sector-969"><a href="#read_qtop_sector-969"><span class="linenos">969</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
</span><span id="read_qtop_sector-970"><a href="#read_qtop_sector-970"><span class="linenos">970</span></a><span class="sd"> later on with other Obs</span>
</span><span id="read_qtop_sector-971"><a href="#read_qtop_sector-971"><span class="linenos">971</span></a><span class="sd"> r_stop : list</span>
</span><span id="read_qtop_sector-972"><a href="#read_qtop_sector-972"><span class="linenos">972</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
</span><span id="read_qtop_sector-973"><a href="#read_qtop_sector-973"><span class="linenos">973</span></a><span class="sd"> files : list</span>
</span><span id="read_qtop_sector-974"><a href="#read_qtop_sector-974"><span class="linenos">974</span></a><span class="sd"> specify the exact files that need to be read</span>
</span><span id="read_qtop_sector-975"><a href="#read_qtop_sector-975"><span class="linenos">975</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
</span><span id="read_qtop_sector-976"><a href="#read_qtop_sector-976"><span class="linenos">976</span></a><span class="sd"> names : list</span>
</span><span id="read_qtop_sector-977"><a href="#read_qtop_sector-977"><span class="linenos">977</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
</span><span id="read_qtop_sector-978"><a href="#read_qtop_sector-978"><span class="linenos">978</span></a><span class="sd"> Has to have the appropriate length</span>
</span><span id="read_qtop_sector-979"><a href="#read_qtop_sector-979"><span class="linenos">979</span></a><span class="sd"> Zeuthen_flow : bool</span>
</span><span id="read_qtop_sector-980"><a href="#read_qtop_sector-980"><span class="linenos">980</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
</span><span id="read_qtop_sector-981"><a href="#read_qtop_sector-981"><span class="linenos">981</span></a><span class="sd"> for version==&#39;sfqcd&#39; If False, the Wilson flow is used.</span>
</span><span id="read_qtop_sector-982"><a href="#read_qtop_sector-982"><span class="linenos">982</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_qtop_sector-983"><a href="#read_qtop_sector-983"><span class="linenos">983</span></a>
</span><span id="read_qtop_sector-984"><a href="#read_qtop_sector-984"><span class="linenos">984</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
</span><span id="read_qtop_sector-985"><a href="#read_qtop_sector-985"><span class="linenos">985</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;&#39;target&#39; has to be an integer.&quot;</span><span class="p">)</span>
</span><span id="read_qtop_sector-986"><a href="#read_qtop_sector-986"><span class="linenos">986</span></a>
</span><span id="read_qtop_sector-987"><a href="#read_qtop_sector-987"><span class="linenos">987</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;integer_charge&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="read_qtop_sector-988"><a href="#read_qtop_sector-988"><span class="linenos">988</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="read_qtop_sector-989"><a href="#read_qtop_sector-989"><span class="linenos">989</span></a>
</span><span id="read_qtop_sector-990"><a href="#read_qtop_sector-990"><span class="linenos">990</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_qtop_sector-939"><a href="#read_qtop_sector-939"><span class="linenos">939</span></a><span class="k">def</span> <span class="nf">read_qtop_sector</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_qtop_sector-940"><a href="#read_qtop_sector-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Constructs reweighting factors to a specified topological sector.</span>
</span><span id="read_qtop_sector-941"><a href="#read_qtop_sector-941"><span class="linenos">941</span></a>
</span><span id="read_qtop_sector-942"><a href="#read_qtop_sector-942"><span class="linenos">942</span></a><span class="sd"> Parameters</span>
</span><span id="read_qtop_sector-943"><a href="#read_qtop_sector-943"><span class="linenos">943</span></a><span class="sd"> ----------</span>
</span><span id="read_qtop_sector-944"><a href="#read_qtop_sector-944"><span class="linenos">944</span></a><span class="sd"> path : str</span>
</span><span id="read_qtop_sector-945"><a href="#read_qtop_sector-945"><span class="linenos">945</span></a><span class="sd"> path of the measurement files</span>
</span><span id="read_qtop_sector-946"><a href="#read_qtop_sector-946"><span class="linenos">946</span></a><span class="sd"> prefix : str</span>
</span><span id="read_qtop_sector-947"><a href="#read_qtop_sector-947"><span class="linenos">947</span></a><span class="sd"> prefix of the measurement files, e.g. &lt;prefix&gt;_id0_r0.ms.dat</span>
</span><span id="read_qtop_sector-948"><a href="#read_qtop_sector-948"><span class="linenos">948</span></a><span class="sd"> c : double</span>
</span><span id="read_qtop_sector-949"><a href="#read_qtop_sector-949"><span class="linenos">949</span></a><span class="sd"> Smearing radius in units of the lattice extent, c = sqrt(8 t0) / L</span>
</span><span id="read_qtop_sector-950"><a href="#read_qtop_sector-950"><span class="linenos">950</span></a><span class="sd"> target : int</span>
</span><span id="read_qtop_sector-951"><a href="#read_qtop_sector-951"><span class="linenos">951</span></a><span class="sd"> Specifies the topological sector to be reweighted to (default 0)</span>
</span><span id="read_qtop_sector-952"><a href="#read_qtop_sector-952"><span class="linenos">952</span></a><span class="sd"> dtr_cnfg : int</span>
</span><span id="read_qtop_sector-953"><a href="#read_qtop_sector-953"><span class="linenos">953</span></a><span class="sd"> (optional) parameter that specifies the number of trajectories</span>
</span><span id="read_qtop_sector-954"><a href="#read_qtop_sector-954"><span class="linenos">954</span></a><span class="sd"> between two configs.</span>
</span><span id="read_qtop_sector-955"><a href="#read_qtop_sector-955"><span class="linenos">955</span></a><span class="sd"> if it is not set, the distance between two measurements</span>
</span><span id="read_qtop_sector-956"><a href="#read_qtop_sector-956"><span class="linenos">956</span></a><span class="sd"> in the file is assumed to be the distance between two configurations.</span>
</span><span id="read_qtop_sector-957"><a href="#read_qtop_sector-957"><span class="linenos">957</span></a><span class="sd"> steps : int</span>
</span><span id="read_qtop_sector-958"><a href="#read_qtop_sector-958"><span class="linenos">958</span></a><span class="sd"> (optional) Distance between two configurations in units of trajectories /</span>
</span><span id="read_qtop_sector-959"><a href="#read_qtop_sector-959"><span class="linenos">959</span></a><span class="sd"> cycles. Assumed to be the distance between two measurements * dtr_cnfg if not given</span>
</span><span id="read_qtop_sector-960"><a href="#read_qtop_sector-960"><span class="linenos">960</span></a><span class="sd"> version : str</span>
</span><span id="read_qtop_sector-961"><a href="#read_qtop_sector-961"><span class="linenos">961</span></a><span class="sd"> version string of the openQCD (sfqcd) version used to create</span>
</span><span id="read_qtop_sector-962"><a href="#read_qtop_sector-962"><span class="linenos">962</span></a><span class="sd"> the ensemble. Default is 2.0. May also be set to sfqcd.</span>
</span><span id="read_qtop_sector-963"><a href="#read_qtop_sector-963"><span class="linenos">963</span></a><span class="sd"> L : int</span>
</span><span id="read_qtop_sector-964"><a href="#read_qtop_sector-964"><span class="linenos">964</span></a><span class="sd"> spatial length of the lattice in L/a.</span>
</span><span id="read_qtop_sector-965"><a href="#read_qtop_sector-965"><span class="linenos">965</span></a><span class="sd"> HAS to be set if version != sfqcd, since openQCD does not provide</span>
</span><span id="read_qtop_sector-966"><a href="#read_qtop_sector-966"><span class="linenos">966</span></a><span class="sd"> this in the header</span>
</span><span id="read_qtop_sector-967"><a href="#read_qtop_sector-967"><span class="linenos">967</span></a><span class="sd"> r_start : list</span>
</span><span id="read_qtop_sector-968"><a href="#read_qtop_sector-968"><span class="linenos">968</span></a><span class="sd"> offset of the first ensemble, making it easier to match</span>
</span><span id="read_qtop_sector-969"><a href="#read_qtop_sector-969"><span class="linenos">969</span></a><span class="sd"> later on with other Obs</span>
</span><span id="read_qtop_sector-970"><a href="#read_qtop_sector-970"><span class="linenos">970</span></a><span class="sd"> r_stop : list</span>
</span><span id="read_qtop_sector-971"><a href="#read_qtop_sector-971"><span class="linenos">971</span></a><span class="sd"> last configurations that need to be read (per replicum)</span>
</span><span id="read_qtop_sector-972"><a href="#read_qtop_sector-972"><span class="linenos">972</span></a><span class="sd"> files : list</span>
</span><span id="read_qtop_sector-973"><a href="#read_qtop_sector-973"><span class="linenos">973</span></a><span class="sd"> specify the exact files that need to be read</span>
</span><span id="read_qtop_sector-974"><a href="#read_qtop_sector-974"><span class="linenos">974</span></a><span class="sd"> from path, practical if e.g. only one replicum is needed</span>
</span><span id="read_qtop_sector-975"><a href="#read_qtop_sector-975"><span class="linenos">975</span></a><span class="sd"> names : list</span>
</span><span id="read_qtop_sector-976"><a href="#read_qtop_sector-976"><span class="linenos">976</span></a><span class="sd"> Alternative labeling for replicas/ensembles.</span>
</span><span id="read_qtop_sector-977"><a href="#read_qtop_sector-977"><span class="linenos">977</span></a><span class="sd"> Has to have the appropriate length</span>
</span><span id="read_qtop_sector-978"><a href="#read_qtop_sector-978"><span class="linenos">978</span></a><span class="sd"> Zeuthen_flow : bool</span>
</span><span id="read_qtop_sector-979"><a href="#read_qtop_sector-979"><span class="linenos">979</span></a><span class="sd"> (optional) If True, the Zeuthen flow is used for Qtop. Only possible</span>
</span><span id="read_qtop_sector-980"><a href="#read_qtop_sector-980"><span class="linenos">980</span></a><span class="sd"> for version==&#39;sfqcd&#39; If False, the Wilson flow is used.</span>
</span><span id="read_qtop_sector-981"><a href="#read_qtop_sector-981"><span class="linenos">981</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_qtop_sector-982"><a href="#read_qtop_sector-982"><span class="linenos">982</span></a>
</span><span id="read_qtop_sector-983"><a href="#read_qtop_sector-983"><span class="linenos">983</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">int</span><span class="p">):</span>
</span><span id="read_qtop_sector-984"><a href="#read_qtop_sector-984"><span class="linenos">984</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;&#39;target&#39; has to be an integer.&quot;</span><span class="p">)</span>
</span><span id="read_qtop_sector-985"><a href="#read_qtop_sector-985"><span class="linenos">985</span></a>
</span><span id="read_qtop_sector-986"><a href="#read_qtop_sector-986"><span class="linenos">986</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;integer_charge&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="read_qtop_sector-987"><a href="#read_qtop_sector-987"><span class="linenos">987</span></a> <span class="n">qtop</span> <span class="o">=</span> <span class="n">read_qtop</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="read_qtop_sector-988"><a href="#read_qtop_sector-988"><span class="linenos">988</span></a>
</span><span id="read_qtop_sector-989"><a href="#read_qtop_sector-989"><span class="linenos">989</span></a> <span class="k">return</span> <span class="n">qtop_projection</span><span class="p">(</span><span class="n">qtop</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">)</span>
</span></pre></div>
@ -2218,148 +2216,148 @@ for version=='sfqcd' If False, the Wilson flow is used.</li>
</div>
<a class="headerlink" href="#read_ms5_xsf"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ms5_xsf-993"><a href="#read_ms5_xsf-993"><span class="linenos"> 993</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_ms5_xsf-994"><a href="#read_ms5_xsf-994"><span class="linenos"> 994</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="read_ms5_xsf-995"><a href="#read_ms5_xsf-995"><span class="linenos"> 995</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="read_ms5_xsf-996"><a href="#read_ms5_xsf-996"><span class="linenos"> 996</span></a>
</span><span id="read_ms5_xsf-997"><a href="#read_ms5_xsf-997"><span class="linenos"> 997</span></a><span class="sd"> Parameters</span>
</span><span id="read_ms5_xsf-998"><a href="#read_ms5_xsf-998"><span class="linenos"> 998</span></a><span class="sd"> ----------</span>
</span><span id="read_ms5_xsf-999"><a href="#read_ms5_xsf-999"><span class="linenos"> 999</span></a><span class="sd"> path : str</span>
</span><span id="read_ms5_xsf-1000"><a href="#read_ms5_xsf-1000"><span class="linenos">1000</span></a><span class="sd"> The directory to search for the files in.</span>
</span><span id="read_ms5_xsf-1001"><a href="#read_ms5_xsf-1001"><span class="linenos">1001</span></a><span class="sd"> prefix : str</span>
</span><span id="read_ms5_xsf-1002"><a href="#read_ms5_xsf-1002"><span class="linenos">1002</span></a><span class="sd"> The prefix to match the files against.</span>
</span><span id="read_ms5_xsf-1003"><a href="#read_ms5_xsf-1003"><span class="linenos">1003</span></a><span class="sd"> qc : str</span>
</span><span id="read_ms5_xsf-1004"><a href="#read_ms5_xsf-1004"><span class="linenos">1004</span></a><span class="sd"> The quark combination extension to match the files against.</span>
</span><span id="read_ms5_xsf-1005"><a href="#read_ms5_xsf-1005"><span class="linenos">1005</span></a><span class="sd"> corr : str</span>
</span><span id="read_ms5_xsf-1006"><a href="#read_ms5_xsf-1006"><span class="linenos">1006</span></a><span class="sd"> The correlator to extract data for.</span>
</span><span id="read_ms5_xsf-1007"><a href="#read_ms5_xsf-1007"><span class="linenos">1007</span></a><span class="sd"> sep : str, optional</span>
</span><span id="read_ms5_xsf-1008"><a href="#read_ms5_xsf-1008"><span class="linenos">1008</span></a><span class="sd"> The separator to use when parsing the replika names.</span>
</span><span id="read_ms5_xsf-1009"><a href="#read_ms5_xsf-1009"><span class="linenos">1009</span></a><span class="sd"> **kwargs</span>
</span><span id="read_ms5_xsf-1010"><a href="#read_ms5_xsf-1010"><span class="linenos">1010</span></a><span class="sd"> Additional keyword arguments. The following keyword arguments are recognized:</span>
</span><span id="read_ms5_xsf-1011"><a href="#read_ms5_xsf-1011"><span class="linenos">1011</span></a>
</span><span id="read_ms5_xsf-1012"><a href="#read_ms5_xsf-1012"><span class="linenos">1012</span></a><span class="sd"> - names (List[str]): A list of names to use for the replicas.</span>
</span><span id="read_ms5_xsf-1013"><a href="#read_ms5_xsf-1013"><span class="linenos">1013</span></a>
</span><span id="read_ms5_xsf-1014"><a href="#read_ms5_xsf-1014"><span class="linenos">1014</span></a><span class="sd"> Returns</span>
</span><span id="read_ms5_xsf-1015"><a href="#read_ms5_xsf-1015"><span class="linenos">1015</span></a><span class="sd"> -------</span>
</span><span id="read_ms5_xsf-1016"><a href="#read_ms5_xsf-1016"><span class="linenos">1016</span></a><span class="sd"> Corr</span>
</span><span id="read_ms5_xsf-1017"><a href="#read_ms5_xsf-1017"><span class="linenos">1017</span></a><span class="sd"> A complex valued `Corr` object containing the data read from the files. In case of boudary to bulk correlators.</span>
</span><span id="read_ms5_xsf-1018"><a href="#read_ms5_xsf-1018"><span class="linenos">1018</span></a><span class="sd"> or</span>
</span><span id="read_ms5_xsf-1019"><a href="#read_ms5_xsf-1019"><span class="linenos">1019</span></a><span class="sd"> CObs</span>
</span><span id="read_ms5_xsf-1020"><a href="#read_ms5_xsf-1020"><span class="linenos">1020</span></a><span class="sd"> A complex valued `CObs` object containing the data read from the files. In case of boudary to boundary correlators.</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="read_ms5_xsf-992"><a href="#read_ms5_xsf-992"><span class="linenos"> 992</span></a><span class="k">def</span> <span class="nf">read_ms5_xsf</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">qc</span><span class="p">,</span> <span class="n">corr</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="read_ms5_xsf-993"><a href="#read_ms5_xsf-993"><span class="linenos"> 993</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="read_ms5_xsf-994"><a href="#read_ms5_xsf-994"><span class="linenos"> 994</span></a><span class="sd"> Read data from files in the specified directory with the specified prefix and quark combination extension, and return a `Corr` object containing the data.</span>
</span><span id="read_ms5_xsf-995"><a href="#read_ms5_xsf-995"><span class="linenos"> 995</span></a>
</span><span id="read_ms5_xsf-996"><a href="#read_ms5_xsf-996"><span class="linenos"> 996</span></a><span class="sd"> Parameters</span>
</span><span id="read_ms5_xsf-997"><a href="#read_ms5_xsf-997"><span class="linenos"> 997</span></a><span class="sd"> ----------</span>
</span><span id="read_ms5_xsf-998"><a href="#read_ms5_xsf-998"><span class="linenos"> 998</span></a><span class="sd"> path : str</span>
</span><span id="read_ms5_xsf-999"><a href="#read_ms5_xsf-999"><span class="linenos"> 999</span></a><span class="sd"> The directory to search for the files in.</span>
</span><span id="read_ms5_xsf-1000"><a href="#read_ms5_xsf-1000"><span class="linenos">1000</span></a><span class="sd"> prefix : str</span>
</span><span id="read_ms5_xsf-1001"><a href="#read_ms5_xsf-1001"><span class="linenos">1001</span></a><span class="sd"> The prefix to match the files against.</span>
</span><span id="read_ms5_xsf-1002"><a href="#read_ms5_xsf-1002"><span class="linenos">1002</span></a><span class="sd"> qc : str</span>
</span><span id="read_ms5_xsf-1003"><a href="#read_ms5_xsf-1003"><span class="linenos">1003</span></a><span class="sd"> The quark combination extension to match the files against.</span>
</span><span id="read_ms5_xsf-1004"><a href="#read_ms5_xsf-1004"><span class="linenos">1004</span></a><span class="sd"> corr : str</span>
</span><span id="read_ms5_xsf-1005"><a href="#read_ms5_xsf-1005"><span class="linenos">1005</span></a><span class="sd"> The correlator to extract data for.</span>
</span><span id="read_ms5_xsf-1006"><a href="#read_ms5_xsf-1006"><span class="linenos">1006</span></a><span class="sd"> sep : str, optional</span>
</span><span id="read_ms5_xsf-1007"><a href="#read_ms5_xsf-1007"><span class="linenos">1007</span></a><span class="sd"> The separator to use when parsing the replika names.</span>
</span><span id="read_ms5_xsf-1008"><a href="#read_ms5_xsf-1008"><span class="linenos">1008</span></a><span class="sd"> **kwargs</span>
</span><span id="read_ms5_xsf-1009"><a href="#read_ms5_xsf-1009"><span class="linenos">1009</span></a><span class="sd"> Additional keyword arguments. The following keyword arguments are recognized:</span>
</span><span id="read_ms5_xsf-1010"><a href="#read_ms5_xsf-1010"><span class="linenos">1010</span></a>
</span><span id="read_ms5_xsf-1011"><a href="#read_ms5_xsf-1011"><span class="linenos">1011</span></a><span class="sd"> - names (List[str]): A list of names to use for the replicas.</span>
</span><span id="read_ms5_xsf-1012"><a href="#read_ms5_xsf-1012"><span class="linenos">1012</span></a>
</span><span id="read_ms5_xsf-1013"><a href="#read_ms5_xsf-1013"><span class="linenos">1013</span></a><span class="sd"> Returns</span>
</span><span id="read_ms5_xsf-1014"><a href="#read_ms5_xsf-1014"><span class="linenos">1014</span></a><span class="sd"> -------</span>
</span><span id="read_ms5_xsf-1015"><a href="#read_ms5_xsf-1015"><span class="linenos">1015</span></a><span class="sd"> Corr</span>
</span><span id="read_ms5_xsf-1016"><a href="#read_ms5_xsf-1016"><span class="linenos">1016</span></a><span class="sd"> A complex valued `Corr` object containing the data read from the files. In case of boudary to bulk correlators.</span>
</span><span id="read_ms5_xsf-1017"><a href="#read_ms5_xsf-1017"><span class="linenos">1017</span></a><span class="sd"> or</span>
</span><span id="read_ms5_xsf-1018"><a href="#read_ms5_xsf-1018"><span class="linenos">1018</span></a><span class="sd"> CObs</span>
</span><span id="read_ms5_xsf-1019"><a href="#read_ms5_xsf-1019"><span class="linenos">1019</span></a><span class="sd"> A complex valued `CObs` object containing the data read from the files. In case of boudary to boundary correlators.</span>
</span><span id="read_ms5_xsf-1020"><a href="#read_ms5_xsf-1020"><span class="linenos">1020</span></a>
</span><span id="read_ms5_xsf-1021"><a href="#read_ms5_xsf-1021"><span class="linenos">1021</span></a>
</span><span id="read_ms5_xsf-1022"><a href="#read_ms5_xsf-1022"><span class="linenos">1022</span></a>
</span><span id="read_ms5_xsf-1023"><a href="#read_ms5_xsf-1023"><span class="linenos">1023</span></a><span class="sd"> Raises</span>
</span><span id="read_ms5_xsf-1024"><a href="#read_ms5_xsf-1024"><span class="linenos">1024</span></a><span class="sd"> ------</span>
</span><span id="read_ms5_xsf-1025"><a href="#read_ms5_xsf-1025"><span class="linenos">1025</span></a><span class="sd"> FileNotFoundError</span>
</span><span id="read_ms5_xsf-1026"><a href="#read_ms5_xsf-1026"><span class="linenos">1026</span></a><span class="sd"> If no files matching the specified prefix and quark combination extension are found in the specified directory.</span>
</span><span id="read_ms5_xsf-1027"><a href="#read_ms5_xsf-1027"><span class="linenos">1027</span></a><span class="sd"> IOError</span>
</span><span id="read_ms5_xsf-1028"><a href="#read_ms5_xsf-1028"><span class="linenos">1028</span></a><span class="sd"> If there is an error reading a file.</span>
</span><span id="read_ms5_xsf-1029"><a href="#read_ms5_xsf-1029"><span class="linenos">1029</span></a><span class="sd"> struct.error</span>
</span><span id="read_ms5_xsf-1030"><a href="#read_ms5_xsf-1030"><span class="linenos">1030</span></a><span class="sd"> If there is an error unpacking binary data.</span>
</span><span id="read_ms5_xsf-1031"><a href="#read_ms5_xsf-1031"><span class="linenos">1031</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_ms5_xsf-1032"><a href="#read_ms5_xsf-1032"><span class="linenos">1032</span></a>
</span><span id="read_ms5_xsf-1033"><a href="#read_ms5_xsf-1033"><span class="linenos">1033</span></a> <span class="n">found</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1034"><a href="#read_ms5_xsf-1034"><span class="linenos">1034</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1035"><a href="#read_ms5_xsf-1035"><span class="linenos">1035</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1036"><a href="#read_ms5_xsf-1036"><span class="linenos">1036</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1037"><a href="#read_ms5_xsf-1037"><span class="linenos">1037</span></a> <span class="n">found</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1038"><a href="#read_ms5_xsf-1038"><span class="linenos">1038</span></a> <span class="k">break</span>
</span><span id="read_ms5_xsf-1039"><a href="#read_ms5_xsf-1039"><span class="linenos">1039</span></a>
</span><span id="read_ms5_xsf-1040"><a href="#read_ms5_xsf-1040"><span class="linenos">1040</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">found</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1041"><a href="#read_ms5_xsf-1041"><span class="linenos">1041</span></a> <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;*.ms5_xsf_&quot;</span> <span class="o">+</span> <span class="n">qc</span> <span class="o">+</span> <span class="s2">&quot;.dat&quot;</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1042"><a href="#read_ms5_xsf-1042"><span class="linenos">1042</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1043"><a href="#read_ms5_xsf-1043"><span class="linenos">1043</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sep</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1044"><a href="#read_ms5_xsf-1044"><span class="linenos">1044</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;|r&quot;</span> <span class="o">+</span> <span class="n">f</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1045"><a href="#read_ms5_xsf-1045"><span class="linenos">1045</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1046"><a href="#read_ms5_xsf-1046"><span class="linenos">1046</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1047"><a href="#read_ms5_xsf-1047"><span class="linenos">1047</span></a> <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1048"><a href="#read_ms5_xsf-1048"><span class="linenos">1048</span></a>
</span><span id="read_ms5_xsf-1049"><a href="#read_ms5_xsf-1049"><span class="linenos">1049</span></a> <span class="k">if</span> <span class="s2">&quot;names&quot;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1050"><a href="#read_ms5_xsf-1050"><span class="linenos">1050</span></a> <span class="n">names</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;names&quot;</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1051"><a href="#read_ms5_xsf-1051"><span class="linenos">1051</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1052"><a href="#read_ms5_xsf-1052"><span class="linenos">1052</span></a> <span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1053"><a href="#read_ms5_xsf-1053"><span class="linenos">1053</span></a>
</span><span id="read_ms5_xsf-1054"><a href="#read_ms5_xsf-1054"><span class="linenos">1054</span></a> <span class="n">cnfgs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1055"><a href="#read_ms5_xsf-1055"><span class="linenos">1055</span></a> <span class="n">realsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1056"><a href="#read_ms5_xsf-1056"><span class="linenos">1056</span></a> <span class="n">imagsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1057"><a href="#read_ms5_xsf-1057"><span class="linenos">1057</span></a> <span class="n">repnum</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="read_ms5_xsf-1058"><a href="#read_ms5_xsf-1058"><span class="linenos">1058</span></a> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1059"><a href="#read_ms5_xsf-1059"><span class="linenos">1059</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1060"><a href="#read_ms5_xsf-1060"><span class="linenos">1060</span></a>
</span><span id="read_ms5_xsf-1061"><a href="#read_ms5_xsf-1061"><span class="linenos">1061</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1062"><a href="#read_ms5_xsf-1062"><span class="linenos">1062</span></a> <span class="n">kappa</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1063"><a href="#read_ms5_xsf-1063"><span class="linenos">1063</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1064"><a href="#read_ms5_xsf-1064"><span class="linenos">1064</span></a> <span class="n">csw</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1065"><a href="#read_ms5_xsf-1065"><span class="linenos">1065</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1066"><a href="#read_ms5_xsf-1066"><span class="linenos">1066</span></a> <span class="n">dF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1067"><a href="#read_ms5_xsf-1067"><span class="linenos">1067</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1068"><a href="#read_ms5_xsf-1068"><span class="linenos">1068</span></a> <span class="n">zF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1069"><a href="#read_ms5_xsf-1069"><span class="linenos">1069</span></a>
</span><span id="read_ms5_xsf-1070"><a href="#read_ms5_xsf-1070"><span class="linenos">1070</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1071"><a href="#read_ms5_xsf-1071"><span class="linenos">1071</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1072"><a href="#read_ms5_xsf-1072"><span class="linenos">1072</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1073"><a href="#read_ms5_xsf-1073"><span class="linenos">1073</span></a> <span class="n">bnd</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1074"><a href="#read_ms5_xsf-1074"><span class="linenos">1074</span></a>
</span><span id="read_ms5_xsf-1075"><a href="#read_ms5_xsf-1075"><span class="linenos">1075</span></a> <span class="n">placesBI</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;gS&quot;</span><span class="p">,</span> <span class="s2">&quot;gP&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1076"><a href="#read_ms5_xsf-1076"><span class="linenos">1076</span></a> <span class="s2">&quot;gA&quot;</span><span class="p">,</span> <span class="s2">&quot;gV&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1077"><a href="#read_ms5_xsf-1077"><span class="linenos">1077</span></a> <span class="s2">&quot;gVt&quot;</span><span class="p">,</span> <span class="s2">&quot;lA&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1078"><a href="#read_ms5_xsf-1078"><span class="linenos">1078</span></a> <span class="s2">&quot;lV&quot;</span><span class="p">,</span> <span class="s2">&quot;lVt&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1079"><a href="#read_ms5_xsf-1079"><span class="linenos">1079</span></a> <span class="s2">&quot;lT&quot;</span><span class="p">,</span> <span class="s2">&quot;lTt&quot;</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1080"><a href="#read_ms5_xsf-1080"><span class="linenos">1080</span></a> <span class="n">placesBB</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;g1&quot;</span><span class="p">,</span> <span class="s2">&quot;l1&quot;</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1081"><a href="#read_ms5_xsf-1081"><span class="linenos">1081</span></a>
</span><span id="read_ms5_xsf-1082"><a href="#read_ms5_xsf-1082"><span class="linenos">1082</span></a> <span class="c1"># the chunks have the following structure:</span>
</span><span id="read_ms5_xsf-1083"><a href="#read_ms5_xsf-1083"><span class="linenos">1083</span></a> <span class="c1"># confignumber, 10x timedependent complex correlators as doubles, 2x timeindependent complex correlators as doubles</span>
</span><span id="read_ms5_xsf-1084"><a href="#read_ms5_xsf-1084"><span class="linenos">1084</span></a>
</span><span id="read_ms5_xsf-1085"><a href="#read_ms5_xsf-1085"><span class="linenos">1085</span></a> <span class="n">chunksize</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1086"><a href="#read_ms5_xsf-1086"><span class="linenos">1086</span></a> <span class="n">packstr</span> <span class="o">=</span> <span class="s1">&#39;=i&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1087"><a href="#read_ms5_xsf-1087"><span class="linenos">1087</span></a> <span class="n">cnfgs</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1088"><a href="#read_ms5_xsf-1088"><span class="linenos">1088</span></a> <span class="n">realsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1089"><a href="#read_ms5_xsf-1089"><span class="linenos">1089</span></a> <span class="n">imagsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1090"><a href="#read_ms5_xsf-1090"><span class="linenos">1090</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tmax</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1091"><a href="#read_ms5_xsf-1091"><span class="linenos">1091</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1092"><a href="#read_ms5_xsf-1092"><span class="linenos">1092</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1093"><a href="#read_ms5_xsf-1093"><span class="linenos">1093</span></a>
</span><span id="read_ms5_xsf-1094"><a href="#read_ms5_xsf-1094"><span class="linenos">1094</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1095"><a href="#read_ms5_xsf-1095"><span class="linenos">1095</span></a> <span class="n">cnfgt</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">chunksize</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1096"><a href="#read_ms5_xsf-1096"><span class="linenos">1096</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">cnfgt</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1097"><a href="#read_ms5_xsf-1097"><span class="linenos">1097</span></a> <span class="k">break</span>
</span><span id="read_ms5_xsf-1098"><a href="#read_ms5_xsf-1098"><span class="linenos">1098</span></a> <span class="n">asascii</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">packstr</span><span class="p">,</span> <span class="n">cnfgt</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1099"><a href="#read_ms5_xsf-1099"><span class="linenos">1099</span></a> <span class="n">cnfg</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1100"><a href="#read_ms5_xsf-1100"><span class="linenos">1100</span></a> <span class="n">cnfgs</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1101"><a href="#read_ms5_xsf-1101"><span class="linenos">1101</span></a>
</span><span id="read_ms5_xsf-1102"><a href="#read_ms5_xsf-1102"><span class="linenos">1102</span></a> <span class="k">if</span> <span class="n">corr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">placesBB</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1103"><a href="#read_ms5_xsf-1103"><span class="linenos">1103</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1104"><a href="#read_ms5_xsf-1104"><span class="linenos">1104</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1105"><a href="#read_ms5_xsf-1105"><span class="linenos">1105</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1106"><a href="#read_ms5_xsf-1106"><span class="linenos">1106</span></a>
</span><span id="read_ms5_xsf-1107"><a href="#read_ms5_xsf-1107"><span class="linenos">1107</span></a> <span class="n">corrres</span> <span class="o">=</span> <span class="p">[[],</span> <span class="p">[]]</span>
</span><span id="read_ms5_xsf-1108"><a href="#read_ms5_xsf-1108"><span class="linenos">1108</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1109"><a href="#read_ms5_xsf-1109"><span class="linenos">1109</span></a> <span class="n">corrres</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1110"><a href="#read_ms5_xsf-1110"><span class="linenos">1110</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1111"><a href="#read_ms5_xsf-1111"><span class="linenos">1111</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1112"><a href="#read_ms5_xsf-1112"><span class="linenos">1112</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1113"><a href="#read_ms5_xsf-1113"><span class="linenos">1113</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1114"><a href="#read_ms5_xsf-1114"><span class="linenos">1114</span></a> <span class="n">repnum</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="read_ms5_xsf-1115"><a href="#read_ms5_xsf-1115"><span class="linenos">1115</span></a>
</span><span id="read_ms5_xsf-1116"><a href="#read_ms5_xsf-1116"><span class="linenos">1116</span></a> <span class="n">s</span> <span class="o">=</span> <span class="s2">&quot;Read correlator &quot;</span> <span class="o">+</span> <span class="n">corr</span> <span class="o">+</span> <span class="s2">&quot; from &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">repnum</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; replika with &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="read_ms5_xsf-1117"><a href="#read_ms5_xsf-1117"><span class="linenos">1117</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">repnum</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1118"><a href="#read_ms5_xsf-1118"><span class="linenos">1118</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot;, &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="read_ms5_xsf-1119"><a href="#read_ms5_xsf-1119"><span class="linenos">1119</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot; samples&quot;</span>
</span><span id="read_ms5_xsf-1120"><a href="#read_ms5_xsf-1120"><span class="linenos">1120</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1121"><a href="#read_ms5_xsf-1121"><span class="linenos">1121</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Asserted run parameters:</span><span class="se">\n</span><span class="s2"> T:&quot;</span><span class="p">,</span> <span class="n">tmax</span><span class="p">,</span> <span class="s2">&quot;kappa:&quot;</span><span class="p">,</span> <span class="n">kappa</span><span class="p">,</span> <span class="s2">&quot;csw:&quot;</span><span class="p">,</span> <span class="n">csw</span><span class="p">,</span> <span class="s2">&quot;dF:&quot;</span><span class="p">,</span> <span class="n">dF</span><span class="p">,</span> <span class="s2">&quot;zF:&quot;</span><span class="p">,</span> <span class="n">zF</span><span class="p">,</span> <span class="s2">&quot;bnd:&quot;</span><span class="p">,</span> <span class="n">bnd</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1122"><a href="#read_ms5_xsf-1122"><span class="linenos">1122</span></a>
</span><span id="read_ms5_xsf-1123"><a href="#read_ms5_xsf-1123"><span class="linenos">1123</span></a> <span class="c1"># we have the data now... but we need to re format the whole thing and put it into Corr objects.</span>
</span><span id="read_ms5_xsf-1124"><a href="#read_ms5_xsf-1124"><span class="linenos">1124</span></a>
</span><span id="read_ms5_xsf-1125"><a href="#read_ms5_xsf-1125"><span class="linenos">1125</span></a> <span class="n">compObs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1126"><a href="#read_ms5_xsf-1126"><span class="linenos">1126</span></a>
</span><span id="read_ms5_xsf-1127"><a href="#read_ms5_xsf-1127"><span class="linenos">1127</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1128"><a href="#read_ms5_xsf-1128"><span class="linenos">1128</span></a> <span class="n">compObs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CObs</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">),</span>
</span><span id="read_ms5_xsf-1129"><a href="#read_ms5_xsf-1129"><span class="linenos">1129</span></a> <span class="n">Obs</span><span class="p">([</span><span class="n">imagsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">)))</span>
</span><span id="read_ms5_xsf-1130"><a href="#read_ms5_xsf-1130"><span class="linenos">1130</span></a>
</span><span id="read_ms5_xsf-1131"><a href="#read_ms5_xsf-1131"><span class="linenos">1131</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1132"><a href="#read_ms5_xsf-1132"><span class="linenos">1132</span></a> <span class="k">return</span> <span class="n">compObs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1133"><a href="#read_ms5_xsf-1133"><span class="linenos">1133</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1134"><a href="#read_ms5_xsf-1134"><span class="linenos">1134</span></a> <span class="k">return</span> <span class="n">Corr</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1022"><a href="#read_ms5_xsf-1022"><span class="linenos">1022</span></a><span class="sd"> Raises</span>
</span><span id="read_ms5_xsf-1023"><a href="#read_ms5_xsf-1023"><span class="linenos">1023</span></a><span class="sd"> ------</span>
</span><span id="read_ms5_xsf-1024"><a href="#read_ms5_xsf-1024"><span class="linenos">1024</span></a><span class="sd"> FileNotFoundError</span>
</span><span id="read_ms5_xsf-1025"><a href="#read_ms5_xsf-1025"><span class="linenos">1025</span></a><span class="sd"> If no files matching the specified prefix and quark combination extension are found in the specified directory.</span>
</span><span id="read_ms5_xsf-1026"><a href="#read_ms5_xsf-1026"><span class="linenos">1026</span></a><span class="sd"> IOError</span>
</span><span id="read_ms5_xsf-1027"><a href="#read_ms5_xsf-1027"><span class="linenos">1027</span></a><span class="sd"> If there is an error reading a file.</span>
</span><span id="read_ms5_xsf-1028"><a href="#read_ms5_xsf-1028"><span class="linenos">1028</span></a><span class="sd"> struct.error</span>
</span><span id="read_ms5_xsf-1029"><a href="#read_ms5_xsf-1029"><span class="linenos">1029</span></a><span class="sd"> If there is an error unpacking binary data.</span>
</span><span id="read_ms5_xsf-1030"><a href="#read_ms5_xsf-1030"><span class="linenos">1030</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="read_ms5_xsf-1031"><a href="#read_ms5_xsf-1031"><span class="linenos">1031</span></a>
</span><span id="read_ms5_xsf-1032"><a href="#read_ms5_xsf-1032"><span class="linenos">1032</span></a> <span class="n">found</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1033"><a href="#read_ms5_xsf-1033"><span class="linenos">1033</span></a> <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1034"><a href="#read_ms5_xsf-1034"><span class="linenos">1034</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1035"><a href="#read_ms5_xsf-1035"><span class="linenos">1035</span></a> <span class="k">for</span> <span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span><span class="p">)</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1036"><a href="#read_ms5_xsf-1036"><span class="linenos">1036</span></a> <span class="n">found</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">filenames</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1037"><a href="#read_ms5_xsf-1037"><span class="linenos">1037</span></a> <span class="k">break</span>
</span><span id="read_ms5_xsf-1038"><a href="#read_ms5_xsf-1038"><span class="linenos">1038</span></a>
</span><span id="read_ms5_xsf-1039"><a href="#read_ms5_xsf-1039"><span class="linenos">1039</span></a> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">found</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1040"><a href="#read_ms5_xsf-1040"><span class="linenos">1040</span></a> <span class="k">if</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;*.ms5_xsf_&quot;</span> <span class="o">+</span> <span class="n">qc</span> <span class="o">+</span> <span class="s2">&quot;.dat&quot;</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1041"><a href="#read_ms5_xsf-1041"><span class="linenos">1041</span></a> <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1042"><a href="#read_ms5_xsf-1042"><span class="linenos">1042</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sep</span> <span class="o">==</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1043"><a href="#read_ms5_xsf-1043"><span class="linenos">1043</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;|r&quot;</span> <span class="o">+</span> <span class="n">f</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1044"><a href="#read_ms5_xsf-1044"><span class="linenos">1044</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1045"><a href="#read_ms5_xsf-1045"><span class="linenos">1045</span></a> <span class="n">names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1046"><a href="#read_ms5_xsf-1046"><span class="linenos">1046</span></a> <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1047"><a href="#read_ms5_xsf-1047"><span class="linenos">1047</span></a>
</span><span id="read_ms5_xsf-1048"><a href="#read_ms5_xsf-1048"><span class="linenos">1048</span></a> <span class="k">if</span> <span class="s2">&quot;names&quot;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1049"><a href="#read_ms5_xsf-1049"><span class="linenos">1049</span></a> <span class="n">names</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;names&quot;</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1050"><a href="#read_ms5_xsf-1050"><span class="linenos">1050</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1051"><a href="#read_ms5_xsf-1051"><span class="linenos">1051</span></a> <span class="n">names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1052"><a href="#read_ms5_xsf-1052"><span class="linenos">1052</span></a>
</span><span id="read_ms5_xsf-1053"><a href="#read_ms5_xsf-1053"><span class="linenos">1053</span></a> <span class="n">cnfgs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1054"><a href="#read_ms5_xsf-1054"><span class="linenos">1054</span></a> <span class="n">realsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1055"><a href="#read_ms5_xsf-1055"><span class="linenos">1055</span></a> <span class="n">imagsamples</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1056"><a href="#read_ms5_xsf-1056"><span class="linenos">1056</span></a> <span class="n">repnum</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="read_ms5_xsf-1057"><a href="#read_ms5_xsf-1057"><span class="linenos">1057</span></a> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1058"><a href="#read_ms5_xsf-1058"><span class="linenos">1058</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">file</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1059"><a href="#read_ms5_xsf-1059"><span class="linenos">1059</span></a>
</span><span id="read_ms5_xsf-1060"><a href="#read_ms5_xsf-1060"><span class="linenos">1060</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1061"><a href="#read_ms5_xsf-1061"><span class="linenos">1061</span></a> <span class="n">kappa</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1062"><a href="#read_ms5_xsf-1062"><span class="linenos">1062</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1063"><a href="#read_ms5_xsf-1063"><span class="linenos">1063</span></a> <span class="n">csw</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1064"><a href="#read_ms5_xsf-1064"><span class="linenos">1064</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1065"><a href="#read_ms5_xsf-1065"><span class="linenos">1065</span></a> <span class="n">dF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1066"><a href="#read_ms5_xsf-1066"><span class="linenos">1066</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1067"><a href="#read_ms5_xsf-1067"><span class="linenos">1067</span></a> <span class="n">zF</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1068"><a href="#read_ms5_xsf-1068"><span class="linenos">1068</span></a>
</span><span id="read_ms5_xsf-1069"><a href="#read_ms5_xsf-1069"><span class="linenos">1069</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1070"><a href="#read_ms5_xsf-1070"><span class="linenos">1070</span></a> <span class="n">tmax</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1071"><a href="#read_ms5_xsf-1071"><span class="linenos">1071</span></a> <span class="n">t</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1072"><a href="#read_ms5_xsf-1072"><span class="linenos">1072</span></a> <span class="n">bnd</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="n">t</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1073"><a href="#read_ms5_xsf-1073"><span class="linenos">1073</span></a>
</span><span id="read_ms5_xsf-1074"><a href="#read_ms5_xsf-1074"><span class="linenos">1074</span></a> <span class="n">placesBI</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;gS&quot;</span><span class="p">,</span> <span class="s2">&quot;gP&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1075"><a href="#read_ms5_xsf-1075"><span class="linenos">1075</span></a> <span class="s2">&quot;gA&quot;</span><span class="p">,</span> <span class="s2">&quot;gV&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1076"><a href="#read_ms5_xsf-1076"><span class="linenos">1076</span></a> <span class="s2">&quot;gVt&quot;</span><span class="p">,</span> <span class="s2">&quot;lA&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1077"><a href="#read_ms5_xsf-1077"><span class="linenos">1077</span></a> <span class="s2">&quot;lV&quot;</span><span class="p">,</span> <span class="s2">&quot;lVt&quot;</span><span class="p">,</span>
</span><span id="read_ms5_xsf-1078"><a href="#read_ms5_xsf-1078"><span class="linenos">1078</span></a> <span class="s2">&quot;lT&quot;</span><span class="p">,</span> <span class="s2">&quot;lTt&quot;</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1079"><a href="#read_ms5_xsf-1079"><span class="linenos">1079</span></a> <span class="n">placesBB</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;g1&quot;</span><span class="p">,</span> <span class="s2">&quot;l1&quot;</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1080"><a href="#read_ms5_xsf-1080"><span class="linenos">1080</span></a>
</span><span id="read_ms5_xsf-1081"><a href="#read_ms5_xsf-1081"><span class="linenos">1081</span></a> <span class="c1"># the chunks have the following structure:</span>
</span><span id="read_ms5_xsf-1082"><a href="#read_ms5_xsf-1082"><span class="linenos">1082</span></a> <span class="c1"># confignumber, 10x timedependent complex correlators as doubles, 2x timeindependent complex correlators as doubles</span>
</span><span id="read_ms5_xsf-1083"><a href="#read_ms5_xsf-1083"><span class="linenos">1083</span></a>
</span><span id="read_ms5_xsf-1084"><a href="#read_ms5_xsf-1084"><span class="linenos">1084</span></a> <span class="n">chunksize</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1085"><a href="#read_ms5_xsf-1085"><span class="linenos">1085</span></a> <span class="n">packstr</span> <span class="o">=</span> <span class="s1">&#39;=i&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="s1">&#39;d&#39;</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1086"><a href="#read_ms5_xsf-1086"><span class="linenos">1086</span></a> <span class="n">cnfgs</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1087"><a href="#read_ms5_xsf-1087"><span class="linenos">1087</span></a> <span class="n">realsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1088"><a href="#read_ms5_xsf-1088"><span class="linenos">1088</span></a> <span class="n">imagsamples</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1089"><a href="#read_ms5_xsf-1089"><span class="linenos">1089</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">tmax</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1090"><a href="#read_ms5_xsf-1090"><span class="linenos">1090</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1091"><a href="#read_ms5_xsf-1091"><span class="linenos">1091</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="read_ms5_xsf-1092"><a href="#read_ms5_xsf-1092"><span class="linenos">1092</span></a>
</span><span id="read_ms5_xsf-1093"><a href="#read_ms5_xsf-1093"><span class="linenos">1093</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1094"><a href="#read_ms5_xsf-1094"><span class="linenos">1094</span></a> <span class="n">cnfgt</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">chunksize</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1095"><a href="#read_ms5_xsf-1095"><span class="linenos">1095</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">cnfgt</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1096"><a href="#read_ms5_xsf-1096"><span class="linenos">1096</span></a> <span class="k">break</span>
</span><span id="read_ms5_xsf-1097"><a href="#read_ms5_xsf-1097"><span class="linenos">1097</span></a> <span class="n">asascii</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">packstr</span><span class="p">,</span> <span class="n">cnfgt</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1098"><a href="#read_ms5_xsf-1098"><span class="linenos">1098</span></a> <span class="n">cnfg</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1099"><a href="#read_ms5_xsf-1099"><span class="linenos">1099</span></a> <span class="n">cnfgs</span><span class="p">[</span><span class="n">repnum</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cnfg</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1100"><a href="#read_ms5_xsf-1100"><span class="linenos">1100</span></a>
</span><span id="read_ms5_xsf-1101"><a href="#read_ms5_xsf-1101"><span class="linenos">1101</span></a> <span class="k">if</span> <span class="n">corr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">placesBB</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1102"><a href="#read_ms5_xsf-1102"><span class="linenos">1102</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="n">placesBI</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1103"><a href="#read_ms5_xsf-1103"><span class="linenos">1103</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1104"><a href="#read_ms5_xsf-1104"><span class="linenos">1104</span></a> <span class="n">tmpcorr</span> <span class="o">=</span> <span class="n">asascii</span><span class="p">[</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">):</span><span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">tmax</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">placesBI</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">placesBB</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">corr</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1105"><a href="#read_ms5_xsf-1105"><span class="linenos">1105</span></a>
</span><span id="read_ms5_xsf-1106"><a href="#read_ms5_xsf-1106"><span class="linenos">1106</span></a> <span class="n">corrres</span> <span class="o">=</span> <span class="p">[[],</span> <span class="p">[]]</span>
</span><span id="read_ms5_xsf-1107"><a href="#read_ms5_xsf-1107"><span class="linenos">1107</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1108"><a href="#read_ms5_xsf-1108"><span class="linenos">1108</span></a> <span class="n">corrres</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1109"><a href="#read_ms5_xsf-1109"><span class="linenos">1109</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1110"><a href="#read_ms5_xsf-1110"><span class="linenos">1110</span></a> <span class="n">realsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1111"><a href="#read_ms5_xsf-1111"><span class="linenos">1111</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1112"><a href="#read_ms5_xsf-1112"><span class="linenos">1112</span></a> <span class="n">imagsamples</span><span class="p">[</span><span class="n">repnum</span><span class="p">][</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">corrres</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="read_ms5_xsf-1113"><a href="#read_ms5_xsf-1113"><span class="linenos">1113</span></a> <span class="n">repnum</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="read_ms5_xsf-1114"><a href="#read_ms5_xsf-1114"><span class="linenos">1114</span></a>
</span><span id="read_ms5_xsf-1115"><a href="#read_ms5_xsf-1115"><span class="linenos">1115</span></a> <span class="n">s</span> <span class="o">=</span> <span class="s2">&quot;Read correlator &quot;</span> <span class="o">+</span> <span class="n">corr</span> <span class="o">+</span> <span class="s2">&quot; from &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">repnum</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; replika with &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="read_ms5_xsf-1116"><a href="#read_ms5_xsf-1116"><span class="linenos">1116</span></a> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">repnum</span><span class="p">):</span>
</span><span id="read_ms5_xsf-1117"><a href="#read_ms5_xsf-1117"><span class="linenos">1117</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot;, &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]))</span>
</span><span id="read_ms5_xsf-1118"><a href="#read_ms5_xsf-1118"><span class="linenos">1118</span></a> <span class="n">s</span> <span class="o">+=</span> <span class="s2">&quot; samples&quot;</span>
</span><span id="read_ms5_xsf-1119"><a href="#read_ms5_xsf-1119"><span class="linenos">1119</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1120"><a href="#read_ms5_xsf-1120"><span class="linenos">1120</span></a> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Asserted run parameters:</span><span class="se">\n</span><span class="s2"> T:&quot;</span><span class="p">,</span> <span class="n">tmax</span><span class="p">,</span> <span class="s2">&quot;kappa:&quot;</span><span class="p">,</span> <span class="n">kappa</span><span class="p">,</span> <span class="s2">&quot;csw:&quot;</span><span class="p">,</span> <span class="n">csw</span><span class="p">,</span> <span class="s2">&quot;dF:&quot;</span><span class="p">,</span> <span class="n">dF</span><span class="p">,</span> <span class="s2">&quot;zF:&quot;</span><span class="p">,</span> <span class="n">zF</span><span class="p">,</span> <span class="s2">&quot;bnd:&quot;</span><span class="p">,</span> <span class="n">bnd</span><span class="p">)</span>
</span><span id="read_ms5_xsf-1121"><a href="#read_ms5_xsf-1121"><span class="linenos">1121</span></a>
</span><span id="read_ms5_xsf-1122"><a href="#read_ms5_xsf-1122"><span class="linenos">1122</span></a> <span class="c1"># we have the data now... but we need to re format the whole thing and put it into Corr objects.</span>
</span><span id="read_ms5_xsf-1123"><a href="#read_ms5_xsf-1123"><span class="linenos">1123</span></a>
</span><span id="read_ms5_xsf-1124"><a href="#read_ms5_xsf-1124"><span class="linenos">1124</span></a> <span class="n">compObs</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="read_ms5_xsf-1125"><a href="#read_ms5_xsf-1125"><span class="linenos">1125</span></a>
</span><span id="read_ms5_xsf-1126"><a href="#read_ms5_xsf-1126"><span class="linenos">1126</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">tmpcorr</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)):</span>
</span><span id="read_ms5_xsf-1127"><a href="#read_ms5_xsf-1127"><span class="linenos">1127</span></a> <span class="n">compObs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">CObs</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">realsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">),</span>
</span><span id="read_ms5_xsf-1128"><a href="#read_ms5_xsf-1128"><span class="linenos">1128</span></a> <span class="n">Obs</span><span class="p">([</span><span class="n">imagsamples</span><span class="p">[</span><span class="n">rep</span><span class="p">][</span><span class="n">t</span><span class="p">]</span> <span class="k">for</span> <span class="n">rep</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">repnum</span><span class="p">)],</span> <span class="n">names</span><span class="o">=</span><span class="n">names</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">cnfgs</span><span class="p">)))</span>
</span><span id="read_ms5_xsf-1129"><a href="#read_ms5_xsf-1129"><span class="linenos">1129</span></a>
</span><span id="read_ms5_xsf-1130"><a href="#read_ms5_xsf-1130"><span class="linenos">1130</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1131"><a href="#read_ms5_xsf-1131"><span class="linenos">1131</span></a> <span class="k">return</span> <span class="n">compObs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="read_ms5_xsf-1132"><a href="#read_ms5_xsf-1132"><span class="linenos">1132</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="read_ms5_xsf-1133"><a href="#read_ms5_xsf-1133"><span class="linenos">1133</span></a> <span class="k">return</span> <span class="n">Corr</span><span class="p">(</span><span class="n">compObs</span><span class="p">)</span>
</span></pre></div>

View file

@ -196,7 +196,7 @@
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">otype</span><span class="p">):</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Wrong data type in list.&quot;</span><span class="p">)</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;is_merged&quot;</span><span class="p">,</span> <span class="s2">&quot;reweighted&quot;</span><span class="p">,</span> <span class="s2">&quot;e_content&quot;</span><span class="p">,</span> <span class="s2">&quot;idl&quot;</span><span class="p">]:</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;reweighted&quot;</span><span class="p">,</span> <span class="s2">&quot;e_content&quot;</span><span class="p">,</span> <span class="s2">&quot;idl&quot;</span><span class="p">]:</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">attr</span><span class="p">)</span> <span class="o">==</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">attr</span><span class="p">):</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;All Obs in list have to have the same state &#39;</span><span class="si">{</span><span class="n">attr</span><span class="si">}</span><span class="s2">&#39;.&quot;</span><span class="p">)</span>

File diff suppressed because it is too large Load diff