Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:33:44

0001 #ifndef CalibCalorimetry_HcalAlgos_PadeTableODE_h_
0002 #define CalibCalorimetry_HcalAlgos_PadeTableODE_h_
0003 
0004 //
0005 // Differential equations are built using the delay formula
0006 // I_out(s) = I_in(s) exp(-tau s), where I_out(s), etc. are the Laplace
0007 // transforms. exp(-tau s) is then represented by fractions according
0008 // to the Pade table. See http://en.wikipedia.org/wiki/Pade_table and
0009 // replace z by (-tau s).
0010 //
0011 class PadeTableODE {
0012 public:
0013   PadeTableODE(unsigned padeRow, unsigned padeColumn);
0014 
0015   void calculate(double tau,
0016                  double inputCurrent,
0017                  double dIdt,
0018                  double d2Id2t,
0019                  const double* x,
0020                  unsigned lenX,
0021                  unsigned firstNode,
0022                  double* derivative) const;
0023 
0024   inline unsigned getPadeRow() const { return row_; }
0025   inline unsigned getPadeColumn() const { return col_; }
0026   inline unsigned nParameters() const { return 0U; }
0027   void setParameters(const double* pars, unsigned nPars);
0028 
0029 private:
0030   unsigned row_;
0031   unsigned col_;
0032 };
0033 
0034 #endif  // CalibCalorimetry_HcalAlgos_PadeTableODE_h_