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 (double tzero, double slope, double tmax)
 
void addM3ParameterSet (double cap, double tspar0, double tspar1, double tspar2, double tspar0_siPM, double tspar1_siPM, double tspar2_siPM)
 
double delay (double 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

Enumerator
Slow 
Medium 
Fast 

Definition at line 52 of file HcalTimeSlew.h.

Enumerator
TestStand 
Data 
MC 
HBHE 

Definition at line 51 of file HcalTimeSlew.h.

Constructor & Destructor Documentation

HcalTimeSlew::HcalTimeSlew ( )
inline

Definition at line 45 of file HcalTimeSlew.h.

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

Member Function Documentation

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

Definition at line 5 of file HcalTimeSlew.cc.

References parametersM2_.

Referenced by ~HcalTimeSlew().

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:60
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_.

Referenced by ~HcalTimeSlew().

9  {
10  parametersM3_.emplace_back(cap, tspar0, tspar1, tspar2, tspar0_siPM, tspar1_siPM, tspar2_siPM);
11 }
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:61
double HcalTimeSlew::delay ( double  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 14 of file HcalTimeSlew.cc.

References cmsBatch::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().

14  {
15  double rawDelay = parametersM2_[bias].tzero + parametersM2_[bias].slope*log(fC);
16  return (rawDelay < 0)?(0):((rawDelay > parametersM2_[bias].tmax)?(parametersM2_[bias].tmax):(rawDelay));
17 }
static const double tmax[3]
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:60
double HcalTimeSlew::delay ( double  fC,
ParaSource  source = HBHE,
BiasSetting  bias = Medium,
bool  isHPD = true 
) const

Definition at line 20 of file HcalTimeSlew.cc.

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

20  {
21  double rawDelay = 0.0;
22  if(source == TestStand){
23  return HcalTimeSlew::delay(fC, bias);
24  }
25  else if(isHPD){
26  rawDelay = std::fmin( parametersM3_[source].cap,
27  parametersM3_[source].tspar0+parametersM3_[source].tspar1*log(fC+parametersM3_[source].tspar2 ));
28  }
29  else{
30  rawDelay = parametersM3_[source].cap+parametersM3_[source].tspar0_siPM;
31  }
32  return rawDelay;
33 }
double delay(double 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:14
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:61
static std::string const source
Definition: EdmProvDump.cc:44

Member Data Documentation

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

Definition at line 60 of file HcalTimeSlew.h.

Referenced by addM2ParameterSet(), and delay().

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

Definition at line 61 of file HcalTimeSlew.h.

Referenced by addM3ParameterSet(), and delay().