ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TpcDirectLaserReconstruction.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TpcDirectLaserReconstruction.h
1 #ifndef TPCCALIB_TPCDIRECTLASERRECONSTRUCTION_H
2 #define TPCCALIB_TPCDIRECTLASERRECONSTRUCTION_H
3 
10 #include <fun4all/SubsysReco.h>
11 #include <phparameter/PHParameterInterface.h>
13 
14 #include <memory>
15 
16 struct ActsSurfaceMaps;
18 class SvtxTrack;
19 class SvtxTrackMap;
21 class TrkrCluster;
24 
25 class TFile;
26 class TH1;
27 class TH2;
28 class TH3;
29 
31 {
32 
33  public:
34 
36  TpcDirectLaserReconstruction( const std::string& = "TpcDirectLaserReconstruction" );
37 
39  int Init(PHCompositeNode*) override;
40 
42  int InitRun(PHCompositeNode*) override;
43 
45  int process_event(PHCompositeNode*) override;
46 
48  int End(PHCompositeNode*) override;
49 
51  void SetDefaultParameters() override;
52 
54 
57  void set_outputfile( const std::string& filename )
58  { m_outputfile = filename; }
59 
62 
64  void set_histogram_outputfile(const std::string &outputfile)
65  {m_histogramfilename = outputfile;}
66 
68  void set_grid_dimensions( int phibins, int rbins, int zbins );
69 
70  private:
71 
74 
76  void create_histograms();
77 
79  void process_tracks();
80 
82  void process_track( SvtxTrack* );
83 
85  int get_cell_index( const Acts::Vector3D& ) const;
86 
88  std::string m_outputfile = "TpcSpaceChargeMatrices.root";
89 
91 
92  // residual cuts in r, phi plane
93  float m_max_dca = 1.5;
94 
96  float m_max_drphi = 0.5;
97 
99  float m_max_dz = 0.5;
101 
103  std::unique_ptr<TpcSpaceChargeMatrixContainer> m_matrix_container;
104 
106 
110 
112 
113 
116 
119 
122 
125 
128 
129  // clusters
132 
134 
135  bool m_savehistograms = false;
136  std::string m_histogramfilename = "TpcDirectLaserReconstruction.root";
137  std::unique_ptr<TFile> m_histogramfile = nullptr;
138 
140  TH2* h_dca_layer = nullptr;
141 
143  TH2 *h_deltarphi_layer = nullptr;
144 
146  TH2 *h_deltaz_layer = nullptr;
147 
149  TH3 *h_entries = nullptr;
150 
152 
153 };
154 
155 #endif