00001 #ifndef TOFCALIBFIT_H
00002 #define TOFCALIBFIT_H
00003
00004 #include "tofcalgsec/TofDataSet.h"
00005 #include "CLHEP/Matrix/Vector.h"
00006 #include "TH1F.h"
00007 #include "TGraph.h"
00008 #include "TGraphErrors.h"
00009 #include "TCanvas.h"
00010
00011 using namespace std;
00012 using namespace CLHEP;
00013
00014 const double zbegin = -115.0;
00015 const double zend = 115.0;
00016 const double barrelRadius = 87.05;
00017
00018 const double rbegin = 53.5;
00019 const double rend = 80.5;
00020
00021 const int nBarrelCommon = 4;
00022
00023 class TofCalibFit{
00024 public:
00025 TofCalibFit( bool isbarrel, const int npar );
00026 ~TofCalibFit();
00027
00028 public:
00029 const string& name() const { return m_name; }
00030 virtual void calculate( RecordSet*& data, unsigned int icounter ) = 0;
00031
00032 void fillTxt( const char* file );
00033 void fillRoot( const char* file );
00034
00035 public:
00036 HepVector tcorrelation() { return X; }
00037 void setTCorrelation( HepVector tc ) { m_tcorrelation = tc; }
00038
00039 protected:
00040 int m_npar;
00041
00042 unsigned int nKind;
00043 unsigned int nBinPerCounter;
00044
00045 unsigned int nHistPerCounter;
00046 unsigned int nCanvasPerCounter;
00047 std::vector<unsigned int> nGraphPerCanvasPerCounter;
00048 unsigned int nHistogram;
00049 unsigned int nCanvas;
00050 std::vector<unsigned int> nGraphPerCanvas;
00051
00052 string m_name;
00053 HepVector X;
00054
00055 std::vector<TH1F*> m_histograms;
00056 std::vector<TGraphErrors*> m_graphs;
00057 std::vector<HepVector> m_result;
00058
00059
00060 std::vector<string> CanvasPerCounterName;
00061 std::vector<string> CanvasName;
00062
00063 HepVector m_tcorrelation;
00064
00065 private:
00066 unsigned int nCounter;
00067 };
00068
00069 #endif