EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TpcSpaceChargeReconstruction.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TpcSpaceChargeReconstruction.h
1 #ifndef TPCCALIB_TPCSPACECHARGERECONSTRUCTION_H
2 #define TPCCALIB_TPCSPACECHARGERECONSTRUCTION_H
3 
8 #include <fun4all/SubsysReco.h>
9 #include <phparameter/PHParameterInterface.h>
10 
11 #include <TString.h>
12 
13 #include <memory>
14 #include <vector>
15 
16 // forward declaration
17 class SvtxTrack;
18 class SvtxTrackMap;
20 class TrkrCluster;
22 
38 {
39  public:
40 
42  TpcSpaceChargeReconstruction( const std::string& = "TPCSPACECHARGERECONSTRUCTION" );
43 
45 
46 
49  { m_use_micromegas = value; }
50 
52 
56  void set_grid_dimensions( int phibins, int rbins, int zbins );
57 
59 
62  void set_outputfile( const std::string& filename )
63  { m_outputfile = filename; }
64 
66 
68  int Init(PHCompositeNode*) override;
69 
71  int InitRun(PHCompositeNode*) override;
72 
74  int process_event(PHCompositeNode*) override;
75 
77  int End(PHCompositeNode*) override;
78 
80  void SetDefaultParameters() override;
81 
82  private:
83 
86 
88  void process_tracks();
89 
91  bool accept_track( SvtxTrack* ) const;
92 
94  void process_track( SvtxTrack* );
95 
97  int get_cell_index( TrkrCluster* ) const;
98 
100  std::string m_outputfile = "TpcSpaceChargeMatrices.root";
101 
103  bool m_use_micromegas = true;
104 
106 
107  // residual cuts in r, phi plane
108  float m_max_talpha = 0.6;
109  float m_max_drphi = 0.5;
110 
111  // residual cuts in r, z plane
112  float m_max_tbeta = 1.5;
113  float m_max_dz = 0.5;
115 
117  std::unique_ptr<TpcSpaceChargeMatrixContainer> m_matrix_container;
118 
120 
121  int m_total_tracks = 0;
123 
127 
129 
133 
134 };
135 
136 #endif