CMS 3D CMS Logo

Functions
HcalCorrectionFunctions.h File Reference

Go to the source code of this file.

Functions

float hbminus_special_ecorr (int ieta, int iphi, double energy, int runnum)
 Special energy correction for some HB- cells. More...
 
float timeshift_ns_hbheho (float wpksamp)
 

Function Documentation

float hbminus_special_ecorr ( int  ieta,
int  iphi,
double  energy,
int  runnum 
)

Special energy correction for some HB- cells.

Special energy correction for some HB- cells.

Definition at line 412 of file HcalSimpleRecAlgo.cc.

References corr, JetChargeProducer_cfi::exp, METSignificanceParams_cfi::jeta, and slope.

Referenced by SimpleHBHEPhase1Algo::hbminusCorrectionFactor().

412  {
413 // return energy correction factor for HBM channels
414 // iphi=6 ieta=(-1,-15) and iphi=32 ieta=(-1,-7)
415 // I.Vodopianov 28 Feb. 2011
416  static const float low32[7] = {0.741,0.721,0.730,0.698,0.708,0.751,0.861};
417  static const float high32[7] = {0.973,0.925,0.900,0.897,0.950,0.935,1};
418  static const float low6[15] = {0.635,0.623,0.670,0.633,0.644,0.648,0.600,
419  0.570,0.595,0.554,0.505,0.513,0.515,0.561,0.579};
420  static const float high6[15] = {0.875,0.937,0.942,0.900,0.922,0.925,0.901,
421  0.850,0.852,0.818,0.731,0.717,0.782,0.853,0.778};
422 
423 
424  double slope, mid, en;
425  double corr = 1.0;
426 
427  if (!(iphi==6 && ieta<0 && ieta>-16) && !(iphi==32 && ieta<0 && ieta>-8))
428  return corr;
429 
430  int jeta = -ieta-1;
431  double xeta = (double) ieta;
432  if (energy > 0.) en=energy;
433  else en = 0.;
434 
435  if (iphi == 32) {
436  slope = 0.2272;
437  mid = 17.14 + 0.7147*xeta;
438  if (en > 100.) corr = high32[jeta];
439  else corr = low32[jeta]+(high32[jeta]-low32[jeta])/(1.0+exp(-(en-mid)*slope));
440  }
441  else if (iphi == 6 && runnum < 216091 ) {
442  slope = 0.1956;
443  mid = 15.96 + 0.3075*xeta;
444  if (en > 100.0) corr = high6[jeta];
445  else corr = low6[jeta]+(high6[jeta]-low6[jeta])/(1.0+exp(-(en-mid)*slope));
446  }
447 
448  // std::cout << "HBHE cell: ieta, iphi = " << ieta << " " << iphi
449  // << " -> energy = " << en << " corr = " << corr << std::endl;
450 
451  return corr;
452 }
static const double slope[3]
JetCorrectorParameters corr
Definition: classes.h:5
float timeshift_ns_hbheho ( float  wpksamp)

Timeshift correction for HPDs based on the position of the peak ADC measurement. Allows for an accurate determination of the relative phase of the pulse shape from the HPD. Calculated based on a weighted sum of the -1,0,+1 samples relative to the peak as follows: wpksamp = (0*sample[0] + 1*sample[1] + 2*sample[2]) / (sample[0] + sample[1] + sample[2]) where sample[1] is the maximum ADC sample value.

Definition at line 531 of file HcalSimpleRecAlgo.cc.

References actual_ns_hbheho, createfilelist::int, num_bins_hbheho, and wpksamp0_hbheho.

Referenced by SimpleHBHEPhase1Algo::m0Time(), and HcalSimpleRecAlgoImpl::reco().

531  {
532  float flx = (num_bins_hbheho-1)*(wpksamp - wpksamp0_hbheho);
533  int index = (int)flx;
534  float yval;
535 
536  if (index < 0) return actual_ns_hbheho[0];
537  else if (index >= num_bins_hbheho-1) return actual_ns_hbheho[num_bins_hbheho-1];
538 
539  // else interpolate:
540  float y1 = actual_ns_hbheho[index];
541  float y2 = actual_ns_hbheho[index+1];
542 
543  yval = y1 + (y2-y1)*(flx-(float)index);
544 
545  return yval;
546 }
return((rh^lh)&mask)
static const float wpksamp0_hbheho
static const float actual_ns_hbheho[num_bins_hbheho]
static const int num_bins_hbheho