CMS 3D CMS Logo

ThirdOrderDelayODE.h
Go to the documentation of this file.
1 #ifndef CalibCalorimetry_HcalAlgos_ThirdOrderDelayODE_h_
2 #define CalibCalorimetry_HcalAlgos_ThirdOrderDelayODE_h_
3 
4 //
5 // Equation a/6*tau^3*V_out''' + b/2*tau^2*V_out'' + c*tau*V_out' + V_out = V_in,
6 // with parameters "a", "b", and "c". a = 1, b = 1, c = 1 corresponds to the
7 // Pade table delay equation with row = 0 and column = 3.
8 //
10 public:
11  inline ThirdOrderDelayODE(unsigned /* r */, unsigned /* c */) : a_(1.0) {}
12 
13  void calculate(double tau,
14  double inputCurrent,
15  double dIdt,
16  double d2Id2t,
17  const double* x,
18  unsigned lenX,
19  unsigned firstNode,
20  double* derivative) const;
21 
22  inline unsigned getPadeRow() const { return 0U; }
23  inline unsigned getPadeColumn() const { return 3U; }
24  inline unsigned nParameters() const { return 3U; }
25 
26  // The parameters should be set to the logs of their actual values
27  void setParameters(const double* pars, unsigned nPars);
28 
29 private:
30  double a_;
31  double b_;
32  double c_;
33 };
34 
35 #endif // CalibCalorimetry_HcalAlgos_ThirdOrderDelayODE_h_
ThirdOrderDelayODE::nParameters
unsigned nParameters() const
Definition: ThirdOrderDelayODE.h:24
ThirdOrderDelayODE
Definition: ThirdOrderDelayODE.h:9
metsig::tau
Definition: SignAlgoResolutions.h:49
ThirdOrderDelayODE::a_
double a_
Definition: ThirdOrderDelayODE.h:30
funct::derivative
Derivative< X, A >::type derivative(const A &_)
Definition: Derivative.h:18
DDAxes::x
ThirdOrderDelayODE::getPadeRow
unsigned getPadeRow() const
Definition: ThirdOrderDelayODE.h:22
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
ThirdOrderDelayODE::b_
double b_
Definition: ThirdOrderDelayODE.h:31
ThirdOrderDelayODE::getPadeColumn
unsigned getPadeColumn() const
Definition: ThirdOrderDelayODE.h:23
ThirdOrderDelayODE::setParameters
void setParameters(const double *pars, unsigned nPars)
Definition: ThirdOrderDelayODE.cc:30
ThirdOrderDelayODE::calculate
void calculate(double tau, double inputCurrent, double dIdt, double d2Id2t, const double *x, unsigned lenX, unsigned firstNode, double *derivative) const
Definition: ThirdOrderDelayODE.cc:7
ThirdOrderDelayODE::c_
double c_
Definition: ThirdOrderDelayODE.h:32
ThirdOrderDelayODE::ThirdOrderDelayODE
ThirdOrderDelayODE(unsigned, unsigned)
Definition: ThirdOrderDelayODE.h:11