CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/SimMuon/DTDigitizer/src/DTDriftTimeParametrization.h

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   /*** Points of the grid ***/
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   /*** Parameter values ***/
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   /*** skew factor ***/
00093   static const double velocitySkew;
00094 
00095 };
00096 #endif