00001 #ifndef CondTools_SiPixel_SiPixelDBErrorParametrization_h 00002 #define CondTools_SiPixel_SiPixelDBErrorParametrization_h 00003 00004 #include <memory> 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 #include "FWCore/Framework/interface/ESHandle.h" 00008 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 00009 #include "CondFormats/SiPixelObjects/interface/SiPixelCPEParmErrors.h" 00010 00011 class SiPixelDBErrorParametrization 00012 { 00013 public: 00014 00015 SiPixelDBErrorParametrization(); 00016 ~SiPixelDBErrorParametrization(); 00017 00018 void setDBAccess(const edm::EventSetup& es); 00019 00020 std::pair<float,float> 00021 getError(const SiPixelCPEParmErrors* parmErrors, 00022 GeomDetType::SubDetector pixelPart, 00023 int sizex, int sizey, 00024 float alpha, float beta, 00025 bool bigInX = false, 00026 bool bigInY = false); 00027 00028 std::pair<float,float> 00029 getError(GeomDetType::SubDetector pixelPart, 00030 int sizex, int sizey, 00031 float alpha, float beta, 00032 bool bigInX = false, 00033 bool bigInY = false); 00034 00035 float index(int ind_subpart, int size, float alpha, float beta, bool big); 00036 00037 private: 00038 00039 edm::ESHandle<SiPixelCPEParmErrors> errorsH; 00040 00041 static const float bx_a_min[3]; 00042 static const float bx_a_max[3]; 00043 00044 static const float fx_a_min[2]; 00045 static const float fx_a_max[2]; 00046 static const float fx_b_min[2]; 00047 static const float fx_b_max[2]; 00048 00049 static const float by_a_min[6]; 00050 static const float by_a_max[6]; 00051 static const float by_b_min[6]; 00052 static const float by_b_max[6]; 00053 00054 static const float fy_a_min[2]; 00055 static const float fy_a_max[2]; 00056 static const float fy_b_min[2]; 00057 static const float fy_b_max[2]; 00058 00059 static const float errors_big_pix[4]; 00060 static const int size_max[4]; 00061 00062 static const int part_bin_size[4]; 00063 static const int size_bin_size[4]; 00064 static const int alpha_bin_size[4]; 00065 static const int beta_bin_size[4]; 00066 00067 static const float* a_min[4]; 00068 static const float* a_max[4]; 00069 static const float* b_min[4]; 00070 static const float* b_max[4]; 00071 00072 }; 00073 #endif