EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4TpcDistortion.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4TpcDistortion.h
1 // $Id: $
2 
11 #ifndef G4TPC_PHG4TPCDISTORTION_H
12 #define G4TPC_PHG4TPCDISTORTION_H
13 
14 #include <memory>
15 #include <string>
16 
17 class TFile;
18 class TH3;
19 class TTree;
20 
23 {
24  public:
26  explicit PHG4TpcDistortion() = default;
27 
29 
30 
32  double get_x_distortion_cartesian(double x, double y, double z) const;
33 
35  double get_y_distortion_cartesian(double x, double y, double z) const;
36 
38  double get_z_distortion_cartesian(double x, double y, double z) const;
39 
41  double get_r_distortion(double r, double phi, double z) const;
42 
44  double get_rphi_distortion(double r, double phi, double z) const;
45 
47  double get_z_distortion(double r, double phi, double z) const;
48 
49 
50 
51 
52 
54  int Verbosity() const
55  {
56  return verbosity;
57  }
58 
60 
62 
63 
66  {
68  }
69 
71  void set_static_distortion_filename(const std::string &value)
72  {
74  }
75 
78  {
80  }
81 
84  {
86  }
87 
89  void Init();
90 
92  void load_event(int event_num);
93 
95  void Verbosity(const int ival)
96  {
97  verbosity = ival;
98  }
99 
101 
102  private:
104  double get_distortion(char axis, double r, double phi, double z) const;
105 
107  int verbosity = 0;
108 
110 
113  std::unique_ptr<TFile> m_static_tfile;
114  TH3 *hDRint[2]={nullptr,nullptr};
115  TH3 *hDPint[2]={nullptr,nullptr};
116  TH3 *hDZint[2]={nullptr,nullptr};
118 
120 
123  std::unique_ptr<TFile> m_time_ordered_tfile;
124  TTree *TimeTree=nullptr;
125  TH3 *TimehDR[2]={nullptr,nullptr};
126  TH3 *TimehDP[2]={nullptr,nullptr};
127  TH3 *TimehDZ[2]={nullptr,nullptr};
129 };
130 
131 #endif /* G4TPC_PHG4TPCDISTORTION_H */