Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:59

0001 #ifndef TRACKBASE_CLUSTERERRORPARA_H
0002 #define TRACKBASE_CLUSTERERRORPARA_H
0003 
0004 #include "TrkrDefs.h"
0005 
0006 #include <TF1.h>
0007 
0008 class TrkrCluster;
0009 
0010 class ClusterErrorPara
0011 {
0012  public:
0013   ClusterErrorPara();
0014   // delete copy ctor and assignment operator (cppcheck)
0015   explicit ClusterErrorPara(const ClusterErrorPara &) = delete;
0016   ClusterErrorPara &operator=(const ClusterErrorPara &) = delete;
0017 
0018   virtual ~ClusterErrorPara()
0019   {
0020     delete f0;
0021     delete f1;
0022     delete f2;
0023     delete f0fine;
0024     delete f1fine;
0025     delete f2fine;
0026     delete f2fine2;
0027     delete fz0;
0028     delete fz1;
0029     delete fz2;
0030     delete fz0fine;
0031     delete fz1fine;
0032     delete fz2fine;
0033     delete fmm_55_2;
0034     delete fmm_56_2;
0035     delete fmm_3;
0036     delete fadcphi0;
0037     delete fadcphi0fine;
0038     delete fadcphi1;
0039     delete fadcphi1fine;
0040     delete fadcphi2;
0041     delete fadcphi2fine1;
0042     delete fadcphi2fine2;
0043     delete fadcz0;
0044     delete fadcz1;
0045     delete fadcz2;
0046     delete fadcz0fine;
0047     delete fadcz1fine;
0048     delete fadcz2fine;
0049   };
0050 
0051   using error_t = std::pair<double, double>;
0052 
0053   static error_t get_clusterv5_modified_error(TrkrCluster *cluster, double cluster_r, TrkrDefs::cluskey key);
0054   error_t get_cluster_error(TrkrCluster *cluster, double cluster_r, TrkrDefs::cluskey key, float qOverR, float slope);
0055   error_t get_cluster_error(TrkrCluster *cluster, TrkrDefs::cluskey key, double alpha, double beta);
0056 
0057   error_t get_simple_cluster_error(TrkrCluster *cluster, double cluster_r, TrkrDefs::cluskey key);
0058   error_t get_fix_tpc_cluster_error(TrkrCluster *cluster, TrkrDefs::cluskey key);
0059   error_t get_si_cluster_error(const TrkrCluster *cluster, TrkrDefs::cluskey key);
0060   double mm_phi_error(int layer, double alpha, TrkrCluster *cluster);
0061   double mm_z_error(int layer, double beta, TrkrCluster *cluster);
0062   double mvtx_phi_error(TrkrCluster *cluster) const;
0063   double mvtx_phi_error(const TrkrCluster *cluster) const;
0064   double mvtx_z_error(TrkrCluster *cluster) const;
0065   double mvtx_z_error(const TrkrCluster *cluster) const;
0066   double intt_phi_error(int layer, TrkrCluster *cluster) const;
0067   double intt_z_error(TrkrCluster *cluster) const;
0068   double intt_phi_error(int layer, const TrkrCluster *cluster) const;
0069   double intt_z_error(const TrkrCluster *cluster) const;
0070   double tpc_phi_error(int layer, double alpha, TrkrCluster *cluster);
0071   double tpc_z_error(int layer, double beta, TrkrCluster *cluster);
0072 
0073  private:
0074   TF1 *f0 {nullptr};
0075   TF1 *f1 {nullptr};
0076   TF1 *f2 {nullptr};
0077   TF1 *f0fine {nullptr};
0078   TF1 *f1fine {nullptr};
0079   TF1 *f2fine {nullptr};
0080   TF1 *f2fine2 {nullptr};
0081   TF1 *fz0 {nullptr};
0082   TF1 *fz1 {nullptr};
0083   TF1 *fz2 {nullptr};
0084   TF1 *fz0fine {nullptr};
0085   TF1 *fz1fine {nullptr};
0086   TF1 *fz2fine {nullptr};
0087   TF1 *fmm_55_2 {nullptr};
0088   TF1 *fmm_56_2 {nullptr};
0089   TF1 *fmm_3 {nullptr};
0090   TF1 *fadcz0 {nullptr};
0091   TF1 *fadcz1 {nullptr};
0092   TF1 *fadcz2 {nullptr};
0093   TF1 *fadcz0fine {nullptr};
0094   TF1 *fadcz1fine {nullptr};
0095   TF1 *fadcz2fine {nullptr};
0096   TF1 *fadcphi0 {nullptr};
0097   TF1 *fadcphi0fine {nullptr};
0098   TF1 *fadcphi1 {nullptr};
0099   TF1 *fadcphi1fine {nullptr};
0100   TF1 *fadcphi2 {nullptr};
0101   TF1 *fadcphi2fine1 {nullptr};
0102   TF1 *fadcphi2fine2 {nullptr};
0103   double pitcherr_phi_mvtx;
0104   double pitcherr_z_mvtx;
0105 
0106   double pitcherr_phi_intt;
0107   double pitcherr_z_intt;
0108 
0109   double pitcherr_phi_mm1;
0110   double pitcherr_z_mm1;
0111 
0112   double pitcherr_phi_mm2;
0113   double pitcherr_z_mm2;
0114   double scale_mvtx {1.2};
0115   double scale_mvtx_z {0.9};
0116   double scale_intt_3 {0.97};
0117   double scale_intt_4 {0.964};
0118   double scale_intt_5 {0.894};
0119   double scale_intt_6 {0.893};
0120   /*  double scale_tpc_0 {1.1};
0121   double scale_tpc_1 {1.2};
0122   double scale_tpc_2 {1.3};
0123   double scale_tpc_0_z {1.1};
0124   double scale_tpc_1_z {1.07};
0125   double scale_tpc_2_z {1.04};
0126   */
0127   double scale_mm_0 {1.1};
0128   double scale_mm_1 {1.5};
0129   double pull_fine_phi[60]{};
0130   double pull_fine_z[60]{};
0131 };
0132 
0133 #endif