Particle Identification and Tracking
corr_pair_diffusion.h
Go to the documentation of this file.
1 //Copyright 2012 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 //If you modify this Program, or any covered work, by linking or
27 //combining it with IPP (or a modified version of that library),
28 //containing parts covered by the terms of End User License Agreement
29 //for the Intel(R) Software Development Products, the licensors of
30 //this Program grant you additional permission to convey the resulting
31 //work.
32 
33 
34 
35 #include "part_def.h"
36 #ifdef TRACKING_FLG
37 // only include this if the particles know about tracking
38 
39 #ifndef CORR_PAIR_DIFF
40 #define CORR_PAIR_DIFF
41 
42 #include <vector>
43 #include <string>
44 #include "corr.h"
45 
46 #include "histogram.h"
47 
48 namespace utilities
49 {
50 class Generic_wrapper;
51 }
52 
53 
54 namespace tracking
55 {
61 {
62 public:
63  // basic inherited stuff
64  void compute(const particle *,const std::vector<const particle*> & ) ;
65  void out_to_wrapper(utilities::Generic_wrapper & wrapper_out,
66  const std::string & g_name,
67  const utilities::Md_store * md_store)const;
68 
69 
70 
71 
72 
85  Corr_pair_diffusion(unsigned int n_dbins,
86  float max_disp,
87  unsigned int n_rbins,
88  float min_r,
89  float max_r,
90  unsigned int min_t,
91  unsigned int t_stride,
92  unsigned int t_step_count);
93 
94 
95 
96  float get_max_range()const
97  {
98  return sqrt(max_r_square_);
99  }
100 
101 private:
107  std::vector< std::vector<utilities::Histogram> > data_prll_;
108  std::vector< std::vector<utilities::Histogram> > data_perp_;
109 
110  const float min_r_;
111  const float max_r_;
112  const unsigned int n_rbins_;
113 
114 
115  const float min_r_square_;
116  const float max_r_square_;
117 
118  const unsigned int min_t_;
119  const unsigned int t_stride_;
120  const unsigned int t_step_count_;
121 
122 
123 
124 };
125 
126 }
127 
128 
129 
130 #endif
131 #endif