CMS 3D CMS Logo

HcalTimeSlew.h
Go to the documentation of this file.
1 #ifndef CALIBCALORIMETRY_HCALALGOS_HCALTIMESLEW_H
2 #define CALIBCALORIMETRY_HCALALGOS_HCALTIMESLEW_H 1
3 
4 #include <vector>
5 
19 class HcalTimeSlew {
20 public:
22  public:
23  //M2 Parameters
24  float tzero;
25  float slope;
26  float tmax;
27 
28  HcalTimeSlewM2Parameters(float t0, float m, float tmaximum) : tzero(t0), slope(m), tmax(tmaximum) {}
29  };
30 
32  public:
33  //M3 Parameters
34  double cap;
35  double tspar0;
36  double tspar1;
37  double tspar2;
38  double tspar0_siPM;
39  double tspar1_siPM;
40  double tspar2_siPM;
41 
42  HcalTimeSlewM3Parameters(double capCon,
43  double tspar0Con,
44  double tspar1Con,
45  double tspar2Con,
46  double tspar0_siPMCon,
47  double tspar1_siPMCon,
48  double tspar2_siPMCon)
49  : cap(capCon),
50  tspar0(tspar0Con),
51  tspar1(tspar1Con),
52  tspar2(tspar2Con),
53  tspar0_siPM(tspar0_siPMCon),
54  tspar1_siPM(tspar1_siPMCon),
55  tspar2_siPM(tspar2_siPMCon) {}
56  };
57 
60 
61  void addM2ParameterSet(float tzero, float slope, float tmax);
62  void addM3ParameterSet(double cap,
63  double tspar0,
64  double tspar1,
65  double tspar2,
66  double tspar0_siPM,
67  double tspar1_siPM,
68  double tspar2_siPM);
69 
70  enum ParaSource { TestStand = 0, Data = 1, MC = 2, HBHE = 3 };
71  enum BiasSetting { Slow = 0, Medium = 1, Fast = 2 };
75  float delay(float fC, BiasSetting bias = Medium) const;
76  double delay(double fC, ParaSource source = HBHE, BiasSetting bias = Medium, bool isHPD = true) const;
77 
78 private:
79  std::vector<HcalTimeSlewM2Parameters> parametersM2_;
80  std::vector<HcalTimeSlewM3Parameters> parametersM3_;
81 };
82 
83 #endif
void addM2ParameterSet(float tzero, float slope, float tmax)
Definition: HcalTimeSlew.cc:5
static const double slope[3]
void addM3ParameterSet(double cap, double tspar0, double tspar1, double tspar2, double tspar0_siPM, double tspar1_siPM, double tspar2_siPM)
Definition: HcalTimeSlew.cc:9
HcalTimeSlewM3Parameters(double capCon, double tspar0Con, double tspar1Con, double tspar2Con, double tspar0_siPMCon, double tspar1_siPMCon, double tspar2_siPMCon)
Definition: HcalTimeSlew.h:42
HcalTimeSlewM2Parameters(float t0, float m, float tmaximum)
Definition: HcalTimeSlew.h:28
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 const double tmax[3]
std::vector< HcalTimeSlewM3Parameters > parametersM3_
Definition: HcalTimeSlew.h:80
static const double tzero[3]
std::vector< HcalTimeSlewM2Parameters > parametersM2_
Definition: HcalTimeSlew.h:79
static std::string const source
Definition: EdmProvDump.cc:49