00001 #ifndef __EMCRAWDATAPROCESSORV3_H__ 00002 #define __EMCRAWDATAPROCESSORV3_H__ 00003 00004 #ifndef __EMCRAWDATAPROCESSOR_H__ 00005 #include "emcRawDataProcessor.h" 00006 #endif 00007 00008 class emcTowerContent; 00009 class emcCalibrationDataHelper; 00010 00015 class emcRawDataProcessorv3 : public emcRawDataProcessor 00016 { 00017 public: 00018 emcRawDataProcessorv3(emcCalibrationDataHelper*); 00019 virtual ~emcRawDataProcessorv3(); 00020 00021 int isValid() const; 00022 00023 void identify(std::ostream& out = std::cout) const; 00024 00025 void Reset(); 00026 00027 bool toADCandTDC(emcTowerContainer* pbsc, 00028 emcTowerContainer* pbgl, 00029 const emcBadModules&); 00030 00031 private: 00032 typedef bool (emcRawDataProcessorv3::*FPTR)(emcTowerContent*,float&); 00033 bool chooseLowGainPbSc(emcTowerContent* tower, float& scale); 00034 bool chooseLowGainPbGl(emcTowerContent* tower, float& scale); 00035 void toADCandTDC(emcTowerContent* tower, FPTR function_ptr, 00036 const emcBadModules&); 00037 00038 private: 00039 emcCalibrationDataHelper* fCH; 00040 00041 ClassDef(emcRawDataProcessorv3,0) 00042 }; 00043 00044 #endif