00001 #ifndef TOFCALIB_H 00002 #define TOFCALIB_H 00003 00004 #include "tofcalgsec/TofDataSet.h" 00005 #include "CLHEP/Matrix/Matrix.h" 00006 #include "CLHEP/Matrix/Vector.h" 00007 00008 using namespace std; 00009 using namespace CLHEP; 00010 00011 class TofCalib{ 00012 public: 00013 TofCalib( const int npar ):Npar(npar) { 00014 F = HepMatrix(Npar,Npar,0); 00015 Y = HepVector(Npar,0); 00016 X = HepVector(Npar,0); 00017 funcs = HepVector(Npar,0); 00018 m_name=string("calculation"); 00019 } 00020 ~TofCalib() {} 00021 00022 void reset(); 00023 00024 public: 00025 virtual void calculate( RecordSet*& data, unsigned int icounter ); 00026 virtual void updateData( RecordSet*& data ) = 0; 00027 virtual const string& name() const { return m_name;} 00028 00029 void fillTxt( const char* file ); 00030 00031 protected: 00032 virtual void calculate_funcs(const Record* r) = 0; 00033 virtual void calculate_y(const Record* r) = 0; 00034 00035 protected: 00036 string m_name; 00037 int Npar; 00038 HepMatrix F; 00039 HepVector X; 00040 HepVector Y; 00041 HepVector funcs; 00042 double y; 00043 00044 std::vector<HepVector> m_result; 00045 }; 00046 00047 #endif 00048