/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RawDataProviderSvc/RawDataProviderSvc-00-03-46/RawDataProviderSvc/RawDataProviderSvc.h

Go to the documentation of this file.
00001 #ifndef RAWDATAPROVIDERSVC_H
00002 #define RAWDATAPROVIDERSVC_H
00003 
00004 #include "GaudiKernel/IInterface.h"
00005 #include "GaudiKernel/IIncidentListener.h"
00006 #include "GaudiKernel/Kernel.h"
00007 #include "GaudiKernel/Service.h"
00008 #include "GaudiKernel/SmartDataPtr.h"
00009 #include "GaudiKernel/DataSvc.h"
00010 #include "MdcRawEvent/MdcDigi.h"
00011 #include "EventModel/Event.h"
00012 #include <vector>
00013 #include "RawDataProviderSvc/IRawDataProviderSvc.h"
00014 #include "RawDataProviderSvc/TofData.h"
00015 
00016 class RawDataProviderSvc: public Service, virtual public IRawDataProviderSvc,
00017                           virtual public IIncidentListener{
00018 
00019 public:
00020   RawDataProviderSvc( const std::string& name, ISvcLocator* svcloc );
00021   ~RawDataProviderSvc();
00022   virtual StatusCode initialize();
00023   virtual StatusCode finalize();
00024   virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
00025 
00026   // Incident handler
00027   void handle(const Incident&); 
00028 
00029   MdcDigiVec& getMdcDigiVec(uint32_t control = 0) { return m_mdcProvider->getMdcDigiVec(control); }
00030 
00031   TofDataMap& tofDataMapOnlineMode(uint32_t control = 1) { return m_tofProvider->tofDataMapOnlineMode(control); }
00032   TofDataVector& tofDataVectorOnlineMode(uint32_t control = 1) { return m_tofProvider->tofDataVectorOnlineMode(control); }
00033   TofDataMap& tofDataMapEstime() { return m_tofProvider->tofDataMapEstime(); }
00034   TofDataVector& tofDataVectorEstime() { return m_tofProvider->tofDataVectorEstime(); }
00035   TofDataMap& tofDataMapTof(double estime = 0.0) { return m_tofProvider->tofDataMapTof(estime); }
00036   TofDataVector& tofDataVectorTof(double estime = 0.0) { return m_tofProvider->tofDataVectorTof(estime); }
00037   TofDataMap& tofDataMapEmc(double estime = 0.0) { return m_tofProvider->tofDataMapEmc(estime); }
00038   TofDataVector& tofDataVectorEmc(double estime = 0.0) { return m_tofProvider->tofDataVectorEmc(estime); }
00039 
00040   EmcDigiCol& getEmcDigiVec(uint32_t control) {return m_emcProvider->getEmcDigiVec(control); }
00041 
00042   MdcRawDataProvider* getMdcProvider() { return m_mdcProvider; }
00043   TofRawDataProvider* getTofProvider() { return m_tofProvider; }
00044   EmcRawDataProvider* getEmcProvider() { return m_emcProvider; }
00045   bool                isOnlineMode()   { return m_onlineMode;  }
00046 
00047 private:
00048 
00049   MdcRawDataProvider*  m_mdcProvider;
00050   TofRawDataProvider*  m_tofProvider;
00051   EmcRawDataProvider*  m_emcProvider;
00052 
00053   std::vector<int> m_skipLayers;    // Mdc skip layer flag
00054   float            m_effThreshold;  // Mdc wire efficiency threshold
00055   float            m_elow;          // Emc low threshold of energy for single crystal (MeV)
00056   uint32_t         m_tlow;          // Emc low threshold of time
00057   uint32_t         m_thigh;         // Emc high threshold of time
00058   std::vector<uint32_t>  m_hotVec;  // Emc hot channels' id
00059   std::vector<uint32_t>  m_deadVec; // Emc dead channels' id 
00060   bool             m_onlineMode;    // if online mode, true
00061 };
00062 
00063 #endif

Generated on Tue Nov 29 22:58:35 2016 for BOSS_7.0.2 by  doxygen 1.4.7