Analysis Software
Documentation for sPHENIX simulation 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 
10 #include "ActsPropagator.h"
11 
16 
18 
19 class PHCompositeNode;
21 class TowerInfoContainer;
23 class SvtxTrackMap;
24 class SvtxTrack;
25 class SvtxVertexMap;
26 
27 #include <map>
28 #include <memory>
29 #include <string>
30 
39 {
40  public:
41  using BoundTrackParam =
43  using SurfacePtr = std::shared_ptr<const Acts::Surface>;
46 
47  PHActsTrackProjection(const std::string &name = "PHActsTrackProjection");
48 
49  int Init(PHCompositeNode *topNode) override;
50  int InitRun(PHCompositeNode *topNode) override;
51  int process_event(PHCompositeNode *topNode) override;
52  int End(PHCompositeNode *topNode) override;
53 
55  void setConstFieldVal(float b) { m_constFieldVal = b; }
56 
59  const float rad)
60  {
61  if (m_caloRadii.find(layer) != m_caloRadii.end())
62  {
64  }
65  else
66  {
67  m_caloRadii.insert(std::make_pair(layer, rad));
68  }
69  }
70 
71  private:
72  int getNodes(PHCompositeNode *topNode);
73  int projectTracks(int caloLayer);
74 
77  const Acts::BoundTrackParameters &params,
78  const int caloLayer,
79  const SurfacePtr &targetSurf);
80 
83  const int caloLayer);
84 
87 
90  SvtxTrack *svtxTrack,
91  const int caloLayer);
92 
94  void getSquareTowerEnergies(int phiBin, int etaBin,
95  double &energy3x3,
96  double &energy5x5);
97 
99  void getClusterProperties(double phi, double eta,
100  double &minIndex, double &minDphi,
101  double &minDeta, double &minE);
102  double deltaPhi(const double &phi);
103 
108 
111  const static int m_nCaloLayers = 3;
112  std::vector<std::string> m_caloNames;
113  std::vector<SvtxTrack::CAL_LAYER> m_caloTypes;
114  std::map<std::string, SurfacePtr> m_caloSurfaces;
117  std::map<SvtxTrack::CAL_LAYER, float> m_caloRadii;
118 
122 
123  bool m_constField = true;
124  float m_constFieldVal = 1.4;
125  bool m_useCemcPosRecalib = false;
126  bool m_calosAvailable = true;
127 
128  int m_event = 0;
129 };
130 
131 #endif