CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
< HcalTimeSlewM2Parameters
parametersM2_
 
std::vector
< HcalTimeSlewM3Parameters
parametersM3_
 

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

Enumerator
Slow 
Medium 
Fast 

Definition at line 71 of file HcalTimeSlew.h.

Enumerator
TestStand 
Data 
MC 
HBHE 

Definition at line 70 of file HcalTimeSlew.h.

Constructor & Destructor Documentation

HcalTimeSlew::HcalTimeSlew ( )
inline

Definition at line 58 of file HcalTimeSlew.h.

58 {};
HcalTimeSlew::~HcalTimeSlew ( )
inline

Definition at line 59 of file HcalTimeSlew.h.

59 {}

Member Function Documentation

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

Definition at line 5 of file HcalTimeSlew.cc.

References parametersM2_.

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
void HcalTimeSlew::addM3ParameterSet ( double  cap,
double  tspar0,
double  tspar1,
double  tspar2,
double  tspar0_siPM,
double  tspar1_siPM,
double  tspar2_siPM 
)

Definition at line 9 of file HcalTimeSlew.cc.

References parametersM3_.

15  {
16  parametersM3_.emplace_back(cap, tspar0, tspar1, tspar2, tspar0_siPM, tspar1_siPM, tspar2_siPM);
17 }
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:80
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 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().

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 std::vector< std::string > checklist log
static const double tmax[3]
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:79
double HcalTimeSlew::delay ( double  fC,
ParaSource  source = HBHE,
BiasSetting  bias = Medium,
bool  isHPD = true 
) const

Definition at line 26 of file HcalTimeSlew.cc.

References delay(), log, parametersM3_, source, and TestStand.

26  {
27  double rawDelay = 0.0;
28  if (source == TestStand) {
29  return HcalTimeSlew::delay(fC, bias);
30  } else if (isHPD) {
31  rawDelay = std::fmin(
32  parametersM3_[source].cap,
33  parametersM3_[source].tspar0 + parametersM3_[source].tspar1 * std::log(fC + parametersM3_[source].tspar2));
34  } else {
35  rawDelay = parametersM3_[source].cap + parametersM3_[source].tspar0_siPM;
36  }
37  return rawDelay;
38 }
static std::vector< std::string > checklist log
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:80
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
static std::string const source
Definition: EdmProvDump.cc:46

Member Data Documentation

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

Definition at line 79 of file HcalTimeSlew.h.

Referenced by addM2ParameterSet(), and delay().

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

Definition at line 80 of file HcalTimeSlew.h.

Referenced by addM3ParameterSet(), and delay().