CMS 3D CMS Logo

Public Member Functions | Private Attributes | Static Private Attributes

SiPixelCPEGenericDBErrorParametrization Class Reference

#include <SiPixelCPEGenericDBErrorParametrization.h>

List of all members.

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}

Detailed Description

Definition at line 11 of file SiPixelCPEGenericDBErrorParametrization.h.


Constructor & Destructor Documentation

SiPixelCPEGenericDBErrorParametrization::SiPixelCPEGenericDBErrorParametrization ( )

Definition at line 46 of file SiPixelCPEGenericDBErrorParametrization.cc.

{}
SiPixelCPEGenericDBErrorParametrization::~SiPixelCPEGenericDBErrorParametrization ( )

Definition at line 48 of file SiPixelCPEGenericDBErrorParametrization.cc.

{}

Member Function Documentation

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)

Member Data Documentation

Definition at line 68 of file SiPixelCPEGenericDBErrorParametrization.h.

Referenced by index().

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().

Definition at line 70 of file SiPixelCPEGenericDBErrorParametrization.h.

Referenced by index().

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().

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().