forked from sPHENIX-Collaboration/coresoftware
/
CellularAutomaton.h
92 lines (73 loc) · 3.12 KB
/
CellularAutomaton.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef TRACKRECO_CELLULARAUTOMATON_H
#define TRACKRECO_CELLULARAUTOMATON_H
#include <HelixHough/SimpleHit3D.h>
#include <HelixHough/SimpleTrack3D.h>
#include <HelixHough/HelixKalmanState.h>
#include <climits>
#include <cmath>
#include <map>
#include <set>
class HelixKalmanState;
class HelixHoughSpace;
class CellularAutomaton {
public:
virtual ~CellularAutomaton() {};
// The "standard PHObject response" functions...
virtual void identify(std::ostream &os=std::cout) const {
os << "CellularAutomaton base class" << std::endl;
}
virtual void Reset() {}
virtual int isValid() const {return 0;}
virtual CellularAutomaton* Clone() const {return nullptr;}
virtual void set_hough_space(HelixHoughSpace*) {}
virtual void set_mag_field(float) {}
virtual void set_pt_rescale(float) {}
virtual void set_n_layers(unsigned int) {}
virtual void set_required_layers(unsigned int) {}
virtual void set_ca_chi2(float) {}
virtual void set_ca_chi2_layer(float) {}
virtual void set_ca_phi_cut(float) {}
virtual void set_ca_z_cut(float) {}
virtual void set_ca_dcaxy_cut(float) {}
virtual void set_propagate_forward(bool) {}
virtual void set_remove_hits(bool) {}
virtual void set_remove_inner_hits(bool) {}
virtual void set_require_inner_hits(bool) {}
virtual void set_triplet_mode(bool) {}
virtual void set_seeding_mode(bool) {}
virtual void set_hits_map(std::map<unsigned int, SimpleHit3D>&) {}
virtual int run(std::vector<SimpleTrack3D>&, std::vector<HelixKalmanState>&, std::map<unsigned int, bool>&) {return 0;}
private:
virtual void set_detector_radii(std::vector<float>&) {}
virtual void set_detector_material(std::vector<float>&) {}
virtual void set_input_tracks(std::vector<SimpleTrack3D>&) {}
virtual void set_cylinder_kalman() {}
virtual int init() {return 0;}
virtual int process_tracks() {return 0;}
virtual int process_single_track(SimpleTrack3D&) {return 0;}
virtual int process_single_triplet(SimpleTrack3D&) {return 0;}
virtual int get_ca_tracks(std::vector<SimpleTrack3D>&, std::vector<HelixKalmanState>&) {return 0;}
virtual int calculate_kappa_tangents(
float, float, float, float, float, float,
float, float, float,
float, float, float, float, float, float,
float, float, float,
float&, float&,
float&, float&, float&, float&,
float&, float&, float&, float&) {return 0;}
virtual int calculate_kappa_tangents(
float, float, float, float, float, float,
float, float, float,
float, float, float, float, float, float,
float, float, float,
float&, float&,
float&, float&, float&, float&,
float&, float&, float&, float&,
float, float,
float, float, float, float,
float, float&) {return 0;}
virtual float shift_phi_range(float){return 0;};
protected:
CellularAutomaton(){}
};
#endif