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)
 
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...
 
double delay (double fC, ParaSource source=HBHE, BiasSetting bias=Medium, bool isHPD=true) const
 
 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)

author J. Mans - Minnesota 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.

◆ ParaSource

Enumerator
TestStand 
Data 
MC 
HBHE 

Definition at line 70 of file HcalTimeSlew.h.

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.

References parametersM2_, slope, tmax, and tzero.

5  {
6  parametersM2_.emplace_back(tzero, slope, tmax);
7 }
static const double slope[3]
static const double tmax[3]
static const double tzero[3]
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:79

◆ addM3ParameterSet()

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

◆ delay() [1/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.

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

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

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 }
static const double tmax[3]
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:79

◆ delay() [2/2]

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

Definition at line 26 of file HcalTimeSlew.cc.

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

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 }
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
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:80
static std::string const source
Definition: EdmProvDump.cc:46

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