#include <SiPixelCPEGenericDBErrorParametrization.h>
Public Member Functions | |
std::pair< float, float > | getError (const SiPixelCPEGenericErrorParm *parmErrors, GeomDetType::SubDetector pixelPart, int sizex, int sizey, float alpha, float beta, bool bigInX=false, bool bigInY=false) |
std::pair< float, float > | getError (GeomDetType::SubDetector pixelPart, int sizex, int sizey, float alpha, float beta, bool bigInX=false, bool bigInY=false) |
float | index (int ind_subpart, int size, float alpha, float beta, bool big) |
void | setDBAccess (const edm::EventSetup &es) |
SiPixelCPEGenericDBErrorParametrization () | |
~SiPixelCPEGenericDBErrorParametrization () | |
Private Attributes | |
edm::ESHandle < SiPixelCPEGenericErrorParm > | errorsH |
Static Private Attributes | |
static const float * | a_max [4] = {by_a_max, bx_a_max, fy_a_max, fx_a_max} |
static const float * | a_min [4] = {by_a_min, bx_a_min, fy_a_min, fx_a_min} |
static const int | alpha_bin_size [4] = {10, 1, 10, 1} |
static const float * | b_max [4] = {by_b_max, garbage, fy_b_max, fx_b_max} |
static const float * | b_min [4] = {by_b_min, garbage, fy_b_min, fx_b_min} |
static const int | beta_bin_size [4] = { 1, 10, 1, 10} |
static const float | bx_a_max [3] = {1.725, 1.675, 1.625} |
static const float | bx_a_min [3] = {1.525, 1.475, 1.425} |
static const float | by_a_max [6] = {1.67078, 1.67078, 1.67078, 1.67078, 1.67078, 1.67078} |
static const float | by_a_min [6] = {1.47078, 1.47078, 1.47078, 1.47078, 1.47078, 1.47078} |
static const float | by_b_max [6] = {0.50, 0.90, 1.05, 1.15, 1.20, 1.40} |
static const float | by_b_min [6] = {0.05, 0.15, 0.70, 0.95, 1.15, 1.20} |
static const float | errors_big_pix [4] = {0.0070, 0.0030, 0.0068, 0.0040} |
static const float | fx_a_max [2] = {0.285, 0.465} |
static const float | fx_a_min [2] = {0.165, 0.185} |
static const float | fx_b_max [2] = {999, 999} |
static const float | fx_b_min [2] = {998, 998} |
static const float | fy_a_max [2] = {999, 999} |
static const float | fy_a_min [2] = {998, 998} |
static const float | fy_b_max [2] = {0.39, 0.39} |
static const float | fy_b_min [2] = {0.31, 0.31} |
static const int | part_bin_size [4] = { 0, 240, 360, 380} |
static const int | size_bin_size [4] = {40, 40, 40, 40} |
static const int | size_max [4] = {5, 2, 0, 0} |
Definition at line 11 of file SiPixelCPEGenericDBErrorParametrization.h.
SiPixelCPEGenericDBErrorParametrization::SiPixelCPEGenericDBErrorParametrization | ( | ) |
Definition at line 46 of file SiPixelCPEGenericDBErrorParametrization.cc.
{}
SiPixelCPEGenericDBErrorParametrization::~SiPixelCPEGenericDBErrorParametrization | ( | ) |
Definition at line 48 of file SiPixelCPEGenericDBErrorParametrization.cc.
{}
std::pair< float, float > SiPixelCPEGenericDBErrorParametrization::getError | ( | const SiPixelCPEGenericErrorParm * | parmErrors, |
GeomDetType::SubDetector | pixelPart, | ||
int | sizex, | ||
int | sizey, | ||
float | alpha, | ||
float | beta, | ||
bool | bigInX = false , |
||
bool | bigInY = false |
||
) |
Definition at line 56 of file SiPixelCPEGenericDBErrorParametrization.cc.
References benchmark_cfg::errors, SiPixelCPEGenericErrorParm::errors(), Exception, if(), index(), GeomDetEnumerators::PixelBarrel, and GeomDetEnumerators::PixelEndcap.
Referenced by PixelCPEGeneric::localError().
{ std::pair<float,float> element; std::pair<float,float> errors; switch (pixelPart) { case GeomDetEnumerators::PixelBarrel: element = std::pair<float,float>(index(1, sizex, alpha, beta, bigInX), //1 -- Bx index(0, sizey, alpha, beta, bigInY)); //0 -- By break; case GeomDetEnumerators::PixelEndcap: element = std::pair<float,float>(index(3, sizex, alpha, beta, bigInX), //3 -- Fx index(2, sizey, alpha, beta, bigInY)); //2 -- Fy break; default: throw cms::Exception("PixelCPEGenericDBErrorParametrization::getError") << "Non-pixel detector type !!!" ; } if (bigInX && sizex == 1) errors.first = element.first; else errors.first = parmErrors->errors()[(int)element.first].sigma; if (bigInY && sizey == 1) errors.second = element.second; else errors.second = parmErrors->errors()[(int)element.second].sigma; return errors; }
std::pair< float, float > SiPixelCPEGenericDBErrorParametrization::getError | ( | GeomDetType::SubDetector | pixelPart, |
int | sizex, | ||
int | sizey, | ||
float | alpha, | ||
float | beta, | ||
bool | bigInX = false , |
||
bool | bigInY = false |
||
) |
Definition at line 89 of file SiPixelCPEGenericDBErrorParametrization.cc.
References benchmark_cfg::errors, errorsH, Exception, if(), index(), GeomDetEnumerators::PixelBarrel, and GeomDetEnumerators::PixelEndcap.
{ std::pair<float,float> element; std::pair<float,float> errors; switch (pixelPart) { case GeomDetEnumerators::PixelBarrel: element = std::pair<float,float>(index(1, sizex, alpha, beta, bigInX), //1 -- Bx index(0, sizey, alpha, beta, bigInY)); //0 -- By break; case GeomDetEnumerators::PixelEndcap: element = std::pair<float,float>(index(3, sizex, alpha, beta, bigInX), //3 -- Fx index(2, sizey, alpha, beta, bigInY)); //2 -- Fy break; default: throw cms::Exception("PixelCPEGenericDBErrorParametrization::getError") << "Non-pixel detector type !!!" ; } if (bigInX && sizex == 1) errors.first = element.first; else errors.first = errorsH->errors()[(int)element.first].sigma; if (bigInY && sizey == 1) errors.second = element.second; else errors.second = errorsH->errors()[(int)element.second].sigma; return errors; }
float SiPixelCPEGenericDBErrorParametrization::index | ( | int | ind_subpart, |
int | size, | ||
float | alpha, | ||
float | beta, | ||
bool | big | ||
) |
Definition at line 122 of file SiPixelCPEGenericDBErrorParametrization.cc.
References a_max, a_min, alpha_bin_size, b_max, b_min, beta_bin_size, errors_big_pix, math_pi, min, part_bin_size, size_bin_size, and size_max.
Referenced by getError().
{ //This is a check for big pixels. If it passes, the code returns a given error and the function ends. if ( big && size == 1) return errors_big_pix[ind_subpart]; int ind_size = std::min(size - 1, size_max[ind_subpart]); float alpha_rad = -999.9; float betap_rad = -999.9; int ind_alpha = -99; int ind_beta = -99; float binw_a = -999.9; float binw_b = -999.9; int maxbin_a = -99; int maxbin_b = -99; betap_rad = fabs(math_pi/2.0 - beta); //We must take into account that Fx(subpart=3) has different alpha parametrization if(ind_subpart == 3) alpha_rad = fabs(math_pi/2.0 - alpha); else alpha_rad = fabs(alpha); //Sets the correct binning for alpha and beta based on whether in x or y if(ind_subpart == 0||ind_subpart == 2) { binw_a = (a_max[ind_subpart][ind_size] - a_min[ind_subpart][ind_size])/2.0; binw_b = (b_max[ind_subpart][ind_size] - b_min[ind_subpart][ind_size])/8.0; maxbin_a = 3; maxbin_b = 9; } else { binw_a = (a_max[ind_subpart][ind_size] - a_min[ind_subpart][ind_size])/8.0; binw_b = (b_max[ind_subpart][ind_size] - b_min[ind_subpart][ind_size])/2.0; maxbin_a = 3; maxbin_b = 9; } //Binning for alpha if ( alpha_rad < a_min[ind_subpart][ind_size]) ind_alpha = 0; else if ( alpha_rad >= a_max[ind_subpart][ind_size]) ind_alpha = maxbin_a; else ind_alpha = 1 + (int)((alpha_rad - a_min[ind_subpart][ind_size])/binw_a); //Binning for beta -- we need to account for Bx(subpart=1) having uneven binning if(ind_subpart == 1) { if ( betap_rad <= 0.7 ) ind_beta = 0; else if ( 0.7 < betap_rad && betap_rad <= 1.0 ) ind_beta = 1; else if ( 1.0 < betap_rad && betap_rad <= 1.2 ) ind_beta = 2; else if ( 1.2 <= betap_rad ) ind_beta = 3; } else if ( betap_rad < b_min[ind_subpart][ind_size]) ind_beta = 0; else if ( betap_rad >= b_max[ind_subpart][ind_size]) ind_beta = maxbin_b; else ind_beta = 1 + (int)((betap_rad - b_min[ind_subpart][ind_size])/binw_b); //Index to be used to find error in database int index = part_bin_size[ind_subpart] + size_bin_size[ind_subpart] * ind_size + alpha_bin_size[ind_subpart] * ind_alpha + beta_bin_size[ind_subpart] * ind_beta; return index; }
void SiPixelCPEGenericDBErrorParametrization::setDBAccess | ( | const edm::EventSetup & | es | ) |
Definition at line 50 of file SiPixelCPEGenericDBErrorParametrization.cc.
References errorsH, and edm::EventSetup::get().
{ es.get<SiPixelCPEGenericErrorParmRcd>().get(errorsH); }
const float * SiPixelCPEGenericDBErrorParametrization::a_max = {by_a_max, bx_a_max, fy_a_max, fx_a_max} [static, private] |
Definition at line 68 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const float * SiPixelCPEGenericDBErrorParametrization::a_min = {by_a_min, bx_a_min, fy_a_min, fx_a_min} [static, private] |
Definition at line 67 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const int SiPixelCPEGenericDBErrorParametrization::alpha_bin_size = {10, 1, 10, 1} [static, private] |
Definition at line 64 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const float * SiPixelCPEGenericDBErrorParametrization::b_max = {by_b_max, garbage, fy_b_max, fx_b_max} [static, private] |
Definition at line 70 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const float * SiPixelCPEGenericDBErrorParametrization::b_min = {by_b_min, garbage, fy_b_min, fx_b_min} [static, private] |
Definition at line 69 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const int SiPixelCPEGenericDBErrorParametrization::beta_bin_size = { 1, 10, 1, 10} [static, private] |
Definition at line 65 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const float SiPixelCPEGenericDBErrorParametrization::bx_a_max = {1.725, 1.675, 1.625} [static, private] |
Definition at line 42 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::bx_a_min = {1.525, 1.475, 1.425} [static, private] |
Definition at line 41 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::by_a_max = {1.67078, 1.67078, 1.67078, 1.67078, 1.67078, 1.67078} [static, private] |
Definition at line 50 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::by_a_min = {1.47078, 1.47078, 1.47078, 1.47078, 1.47078, 1.47078} [static, private] |
Definition at line 49 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::by_b_max = {0.50, 0.90, 1.05, 1.15, 1.20, 1.40} [static, private] |
Definition at line 52 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::by_b_min = {0.05, 0.15, 0.70, 0.95, 1.15, 1.20} [static, private] |
Definition at line 51 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::errors_big_pix = {0.0070, 0.0030, 0.0068, 0.0040} [static, private] |
Definition at line 59 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
edm::ESHandle<SiPixelCPEGenericErrorParm> SiPixelCPEGenericDBErrorParametrization::errorsH [private] |
Definition at line 39 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by getError(), and setDBAccess().
const float SiPixelCPEGenericDBErrorParametrization::fx_a_max = {0.285, 0.465} [static, private] |
Definition at line 45 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fx_a_min = {0.165, 0.185} [static, private] |
Definition at line 44 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fx_b_max = {999, 999} [static, private] |
Definition at line 47 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fx_b_min = {998, 998} [static, private] |
Definition at line 46 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fy_a_max = {999, 999} [static, private] |
Definition at line 55 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fy_a_min = {998, 998} [static, private] |
Definition at line 54 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fy_b_max = {0.39, 0.39} [static, private] |
Definition at line 57 of file SiPixelCPEGenericDBErrorParametrization.h.
const float SiPixelCPEGenericDBErrorParametrization::fy_b_min = {0.31, 0.31} [static, private] |
Definition at line 56 of file SiPixelCPEGenericDBErrorParametrization.h.
const int SiPixelCPEGenericDBErrorParametrization::part_bin_size = { 0, 240, 360, 380} [static, private] |
Definition at line 62 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const int SiPixelCPEGenericDBErrorParametrization::size_bin_size = {40, 40, 40, 40} [static, private] |
Definition at line 63 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().
const int SiPixelCPEGenericDBErrorParametrization::size_max = {5, 2, 0, 0} [static, private] |
Definition at line 60 of file SiPixelCPEGenericDBErrorParametrization.h.
Referenced by index().