ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHActsVertexFitter.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHActsVertexFitter.h
1 #ifndef TRACKRECO_PHACTSVERTEXFITTER_H
2 #define TRACKRECO_PHACTSVERTEXFITTER_H
3 
4 #include <fun4all/SubsysReco.h>
6 
8 
9 #include <ActsExamples/EventData/TrkrClusterMultiTrajectory.hpp>
10 
11 class PHCompositeNode;
12 class SvtxTrack;
13 class SvtxTrackMap;
14 class SvtxVertex;
15 class SvtxVertexMap;
16 
17 namespace Acts
18 {
19  class TrackParameters;
20 }
21 
22 using Trajectory = ActsExamples::TrkrClusterMultiTrajectory;
23 
24 using BoundTrackParamVec = std::vector<const Acts::BoundTrackParameters *>;
25 using VertexTrackMap = std::map<const unsigned int,
27 
29 
36 {
37  public:
38  PHActsVertexFitter(const std::string &name = "PHActsVertexFitter");
39  ~PHActsVertexFitter() override {}
40  int process_event(PHCompositeNode *topNode) override;
41  int Init(PHCompositeNode *topNode) override;
42  int InitRun(PHCompositeNode *topNode) override;
43  int ResetEvent(PHCompositeNode *topNode) override;
44  int End(PHCompositeNode *topNode) override;
45 
47  {
49  }
50 
51  private:
52  int getNodes(PHCompositeNode *topNode);
53  int createNodes(PHCompositeNode *topNode);
54 
57 
60 
63  Acts::Logging::Level logLevel) const;
64 
66  void fitVertices(std::vector<const Acts::BoundTrackParameters *> tracks);
67 
69  void createActsSvtxVertex(const unsigned int,
70  ActsVertex vertex);
71  void updateSvtxVertex(const unsigned int,
72  ActsVertex vertex);
73 
74  int m_event = 0;
75 
76  std::map<const unsigned int, Trajectory> *m_actsFitResults;
81 
84  bool m_updateSvtxVertexMap = false;
85 };
86 
87 #endif //TRACKRECO_PHACTSVERTEXFITTER_H