Particle Identification and Tracking
wrapper_o.h
Go to the documentation of this file.
1 //Copyright 2008-2010 Thomas A Caswell
2 //tcaswell@uchicago.edu
3 //http://jfi.uchicago.edu/~tcaswell
4 //
5 //This program is free software; you can redistribute it and/or modify
6 //it under the terms of the GNU General Public License as published by
7 //the Free Software Foundation; either version 3 of the License, or (at
8 //your option) any later version.
9 //
10 //This program is distributed in the hope that it will be useful, but
11 //WITHOUT ANY WARRANTY; without even the implied warranty of
12 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 //General Public License for more details.
14 //
15 //You should have received a copy of the GNU General Public License
16 //along with this program; if not, see <http://www.gnu.org/licenses>.
17 //
18 //Additional permission under GNU GPL version 3 section 7
19 //
20 //If you modify this Program, or any covered work, by linking or
21 //combining it with MATLAB (or a modified version of that library),
22 //containing parts covered by the terms of MATLAB User License, the
23 //licensors of this Program grant you additional permission to convey
24 //the resulting work.
25 
26 
27 
28 #ifndef WRAPPER_O_BASE
29 #define WRAPPER_O_BASE
30 
31 #include <complex>
32 #include <set>
33 #include <string>
34 #include "enum_utils.h"
35 #include "part_def.h"
36 
37 namespace tracking
38 {
39  class Track_box;
40 }
41 
42 
43 namespace utilities
44 {
45 class params;
46 class Read_config;
47 class Md_store;
48 
49 
54 {
55 public:
78  //\@{
79 
80 
88  virtual void initialize_wrapper()=0;
89 
90 
98  virtual void open_group(int group = 0,int p_count =0, int wrapper_size=-1) = 0;
99 
100 
104  virtual void set_all_values(const tracking::particle *)=0;
105 
106 
107 #ifdef TRACKING_FLG
108 
114  virtual void set_all_values(const tracking::Track_box *,const utilities::Tuple<float,3> &) = 0;
115 #endif
116 
117 
122  virtual void close_group()=0;
123 
128  virtual void finalize_wrapper()=0;
129 
130  //\@}
131 
132 
133 
137  virtual const std::set<D_TYPE>& get_content_tpyes() const = 0;
138 
142  virtual ~Wrapper_out(){};
147 
148 
149 
158  virtual void add_meta_data(const std::string & key, float val)=0;
162  virtual void add_meta_data(const std::string & key, const Tuple<float,3> & val)=0;
166  virtual void add_meta_data(const std::string & key, const Tuple<float,2>& val)=0;
170  virtual void add_meta_data(const std::string & key, const std::string & val)=0;
174  virtual void add_meta_data(const std::string & key, int val)=0;
176 
177 
186  virtual void add_meta_data_root(const std::string & key, float val)=0;
190  virtual void add_meta_data_root(const std::string & key, const Tuple<float,3> & val)=0;
194  virtual void add_meta_data_root(const std::string & key, const Tuple<float,2>& val)=0;
198  virtual void add_meta_data_root(const std::string & key, const std::string & val)=0;
202  virtual void add_meta_data_root(const std::string & key, int val)=0;
204 
205 
206 
215  virtual void add_meta_data_comp(const std::string & key, float val)=0;
219  virtual void add_meta_data_comp(const std::string & key, const Tuple<float,3> & val)=0;
223  virtual void add_meta_data_comp(const std::string & key, const Tuple<float,2>& val)=0;
227  virtual void add_meta_data_comp(const std::string & key, const std::string & val)=0;
231  virtual void add_meta_data_comp(const std::string & key, int val)=0;
233 
234 
235 
243  virtual void add_meta_data(const std::string & key, float val,D_TYPE dset_type)=0;
247  virtual void add_meta_data(const std::string & key, const Tuple<float,3> & val,D_TYPE dset_type)=0;
251  virtual void add_meta_data(const std::string & key, const Tuple<float,2>& val,D_TYPE dset_type)=0;
255  virtual void add_meta_data(const std::string & key, const std::string & val,D_TYPE dset_type)=0;
259  virtual void add_meta_data(const std::string & key, int val,D_TYPE dset_type)=0;
260 
264  virtual void add_meta_data_list(const Read_config & , const std::set<D_TYPE> &)=0;
266 
270  virtual void add_meta_store(const Md_store * md_in) =0;
271 
272 
273 };
274 
275 }
276 #endif
277 
278 
279 
280