Browse Source

adds function to easily create variants of a container with different cuts applied

Caleb Fangmeier 7 years ago
parent
commit
f452231987
50 changed files with 1750 additions and 1480 deletions
  1. 9 4
      analysis/TTTT_Analysis.cpp
  2. 46 4
      analysis/selection.hpp
  3. 1194 1068
      docs/Plotter Testing.html
  4. 46 10
      docs/TTTT_Analysis.html
  5. 15 15
      docs/TTTT__Analysis_8cpp.html
  6. 15 15
      docs/TTTT__Analysis_8cpp__incl.map
  7. 1 1
      docs/TTTT__Analysis_8cpp__incl.md5
  8. BIN
      docs/TTTT__Analysis_8cpp__incl.png
  9. 1 1
      docs/TTTT__Analysis_8cpp_source.html
  10. 13 12
      docs/classfv_1_1Container-members.html
  11. 7 4
      docs/classfv_1_1Container.html
  12. 16 15
      docs/classfv_1_1ContainerMean-members.html
  13. 10 7
      docs/classfv_1_1ContainerMean.html
  14. 12 11
      docs/classfv_1_1GenContainer-members.html
  15. 7 4
      docs/classfv_1_1GenContainer.html
  16. 1 1
      docs/classfv_1_1GenContainer__inherit__graph.map
  17. 1 1
      docs/classfv_1_1GenContainer__inherit__graph.md5
  18. BIN
      docs/classfv_1_1GenContainer__inherit__graph.png
  19. 13 12
      docs/classfv_1_1root_1_1Counter-members.html
  20. 8 1
      docs/classfv_1_1root_1_1Counter.html
  21. 13 12
      docs/classfv_1_1root_1_1CounterMany-members.html
  22. 8 1
      docs/classfv_1_1root_1_1CounterMany.html
  23. 3 3
      docs/container_8hpp_source.html
  24. 1 1
      docs/dataset_8hpp_source.html
  25. 21 1
      docs/filter_8hpp.html
  26. 2 1
      docs/filter_8hpp_source.html
  27. 1 1
      docs/hierarchy.html
  28. 1 1
      docs/inherit_graph_0.map
  29. 1 1
      docs/inherit_graph_0.md5
  30. BIN
      docs/inherit_graph_0.png
  31. 1 1
      docs/inherits.html
  32. 16 0
      docs/namespacefv.html
  33. 6 0
      docs/namespacemembers.html
  34. 6 0
      docs/namespacemembers_func.html
  35. 5 4
      docs/root_2container_8hpp_source.html
  36. 2 0
      docs/search/all_0.js
  37. 1 1
      docs/search/all_2.js
  38. 1 1
      docs/search/classes_2.js
  39. 3 1
      docs/search/functions_0.js
  40. 12 11
      docs/selection_8hpp.html
  41. 11 11
      docs/selection_8hpp__incl.map
  42. 1 1
      docs/selection_8hpp__incl.md5
  43. BIN
      docs/selection_8hpp__incl.png
  44. 2 1
      docs/selection_8hpp_source.html
  45. 8 4
      filval/container.hpp
  46. 22 8
      filval/dataset.hpp
  47. 39 45
      filval/filter.hpp
  48. 55 10
      filval_root/container.hpp
  49. 50 75
      python/Plotter Testing.ipynb
  50. 43 98
      python/TTTT_Analysis.ipynb

+ 9 - 4
analysis/TTTT_Analysis.cpp

@@ -269,18 +269,22 @@ void declare_containers(MiniTreeDataSet& mt){
                                                 10, 0, 10, 10, 0, 10,
                                                 "Generated Leptons","Reconstructed Leptons");
 
-    mt.register_container<ContainerTH1<int>>("jet_count", "B-Jet Multiplicity", lookup<int>("nJet"), 15, 0, 15);
+    auto jet_count = mt.register_container<ContainerTH1<int>>("jet_count", "B-Jet Multiplicity", lookup<int>("nJet"), 15, 0, 15);
+    mt.cut_set(jet_count,{
+               {event_selection.trilepton, "jet_count_trilepton"},
+               {event_selection.b_jet3, "jet_count_b_jet3"},
+               {event_selection.z_mass_veto, "jet_count_z_mass_veto"},
+               {event_selection.base_sel, "jet_count_base_selection"},
+               });
     mt.register_container<ContainerTH1<int>>("b_jet_count", "B-Jet Multiplicity", lookup<int>("b_jet_count"), 10, 0, 10);
 
-    mt.register_container<ContainerTH1<int>>("jet_count_base_selection", "B-Jet Multiplicity", lookup<int>("nJet"), 15, 0, 15)->add_filter(event_selection.base_sel);
+
     mt.register_container<ContainerTH1<int>>("b_jet_count_base_selection", "B-Jet Multiplicity", lookup<int>("b_jet_count"), 10, 0, 10)->add_filter(event_selection.base_sel);
 
     mt.register_container<ContainerTH1<int>>("jet_count_os_dilepton", "Jet Multiplicity - OS Dilepton Events",
                                                 lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("os-dilepton"));
     mt.register_container<ContainerTH1<int>>("jet_count_ss_dilepton", "Jet Multiplicity - SS Dilepton Events",
                                                 lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("ss-dilepton"));
-    mt.register_container<ContainerTH1<int>>("jet_count_trilepton", "Jet Multiplicity - Trilepton Events",
-                                                lookup<int>("nJet"), 14, 0, 14)->add_filter(lookup_obs_filter("trilepton"));
 
 
     mt.register_container<CounterMany<int>>("GenPart_pdgId_counter", lookup<vector<int>>("GenPart_pdgId"));
@@ -297,6 +301,7 @@ void declare_containers(MiniTreeDataSet& mt){
     mt.register_container<Vector<std::vector< int >>>("GenPart_status",      lookup<std::vector< int >>("GenPart_status"));
 
     mt.register_container<Vector<vector< int >>>("LepGood_mcMatchPdgId",     lookup<vector< int >>("LepGood_mcMatchPdgId"));
+    mt.register_container<Vector<vector< int >>>("LepGood_pdgId",     lookup<vector< int >>("LepGood_pdgId"));
 
     mt.register_container<Vector< int >>("run",                              lookup< int >("run") );
     mt.register_container<Vector< int >>("lumi",                             lookup< int >("lumi"));

+ 46 - 4
analysis/selection.hpp

@@ -35,6 +35,7 @@
 #define SELECTION_HPP
 
 #include <vector>
+#include <algorithm>
 
 #include "filval/filval.hpp"
 #include "filval_root/filval_root.hpp"
@@ -43,6 +44,8 @@
 
 struct EventSelection{
     ObsFilter* trilepton;
+    ObsFilter* trilepton_eemu; // OS electron pair + muon+-
+    ObsFilter* trilepton_mumue; // OS muon pair + electron+-
     ObsFilter* b_jet3;
     ObsFilter* z_mass_veto;
 
@@ -69,6 +72,44 @@ void init_selection(){
             return leptons->get_value().size() == 3;
         }))));
 
+    // Require OS electron pair and a muon
+    event_selection.trilepton_eemu = obs_filter("trilepton_eemu",GenFunction::register_function<bool()>("trilepton_eemu",
+        FUNC(([leptons](){
+            std::vector<Particle>& leps = leptons->get_value();
+            if(leps.size() != 3) return false;
+            auto check_id = [](int ref_id){
+                auto fn = [ref_id](const Particle& p){
+                    return p.lepton.pdg_id == ref_id;
+                };
+                return fn;
+            };
+            bool has_ep = std::count_if(std::begin(leps), std::end(leps),  check_id(-11)) == 1;
+            bool has_en = std::count_if(std::begin(leps), std::end(leps),  check_id( 11)) == 1;
+            bool has_mup = std::count_if(std::begin(leps), std::end(leps), check_id(-13)) == 1;
+            bool has_mun = std::count_if(std::begin(leps), std::end(leps), check_id( 13)) == 1;
+
+            return has_ep && has_en && (has_mup != has_mun);
+        }))));
+
+    // Require OS muon pair and an electron
+    event_selection.trilepton_mumue = obs_filter("trilepton_mumue",GenFunction::register_function<bool()>("trilepton_mumue",
+        FUNC(([leptons](){
+            std::vector<Particle>& leps = leptons->get_value();
+            if(leps.size() != 3) return false;
+            auto check_id = [](int ref_id){
+                auto fn = [ref_id](const Particle& p){
+                    return p.lepton.pdg_id == ref_id;
+                };
+                return fn;
+            };
+            bool has_ep = std::count_if(std::begin(leps), std::end(leps),  check_id(-11)) == 1;
+            bool has_en = std::count_if(std::begin(leps), std::end(leps),  check_id( 11)) == 1;
+            bool has_mup = std::count_if(std::begin(leps), std::end(leps), check_id(-13)) == 1;
+            bool has_mun = std::count_if(std::begin(leps), std::end(leps), check_id( 13)) == 1;
+
+            return (has_ep != has_en) && has_mup && has_mun;
+        }))));
+
     // Require at least three b-jets
     event_selection.b_jet3 = obs_filter("b_jet3",GenFunction::register_function<bool()>("b_jet3",
         FUNC(([jets](){
@@ -116,9 +157,10 @@ void init_selection(){
             return jets->get_value().size() >= 6;
         }))));
 
-    event_selection.base_sel = ObsFilter::conj(event_selection.z_mass_veto, ObsFilter::conj(event_selection.trilepton, event_selection.b_jet3));
-    event_selection.SR4j = ObsFilter::conj(event_selection.base_sel, event_selection.J4);
-    event_selection.SR5j = ObsFilter::conj(event_selection.base_sel, event_selection.J5);
-    event_selection.SR6j = ObsFilter::conj(event_selection.base_sel, event_selection.J6);
+    /* event_selection.base_sel = ObsFilter::conj(event_selection.z_mass_veto, ObsFilter::conj(event_selection.trilepton, event_selection.b_jet3)); */
+    event_selection.base_sel = all({event_selection.z_mass_veto, event_selection.trilepton_eemu, event_selection.b_jet3});
+    event_selection.SR4j = all(event_selection.base_sel, event_selection.J4);
+    event_selection.SR5j = all(event_selection.base_sel, event_selection.J5);
+    event_selection.SR6j = all(event_selection.base_sel, event_selection.J6);
 }
 #endif // SELECTION_HPP

File diff suppressed because it is too large
+ 1194 - 1068
docs/Plotter Testing.html


+ 46 - 10
docs/TTTT_Analysis.html

@@ -11816,10 +11816,10 @@ div#notebook {
 
 
 
-<div id="7d74e167-9ddd-4240-986b-8102e2d08aeb"></div>
+<div id="596dff00-2ab4-4607-b7d3-ce8abba24596"></div>
 <div class="output_subarea output_javascript ">
 <script type="text/javascript">
-var element = $('#7d74e167-9ddd-4240-986b-8102e2d08aeb');
+var element = $('#596dff00-2ab4-4607-b7d3-ce8abba24596');
 
 require(['notebook'],
   function() {
@@ -11861,11 +11861,11 @@ require(['notebook'],
 <div class="prompt input_prompt">In&nbsp;[3]:</div>
 <div class="inner_cell">
     <div class="input_area">
-<div class=" highlight hl-ipython3"><pre><span></span><span class="n">rs_TTZ</span>  <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTZ&quot;</span><span class="p">,</span>  <span class="s2">&quot;../data/TTZToLLNuNu_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
-<span class="n">rs_TTW</span>  <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTW&quot;</span><span class="p">,</span>  <span class="s2">&quot;../data/TTWToLNu_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
-<span class="n">rs_TTH</span> <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTH&quot;</span><span class="p">,</span> <span class="s2">&quot;../data/TTHnobb_mWCutfix_ext1_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">rs_TTZ</span>  <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTZ&quot;</span><span class="p">,</span>  <span class="s2">&quot;../ichep_data/TTZToLLNuNu_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
+<span class="n">rs_TTW</span>  <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTW&quot;</span><span class="p">,</span>  <span class="s2">&quot;../ichep_data/TTWToLNu_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
+<span class="n">rs_TTH</span> <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTH&quot;</span><span class="p">,</span> <span class="s2">&quot;../ichep_data/TTHnobb_mWCutfix_ext1_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
 <span class="c1"># rs_TTH2 = ResultSet(&quot;TTH2&quot;, &quot;../data/TTHnobb_mWCutfix_ch0_treeProducerSusyMultilepton_tree.root&quot;)</span>
-<span class="n">rs_TTTT</span> <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTTT&quot;</span><span class="p">,</span> <span class="s2">&quot;../data/TTTT_ext_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
+<span class="n">rs_TTTT</span> <span class="o">=</span> <span class="n">ResultSet</span><span class="p">(</span><span class="s2">&quot;TTTT&quot;</span><span class="p">,</span> <span class="s2">&quot;../ichep_data/TTTT_ext_treeProducerSusyMultilepton_tree.root&quot;</span><span class="p">)</span>
 </pre></div>
 
 </div>
@@ -11880,10 +11880,14 @@ require(['notebook'],
 <div class="prompt"></div>
 
 <div class="output_subarea output_stream output_stdout output_text">
-<pre>Loading unchanged result file  ../data/TTZToLLNuNu_treeProducerSusyMultilepton_tree_result.root
-Loading unchanged result file  ../data/TTWToLNu_treeProducerSusyMultilepton_tree_result.root
-Loading unchanged result file  ../data/TTHnobb_mWCutfix_ext1_treeProducerSusyMultilepton_tree_result.root
-Loading unchanged result file  ../data/TTTT_ext_treeProducerSusyMultilepton_tree_result.root
+<pre>Running analysis for sample:  TTZ
+Writing log data to ../ichep_data/TTZToLLNuNu_treeProducerSusyMultilepton_tree_result.log
+Running analysis for sample:  TTW
+Writing log data to ../ichep_data/TTWToLNu_treeProducerSusyMultilepton_tree_result.log
+Running analysis for sample:  TTH
+Writing log data to ../ichep_data/TTHnobb_mWCutfix_ext1_treeProducerSusyMultilepton_tree_result.log
+Running analysis for sample:  TTTT
+Writing log data to ../ichep_data/TTTT_ext_treeProducerSusyMultilepton_tree_result.log
 </pre>
 </div>
 </div>
@@ -11891,6 +11895,38 @@ Loading unchanged result file  ../data/TTTT_ext_treeProducerSusyMultilepton_tree
 </div>
 </div>
 
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[30]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
+<span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">rs_TTZ</span><span class="o">.</span><span class="n">LepGood_mcMatchPdgId</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">rs_TTZ</span><span class="o">.</span><span class="n">LepGood_pdgId</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area">
+<div class="prompt output_prompt">Out[30]:</div>
+
+
+
+<div class="output_text output_subarea output_execute_result">
+<pre>[(11, 11), (-99, 11), (-11, -11)]</pre>
+</div>
+
+</div>
+
+</div>
+</div>
+
 </div>
 <div class="cell border-box-sizing code_cell rendered">
 <div class="input">

+ 15 - 15
docs/TTTT__Analysis_8cpp.html

@@ -86,21 +86,21 @@ Include dependency graph for TTTT_Analysis.cpp:</div>
 <div class="dyncontent">
 <div class="center"><img src="TTTT__Analysis_8cpp__incl.png" border="0" usemap="#_2home_2caleb_2Sources_2TTTT_2analysis_2TTTT__Analysis_8cpp" alt=""/></div>
 <map name="_2home_2caleb_2Sources_2TTTT_2analysis_2TTTT__Analysis_8cpp" id="_2home_2caleb_2Sources_2TTTT_2analysis_2TTTT__Analysis_8cpp">
-<area shape="rect" id="node7" href="filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="481,191,599,218"/>
-<area shape="rect" id="node26" href="filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1817,184,1940,225"/>
-<area shape="rect" id="node42" href="selection_8hpp.html" title="analysis/selection.hpp" alt="" coords="2095,109,2262,136"/>
-<area shape="rect" id="node43" href="MiniTreeDataSet_8hpp.html" title="MiniTreeDataSet.hpp" alt="" coords="1810,109,1966,136"/>
-<area shape="rect" id="node8" href="value_8hpp.html" title="value.hpp" alt="" coords="439,497,526,524"/>
-<area shape="rect" id="node17" href="log_8hpp.html" title="log.hpp" alt="" coords="50,572,121,599"/>
-<area shape="rect" id="node20" href="filter_8hpp.html" title="filter.hpp" alt="" coords="251,423,330,449"/>
-<area shape="rect" id="node21" href="container_8hpp.html" title="container.hpp" alt="" coords="427,348,538,375"/>
-<area shape="rect" id="node22" href="dataset_8hpp.html" title="dataset.hpp" alt="" coords="340,273,439,300"/>
-<area shape="rect" id="node23" href="argparse_8hpp.html" title="argparse.hpp" alt="" coords="688,423,795,449"/>
-<area shape="rect" id="node25" href="api_8hpp.html" title="api.hpp" alt="" coords="819,423,890,449"/>
-<area shape="rect" id="node27" href="root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1117,423,1272,449"/>
-<area shape="rect" id="node29" href="root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1479,273,1657,300"/>
-<area shape="rect" id="node39" href="root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="715,348,853,375"/>
-<area shape="rect" id="node44" href="MiniTree_8hpp.html" title="MiniTree.hpp" alt="" coords="2039,273,2143,300"/>
+<area shape="rect" id="node7" href="filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="619,191,738,218"/>
+<area shape="rect" id="node26" href="filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1420,184,1543,225"/>
+<area shape="rect" id="node42" href="selection_8hpp.html" title="analysis/selection.hpp" alt="" coords="1055,109,1222,136"/>
+<area shape="rect" id="node43" href="MiniTreeDataSet_8hpp.html" title="MiniTreeDataSet.hpp" alt="" coords="2299,109,2455,136"/>
+<area shape="rect" id="node8" href="value_8hpp.html" title="value.hpp" alt="" coords="494,497,581,524"/>
+<area shape="rect" id="node17" href="log_8hpp.html" title="log.hpp" alt="" coords="86,572,157,599"/>
+<area shape="rect" id="node20" href="filter_8hpp.html" title="filter.hpp" alt="" coords="350,423,429,449"/>
+<area shape="rect" id="node21" href="container_8hpp.html" title="container.hpp" alt="" coords="555,348,666,375"/>
+<area shape="rect" id="node22" href="dataset_8hpp.html" title="dataset.hpp" alt="" coords="283,273,381,300"/>
+<area shape="rect" id="node23" href="argparse_8hpp.html" title="argparse.hpp" alt="" coords="757,423,864,449"/>
+<area shape="rect" id="node25" href="api_8hpp.html" title="api.hpp" alt="" coords="1118,423,1189,449"/>
+<area shape="rect" id="node27" href="root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="939,423,1093,449"/>
+<area shape="rect" id="node29" href="root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1440,273,1619,300"/>
+<area shape="rect" id="node39" href="root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="893,348,1032,375"/>
+<area shape="rect" id="node44" href="MiniTree_8hpp.html" title="MiniTree.hpp" alt="" coords="2236,273,2340,300"/>
 </map>
 </div>
 </div>

+ 15 - 15
docs/TTTT__Analysis_8cpp__incl.map

@@ -1,17 +1,17 @@
 <map id="/home/caleb/Sources/TTTT/analysis/TTTT_Analysis.cpp" name="/home/caleb/Sources/TTTT/analysis/TTTT_Analysis.cpp">
-<area shape="rect" id="node7" href="$filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="481,191,599,218"/>
-<area shape="rect" id="node26" href="$filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1817,184,1940,225"/>
-<area shape="rect" id="node42" href="$selection_8hpp.html" title="analysis/selection.hpp" alt="" coords="2095,109,2262,136"/>
-<area shape="rect" id="node43" href="$MiniTreeDataSet_8hpp.html" title="MiniTreeDataSet.hpp" alt="" coords="1810,109,1966,136"/>
-<area shape="rect" id="node8" href="$value_8hpp.html" title="value.hpp" alt="" coords="439,497,526,524"/>
-<area shape="rect" id="node17" href="$log_8hpp.html" title="log.hpp" alt="" coords="50,572,121,599"/>
-<area shape="rect" id="node20" href="$filter_8hpp.html" title="filter.hpp" alt="" coords="251,423,330,449"/>
-<area shape="rect" id="node21" href="$container_8hpp.html" title="container.hpp" alt="" coords="427,348,538,375"/>
-<area shape="rect" id="node22" href="$dataset_8hpp.html" title="dataset.hpp" alt="" coords="340,273,439,300"/>
-<area shape="rect" id="node23" href="$argparse_8hpp.html" title="argparse.hpp" alt="" coords="688,423,795,449"/>
-<area shape="rect" id="node25" href="$api_8hpp.html" title="api.hpp" alt="" coords="819,423,890,449"/>
-<area shape="rect" id="node27" href="$root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1117,423,1272,449"/>
-<area shape="rect" id="node29" href="$root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1479,273,1657,300"/>
-<area shape="rect" id="node39" href="$root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="715,348,853,375"/>
-<area shape="rect" id="node44" href="$MiniTree_8hpp.html" title="MiniTree.hpp" alt="" coords="2039,273,2143,300"/>
+<area shape="rect" id="node7" href="$filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="619,191,738,218"/>
+<area shape="rect" id="node26" href="$filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1420,184,1543,225"/>
+<area shape="rect" id="node42" href="$selection_8hpp.html" title="analysis/selection.hpp" alt="" coords="1055,109,1222,136"/>
+<area shape="rect" id="node43" href="$MiniTreeDataSet_8hpp.html" title="MiniTreeDataSet.hpp" alt="" coords="2299,109,2455,136"/>
+<area shape="rect" id="node8" href="$value_8hpp.html" title="value.hpp" alt="" coords="494,497,581,524"/>
+<area shape="rect" id="node17" href="$log_8hpp.html" title="log.hpp" alt="" coords="86,572,157,599"/>
+<area shape="rect" id="node20" href="$filter_8hpp.html" title="filter.hpp" alt="" coords="350,423,429,449"/>
+<area shape="rect" id="node21" href="$container_8hpp.html" title="container.hpp" alt="" coords="555,348,666,375"/>
+<area shape="rect" id="node22" href="$dataset_8hpp.html" title="dataset.hpp" alt="" coords="283,273,381,300"/>
+<area shape="rect" id="node23" href="$argparse_8hpp.html" title="argparse.hpp" alt="" coords="757,423,864,449"/>
+<area shape="rect" id="node25" href="$api_8hpp.html" title="api.hpp" alt="" coords="1118,423,1189,449"/>
+<area shape="rect" id="node27" href="$root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="939,423,1093,449"/>
+<area shape="rect" id="node29" href="$root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1440,273,1619,300"/>
+<area shape="rect" id="node39" href="$root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="893,348,1032,375"/>
+<area shape="rect" id="node44" href="$MiniTree_8hpp.html" title="MiniTree.hpp" alt="" coords="2236,273,2340,300"/>
 </map>

+ 1 - 1
docs/TTTT__Analysis_8cpp__incl.md5

@@ -1 +1 @@
-e40855f30ffb99ead46588bae1b349f6
+07166ac34ead85c9884d25134f102b2c

BIN
docs/TTTT__Analysis_8cpp__incl.png


File diff suppressed because it is too large
+ 1 - 1
docs/TTTT__Analysis_8cpp_source.html


+ 13 - 12
docs/classfv_1_1Container-members.html

@@ -72,18 +72,19 @@ $(function() {
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_fill</b>()=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clone_as</b>(const std::string &amp;new_name)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; H, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

File diff suppressed because it is too large
+ 7 - 4
docs/classfv_1_1Container.html


+ 16 - 15
docs/classfv_1_1ContainerMean-members.html

@@ -72,22 +72,23 @@ $(function() {
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_fill</b>() (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clone_as</b>(const std::string &amp;new_name) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ContainerMean</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>count</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sum</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ContainerMean</b>(const std::string &amp;name, Value&lt; T &gt; *value) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>count</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;) (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>sum</b> (defined in <a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1ContainerMean.html">fv::ContainerMean&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 10 - 7
docs/classfv_1_1ContainerMean.html

@@ -104,16 +104,19 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ad02d976b076e3fb6ad3bb15eb35406d4"><td class="memItemLeft" align="right" valign="top"><a id="ad02d976b076e3fb6ad3bb15eb35406d4"></a>
 T *&#160;</td><td class="memItemRight" valign="bottom"><b>get_container</b> ()</td></tr>
 <tr class="separator:ad02d976b076e3fb6ad3bb15eb35406d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fa3d582ae665ea4f5ee1c7215fe0ff0"><td class="memItemLeft" align="right" valign="top"><a id="a9fa3d582ae665ea4f5ee1c7215fe0ff0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>save_as</b> (const std::string &amp;fname)</td></tr>
-<tr class="separator:a9fa3d582ae665ea4f5ee1c7215fe0ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafb571b93aa2be68945ac66867a0221e"><td class="memItemLeft" align="right" valign="top"><a id="aafb571b93aa2be68945ac66867a0221e"></a>
+<a class="el" href="classfv_1_1GenContainer.html">GenContainer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone_as</b> (const std::string &amp;new_name)</td></tr>
+<tr class="separator:aafb571b93aa2be68945ac66867a0221e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30ec6acc8a2dcef85990374fd0a0cc3e"><td class="memItemLeft" align="right" valign="top"><a id="a30ec6acc8a2dcef85990374fd0a0cc3e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>save_as</b> (const std::string &amp;)</td></tr>
+<tr class="separator:a30ec6acc8a2dcef85990374fd0a0cc3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classfv_1_1Container"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1Container')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1Container.html">fv::Container&lt; T, T &gt;</a></td></tr>
 <tr class="memitem:a7d13e0636a4778fa6aa2fcdd47ecf9ff inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a7d13e0636a4778fa6aa2fcdd47ecf9ff"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Container</b> (const std::string &amp;name, <a class="el" href="classfv_1_1Value.html">Value</a>&lt; T &gt; *value)</td></tr>
 <tr class="separator:a7d13e0636a4778fa6aa2fcdd47ecf9ff inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8712167dfa8443506dc312785719eeab inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="a8712167dfa8443506dc312785719eeab"></a>
-virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
-<tr class="separator:a8712167dfa8443506dc312785719eeab inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0254843032a5db195c2eefd903633b4 inherit pub_methods_classfv_1_1Container"><td class="memItemLeft" align="right" valign="top"><a id="ae0254843032a5db195c2eefd903633b4"></a>
+virtual const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
+<tr class="separator:ae0254843032a5db195c2eefd903633b4 inherit pub_methods_classfv_1_1Container"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classfv_1_1GenContainer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1GenContainer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td></tr>
 <tr class="memitem:acd03ede0e7e0cf362011e5614c787c7b inherit pub_methods_classfv_1_1GenContainer"><td class="memItemLeft" align="right" valign="top"><a id="acd03ede0e7e0cf362011e5614c787c7b"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>GenContainer</b> (const std::string name, const std::string &amp;desc)</td></tr>
@@ -172,7 +175,7 @@ class fv::ContainerMean&lt; T &gt;</h3>
 <p>Calculate the <a class="el" href="classfv_1_1Mean.html" title="Calculate the mean value of a vector. ">Mean</a> of a <a class="el" href="classfv_1_1Value.html" title="A templated value. ">Value</a> over a series of observations. </p>
 <p>This class is given a value of some type that supports addition and division(eg. a <code>float</code>) and yields the mean value. Note that this implementation does  not support serialization so it is not incredibly useful. See the ROOT Containers for Containers that support serialization using ROOT's facilities. </p>
 
-<p class="definition">Definition at line <a class="el" href="container_8hpp_source.html#l00160">160</a> of file <a class="el" href="container_8hpp_source.html">container.hpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="container_8hpp_source.html#l00162">162</a> of file <a class="el" href="container_8hpp_source.html">container.hpp</a>.</p>
 </div><hr/>The documentation for this class was generated from the following file:<ul>
 <li>/home/caleb/Sources/TTTT/filval/<a class="el" href="container_8hpp_source.html">container.hpp</a></li>
 </ul>

+ 12 - 11
docs/classfv_1_1GenContainer-members.html

@@ -72,17 +72,18 @@ $(function() {
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_fill</b>()=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>desc</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>filters</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>name</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clone_as</b>(const std::string &amp;new_name)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>desc</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>filters</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>name</b> (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option)=0 (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 7 - 4
docs/classfv_1_1GenContainer.html

@@ -86,7 +86,7 @@ Inheritance diagram for fv::GenContainer:</div>
 <area shape="rect" id="node3" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,71,365,112"/>
 <area shape="rect" id="node4" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,137,363,193"/>
 <area shape="rect" id="node5" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,217,365,259"/>
-<area shape="rect" id="node6" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,283,357,324"/>
+<area shape="rect" id="node6" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; V \&gt;, V \&gt;" alt="" coords="216,283,359,324"/>
 <area shape="rect" id="node7" href="classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,349,367,375"/>
 <area shape="rect" id="node9" href="classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,400,373,441"/>
 <area shape="rect" id="node10" href="classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,465,363,507"/>
@@ -119,9 +119,12 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>set_description</b> (
 <tr class="memitem:ad21df0a48fca797ff0cc9fec6a0d46f9"><td class="memItemLeft" align="right" valign="top"><a id="ad21df0a48fca797ff0cc9fec6a0d46f9"></a>
 const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> ()</td></tr>
 <tr class="separator:ad21df0a48fca797ff0cc9fec6a0d46f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2e50daedf82bcf2e519fe153591e9c3b"><td class="memItemLeft" align="right" valign="top"><a id="a2e50daedf82bcf2e519fe153591e9c3b"></a>
-virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
-<tr class="separator:a2e50daedf82bcf2e519fe153591e9c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94262856d05df663dda26598216d91f7"><td class="memItemLeft" align="right" valign="top"><a id="a94262856d05df663dda26598216d91f7"></a>
+virtual const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>get_value_name</b> ()</td></tr>
+<tr class="separator:a94262856d05df663dda26598216d91f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a901f02585a9b8a9dcf4b77ee41207adc"><td class="memItemLeft" align="right" valign="top"><a id="a901f02585a9b8a9dcf4b77ee41207adc"></a>
+virtual <a class="el" href="classfv_1_1GenContainer.html">GenContainer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone_as</b> (const std::string &amp;new_name)=0</td></tr>
+<tr class="separator:a901f02585a9b8a9dcf4b77ee41207adc"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9c4dd0c4bf7017525c2091f356d67d50"><td class="memItemLeft" align="right" valign="top"><a id="a9c4dd0c4bf7017525c2091f356d67d50"></a>
 virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>save_as</b> (const std::string &amp;fname, const <a class="el" href="namespacefv.html#a16a191c4b8935d4c7c5aad79fc4ea97e">SaveOption</a> &amp;option)=0</td></tr>
 <tr class="separator:a9c4dd0c4bf7017525c2091f356d67d50"><td class="memSeparator" colspan="2">&#160;</td></tr>

+ 1 - 1
docs/classfv_1_1GenContainer__inherit__graph.map

@@ -3,7 +3,7 @@
 <area shape="rect" id="node3" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,71,365,112"/>
 <area shape="rect" id="node4" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,137,363,193"/>
 <area shape="rect" id="node5" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,217,365,259"/>
-<area shape="rect" id="node6" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,283,357,324"/>
+<area shape="rect" id="node6" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; V \&gt;, V \&gt;" alt="" coords="216,283,359,324"/>
 <area shape="rect" id="node7" href="$classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,349,367,375"/>
 <area shape="rect" id="node9" href="$classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,400,373,441"/>
 <area shape="rect" id="node10" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,465,363,507"/>

+ 1 - 1
docs/classfv_1_1GenContainer__inherit__graph.md5

@@ -1 +1 @@
-1a815fd923c945d6c135824d5a81c9c4
+c6d175c45397a83b41b37fa38b611de8

BIN
docs/classfv_1_1GenContainer__inherit__graph.png


+ 13 - 12
docs/classfv_1_1root_1_1Counter-members.html

@@ -73,18 +73,19 @@ $(function() {
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_Counter</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>_fill</b>() (defined in <a class="el" href="classfv_1_1root_1_1Counter.html">fv::root::Counter&lt; V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1Counter.html">fv::root::Counter&lt; V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option=SaveOption::PNG) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>clone_as</b>(const std::string &amp;new_name) (defined in <a class="el" href="classfv_1_1root_1_1Counter.html">fv::root::Counter&lt; V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1Counter.html">fv::root::Counter&lt; V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option=SaveOption::PNG) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 8 - 1
docs/classfv_1_1root_1_1Counter.html

@@ -64,6 +64,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pri-methods">Private Member Functions</a> &#124;
 <a href="classfv_1_1root_1_1Counter-members.html">List of all members</a>  </div>
   <div class="headertitle">
@@ -78,6 +79,12 @@ $(function() {
 
 <p>Inherits fv::root::_Counter&lt; V, D &gt;.</p>
 <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5c0bbb7f24728a17dd02dccc4a9988c6"><td class="memItemLeft" align="right" valign="top"><a id="a5c0bbb7f24728a17dd02dccc4a9988c6"></a>
+<a class="el" href="classfv_1_1GenContainer.html">GenContainer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone_as</b> (const std::string &amp;new_name)</td></tr>
+<tr class="separator:a5c0bbb7f24728a17dd02dccc4a9988c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
 <tr class="memitem:aa7d723c43f6ddcaba3be57413275ef1f"><td class="memItemLeft" align="right" valign="top"><a id="aa7d723c43f6ddcaba3be57413275ef1f"></a>
@@ -90,7 +97,7 @@ class fv::root::Counter&lt; V &gt;</h3>
 
 <p>A <a class="el" href="classfv_1_1root_1_1Counter.html" title="A Counter that keeps a mapping of the number of occurances of each input value. ">Counter</a> that keeps a mapping of the number of occurances of each input value. </p>
 
-<p class="definition">Definition at line <a class="el" href="root_2container_8hpp_source.html#l00288">288</a> of file <a class="el" href="root_2container_8hpp_source.html">container.hpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="root_2container_8hpp_source.html#l00315">315</a> of file <a class="el" href="root_2container_8hpp_source.html">container.hpp</a>.</p>
 </div><hr/>The documentation for this class was generated from the following file:<ul>
 <li>/home/caleb/Sources/TTTT/filval_root/<a class="el" href="root_2container_8hpp_source.html">container.hpp</a></li>
 </ul>

+ 13 - 12
docs/classfv_1_1root_1_1CounterMany-members.html

@@ -73,18 +73,19 @@ $(function() {
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_Counter</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>_fill</b>() (defined in <a class="el" href="classfv_1_1root_1_1CounterMany.html">fv::root::CounterMany&lt; V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1CounterMany.html">fv::root::CounterMany&lt; V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>add_filter</b>(GenValue *filter) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option=SaveOption::PNG) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>clone_as</b>(const std::string &amp;new_name) (defined in <a class="el" href="classfv_1_1root_1_1CounterMany.html">fv::root::CounterMany&lt; V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1CounterMany.html">fv::root::CounterMany&lt; V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>container</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Container</b>(const std::string &amp;name, Value&lt; V &gt; *value) (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GenContainer</b>(const std::string name, const std::string &amp;desc) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenContainer</b>(const std::string name) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_container</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_name</b>() (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_value_name</b>() (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>save</b>(const SaveOption &amp;option=SaveOption::PNG) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>save_as</b>(const std::string &amp;fname, const SaveOption &amp;option=SaveOption::PNG) (defined in <b>fv::root::_Counter&lt; V, D &gt;</b>)</td><td class="entry"><a class="el" href="classfv_1_1root_1_1__Counter.html">fv::root::_Counter&lt; V, D &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set_description</b>(const std::string &amp;description) (defined in <a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a>)</td><td class="entry"><a class="el" href="classfv_1_1GenContainer.html">fv::GenContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>value</b> (defined in <a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a>)</td><td class="entry"><a class="el" href="classfv_1_1Container.html">fv::Container&lt; std::map&lt; D, int &gt;, V &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>

+ 8 - 1
docs/classfv_1_1root_1_1CounterMany.html

@@ -64,6 +64,7 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pri-methods">Private Member Functions</a> &#124;
 <a href="classfv_1_1root_1_1CounterMany-members.html">List of all members</a>  </div>
   <div class="headertitle">
@@ -78,6 +79,12 @@ $(function() {
 
 <p>Inherits fv::root::_Counter&lt; V, D &gt;.</p>
 <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a058522be057ccd1a14a60aa04270cd86"><td class="memItemLeft" align="right" valign="top"><a id="a058522be057ccd1a14a60aa04270cd86"></a>
+<a class="el" href="classfv_1_1GenContainer.html">GenContainer</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>clone_as</b> (const std::string &amp;new_name)</td></tr>
+<tr class="separator:a058522be057ccd1a14a60aa04270cd86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
 <tr class="memitem:aa14475ee65e68d76feffc1411d1c6fe1"><td class="memItemLeft" align="right" valign="top"><a id="aa14475ee65e68d76feffc1411d1c6fe1"></a>
@@ -90,7 +97,7 @@ class fv::root::CounterMany&lt; V &gt;</h3>
 
 <p>Same as <a class="el" href="classfv_1_1root_1_1Counter.html" title="A Counter that keeps a mapping of the number of occurances of each input value. ">Counter</a> but accepts multiple values per fill. </p>
 
-<p class="definition">Definition at line <a class="el" href="root_2container_8hpp_source.html#l00299">299</a> of file <a class="el" href="root_2container_8hpp_source.html">container.hpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="root_2container_8hpp_source.html#l00330">330</a> of file <a class="el" href="root_2container_8hpp_source.html">container.hpp</a>.</p>
 </div><hr/>The documentation for this class was generated from the following file:<ul>
 <li>/home/caleb/Sources/TTTT/filval_root/<a class="el" href="root_2container_8hpp_source.html">container.hpp</a></li>
 </ul>

File diff suppressed because it is too large
+ 3 - 3
docs/container_8hpp_source.html


File diff suppressed because it is too large
+ 1 - 1
docs/dataset_8hpp_source.html


+ 21 - 1
docs/filter_8hpp.html

@@ -64,7 +64,8 @@ $(function() {
 </div><!-- top -->
 <div class="header">
   <div class="summary">
-<a href="#namespaces">Namespaces</a>  </div>
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
 <div class="title">filter.hpp File Reference</div>  </div>
 </div><!--header-->
@@ -108,6 +109,25 @@ Namespaces</h2></td></tr>
 <tr class="memitem:namespacefv"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html">fv</a></td></tr>
 <tr class="memdesc:namespacefv"><td class="mdescLeft">&#160;</td><td class="mdescRight">The namespace containing all filval classes and functions. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a940ebe186f09cdf88de7cf849a7e28dc"><td class="memItemLeft" align="right" valign="top"><a id="a940ebe186f09cdf88de7cf849a7e28dc"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc">fv::all</a> (const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)</td></tr>
+<tr class="memdesc:a940ebe186f09cdf88de7cf849a7e28dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of a vector of source filters. <br /></td></tr>
+<tr class="separator:a940ebe186f09cdf88de7cf849a7e28dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06b34151d742ea4597f6694fef2b875e"><td class="memItemLeft" align="right" valign="top"><a id="a06b34151d742ea4597f6694fef2b875e"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a06b34151d742ea4597f6694fef2b875e">fv::any</a> (const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)</td></tr>
+<tr class="memdesc:a06b34151d742ea4597f6694fef2b875e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the disjunction of a vector of source filters. <br /></td></tr>
+<tr class="separator:a06b34151d742ea4597f6694fef2b875e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2397994a5186a57ec4a83e9a25559c02"><td class="memItemLeft" align="right" valign="top"><a id="a2397994a5186a57ec4a83e9a25559c02"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a2397994a5186a57ec4a83e9a25559c02">fv::all</a> (ObsFilter *f1, ObsFilter *f2)</td></tr>
+<tr class="memdesc:a2397994a5186a57ec4a83e9a25559c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of the two source filters. <br /></td></tr>
+<tr class="separator:a2397994a5186a57ec4a83e9a25559c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="memItemLeft" align="right" valign="top"><a id="a4a2fae325e4cd1e4d1d9e71355a3d15b"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a4a2fae325e4cd1e4d1d9e71355a3d15b">fv::any</a> (ObsFilter *f1, ObsFilter *f2)</td></tr>
+<tr class="memdesc:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of the two source filters. <br /></td></tr>
+<tr class="separator:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><dl class="section author"><dt>Author</dt><dd>Caleb Fangmeier <a href="#" onclick="location.href='mai'+'lto:'+'cal'+'eb'+'@fa'+'ng'+'mei'+'er'+'.te'+'ch'; return false;">caleb<span style="display: none;">.nosp@m.</span>@fan<span style="display: none;">.nosp@m.</span>gmeie<span style="display: none;">.nosp@m.</span>r.te<span style="display: none;">.nosp@m.</span>ch</a> </dd></dl>

File diff suppressed because it is too large
+ 2 - 1
docs/filter_8hpp_source.html


File diff suppressed because it is too large
+ 1 - 1
docs/hierarchy.html


+ 1 - 1
docs/inherit_graph_0.map

@@ -4,7 +4,7 @@
 <area shape="rect" id="node3" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,71,365,112"/>
 <area shape="rect" id="node4" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,137,363,193"/>
 <area shape="rect" id="node5" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,217,365,259"/>
-<area shape="rect" id="node6" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,283,357,324"/>
+<area shape="rect" id="node6" href="$classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; V \&gt;, V \&gt;" alt="" coords="216,283,359,324"/>
 <area shape="rect" id="node7" href="$classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,349,367,375"/>
 <area shape="rect" id="node9" href="$classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,400,373,441"/>
 <area shape="rect" id="node10" href="$classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,465,363,507"/>

+ 1 - 1
docs/inherit_graph_0.md5

@@ -1 +1 @@
-f3af25ea0a215343fd6edb0edcf980b0
+9c7d95c23bb8643b4579a1186350cb53

BIN
docs/inherit_graph_0.png


+ 1 - 1
docs/inherits.html

@@ -73,7 +73,7 @@ $(function() {
 <area shape="rect" id="node3" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; D, int \&gt;, V \&gt;" alt="" coords="209,71,365,112"/>
 <area shape="rect" id="node4" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, std\l::vector\&lt; V \&gt; \&gt;" alt="" coords="212,137,363,193"/>
 <area shape="rect" id="node5" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::map\&lt; V, int \&gt;, V \&gt;" alt="" coords="210,217,365,259"/>
-<area shape="rect" id="node6" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; T \&gt;, T \&gt;" alt="" coords="217,283,357,324"/>
+<area shape="rect" id="node6" href="classfv_1_1Container.html" title="fv::Container\&lt; std\l::vector\&lt; V \&gt;, V \&gt;" alt="" coords="216,283,359,324"/>
 <area shape="rect" id="node7" href="classfv_1_1Container.html" title="fv::Container\&lt; T, T \&gt;" alt="" coords="208,349,367,375"/>
 <area shape="rect" id="node9" href="classfv_1_1Container.html" title="fv::Container\&lt; TGraph,\l std::pair\&lt; V, V \&gt; \&gt;" alt="" coords="202,400,373,441"/>
 <area shape="rect" id="node10" href="classfv_1_1Container.html" title="fv::Container\&lt; TH1,\l std::vector\&lt; V \&gt; \&gt;" alt="" coords="212,465,363,507"/>

+ 16 - 0
docs/namespacefv.html

@@ -328,6 +328,22 @@ template&lt;typename... ArgTypes&gt; </td></tr>
 <tr class="memitem:a97c916f0cec36778d54ff19e98c8abaf"><td class="memItemLeft" align="right" valign="top"><a id="a97c916f0cec36778d54ff19e98c8abaf"></a>
 ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><b>obs_filter</b> (const std::string &amp;name, std::function&lt; bool()&gt; filter_function, const std::string &amp;impl=&quot;&quot;)</td></tr>
 <tr class="separator:a97c916f0cec36778d54ff19e98c8abaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a940ebe186f09cdf88de7cf849a7e28dc"><td class="memItemLeft" align="right" valign="top"><a id="a940ebe186f09cdf88de7cf849a7e28dc"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc">all</a> (const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)</td></tr>
+<tr class="memdesc:a940ebe186f09cdf88de7cf849a7e28dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of a vector of source filters. <br /></td></tr>
+<tr class="separator:a940ebe186f09cdf88de7cf849a7e28dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06b34151d742ea4597f6694fef2b875e"><td class="memItemLeft" align="right" valign="top"><a id="a06b34151d742ea4597f6694fef2b875e"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a06b34151d742ea4597f6694fef2b875e">any</a> (const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)</td></tr>
+<tr class="memdesc:a06b34151d742ea4597f6694fef2b875e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the disjunction of a vector of source filters. <br /></td></tr>
+<tr class="separator:a06b34151d742ea4597f6694fef2b875e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2397994a5186a57ec4a83e9a25559c02"><td class="memItemLeft" align="right" valign="top"><a id="a2397994a5186a57ec4a83e9a25559c02"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a2397994a5186a57ec4a83e9a25559c02">all</a> (ObsFilter *f1, ObsFilter *f2)</td></tr>
+<tr class="memdesc:a2397994a5186a57ec4a83e9a25559c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of the two source filters. <br /></td></tr>
+<tr class="separator:a2397994a5186a57ec4a83e9a25559c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="memItemLeft" align="right" valign="top"><a id="a4a2fae325e4cd1e4d1d9e71355a3d15b"></a>
+ObsFilter *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacefv.html#a4a2fae325e4cd1e4d1d9e71355a3d15b">any</a> (ObsFilter *f1, ObsFilter *f2)</td></tr>
+<tr class="memdesc:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a new filter that is the conjuction of the two source filters. <br /></td></tr>
+<tr class="separator:a4a2fae325e4cd1e4d1d9e71355a3d15b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6f29b37e1d794f52bdb07602096ca21c"><td class="memTemplParams" colspan="2"><a id="a6f29b37e1d794f52bdb07602096ca21c"></a>
 template&lt;typename T , std::size_t N, typename Indices  = std::make_index_sequence&lt;N&gt;&gt; </td></tr>
 <tr class="memitem:a6f29b37e1d794f52bdb07602096ca21c"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c">a2t</a> (const std::array&lt; T, N &gt; &amp;a)</td></tr>

+ 6 - 0
docs/namespacemembers.html

@@ -63,6 +63,12 @@ $(function() {
 <li>a2t()
 : <a class="el" href="namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c">fv</a>
 </li>
+<li>all()
+: <a class="el" href="namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc">fv</a>
+</li>
+<li>any()
+: <a class="el" href="namespacefv.html#a06b34151d742ea4597f6694fef2b875e">fv</a>
+</li>
 <li>call()
 : <a class="el" href="namespacefv.html#a9a4442455b76c1cbe8951b593f06309c">fv</a>
 </li>

+ 6 - 0
docs/namespacemembers_func.html

@@ -63,6 +63,12 @@ $(function() {
 <li>a2t()
 : <a class="el" href="namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c">fv</a>
 </li>
+<li>all()
+: <a class="el" href="namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc">fv</a>
+</li>
+<li>any()
+: <a class="el" href="namespacefv.html#a06b34151d742ea4597f6694fef2b875e">fv</a>
+</li>
 <li>call()
 : <a class="el" href="namespacefv.html#a9a4442455b76c1cbe8951b593f06309c">fv</a>
 </li>

File diff suppressed because it is too large
+ 5 - 4
docs/root_2container_8hpp_source.html


+ 2 - 0
docs/search/all_0.js

@@ -1,6 +1,8 @@
 var searchData=
 [
   ['a2t',['a2t',['../namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c',1,'fv']]],
+  ['all',['all',['../namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc',1,'fv::all(const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)'],['../namespacefv.html#a2397994a5186a57ec4a83e9a25559c02',1,'fv::all(ObsFilter *f1, ObsFilter *f2)']]],
+  ['any',['any',['../namespacefv.html#a06b34151d742ea4597f6694fef2b875e',1,'fv::any(const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)'],['../namespacefv.html#a4a2fae325e4cd1e4d1d9e71355a3d15b',1,'fv::any(ObsFilter *f1, ObsFilter *f2)']]],
   ['api_2ehpp',['api.hpp',['../api_8hpp.html',1,'']]],
   ['apply_3c_20ret_28argtypes_2e_2e_2e_29_3e',['Apply&lt; Ret(ArgTypes...)&gt;',['../classfv_1_1Apply_3_01Ret_07ArgTypes_8_8_8_08_4.html',1,'fv']]],
   ['argparse_2ehpp',['argparse.hpp',['../argparse_8hpp.html',1,'']]],

+ 1 - 1
docs/search/all_2.js

@@ -10,7 +10,7 @@ var searchData=
   ['container_3c_20std_3a_3amap_3c_20d_2c_20int_20_3e_2c_20v_20_3e',['Container&lt; std::map&lt; D, int &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20std_3a_3amap_3c_20v_2c_20int_20_3e_2c_20std_3a_3avector_3c_20v_20_3e_20_3e',['Container&lt; std::map&lt; V, int &gt;, std::vector&lt; V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20std_3a_3amap_3c_20v_2c_20int_20_3e_2c_20v_20_3e',['Container&lt; std::map&lt; V, int &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
-  ['container_3c_20std_3a_3avector_3c_20t_20_3e_2c_20t_20_3e',['Container&lt; std::vector&lt; T &gt;, T &gt;',['../classfv_1_1Container.html',1,'fv']]],
+  ['container_3c_20std_3a_3avector_3c_20v_20_3e_2c_20v_20_3e',['Container&lt; std::vector&lt; V &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20t_2c_20t_20_3e',['Container&lt; T, T &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20tgraph_2c_20std_3a_3apair_3c_20v_2c_20v_20_3e_20_3e',['Container&lt; TGraph, std::pair&lt; V, V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20th1_2c_20std_3a_3avector_3c_20v_20_3e_20_3e',['Container&lt; TH1, std::vector&lt; V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],

+ 1 - 1
docs/search/classes_2.js

@@ -8,7 +8,7 @@ var searchData=
   ['container_3c_20std_3a_3amap_3c_20d_2c_20int_20_3e_2c_20v_20_3e',['Container&lt; std::map&lt; D, int &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20std_3a_3amap_3c_20v_2c_20int_20_3e_2c_20std_3a_3avector_3c_20v_20_3e_20_3e',['Container&lt; std::map&lt; V, int &gt;, std::vector&lt; V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20std_3a_3amap_3c_20v_2c_20int_20_3e_2c_20v_20_3e',['Container&lt; std::map&lt; V, int &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
-  ['container_3c_20std_3a_3avector_3c_20t_20_3e_2c_20t_20_3e',['Container&lt; std::vector&lt; T &gt;, T &gt;',['../classfv_1_1Container.html',1,'fv']]],
+  ['container_3c_20std_3a_3avector_3c_20v_20_3e_2c_20v_20_3e',['Container&lt; std::vector&lt; V &gt;, V &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20t_2c_20t_20_3e',['Container&lt; T, T &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20tgraph_2c_20std_3a_3apair_3c_20v_2c_20v_20_3e_20_3e',['Container&lt; TGraph, std::pair&lt; V, V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],
   ['container_3c_20th1_2c_20std_3a_3avector_3c_20v_20_3e_20_3e',['Container&lt; TH1, std::vector&lt; V &gt; &gt;',['../classfv_1_1Container.html',1,'fv']]],

+ 3 - 1
docs/search/functions_0.js

@@ -1,4 +1,6 @@
 var searchData=
 [
-  ['a2t',['a2t',['../namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c',1,'fv']]]
+  ['a2t',['a2t',['../namespacefv.html#a6f29b37e1d794f52bdb07602096ca21c',1,'fv']]],
+  ['all',['all',['../namespacefv.html#a940ebe186f09cdf88de7cf849a7e28dc',1,'fv::all(const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)'],['../namespacefv.html#a2397994a5186a57ec4a83e9a25559c02',1,'fv::all(ObsFilter *f1, ObsFilter *f2)']]],
+  ['any',['any',['../namespacefv.html#a06b34151d742ea4597f6694fef2b875e',1,'fv::any(const std::vector&lt; ObsFilter *&gt; &amp;&amp;fs)'],['../namespacefv.html#a4a2fae325e4cd1e4d1d9e71355a3d15b',1,'fv::any(ObsFilter *f1, ObsFilter *f2)']]]
 ];

+ 12 - 11
docs/selection_8hpp.html

@@ -71,6 +71,7 @@ $(function() {
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &lt;vector&gt;</code><br />
+<code>#include &lt;algorithm&gt;</code><br />
 <code>#include &quot;filval/filval.hpp&quot;</code><br />
 <code>#include &quot;filval_root/filval_root.hpp&quot;</code><br />
 <code>#include &quot;analysis/common/obj_types.hpp&quot;</code><br />
@@ -79,18 +80,18 @@ Include dependency graph for selection.hpp:</div>
 <div class="dyncontent">
 <div class="center"><img src="selection_8hpp__incl.png" border="0" usemap="#_2home_2caleb_2Sources_2TTTT_2analysis_2selection_8hpp" alt=""/></div>
 <map name="_2home_2caleb_2Sources_2TTTT_2analysis_2selection_8hpp" id="_2home_2caleb_2Sources_2TTTT_2analysis_2selection_8hpp">
-<area shape="rect" id="node3" href="filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="690,102,809,129"/>
-<area shape="rect" id="node25" href="filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1681,95,1804,136"/>
-<area shape="rect" id="node4" href="value_8hpp.html" title="value.hpp" alt="" coords="705,408,791,435"/>
+<area shape="rect" id="node4" href="filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="641,102,759,129"/>
+<area shape="rect" id="node25" href="filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1341,95,1464,136"/>
+<area shape="rect" id="node5" href="value_8hpp.html" title="value.hpp" alt="" coords="651,408,738,435"/>
 <area shape="rect" id="node16" href="log_8hpp.html" title="log.hpp" alt="" coords="86,483,157,509"/>
-<area shape="rect" id="node19" href="filter_8hpp.html" title="filter.hpp" alt="" coords="561,333,639,360"/>
-<area shape="rect" id="node20" href="container_8hpp.html" title="container.hpp" alt="" coords="770,259,881,285"/>
-<area shape="rect" id="node21" href="dataset_8hpp.html" title="dataset.hpp" alt="" coords="491,184,589,211"/>
-<area shape="rect" id="node22" href="argparse_8hpp.html" title="argparse.hpp" alt="" coords="1115,333,1221,360"/>
-<area shape="rect" id="node24" href="api_8hpp.html" title="api.hpp" alt="" coords="969,333,1039,360"/>
-<area shape="rect" id="node26" href="root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1347,333,1501,360"/>
-<area shape="rect" id="node28" href="root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1972,184,2151,211"/>
-<area shape="rect" id="node38" href="root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="1215,259,1353,285"/>
+<area shape="rect" id="node19" href="filter_8hpp.html" title="filter.hpp" alt="" coords="507,333,586,360"/>
+<area shape="rect" id="node20" href="container_8hpp.html" title="container.hpp" alt="" coords="713,259,823,285"/>
+<area shape="rect" id="node21" href="dataset_8hpp.html" title="dataset.hpp" alt="" coords="437,184,536,211"/>
+<area shape="rect" id="node22" href="argparse_8hpp.html" title="argparse.hpp" alt="" coords="1112,333,1219,360"/>
+<area shape="rect" id="node24" href="api_8hpp.html" title="api.hpp" alt="" coords="915,333,986,360"/>
+<area shape="rect" id="node26" href="root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1293,333,1448,360"/>
+<area shape="rect" id="node28" href="root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1589,184,1768,211"/>
+<area shape="rect" id="node38" href="root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="949,259,1088,285"/>
 </map>
 </div>
 </div><div class="textblock"><div class="dynheader">

+ 11 - 11
docs/selection_8hpp__incl.map

@@ -1,14 +1,14 @@
 <map id="/home/caleb/Sources/TTTT/analysis/selection.hpp" name="/home/caleb/Sources/TTTT/analysis/selection.hpp">
-<area shape="rect" id="node3" href="$filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="690,102,809,129"/>
-<area shape="rect" id="node25" href="$filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1681,95,1804,136"/>
-<area shape="rect" id="node4" href="$value_8hpp.html" title="value.hpp" alt="" coords="705,408,791,435"/>
+<area shape="rect" id="node4" href="$filval_8hpp_source.html" title="filval/filval.hpp" alt="" coords="641,102,759,129"/>
+<area shape="rect" id="node25" href="$filval__root_8hpp_source.html" title="filval_root/filval\l_root.hpp" alt="" coords="1341,95,1464,136"/>
+<area shape="rect" id="node5" href="$value_8hpp.html" title="value.hpp" alt="" coords="651,408,738,435"/>
 <area shape="rect" id="node16" href="$log_8hpp.html" title="log.hpp" alt="" coords="86,483,157,509"/>
-<area shape="rect" id="node19" href="$filter_8hpp.html" title="filter.hpp" alt="" coords="561,333,639,360"/>
-<area shape="rect" id="node20" href="$container_8hpp.html" title="container.hpp" alt="" coords="770,259,881,285"/>
-<area shape="rect" id="node21" href="$dataset_8hpp.html" title="dataset.hpp" alt="" coords="491,184,589,211"/>
-<area shape="rect" id="node22" href="$argparse_8hpp.html" title="argparse.hpp" alt="" coords="1115,333,1221,360"/>
-<area shape="rect" id="node24" href="$api_8hpp.html" title="api.hpp" alt="" coords="969,333,1039,360"/>
-<area shape="rect" id="node26" href="$root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1347,333,1501,360"/>
-<area shape="rect" id="node28" href="$root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1972,184,2151,211"/>
-<area shape="rect" id="node38" href="$root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="1215,259,1353,285"/>
+<area shape="rect" id="node19" href="$filter_8hpp.html" title="filter.hpp" alt="" coords="507,333,586,360"/>
+<area shape="rect" id="node20" href="$container_8hpp.html" title="container.hpp" alt="" coords="713,259,823,285"/>
+<area shape="rect" id="node21" href="$dataset_8hpp.html" title="dataset.hpp" alt="" coords="437,184,536,211"/>
+<area shape="rect" id="node22" href="$argparse_8hpp.html" title="argparse.hpp" alt="" coords="1112,333,1219,360"/>
+<area shape="rect" id="node24" href="$api_8hpp.html" title="api.hpp" alt="" coords="915,333,986,360"/>
+<area shape="rect" id="node26" href="$root_2value_8hpp_source.html" title="filval_root/value.hpp" alt="" coords="1293,333,1448,360"/>
+<area shape="rect" id="node28" href="$root_2container_8hpp_source.html" title="filval_root/container.hpp" alt="" coords="1589,184,1768,211"/>
+<area shape="rect" id="node38" href="$root_2api_8hpp_source.html" title="filval_root/api.hpp" alt="" coords="949,259,1088,285"/>
 </map>

+ 1 - 1
docs/selection_8hpp__incl.md5

@@ -1 +1 @@
-ad8493875af18a1fa02d7ef605ffe381
+b0ac4c2b8eeba03fbf3cdebfa7aa0b63

BIN
docs/selection_8hpp__incl.png


File diff suppressed because it is too large
+ 2 - 1
docs/selection_8hpp_source.html


+ 8 - 4
filval/container.hpp

@@ -110,10 +110,12 @@ class GenContainer{
             return name;
         }
 
-        virtual const std::string& get_value_name(){
+        virtual const std::string get_value_name(){
             return "N/A";
         }
 
+        virtual GenContainer* clone_as(const std::string& new_name) = 0;
+
         virtual void save_as(const std::string& fname, const SaveOption& option) = 0;
 
         virtual void save(const SaveOption& option=SaveOption::PNG) {
@@ -143,7 +145,7 @@ class Container : public GenContainer{
             return container;
         }
 
-        virtual const std::string& get_value_name(){
+        virtual const std::string get_value_name(){
             return value->get_name();
         }
 };
@@ -177,11 +179,13 @@ class ContainerMean : public Container<T,T>{
             return (this->container);
         }
 
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerMean(new_name, this->value);
+        }
 
-        void save_as(const std::string& fname) {
+        void save_as(const std::string&) {
             WARNING("Saving of ContainerMean objects not supported");
         }
-
 };
 
 }

+ 22 - 8
filval/dataset.hpp

@@ -78,6 +78,14 @@ class DataSet{
             return impl_map;
         }
     public:
+        DataSet(){
+            auto& event_check = GenFunction::register_function<int()>("event_number",
+                FUNC(([ds=this](){
+                    return ds->get_current_event();
+                })));
+            current_event_number = new BoundValue<int>(event_check);
+        }
+
         void process(bool silent=false){
             int events, current_event;
             summary();
@@ -109,6 +117,20 @@ class DataSet{
             return container;
         }
 
+        void cut_set(GenContainer* base_container, std::vector<std::pair<Value<bool>*, std::string>> filters){
+            for(auto p : filters){
+                Value<bool>* filter;
+                std::string new_name;
+                std::tie(filter, new_name) = p;
+                if (containers[new_name] != nullptr){
+                    CRITICAL("Container with name \""<<new_name<<"\" already exists.", -1);
+                }
+                auto new_container = base_container->clone_as(new_name);
+                new_container->add_filter(filter);
+                containers[new_container->get_name()] = new_container;
+            }
+        }
+
         GenContainer* get_container(std::string container_name){
             GenContainer* c = containers[container_name];
             if (c == nullptr){
@@ -117,14 +139,6 @@ class DataSet{
             return c;
         }
 
-        DataSet(){
-            auto& event_check = GenFunction::register_function<int()>("event_number",
-                FUNC(([ds=this](){
-                    return ds->get_current_event();
-                })));
-            current_event_number = new BoundValue<int>(event_check);
-        }
-
         Value<int>* get_current_event_number(){
             return current_event_number;
         }

+ 39 - 45
filval/filter.hpp

@@ -49,59 +49,53 @@ class ObsFilter : public DerivedValue<bool>{
             value = filter_function();
         }
 
-        void verify_integrity(){ };
-
     public:
         ObsFilter(const std::string& name, std::function<bool()> filter_function, const std::string& impl="")
           :DerivedValue<bool>(name),
            filter_function(GenFunction::register_function<bool()>("filter::"+name, filter_function, impl)){ }
+};
 
-        /** Return a new filter that is the conjuction of the two source filters.
-         */
-        static ObsFilter* conj(ObsFilter *f1, ObsFilter *f2){
-            auto new_name = f1->get_name() + "&&" + f2->get_name();
-            return new ObsFilter(new_name, [f1,f2](){return f1->get_value() && f2->get_value();});
-        }
-
-        /** Return a new filter that is the conjuction of the two source filters.
-         */
-        static ObsFilter* disj(ObsFilter *f1, ObsFilter *f2){
-            auto new_name = f1->get_name() + "||" + f2->get_name();
-            return new ObsFilter(new_name, [f1, f2](){return f1->get_value() && f2->get_value();});
-        }
+/** Return a new filter that is the conjuction of a vector of source filters
+ */
+ObsFilter* all(const std::vector<ObsFilter*>&& fs){
+    if(fs.size() == 0){
+        return nullptr;
+    } else{
+        std::stringstream ss;
+        ss << fs[0]->get_name();
+        for(size_t i=1; i<fs.size(); i++) ss << "AND" << fs[i]->get_name();
+        return new ObsFilter(ss.str(), [fs](){
+                return std::all_of(std::begin(fs), std::end(fs), [](ObsFilter* f){return f->get_value();});
+        });
+    }
+}
 
-        /** Return a new filter that is the conjuction of the two source filters.
-         */
-        ObsFilter* operator*(ObsFilter *f){
-            auto new_name = this->get_name() + "&&" + f->get_name();
-            return new ObsFilter(new_name, [this, f](){return this->get_value() && f->get_value();});
-        }
+/** Return a new filter that is the disjunction of a vector of source filters
+ */
+ObsFilter* any(const std::vector<ObsFilter*>&& fs){
+    if(fs.size() == 0){
+        return nullptr;
+    } else{
+        std::stringstream ss;
+        ss << fs[0]->get_name();
+        for(size_t i=1; i<fs.size(); i++) ss << "OR" << fs[i]->get_name();
+        return new ObsFilter(ss.str(), [fs](){
+                return std::any_of(std::begin(fs), std::end(fs), [](ObsFilter* f){return f->get_value();});
+        });
+    }
+}
 
-        /** Return a new filter that is the disjunction of the two source
-         * filters.
-         */
-        ObsFilter* operator+(ObsFilter *f){
-            auto new_name = this->get_name() + "||" + f->get_name();
-            return new ObsFilter(new_name, [this, f](){return this->get_value() || f->get_value();});
-        }
+/** Return a new filter that is the conjuction of the two source filters.
+ */
+ObsFilter* all(ObsFilter *f1, ObsFilter *f2){
+    return all({f1, f2});
+}
 
-        /** Return a new filter that is the negation of the source filter.
-         */
-        ObsFilter* operator!(){
-            auto new_name = std::string("!(") + this->get_name() + std::string(")");
-            return new ObsFilter(new_name, [this](){return !this->get_value();});
-        }
-};
+/** Return a new filter that is the conjuction of the two source filters.
+ */
+ObsFilter* any(ObsFilter *f1, ObsFilter *f2){
+    return any({f1, f2});
+}
 
-template <typename T>
-class RangeObsFilter : public ObsFilter{
-    private:
-    public:
-        RangeObsFilter(const std::string name, Value<T>* test_value, T range_low, T range_high):
-          ObsFilter(name, [test_value, range_low, range_high]{
-                  T val = test_value->get_value();
-                  return (val >= range_low) && (val < range_high);
-                  }) { }
-};
 }
 #endif // filter_h

+ 55 - 10
filval_root/container.hpp

@@ -131,6 +131,10 @@ class ContainerTH1 : public _ContainerTH1<V>{
     void _do_fill(){
         this->container->Fill(this->value->get_value());
     }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerTH1<V>(new_name, this->title, this->value, this->nbins, this->low, this->high, this->label_x, this->label_y);
+        }
 };
 
 template <typename V>
@@ -140,6 +144,10 @@ class ContainerTH1Many : public _ContainerTH1<std::vector<V>>{
         for(V x : this->value->get_value())
             this->container->Fill(x);
     }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerTH1Many<V>(new_name, this->title, this->value, this->nbins, this->low, this->high, this->label_x, this->label_y);
+        }
 };
 
 
@@ -199,6 +207,11 @@ class ContainerTH2 : public _ContainerTH2<V>{
     void _do_fill(std::pair<V,V>& val){
         this->container->Fill(val.first,val.second);
     }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerTH2<V>(new_name, this->title, this->value, this->nbins_x, this->low_x, this->high_x,
+                                       this->nbins_y, this->low_y, this->high_y, this->label_x, this->label_y);
+        }
 };
 
 template <typename V>
@@ -209,6 +222,11 @@ class ContainerTH2Many : public _ContainerTH2<std::vector<V>>{
         for(int i=0; i<min_size; i++)
             this->container->Fill(val.first[i],val.second[i]);
     }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerTH2Many<V>(new_name, this->title, this->value, this->nbins_x, this->low_x, this->high_x,
+                                           this->nbins_y, this->low_y, this->high_y, this->label_x, this->label_y);
+        }
 };
 
 template <typename V>
@@ -241,26 +259,35 @@ class ContainerTGraph : public Container<TGraph,std::pair<V,V>>{
             }
             return this->container;
         }
+
+        GenContainer* clone_as(const std::string& new_name){
+            return new ContainerTGraph<V>(new_name, this->title, this->value);
+        }
+
         void save_as(const std::string& fname, const SaveOption& option = SaveOption::PNG) {
             util::save_as(get_container(), fname, option);
         }
 };
 
-template <typename T>
-class Vector : public Container<std::vector<T>,T>{
+template <typename V>
+class Vector : public Container<std::vector<V>,V>{
     private:
 
         void _fill(){
             this->container->push_back(this->value->get_value());
         }
     public:
-        Vector(const std::string& name, Value<T>* value)
-          :Container<std::vector<T>,T>(name, value){
-            this->container = new std::vector<T>;
+        Vector(const std::string& name, Value<V>* value)
+          :Container<std::vector<V>,V>(name, value){
+            this->container = new std::vector<V>;
+        }
+
+        GenContainer* clone_as(const std::string& new_name){
+            return new Vector<V>(new_name, this->value);
         }
 
         void save_as(const std::string& fname, const SaveOption& option = SaveOption::PNG) {
-            std::string type_name = "std::vector<"+fv::util::get_type_name(typeid(T))+">";
+            std::string type_name = "std::vector<"+fv::util::get_type_name(typeid(V))+">";
             util::save_as_stl(this->get_container(), type_name, this->get_name(), option);
         }
 };
@@ -290,6 +317,10 @@ class Counter : public _Counter<V,V>{
         void _fill(){
             (*this->container)[this->value->get_value()]++;
         }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new Counter<V>(new_name, this->value);
+        }
 };
 
 /**
@@ -302,6 +333,10 @@ class CounterMany : public _Counter<std::vector<V>,V>{
             for(V& val : this->value->get_value())
                 (*this->container)[val]++;
         }
+    public:
+        GenContainer* clone_as(const std::string& new_name){
+            return new CounterMany<V>(new_name, this->value);
+        }
 };
 
 class PassCount : public Container<int,bool>{
@@ -318,6 +353,10 @@ class PassCount : public Container<int,bool>{
             this->container = new int(0);
         }
 
+        GenContainer* clone_as(const std::string& new_name){
+            return new PassCount(new_name, this->value);
+        }
+
         void save_as(const std::string& fname, const SaveOption& option = SaveOption::PNG) {
             //ROOT(hilariously) cannot serialize basic data types, we wrap this
             //in a vector.
@@ -332,8 +371,8 @@ class MVA : public Container<TMVA::DataLoader,typename MVAData<ArgTypes...>::typ
     private:
         std::vector<std::pair<std::string,std::string>> methods;
 
-        TCut cut;
-        TString opt;
+        std::string cut;
+        std::string opt;
 
         void _fill(){
             std::tuple<ArgTypes...> t;
@@ -359,7 +398,7 @@ class MVA : public Container<TMVA::DataLoader,typename MVAData<ArgTypes...>::typ
     public:
         MVA(const std::string& name, MVAData<ArgTypes...>* value, const std::string& cut = "", const std::string& opt = "")
           :Container<TMVA::DataLoader,typename MVAData<ArgTypes...>::type>(name, value),
-           cut(cut.c_str()), opt(opt.c_str()) {
+           cut(cut), opt(opt) {
             this->container = new TMVA::DataLoader(name);
             for (std::pair<std::string,char>& p : value->get_label_types()){
                 this->container->AddVariable(p.first, p.second);
@@ -370,10 +409,16 @@ class MVA : public Container<TMVA::DataLoader,typename MVAData<ArgTypes...>::typ
             methods.push_back(std::make_pair(method_name, method_params));
         }
 
+        GenContainer* clone_as(const std::string& new_name){
+            auto mva = new MVA<ArgTypes...>(new_name, (MVAData<ArgTypes...>*)this->value, this->cut, this->opt);
+            mva->methods = methods;
+            return mva;
+        }
+
         void save_as(const std::string& fname, const SaveOption& option = SaveOption::PNG) {
             TFile* outputFile = gDirectory->GetFile();
 
-            this->container->PrepareTrainingAndTestTree(cut, opt);
+            this->container->PrepareTrainingAndTestTree(cut.c_str(), opt.c_str());
             TMVA::Factory *factory = new TMVA::Factory("TMVAClassification", outputFile,
                                                        "!V:!Silent:Color:DrawProgressBar:Transformations=I;D;P;G,D:AnalysisType=Classification");
 

File diff suppressed because it is too large
+ 50 - 75
python/Plotter Testing.ipynb


File diff suppressed because it is too large
+ 43 - 98
python/TTTT_Analysis.ipynb