ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTpcClusterMover.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTpcClusterMover.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 
10 #ifndef PHTPCCLUSTERMOVER_H
11 #define PHTPCCLUSTERMOVER_H
12 
13 #include <fun4all/SubsysReco.h>
14 
15 #include <string>
16 #include <vector>
17 
23 
24 class PHCompositeNode;
25 class SvtxTrack;
26 class SvtxTrackMap;
27 class TrkrCluster;
29 
31 {
32  public:
33 
34  PHTpcClusterMover(const std::string &name = "PHTpcClusterMover");
35 
36  ~PHTpcClusterMover() override;
37 
38  int InitRun(PHCompositeNode *topNode) override;
39  int process_event(PHCompositeNode *topNode) override;
40  int End(PHCompositeNode *topNode) override;
41 
42 
43  private:
44 
45  int GetNodes(PHCompositeNode* topNode);
46 
47 void CircleFitByTaubin (std::vector<Acts::Vector3D> clusters, double &R, double &X0, double &Y0);
48  void circle_circle_intersection(double r1, double r2, double x2, double y2, double &xplus, double &yplus, double &xminus, double &yminus);
49 void line_fit(std::vector<Acts::Vector3D> clusters, double &a, double &b);
50  int get_circle_circle_intersection(double target_radius, double R, double X0, double Y0, double xref, double yref, double &x, double &y);
51 
54  ActsSurfaceMaps *surfMaps,
57 
58 
61 
64 
65  double _z_start=0.0;
66  double _y_start=0.0;
67  double _x_start=0.0;
68 
69  double _z_proj=0.0;
70  double _y_proj=0.0;
71  double _x_proj=0.0;
72 
73  // range of TPC layers to use in projection to micromegas
74 
76  SvtxTrack *_track{nullptr};
82 
83  double layer_radius[48] = {0};
84  double inner_tpc_min_radius = 30.0;
85  double mid_tpc_min_radius = 40.0;
86  double outer_tpc_min_radius = 60.0;
87  double outer_tpc_max_radius = 77.0;
88 
89  double inner_tpc_spacing = 0.0;
90  double mid_tpc_spacing = 0.0;
91  double outer_tpc_spacing = 0.0;
92 
93 };
94 
95 #endif // PHTPCCLUSTERMOVER_H