Go to the documentation of this file.00001 #ifndef DTTime2DriftParametrization_H
00002 #define DTTime2DriftParametrization_H
00003
00016 #define N_alpha 11
00017 #define N_By 5
00018 #define N_Bz 5
00019 #define N_Par_x 15
00020 #define N_Sigma_t 7
00021
00022
00023 class DTTime2DriftParametrization {
00024 public:
00026 DTTime2DriftParametrization();
00027
00029 virtual ~DTTime2DriftParametrization();
00030
00032 typedef struct {
00033 double v_drift, x_drift, delta_x, x_width_m, x_width_p ;
00034 } drift_distance;
00035
00036
00044 bool computeDriftDistance_mode(double time,
00045 double alpha,
00046 double by,
00047 double bz,
00048 short interpolate,
00049 drift_distance* dx) const;
00050
00058 bool computeDriftDistance_mean(double time,
00059 double alpha,
00060 double by,
00061 double bz,
00062 short interpolate,
00063 drift_distance* dx) const;
00064
00065
00066 private:
00068 unsigned short MB_DT_drift_distance (double time,
00069 double alpha,
00070 double by,
00071 double bz,
00072 drift_distance *DX,
00073 short interpolate) const;
00074
00075
00076 double MB_DT_dist (double , double *) const;
00077 double MB_DT_delta_x (double , double *) const;
00078 double MB_DT_sigma_t_m (double , double *) const;
00079 double MB_DT_sigma_t_p (double , double *) const;
00080
00081 unsigned short MB_DT_Check_boundaries (double distime,
00082 double alpha,
00083 double by,
00084 double bz,
00085 short ifl) const;
00086
00087 void MB_DT_Get_grid_values (double Var,
00088 unsigned short *pi,
00089 unsigned short *pj,
00090 short Initial,
00091 unsigned short N,
00092 const double *Values) const;
00093
00094 void MB_DT_Get_grid_points (double alpha,
00095 double by,
00096 double bz,
00097 unsigned short *p_alpha,
00098 unsigned short *p_By,
00099 unsigned short *p_Bz,
00100 unsigned short *q_alpha,
00101 unsigned short *q_By,
00102 unsigned short *q_Bz) const;
00103
00104 double MB_DT_MLInterpolation (double *al,
00105 double *by,
00106 double *bz,
00107 double *f) const;
00108
00109
00110 static const double alpha_value[N_alpha];
00111 static const double By_value[N_By];
00112 static const double Bz_value[N_Bz];
00113
00114
00115 static const double fun_x[N_alpha][N_By][N_Bz][N_Par_x];
00116 static const double fun_sigma_t[N_alpha][N_By][N_Bz][N_Sigma_t];
00117
00118
00119 static const double velocitySkew;
00120
00121 };
00122 #endif