00001 //----------------------------------------------------------------------------- 00002 // 00003 // (c) PHENIX Collaboration 2000/10/15 00004 // 00005 // Purpose: wraps the MIP correction of DST for Run2 00006 // 00007 // Description: algorithm class 00008 // 00009 // Author: Hisayuki Torii 00010 // Modified for Run2V02 production by H.Torii Jan/30/2002 00011 // 00012 //----------------------------------------------------------------------------- 00013 #ifndef __MEMCMIPCorr3MODULE_H__ 00014 #define __MEMCMIPCorr3MODULE_H__ 00015 #include "phool.h" 00016 #include <vector> 00017 00018 class PHCompositeNode; 00019 00025 class mEmcMIPCorr3Module 00026 { 00027 public: 00029 mEmcMIPCorr3Module(); 00031 virtual ~mEmcMIPCorr3Module() {} ; 00032 00034 static mEmcMIPCorr3Module* instance(); 00035 00037 PHBoolean event(PHCompositeNode * root) ; 00038 00039 // Access file DB 00040 void readfile_twr(char* filename); 00041 void readfile_run(char* filename); 00042 void print(); 00043 float get_corr_run(int iarm,int isect, int run); 00044 float get_corr_twr_mip(int arm, int sect, int iz, int iy) const { return _corr_twr_mip[arm][sect][iz][iy];} 00045 00046 private: 00047 static mEmcMIPCorr3Module* _instance; 00048 int fVerbose ; 00049 #ifndef __CINT__ 00050 std::vector<int> _corr_run[2][4]; 00051 std::vector<float> _corr_run_mip[2][4]; 00052 std::vector<float> _corr_run_err[2][4]; 00053 #endif 00054 int _last_run[2][4]; 00055 float _last_run_mip[2][4]; 00056 00057 float _corr_twr_mip[2][4][96][48]; //Sector*Zrow*Yrow 00058 float _corr_twr_err[2][4][96][48]; // For PbGl 2*96*48 00059 bool _corr_twr_stat[2][4][96][48]; // For PbSc 6*72*36 00060 }; 00061 #endif /*__MEMCMIPCorr3Module_H__*/ 00062 00063 00064