CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Namespaces | Functions | Variables
HcalSimpleRecAlgo.cc File Reference
#include "RecoLocalCalo/HcalRecAlgos/interface/HcalSimpleRecAlgo.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "CalibCalorimetry/HcalAlgos/interface/HcalTimeSlew.h"
#include <algorithm>
#include <math.h>
#include <iostream>

Go to the source code of this file.

Namespaces

 HcalSimpleRecAlgoImpl
 

Functions

static float eCorr (int ieta, int iphi, double ampl)
 Ugly hack to apply energy corrections to some HB- cells. More...
 
template<class Digi , class RecHit >
RecHit HcalSimpleRecAlgoImpl::reco (const Digi &digi, const HcalCoder &coder, const HcalCalibrations &calibs, int ifirst, int n, bool slewCorrect, const HcalPulseContainmentCorrection *corr, HcalTimeSlew::BiasSetting slewFlavor, bool forData)
 
static float timeshift_ns_hbheho (float wpksamp)
 
static float timeshift_ns_hf (float wpksamp)
 Same as above, but for the HF PMTs. More...
 

Variables

static const float actual_ns_hbheho [num_bins_hbheho]
 
static const float actual_ns_hf [num_bins_hf]
 
static double MaximumFractionalError = 0.0005
 
static const int num_bins_hbheho = 61
 
static const int num_bins_hf = 101
 
static const float wpksamp0_hbheho = 0.5
 
static const float wpksamp0_hf = 0.5
 

Function Documentation

float eCorr ( int  ieta,
int  iphi,
double  ampl 
)
static

Ugly hack to apply energy corrections to some HB- cells.

Definition at line 203 of file HcalSimpleRecAlgo.cc.

References corr, relval_parameters_module::energy, funct::exp(), and slope.

Referenced by HcalSimpleRecAlgoImpl::reco().

203  {
204 // return energy correction factor for HBM channels
205 // iphi=6 ieta=(-1,-15) and iphi=32 ieta=(-1,-7)
206 // I.Vodopianov 28 Feb. 2011
207  static const float low32[7] = {0.741,0.721,0.730,0.698,0.708,0.751,0.861};
208  static const float high32[7] = {0.973,0.925,0.900,0.897,0.950,0.935,1};
209  static const float low6[15] = {0.635,0.623,0.670,0.633,0.644,0.648,0.600,
210  0.570,0.595,0.554,0.505,0.513,0.515,0.561,0.579};
211  static const float high6[15] = {0.875,0.937,0.942,0.900,0.922,0.925,0.901,
212  0.850,0.852,0.818,0.731,0.717,0.782,0.853,0.778};
213 
214 
215  double slope, mid, en;
216  double corr = 1.0;
217 
218  if (!(iphi==6 && ieta<0 && ieta>-16) && !(iphi==32 && ieta<0 && ieta>-8))
219  return corr;
220 
221  int jeta = -ieta-1;
222  double xeta = (double) ieta;
223  if (energy > 0.) en=energy;
224  else en = 0.;
225 
226  if (iphi == 32) {
227  slope = 0.2272;
228  mid = 17.14 + 0.7147*xeta;
229  if (en > 100.) corr = high32[jeta];
230  else corr = low32[jeta]+(high32[jeta]-low32[jeta])/(1.0+exp(-(en-mid)*slope));
231  }
232  else if (iphi == 6) {
233  slope = 0.1956;
234  mid = 15.96 + 0.3075*xeta;
235  if (en > 100.0) corr = high6[jeta];
236  else corr = low6[jeta]+(high6[jeta]-low6[jeta])/(1.0+exp(-(en-mid)*slope));
237  }
238 
239  // std::cout << "HBHE cell: ieta, iphi = " << ieta << " " << iphi
240  // << " -> energy = " << en << " corr = " << corr << std::endl;
241 
242  return corr;
243 }
static const double slope[3]
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
JetCorrectorParameters corr
Definition: classes.h:9
float timeshift_ns_hbheho ( float  wpksamp)
static

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 315 of file HcalSimpleRecAlgo.cc.

References actual_ns_hbheho, getHLTprescales::index, num_bins_hbheho, and wpksamp0_hbheho.

Referenced by HcalSimpleRecAlgoImpl::reco().

315  {
316  float flx = (num_bins_hbheho-1)*(wpksamp - wpksamp0_hbheho);
317  int index = (int)flx;
318  float yval;
319 
320  if (index < 0) return actual_ns_hbheho[0];
321  else if (index >= num_bins_hbheho-1) return actual_ns_hbheho[num_bins_hbheho-1];
322 
323  // else interpolate:
324  float y1 = actual_ns_hbheho[index];
325  float y2 = actual_ns_hbheho[index+1];
326 
327  yval = y1 + (y2-y1)*(flx-(float)index);
328 
329  return yval;
330 }
return((rh^lh)&mask)
static const float wpksamp0_hbheho
static const float actual_ns_hbheho[num_bins_hbheho]
static const int num_bins_hbheho
float timeshift_ns_hf ( float  wpksamp)
static

Same as above, but for the HF PMTs.

Definition at line 439 of file HcalSimpleRecAlgo.cc.

References actual_ns_hf, getHLTprescales::index, num_bins_hf, and wpksamp0_hf.

Referenced by HcalSimpleRecAlgo::reconstruct().

439  {
440  float flx = (num_bins_hf-1)*(wpksamp-wpksamp0_hf);
441  int index = (int)flx;
442  float yval;
443 
444  if (index < 0) return actual_ns_hf[0];
445  else if (index >= num_bins_hf-1) return actual_ns_hf[num_bins_hf-1];
446 
447  // else interpolate:
448  float y1 = actual_ns_hf[index];
449  float y2 = actual_ns_hf[index+1];
450 
451  // float delta_x = 1/(float)num_bins_hf;
452  // yval = y1 + (y2-y1)*(flx-(float)index)/delta_x;
453 
454  yval = y1 + (y2-y1)*(flx-(float)index);
455  return yval;
456 }
static const float actual_ns_hf[num_bins_hf]
return((rh^lh)&mask)
static const float wpksamp0_hf
static const int num_bins_hf

Variable Documentation

const float actual_ns_hbheho[num_bins_hbheho]
static

Definition at line 251 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hbheho().

const float actual_ns_hf[num_bins_hf]
static

Definition at line 335 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hf().

double MaximumFractionalError = 0.0005
static

Definition at line 9 of file HcalSimpleRecAlgo.cc.

Referenced by HcalSimpleRecAlgo::initPulseCorr().

const int num_bins_hbheho = 61
static

Definition at line 249 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hbheho().

const int num_bins_hf = 101
static

Definition at line 332 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hf().

const float wpksamp0_hbheho = 0.5
static

Definition at line 248 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hbheho().

const float wpksamp0_hf = 0.5
static

Definition at line 333 of file HcalSimpleRecAlgo.cc.

Referenced by timeshift_ns_hf().