00001 //------------------------------------------------------------- 00002 // Go4 Release Package v3.04-01 (build 30401) 00003 // 28-November-2008 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at EE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef CALIBPAR_H 00017 #define CALIBPAR_H 00018 00019 #include "TGo4Parameter.h" 00020 00021 #define __LINESNUMBER__ 20 00022 #define __TEXTMAX__ 256 00023 #define __POLORDER__ 4 00024 #define __DATANAME__ "data1" 00025 #define __GRAPHNAME__ "graph1" 00026 00027 class TGraph; 00028 class TH1; 00029 class TGo4Fitter; 00030 00031 class TXXXCalibPar : public TGo4Parameter { 00032 public: 00033 TXXXCalibPar(); 00034 TXXXCalibPar(const char* name, TH1* spectrum, TGraph* curve); 00035 virtual ~TXXXCalibPar(); 00036 00037 Int_t PrintParameter(Text_t * n, Int_t); 00038 Bool_t UpdateFrom(TGo4Parameter *); 00039 00040 /* Read calibration lines from database (ascii file) */ 00041 void ReadDatabase(); 00042 00043 /* calculate energy from channel number using the current polynom */ 00044 Double_t Energy(Int_t channel); 00045 00047 Double_t fdA[__POLORDER__]; // Calibration polynom coeff 00049 Bool_t fbRecalibrate; // Set to kTRUE to make calibration fit in update from 00051 Bool_t fbReadDatabase; // Set to kTRUE to re-read energies from external ascii file 00053 TString fxDatabase; // Filename for ascii file with linesname - energy 00055 Int_t fiLinesChannel[__LINESNUMBER__]; // Centroid channel numbers for fitted lines 00057 Float_t ffLinesEnergy[__LINESNUMBER__]; // Database energies of calibration lines 00059 TString fxLinesNames[__LINESNUMBER__]; // Database names of calibration lines. 00060 00062 TGo4Fitter* fxLinesFinder; // Fitter to search lines 00063 00065 TGo4Fitter* fxCalibrator; // Fitter for calibration of channel/energies with polynom 00066 00068 TGraph* fxCalibCurve; 00069 00070 TString fxGraphName; // Name of the graph to contain the calibration points 00071 00073 TH1* fxCalibSpectrum; 00074 00076 TString fxSpectrumName; //Name of the calibration spectrum histogram 00077 00078 ClassDef(TXXXCalibPar,1) 00079 }; 00080 00081 #endif 00082 00083 //----------------------------END OF GO4 SOURCE FILE ---------------------