Particle Identification and Tracking
corr.h
Go to the documentation of this file.
1 //Copyright 2009,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 //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 #ifndef CORR_
34 #define CORR_
35 
36 #include <vector>
37 
38 #include "part_def.h"
39 
40 namespace utilities
41 {
42 class Generic_wrapper;
43 class Md_store;
44 
45 }
46 
47 
48 
49 
50 
51 namespace tracking
52 {
53 
54 
55 
60 class Corr
61 {
62 public:
68  virtual void compute(const particle *,const std::vector<const particle*> & ) = 0;
69 
73  virtual void out_to_wrapper(utilities::Generic_wrapper &,const std::string &,const utilities::Md_store * ) const =0;
78  virtual float get_max_range() const = 0;
79 
83  void add_plane_temperature(float temp);
87  virtual ~Corr(){};
88 protected:
89  Corr();
97  unsigned int plane_count_;
98 
99 };
100 
104 class Dummy_corr:public Corr
105 {
106 public:
107  void compute(const particle *,const std::vector<const particle*> & ) {};
108 
109  void out_to_wrapper(utilities::Generic_wrapper &,const std::string & ) const{}
110 
111 
112 
113  virtual float get_max_range() const{return size_;};
114  void out_to_wrapper(utilities::Generic_wrapper &,const std::string &,const utilities::Md_store * ) const {};
115 
116 
117 
119  Dummy_corr(float in):size_(in){};
120 
121 
122 private:
123  float size_;
124 
125 };
126 
127 
128 
129 }
130 
131 
132 #endif