emcRawDataProcessorv3.h

Go to the documentation of this file.
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