ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CellularAutomaton.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CellularAutomaton.h
1 #ifndef TRACKRECO_CELLULARAUTOMATON_H
2 #define TRACKRECO_CELLULARAUTOMATON_H
3 
4 
5 #include <HelixHough/SimpleHit3D.h>
6 #include <HelixHough/SimpleTrack3D.h>
7 #include <HelixHough/HelixKalmanState.h>
8 
9 #include <climits>
10 #include <cmath>
11 #include <map>
12 #include <set>
13 
14 class HelixKalmanState;
15 class HelixHoughSpace;
16 
18 
19  public:
20  virtual ~CellularAutomaton() {};
21 
22  // The "standard PHObject response" functions...
23  virtual void identify(std::ostream &os=std::cout) const {
24  os << "CellularAutomaton base class" << std::endl;
25  }
26  virtual void Reset() {}
27  virtual int isValid() const {return 0;}
28  virtual CellularAutomaton* Clone() const {return nullptr;}
29 
30  virtual void set_hough_space(HelixHoughSpace*) {}
31  virtual void set_mag_field(float) {}
32  virtual void set_pt_rescale(float) {}
33  virtual void set_n_layers(unsigned int) {}
34  virtual void set_required_layers(unsigned int) {}
35  virtual void set_ca_chi2(float) {}
36  virtual void set_ca_chi2_layer(float) {}
37  virtual void set_ca_phi_cut(float) {}
38  virtual void set_ca_z_cut(float) {}
39  virtual void set_ca_dcaxy_cut(float) {}
40  virtual void set_propagate_forward(bool) {}
41  virtual void set_remove_hits(bool) {}
42  virtual void set_remove_inner_hits(bool) {}
43  virtual void set_require_inner_hits(bool) {}
44  virtual void set_triplet_mode(bool) {}
45  virtual void set_seeding_mode(bool) {}
46  virtual void set_hits_map(std::map<unsigned int, SimpleHit3D>&) {}
47 
48  virtual int run(std::vector<SimpleTrack3D>&, std::vector<HelixKalmanState>&, std::map<unsigned int, bool>&) {return 0;}
49 
50  private:
51 
52  virtual void set_detector_radii(std::vector<float>&) {}
53  virtual void set_detector_material(std::vector<float>&) {}
54  virtual void set_input_tracks(std::vector<SimpleTrack3D>&) {}
55  virtual void set_cylinder_kalman() {}
56 
57  virtual int init() {return 0;}
58  virtual int process_tracks() {return 0;}
59  virtual int process_single_track(SimpleTrack3D&) {return 0;}
60  virtual int process_single_triplet(SimpleTrack3D&) {return 0;}
61  virtual int get_ca_tracks(std::vector<SimpleTrack3D>&, std::vector<HelixKalmanState>&) {return 0;}
62 
64  float, float, float, float, float, float,
65  float, float, float,
66  float, float, float, float, float, float,
67  float, float, float,
68  float&, float&,
69  float&, float&, float&, float&,
70  float&, float&, float&, float&) {return 0;}
71 
73  float, float, float, float, float, float,
74  float, float, float,
75  float, float, float, float, float, float,
76  float, float, float,
77  float&, float&,
78  float&, float&, float&, float&,
79  float&, float&, float&, float&,
80  float, float,
81  float, float, float, float,
82  float, float&) {return 0;}
83 
84  virtual float shift_phi_range(float){return 0;};
85 
86 
87  protected:
89 
90 };
91 
92 #endif