CMS 3D CMS Logo

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

#include <HcalTimeSlew.h>

Classes

class  HcalTimeSlewM2Parameters
 
class  HcalTimeSlewM3Parameters
 

Public Types

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

Public Member Functions

void addM2ParameterSet (float tzero, float slope, float tmax)
 
void addM3ParameterSet (double cap, double tspar0, double tspar1, double tspar2, double tspar0_siPM, double tspar1_siPM, double tspar2_siPM)
 
double delay (double fC, ParaSource source=HBHE, BiasSetting bias=Medium, bool isHPD=true) const
 
float delay (float fC, BiasSetting bias=Medium) const
 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...
 
 HcalTimeSlew ()
 
 ~HcalTimeSlew ()
 

Private Attributes

std::vector< HcalTimeSlewM2ParametersparametersM2_
 
std::vector< HcalTimeSlewM3ParametersparametersM3_
 

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)

\original author J. Mans - Minnesota \upgraded 2017 C. Madrid - Baylor

Definition at line 19 of file HcalTimeSlew.h.

Member Enumeration Documentation

◆ BiasSetting

Enumerator
Slow 
Medium 
Fast 

Definition at line 71 of file HcalTimeSlew.h.

71 { Slow = 0, Medium = 1, Fast = 2 };

◆ ParaSource

Enumerator
TestStand 
Data 
MC 
HBHE 

Definition at line 70 of file HcalTimeSlew.h.

70 { TestStand = 0, Data = 1, MC = 2, HBHE = 3 };

Constructor & Destructor Documentation

◆ HcalTimeSlew()

HcalTimeSlew::HcalTimeSlew ( )
inline

Definition at line 58 of file HcalTimeSlew.h.

58 {};

◆ ~HcalTimeSlew()

HcalTimeSlew::~HcalTimeSlew ( )
inline

Definition at line 59 of file HcalTimeSlew.h.

59 {}

Member Function Documentation

◆ addM2ParameterSet()

void HcalTimeSlew::addM2ParameterSet ( float  tzero,
float  slope,
float  tmax 
)

Definition at line 5 of file HcalTimeSlew.cc.

5  {
6  parametersM2_.emplace_back(tzero, slope, tmax);
7 }

References parametersM2_, slope, tmax, and tzero.

◆ addM3ParameterSet()

void HcalTimeSlew::addM3ParameterSet ( double  cap,
double  tspar0,
double  tspar1,
double  tspar2,
double  tspar0_siPM,
double  tspar1_siPM,
double  tspar2_siPM 
)

◆ delay() [1/2]

double HcalTimeSlew::delay ( double  fC,
ParaSource  source = HBHE,
BiasSetting  bias = Medium,
bool  isHPD = true 
) const

Definition at line 26 of file HcalTimeSlew.cc.

26  {
27  double rawDelay = 0.0;
28  if (source == TestStand) {
29  return HcalTimeSlew::delay(fC, bias);
30  } else if (isHPD) {
31  rawDelay = std::fmin(
34  } else {
35  rawDelay = parametersM3_[source].cap + parametersM3_[source].tspar0_siPM;
36  }
37  return rawDelay;
38 }

References HLT_FULL_cff::cap, delay(), dqm-mbProfile::log, parametersM3_, source, TestStand, HLT_FULL_cff::tspar0, HLT_FULL_cff::tspar1, and HLT_FULL_cff::tspar2.

◆ delay() [2/2]

float HcalTimeSlew::delay ( float  fC,
BiasSetting  bias = Medium 
) const

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 20 of file HcalTimeSlew.cc.

20  {
21  float rawDelay = parametersM2_[bias].tzero + parametersM2_[bias].slope * std::log(fC);
22  return (rawDelay < 0) ? (0) : ((rawDelay > parametersM2_[bias].tmax) ? (parametersM2_[bias].tmax) : (rawDelay));
23 }

References dqm-mbProfile::log, parametersM2_, and tmax.

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

Member Data Documentation

◆ parametersM2_

std::vector<HcalTimeSlewM2Parameters> HcalTimeSlew::parametersM2_
private

Definition at line 79 of file HcalTimeSlew.h.

Referenced by addM2ParameterSet(), and delay().

◆ parametersM3_

std::vector<HcalTimeSlewM3Parameters> HcalTimeSlew::parametersM3_
private

Definition at line 80 of file HcalTimeSlew.h.

Referenced by addM3ParameterSet(), and delay().

HcalTimeSlew::parametersM3_
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:80
HcalTimeSlew::Medium
Definition: HcalTimeSlew.h:71
HcalTimeSlew::parametersM2_
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:79
HcalTimeSlew::HBHE
Definition: HcalTimeSlew.h:70
HLT_FULL_cff.tspar1_siPM
tspar1_siPM
Definition: HLT_FULL_cff.py:6349
HcalTimeSlew::delay
float delay(float fC, BiasSetting bias=Medium) const
Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew ef...
Definition: HcalTimeSlew.cc:20
tmax
static const double tmax[3]
Definition: CastorTimeSlew.cc:7
source
static const std::string source
Definition: EdmProvDump.cc:47
HcalTimeSlew::Slow
Definition: HcalTimeSlew.h:71
tzero
static const double tzero[3]
Definition: CastorTimeSlew.cc:5
HLT_FULL_cff.tspar1
tspar1
Definition: HLT_FULL_cff.py:6348
HLT_FULL_cff.tspar2
tspar2
Definition: HLT_FULL_cff.py:6346
HLT_FULL_cff.cap
cap
Definition: HLT_FULL_cff.py:6350
HLT_FULL_cff.tspar0_siPM
tspar0_siPM
Definition: HLT_FULL_cff.py:6351
HcalTimeSlew::Data
Definition: HcalTimeSlew.h:70
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
HcalTimeSlew::MC
Definition: HcalTimeSlew.h:70
slope
static const double slope[3]
Definition: CastorTimeSlew.cc:6
HcalTimeSlew::TestStand
Definition: HcalTimeSlew.h:70
HLT_FULL_cff.tspar2_siPM
tspar2_siPM
Definition: HLT_FULL_cff.py:6352
HLT_FULL_cff.tspar0
tspar0
Definition: HLT_FULL_cff.py:6347
HcalTimeSlew::Fast
Definition: HcalTimeSlew.h:71