ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTpcTracker.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTpcTracker.h
1 
7 #ifndef PHTPCTRACKER_H_
8 #define PHTPCTRACKER_H_
9 
10 // sPHENIX includes
11 
13 
14 #include <cmath> // for M_PI
15 #include <cstddef> // for size_t
16 #include <string> // for string
17 
18 class PHCompositeNode;
19 class PHField;
20 class TGeoManager;
21 class PHTpcSeedFinder;
22 class PHTpcTrackFollower;
23 class PHTpcVertexFinder;
24 class PHTpcEventExporter;
25 class PHTpcLookup;
26 
27 namespace PHGenFit2
28 {
29  class Fitter;
30 }
31 
37 {
38  public:
39  PHTpcTracker(const std::string& name = "PHTpcTracker");
40  ~PHTpcTracker() override;
41 
42  void set_seed_finder_options(double maxdistance1 = 3.0, double tripletangle1 = M_PI / 8, size_t minhits1 = 10,
43  double maxdistance2 = 6.0, double tripletangle2 = M_PI / 8, size_t minhits2 = 5, size_t nthreads = 1);
44  void set_seed_finder_optimization_remove_loopers(bool opt = false, double minr = 10.0, double maxr = 70.0);
45  void set_track_follower_optimization_helix(bool opt = false);
46  void set_track_follower_optimization_precise_fit(bool opt = true);
47 
52 
53  void enable_vertexing(bool opt = false) { mEnableVertexing = opt; }
54  void enable_json_export(bool opt = false) { mEnableJsonExport = opt; }
55 
56  protected:
57  int Setup(PHCompositeNode* topNode) override;
58 
59  int Process(PHCompositeNode* topNode) override;
60 
61  int End() override {return 0;}
62 
63  PHField* getMagField(PHCompositeNode* topNode, double& B);
64 
65  private:
71 
73  TGeoManager* mTGeoManager;
75  double mB;
76 
79 };
80 
81 #endif /* __PHTPCTRACKER_H */