/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventFilter/OnlineJointer/EFServices/EFServices-00-01-09/EFServices/EFEventLoopMgr.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      EFEventLoopMgr.h
00003 //====================================================================
00004 #ifndef STOREGATE_EFEVENTLOOPMGR_H
00005 #define STOREGATE_EFEVENTLOOPMGR_H
00006 
00007 #define ONLINE_DATA_HEAD 36
00008 #define ONLINE_DATA_TAIL 4
00009 // Framework include files
00010 #ifndef GAUDIKERNEL_IEVTSELECTOR_H
00011 #include "GaudiKernel/IEvtSelector.h"
00012 #endif
00013 #include "GaudiKernel/SvcFactory.h"
00014 #ifndef GAUDISVC_MINIMALEVENTLOOPMGR_H
00015 //#include "ApplicationMgr/MinimalEventLoopMgr.h"
00016 #include "GaudiKernel/MinimalEventLoopMgr.h"
00017 #endif
00018 
00019 #include "HltDataTypes/EventID.h"  /* number_type */
00020 #include "HltDataTypes/EFResult.h"
00021 #include "HltStore/HltStoreSvc.h"
00022 #include "EFServices/IEFEventLoopMgr.h"
00023 
00024 #include "RawDataCnv/IRawDataInputSvc.h"
00025 #include "RawDataCnv/RawDataCnv.h"
00026 #include <vector>
00027 #include <stdint.h>
00028 
00029 // Forward declarations
00030 class IIncidentSvc;
00031 class IDataManagerSvc;
00032 class IConversionSvc;
00033 class IDataProviderSvc;
00034 class RAWEVENT;
00035 
00058 class EFEventLoopMgr : public MinimalEventLoopMgr,
00059                  virtual public IEFEventLoopMgr {
00060 public:
00062   friend class SvcFactory<EFEventLoopMgr>;
00063 
00064 protected:
00066   IIncidentSvc*     m_incidentSvc;
00068   HltStoreSvc*  m_HltStoreSvc;
00070   IEvtSelector*     m_evtSelector;
00072   IEvtSelector::Context*      m_evtContext;
00074   std::string       m_evtsel;
00075 
00077   IDataManagerSvc*  m_evtDataMgrSvc;
00079   IDataProviderSvc* m_evtDataSvc;
00080 
00082   IDataManagerSvc*  m_histoDataMgrSvc;
00084   IConversionSvc*   m_histoPersSvc;
00086   std::string       m_histPersName;
00087 
00089   EventID::number_type m_currentRun;
00090   bool m_firstRun;
00091 
00092 protected:
00094   EFEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
00096   virtual ~EFEventLoopMgr();
00097 
00098 public:
00100   virtual StatusCode initialize();
00102   virtual StatusCode finalize();
00103  
00105   virtual StatusCode executeEvent(void* par);
00107   StatusCode getEventRoot(IOpaqueAddress*& refpAddr);
00109   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
00111   virtual StatusCode prepareForRun(int ef_run_number);
00112 
00114   virtual bool getTrigChn(uint32_t* data, uint32_t ndata);
00116   virtual std::string  EF_Decision();
00118   virtual uint32_t EF_Version();
00120   virtual uint32_t EF_Algorithm_Tag();
00122   virtual uint32_t EF_Total_Energy();
00124   virtual uint32_t* EF_Fragment_Address();
00125 
00126 private:
00127   int                       m_total_nevt ;
00128   IRawDataInputSvc*         m_inputSvc;
00129   bool                      m_disableEFResult ;
00130   bool                      m_okexecuteEvent ;
00131   int                       m_timeTest;
00132   EFResult*                 m_efResult;
00133   EFResult*                 m_evtType;
00134 //hxt   IByteStreamEventAccess* m_ByteStreamEventAccess;
00135   char* m_serializedEFAddress; 
00136   uint32_t                  m_trgType;
00137   bool                      m_firstEvent; 
00138   RAWEVENT*                 m_re;
00139   //hxt typedef OFFLINE_FRAGMENTS_NAMESPACE::SubDetectorFragment DETF;
00140   //hxt typedef std::vector<DETF*, Hlt_ALLOC> VDETF; 
00141 };
00142 #endif // STOREGATE_EFEVENTLOOPMGR_H

Generated on Tue Nov 29 23:12:07 2016 for BOSS_7.0.2 by  doxygen 1.4.7