emcDataProcessorv2.h

Go to the documentation of this file.
00001 #ifndef __EMCDATAPROCESSORV2_H__
00002 #define __EMCDATAPROCESSORV2_H__
00003 
00004 #ifndef __EMCDATAPROCESSOR_H__
00005 #include "emcDataProcessor.h"
00006 #include "emcManageable.h"
00007 #endif
00008 #include <set>
00009 
00010 class emcPacketProcessor;
00011 class emcRawDataProcessor;
00012 class emcDCProcessor;
00013 class emcCalibrationDataHelper;
00014 class PHTimeStamp;
00015 
00020 class emcDataProcessorv2 : public emcDataProcessor
00021 {
00022 
00023 public:
00024 
00025   emcDataProcessorv2();
00026 
00027   emcDataProcessorv2(int runnumber, const PHTimeStamp& ts, 
00028                      bool initall = true,
00029                      emcManageable::EStorage dataSource=emcManageable::kDB_Pg,
00030                      const char* sectors = "emcal");
00031 
00032   virtual ~emcDataProcessorv2();
00033 
00034   virtual bool calibrate(emcTowerContainer* pbsc, 
00035                          emcTowerContainer* pbgl,
00036                          time_t incrementalTime=0);
00037 
00038   virtual bool decode(const Event& event, 
00039                       emcTowerContainer* pbsc, 
00040                       emcTowerContainer* pbgl);
00041 
00042   virtual void identify(std::ostream& os=std::cout) const;
00043 
00044   virtual int isValid() const;
00045 
00046   virtual void Reset();
00047  
00048   virtual bool toADCandTDC(emcTowerContainer* pbsc, 
00049                            emcTowerContainer* pbgl,
00050                            const emcBadModules& bad);
00051 
00052   virtual void setRunNumber(int runnumber) { fRunNumber = runnumber; }
00053 
00055   emcCalibrationDataHelper* getCalibrationDataHelper() const;
00056 
00057 protected:
00058   // Selects the worker child classes.
00059 
00060   virtual emcDCProcessor* 
00061   getDCProcessor(emcCalibrationDataHelper*) const;
00062 
00063   virtual emcPacketProcessor* 
00064   getPacketProcessor() const;
00065   
00066   virtual emcRawDataProcessor* 
00067   getRawDataProcessor(emcCalibrationDataHelper*) const;
00068 
00069 private:
00070 
00071   emcPacketProcessor* fPacketProcessor;
00072   emcRawDataProcessor* fRawDataProcessor;
00073   emcDCProcessor* fDCProcessor;
00074   emcCalibrationDataHelper* fCalibrationDataHelper;
00075   
00076   int fRunNumber;
00077   PHTimeStamp* fTimeStamp;
00078   std::set<int> fFemList;
00079 
00080   ClassDef(emcDataProcessorv2,0) // EMCAL Raw Data Processor v2 = Run 3
00081 };
00082 
00083 #endif