MBoloModelFit.hh
Go to the documentation of this file.00001 #ifndef _M_THERMALMODELFIT_HH_
00002 #define _M_THERMALMODELFIT_HH_
00003
00040 #include "MPulseFit.hh"
00041 #include <string>
00042 #include <map>
00043
00044 namespace Cuore {
00045 class QMathFunction;
00046 class QFitter;
00047 }
00048 class TF1;
00049 extern "C" double square(double square);
00050 class MBoloModelFit : public MPulseFit {
00051
00052 public:
00054 MBoloModelFit(QSequence* s);
00055
00057 ~MBoloModelFit();
00058
00060 void Init();
00061
00063 QEvent* Do(QEvent* ev);
00064
00066 void Done();
00067 private:
00068
00069 class ChannelInfo {
00070 public:
00071 int HeaterChan;
00072 int Relative;
00073 float Gain;
00074 float V_B;
00075 float R_S;
00076 float R_L;
00077 float c_p;
00078 std::string Name;
00079 std::string Comment;
00080 };
00081
00082 void CreateFunctions(float samplingFrequency,int nsamples);
00083 static double TwoDecayRoot(double* x,double* params);
00084 static double BolometerModelRoot(double* x, double* params);
00085
00086 bool fFitDebug;
00087 bool fFitBessel;
00088 bool fFitCP;
00089 bool fFitRS;
00090 bool fFitHeater;
00091 bool fUse3Decay;
00092 static bool fUseRK;
00093 double fBesselCutOff;
00094 QFitter* fInit2Decay;
00095 TF1* fInit2DecayRoot;
00096 QFitter* fBolometerModel;
00097 TF1* fBolometerModelRoot;
00098 std::map<int,ChannelInfo> fChannelInfo;
00099 };
00100
00101 #endif