Particle Identification and Tracking
master_box_t.h
Go to the documentation of this file.
1 //Copyright 2008-2011 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 #ifndef MASTER_BOX_T
27 #define MASTER_BOX_T
28 
29 #include <vector>
30 #include <iostream>
31 #include <set>
32 
33 
34 #include "enum_utils.h"
35 #include "part_def.h"
36 
37 namespace utilities
38 {
39 class Wrapper_in;
40 class Md_store;
41 
42 class Filter;
43 
44 
45 }
46 
47 
48 namespace tracking{
49 class Accumulator;
55 class Master_box{
56 
57 public:
58 
59 
61  void print();
62 
64  void push(particle* next){
65  particle_vec_.push_back(next);
66  };
67 
70  return particle_vec_.at(n);
71  }
72 
77  data_types.insert(type);
78  }
79 
83  Master_box();
84 
87  unsigned int size(){ return particle_vec_.size();}
88 
90  void clean_pos_link();
91 
92 
96  void init(const utilities::Wrapper_in & w_in,utilities::Filter & filt);
97 
101  void compute_accum(tracking::Accumulator & in)const;
102 
106  const utilities::Md_store * get_Md_store(unsigned int j) const;
107 
111  ~Master_box();
112 
113 protected:
122  std::vector<particle*> particle_vec_;
123 
133 
134  //imlement this
136  unsigned int imagesz1;
138  unsigned int imagesz2;
139 
143  std::set<utilities::D_TYPE> data_types;
144 
149 
154  void priv_init(utilities::Filter const* const filt);
155 
156 };
157 }
158 
159 
160 
161 #endif