Go to the documentation of this file.00001 #ifndef DTDriftTimeParametrization_H
00002 #define DTDriftTimeParametrization_H
00003
00020 #define N_alpha 11
00021 #define N_By 5
00022 #define N_Bz 5
00023 #define N_Par_t 19
00024 #define N_Sigma_t 7
00025
00026
00027 class DTDriftTimeParametrization {
00028 public:
00030 DTDriftTimeParametrization();
00031
00033 virtual ~DTDriftTimeParametrization();
00034
00036 typedef struct {
00037 double v_drift, t_drift, delta_t, t_width_m, t_width_p ;
00038 } drift_time ;
00039
00041 unsigned short MB_DT_drift_time (double x,
00042 double alpha,
00043 double by,
00044 double bz,
00045 short ifl,
00046 drift_time *DT,
00047 short interpolate) const;
00048
00049 private:
00050 double MB_DT_time (double , double *) const;
00051 double MB_DT_delta_t (double , double *) const;
00052 double MB_DT_sigma_t_m (double , double *) const;
00053 double MB_DT_sigma_t_p (double , double *) const;
00054
00055 unsigned short MB_DT_Check_boundaries (double distime,
00056 double alpha,
00057 double by,
00058 double bz,
00059 short ifl) const;
00060
00061 void MB_DT_Get_grid_values (double Var,
00062 unsigned short *pi,
00063 unsigned short *pj,
00064 short Initial,
00065 unsigned short N,
00066 const double *Values) const;
00067
00068 void MB_DT_Get_grid_points (double alpha,
00069 double by,
00070 double bz,
00071 unsigned short *p_alpha,
00072 unsigned short *p_By,
00073 unsigned short *p_Bz,
00074 unsigned short *q_alpha,
00075 unsigned short *q_By,
00076 unsigned short *q_Bz) const;
00077
00078 double MB_DT_MLInterpolation (double *al,
00079 double *by,
00080 double *bz,
00081 double *f) const;
00082
00083
00084 static const double alpha_value[N_alpha];
00085 static const double By_value[N_By];
00086 static const double Bz_value[N_Bz];
00087
00088
00089 static const double fun_t[N_alpha][N_By][N_Bz][N_Par_t];
00090 static const double fun_sigma_t[N_alpha][N_By][N_Bz][N_Sigma_t];
00091
00092
00093 static const double velocitySkew;
00094
00095 };
00096 #endif