emcDCProcessorv3.h

Go to the documentation of this file.
00001 #ifndef __EMCDCPROCESSORV3_H__
00002 #define __EMCDCPROCESSORV3_H__
00003 
00004 #ifndef __EMCDCPROCESSOR_H__
00005 #include "emcDCProcessor.h"
00006 #endif
00007 #include <string>
00008 #include <vector>
00009 #include <set>
00010 
00011 class emcTowerContent;
00012 class emcCalibrationDataHelper;
00013 
00017 class emcDCProcessorv3 : public emcDCProcessor
00018 {
00019 public:
00020   emcDCProcessorv3(emcCalibrationDataHelper*);
00021 
00022   virtual ~emcDCProcessorv3();
00023 
00024   bool calibrate(emcTowerContainer* pbsc, 
00025                  emcTowerContainer* pbgl,
00026                  time_t incrTime);
00027 
00028   int isValid() const;
00029 
00030   void identify(std::ostream& out = std::cout) const;
00031 
00032   void Reset();
00033 
00034 private:
00035 
00036   typedef float (emcDCProcessorv3::*FPTR)(emcTowerContent*,time_t);
00037 
00038   float calibrateEnergyPbGl(emcTowerContent* t, time_t);
00039   float calibrateEnergyPbSc(emcTowerContent* t, time_t incrTime);
00040   float calibrateTimePbGl(emcTowerContent* t, time_t);
00041   float calibrateTimePbSc(emcTowerContent* t,time_t incrTime);
00042 
00043   static float Log(int adc);
00044   static std::vector<float> LogInit(void);
00045 
00046 private:
00047   emcCalibrationDataHelper* fCH;
00048   bool fZeroSuppression;
00049 
00050   std::set<int> fNormProblems;
00051 
00052   static const int fgADCThreshold = 10;
00053   float fgNormtLimitPbSc;
00054 
00055   std::string fksGainsBLR;
00056 
00057   ClassDef(emcDCProcessorv3,1)
00058 };
00059 
00060 #endif