CMS 3D CMS Logo

List of all members | Public Types | Static Public Member Functions | Static Public Attributes
HcalTimeSlew Class Reference

#include <HcalTimeSlew.h>

Public Types

enum  BiasSetting { Slow =0, Medium =1, Fast =2 }
 
enum  ParaSource { TestStand =0, Data =1, MC =2, InputPars =3 }
 

Static Public Member Functions

static double delay (double fC, BiasSetting bias=Medium)
 Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew effect, for the specified bias setting. More...
 
static double delay (double fC, ParaSource source=InputPars, BiasSetting bias=Medium, double par0=tspar[0], double par1=tspar[1], double par2=tspar[2], bool isHPD=true)
 

Static Public Attributes

static constexpr double tspar [3] = {12.2999, -2.19142, 0}
 

Detailed Description

Provides pulse delay as a function of amplitude for three choices of QIE bias setting. The "Medium" setting is used in HB and HE, while the "Slow" (and lower noise) setting is used in HO. All data taken from bench measurements of the QIE and plotted in Physics TDR Vol 1.

Not to be used for HF at this time (unlikely to have much effect, however)

Author
J. Mans - Minnesota

Definition at line 18 of file HcalTimeSlew.h.

Member Enumeration Documentation

Enumerator
Slow 
Medium 
Fast 

Definition at line 21 of file HcalTimeSlew.h.

Enumerator
TestStand 
Data 
MC 
InputPars 

Definition at line 20 of file HcalTimeSlew.h.

Member Function Documentation

double HcalTimeSlew::delay ( double  fC,
BiasSetting  bias = Medium 
)
static

Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew effect, for the specified bias setting.

Definition at line 16 of file HcalTimeSlew.cc.

References cmsBatch::log, slope, tmax, and tzero.

Referenced by HcalDeterministicFit::apply(), HcalPulseContainmentAlgo::calcpair(), HcalTimeSlewSim::delay(), delay(), SimpleHBHEPhase1Algo::m0Time(), HcalDeterministicFit::phase1Apply(), PulseShapeFitOOTPileupCorrection::pulseShapeFit(), HcalSimpleRecAlgoImpl::reco(), and HcalSimpleRecAlgoImpl::recoHBHE().

16  {
17  double rawDelay=tzero[bias]+slope[bias]*log(fC);
18  return (rawDelay<0)?(0):((rawDelay>tmax[bias])?(tmax[bias]):(rawDelay));
19 }
static const double slope[3]
Definition: HcalTimeSlew.cc:5
static const double tzero[3]
Definition: HcalTimeSlew.cc:4
static const double tmax[3]
Definition: HcalTimeSlew.cc:6
double HcalTimeSlew::delay ( double  fC,
ParaSource  source = InputPars,
BiasSetting  bias = Medium,
double  par0 = tspar[0],
double  par1 = tspar[1],
double  par2 = tspar[2],
bool  isHPD = true 
)
static

Definition at line 22 of file HcalTimeSlew.cc.

References cap, Data, delay(), InputPars, cmsBatch::log, MC, TestStand, tspar0, tspar0_siPM, tspar1, and tspar2.

22  {
23 
24  if (source==TestStand) {
25  return HcalTimeSlew::delay(fC, bias);
26  }
27  else if (source==InputPars) {
28  if(isHPD) return std::fmin(cap, par0 + par1*log(fC+par2));
29  return cap+tspar0_siPM[0];
30  }
31  else if (source==Data || source==MC){
32  if(isHPD) return std::fmin(cap,tspar0[source-1]+tspar1[source-1]*log(fC+tspar2[source-1]));
33  return cap+tspar0_siPM[source-1];
34  }
35  return 0;
36 }
static const double tspar2[2]
Definition: HcalTimeSlew.cc:10
static const double cap
Definition: HcalTimeSlew.cc:7
static const double tspar1[2]
Definition: HcalTimeSlew.cc:9
static const double tspar0_siPM[2]
Definition: HcalTimeSlew.cc:11
static const double tspar0[2]
Definition: HcalTimeSlew.cc:8
static std::string const source
Definition: EdmProvDump.cc:43
static double delay(double fC, BiasSetting bias=Medium)
Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew ef...
Definition: HcalTimeSlew.cc:16

Member Data Documentation

constexpr double HcalTimeSlew::tspar[3] = {12.2999, -2.19142, 0}
static

Definition at line 22 of file HcalTimeSlew.h.