Diana Software
BesselTransformer.hh
Go to the documentation of this file.
1 #ifndef _BESSEL_TRANSFORMER_HH_
2 #define _BESSEL_TRANSFORMER_HH_
3 
11 #include "QVector.hh"
12 #include "QVectorC.hh"
13 #include "QError.hh"
14 
15 using namespace Diana;
16 
18 {
19  public:
21  #ifndef __CINT__
22  typedef double(*pt2Func)(double*);
23  typedef double(*pt2FuncParam)(double* t, double* param);
24  #endif
25 
33  BesselTransformer(double cutFreq, double duration, double samplFreq, double tauRC, bool zeroPad);
34 
36  const QVectorC& GetResponseFunction() const { return fTransferFunction; }
37 
39  const QVector& GetDeltaResponse() const { return fDeltaResponse; }
40 
42  double GetDeltaResponse(double t) const;
43 
45  double GetExpResponse(double t_0, double tau, double t) const;
46 
48  QError ConvolveTD(const QVector& pulse, int t_min, QVector& signal) ;
49 
51  QError ConvolveTD(const QVector& pulse, QVector& signal) {return ConvolveTD(pulse, 0, signal);}
53  void ConvolveTD(double (*pulse)(double*)) ;
54  #ifndef __CINT__
55  void ConvolveTD(pt2FuncParam func,double* param) ;
56  void ConvolveFD(pt2FuncParam,double* param) ;
57  #endif
58  double ConvolvedFuncTD(double* t);
59 
61  void ConvolveFD(double (*pulse)(double*)) ;
62  double ConvolvedFuncFD(double* t);
63 
65  QError ConvolveFD(const QVector& pulse, QVector& signal) ;
66 
67  private:
68 
69  QVector fDeltaResponse;
73  double fCutFreq;
74  double fRCFreq;
75  double fNormCutFreq;
77  size_t fSize;
78  double fDuration;
79  // analyitical formula
80  size_t fAN;
81  double* fAp;
82  double* fAq;
83  double* fAtheta;
84  double* fAphi;
85  bool fZeroPad;
86  // QRootCintTrigger(BesselTransformer)
87 
88 };
89 
90 #endif
Bessel 6 pole engine.
const QVectorC & GetResponseFunction() const
Get sampled Response function in frequency domain.
QError ConvolveTD(const QVector &pulse, QVector &signal)
Get time domain convolved vector.
const QVector & GetDeltaResponse() const
Get sampled Response function in time domain.
error class with error type and description
Definition: QError.hh:115
the Diana namespace is needed because sometimes we use Qt libraries, that use same class names of our...