ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHActsTrackProjection.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHActsTrackProjection.h
1 #ifndef TRACKRECO_PHACTSTRACKPROJECTION_H
2 #define TRACKRECO_PHACTSTRACKPROJECTION_H
3 
4 #include <fun4all/SubsysReco.h>
5 #include <trackbase/TrkrDefs.h>
7 
9 
15 
16 #include <ActsExamples/EventData/TrkrClusterMultiTrajectory.hpp>
17 
18 class PHCompositeNode;
20 class RawTowerContainer;
22 class SvtxTrackMap;
23 class SvtxTrack;
24 class SvtxVertexMap;
25 
26 #include <memory>
27 #include <map>
28 #include <string>
29 
30 using BoundTrackParamPtr =
31  std::unique_ptr<const Acts::BoundTrackParameters>;
33 using SurfacePtr = std::shared_ptr<const Acts::Surface>;
34 using Trajectory = ActsExamples::TrkrClusterMultiTrajectory;
35 
36 
45 {
46 
47  public:
48  PHActsTrackProjection(const std::string& name
49  = "PHActsTrackProjection");
50 
51  int Init(PHCompositeNode *topNode) override;
52  int InitRun(PHCompositeNode *topNode) override;
53  int process_event(PHCompositeNode *topNode) override;
54  int End(PHCompositeNode *topNode) override;
55 
56  private:
57 
58  int getNodes(PHCompositeNode *topNode);
59  int projectTracks(PHCompositeNode *topNode, int caloLayer);
60 
63  const Acts::BoundTrackParameters& params,
64  const SurfacePtr &targetSurf);
65 
68  const int caloLayer);
69 
72 
75  SvtxTrack* svtxTrack,
76  const int caloLayer);
77 
79  void getSquareTowerEnergies(int phiBin, int etaBin,
80  double& energy3x3,
81  double& energy5x5);
82 
84  void getClusterProperties(double phi, double eta,
85  double& minIndex, double& minDphi,
86  double& minDeta, double& minE);
88  double deltaPhi(const double& phi);
90 
95  std::map<const unsigned int, Trajectory> *m_trajectories{nullptr};
96 
97 
100  const static int m_nCaloLayers = 3;
101  std::vector<std::string> m_caloNames;
102  std::vector<SvtxTrack::CAL_LAYER> m_caloTypes;
103  std::map<std::string, SurfacePtr> m_caloSurfaces;
104 
108 
109  bool m_useCemcPosRecalib = false;
110 
111  int m_event = 0;
112 };
113 
114 #endif