Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClusterErrorPara.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ClusterErrorPara.h
1 #ifndef TRACKBASE_CLUSTERERRORPARA_H
2 #define TRACKBASE_CLUSTERERRORPARA_H
3 
4 #include "TrkrDefs.h"
5 
6 #include <tuple>
7 #include <utility>
8 #include <vector>
9 #include <string>
10 #include <TF1.h>
12 //class TF1;
13 class TrkrCluster;
14 
16 {
17 
18  public:
20  // delete copy ctor and assignment operator (cppcheck)
21  explicit ClusterErrorPara(const ClusterErrorPara&) = delete;
23 
25  delete f0;
26  delete f1;
27  delete f2;
28  delete f0fine;
29  delete f1fine;
30  delete f2fine;
31  delete f2fine2;
32  delete fz0;
33  delete fz1;
34  delete fz2;
35  delete fz0fine;
36  delete fz1fine;
37  delete fz2fine;
38  delete fmm_55_2;
39  delete fmm_56_2;
40  delete fmm_3;
41  delete fadcphi0;
42  delete fadcphi0fine;
43  delete fadcphi1;
44  delete fadcphi1fine;
45  delete fadcphi2;
46  delete fadcphi2fine1;
47  delete fadcphi2fine2;
48  delete fadcz0;
49  delete fadcz1;
50  delete fadcz2;
51  delete fadcz0fine;
52  delete fadcz1fine;
53  delete fadcz2fine;
54  };
55 
56  using error_t = std::pair<double, double>;
57 
58  error_t get_clusterv5_modified_error(TrkrCluster* cluster, double cluster_r, TrkrDefs::cluskey key);
59  error_t get_cluster_error(TrkrCluster* cluster, double cluster_r, TrkrDefs::cluskey key, float qOverR, float slope);
60  error_t get_cluster_error(TrkrCluster* cluster, TrkrDefs::cluskey key, double alpha, double beta);
61 
62  error_t get_simple_cluster_error(TrkrCluster* cluster, double cluster_r, TrkrDefs::cluskey key);
65  double mm_phi_error(int layer, double alpha, TrkrCluster* cluster);
66  double mm_z_error(int layer, double beta, TrkrCluster* cluster);
67  double mvtx_phi_error(TrkrCluster* cluster);
68  double mvtx_phi_error(const TrkrCluster* cluster);
69  double mvtx_z_error(TrkrCluster* cluster);
70  double mvtx_z_error(const TrkrCluster* cluster);
71  double intt_phi_error(int layer, TrkrCluster* cluster);
72  double intt_z_error(TrkrCluster* cluster);
73  double intt_phi_error(int layer, const TrkrCluster* cluster);
74  double intt_z_error(const TrkrCluster* cluster);
75  double tpc_phi_error(int layer, double alpha, TrkrCluster* cluster);
76  double tpc_z_error(int layer, double beta, TrkrCluster* cluster);
77  private:
78 
79  TF1 *f0 = nullptr;
80  TF1 *f1 = nullptr;
81  TF1 *f2 = nullptr;
82  TF1 *f0fine = nullptr;
83  TF1 *f1fine = nullptr;
84  TF1 *f2fine = nullptr;
85  TF1 *f2fine2 = nullptr;
86  TF1 *fz0 = nullptr;
87  TF1 *fz1 = nullptr;
88  TF1 *fz2 = nullptr;
89  TF1 *fz0fine = nullptr;
90  TF1 *fz1fine = nullptr;
91  TF1 *fz2fine = nullptr;
92  TF1 *fmm_55_2 = nullptr;
93  TF1 *fmm_56_2 = nullptr;
94  TF1 *fmm_3 = nullptr;
95  TF1 *fadcz0 = nullptr;
96  TF1 *fadcz1 = nullptr;
97  TF1 *fadcz2 = nullptr;
98  TF1 *fadcz0fine = nullptr;
99  TF1 *fadcz1fine = nullptr;
100  TF1 *fadcz2fine = nullptr;
101  TF1 *fadcphi0 = nullptr;
102  TF1 *fadcphi0fine = nullptr;
103  TF1 *fadcphi1 = nullptr;
104  TF1 *fadcphi1fine = nullptr;
105  TF1 *fadcphi2 = nullptr;
106  TF1 *fadcphi2fine1 = nullptr;
107  TF1 *fadcphi2fine2 = nullptr;
110 
113 
116 
119  double scale_mvtx = 1.2;
120  double scale_mvtx_z = 0.9;
121  double scale_intt_3 = 0.97;
122  double scale_intt_4 = 0.964;
123  double scale_intt_5 = 0.894;
124  double scale_intt_6 = 0.893;
125  /* double scale_tpc_0 = 1.1;
126  double scale_tpc_1 = 1.2;
127  double scale_tpc_2 = 1.3;
128  double scale_tpc_0_z = 1.1;
129  double scale_tpc_1_z = 1.07;
130  double scale_tpc_2_z = 1.04;
131  */
132  double scale_mm_0 = 1.1;
133  double scale_mm_1 = 1.5;
134  double pull_fine_phi[60];
135  double pull_fine_z[60];
136 };
137 
138 #endif