CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
EFEventLoopMgr.h
Go to the documentation of this file.
1//====================================================================
2// EFEventLoopMgr.h
3//====================================================================
4#ifndef STOREGATE_EFEVENTLOOPMGR_H
5#define STOREGATE_EFEVENTLOOPMGR_H
6
7#define ONLINE_DATA_HEAD 36
8#define ONLINE_DATA_TAIL 4
9// Framework include files
10#ifndef GAUDIKERNEL_IEVTSELECTOR_H
11#include "GaudiKernel/IEvtSelector.h"
12#endif
13#include "GaudiKernel/SvcFactory.h"
14#ifndef GAUDISVC_MINIMALEVENTLOOPMGR_H
15//#include "ApplicationMgr/MinimalEventLoopMgr.h"
16#include "GaudiKernel/MinimalEventLoopMgr.h"
17#endif
18
19#include "HltDataTypes/EventID.h" /* number_type */
23
26#include <vector>
27#include <stdint.h>
28
29// Forward declarations
30class IIncidentSvc;
31class IDataManagerSvc;
32class IConversionSvc;
33class IDataProviderSvc;
34class RAWEVENT;
35
36/** Class definition of EFEventLoopMgr.
37 This is the default processing manager of the application manager.
38 This object handles the minimal requirements needed by the
39 application manager. It also handles the default user
40 configuration setup for standard event processing.
41
42 <UL>
43 <LI> handling of the incidents when starting event processing
44 <LI> handling of the event loop
45 </UL>
46
47 <B>History:</B>
48 <PRE>
49 +---------+----------------------------------------------+---------+
50 | Date | Comment | Who |
51 +---------+----------------------------------------------+---------+
52 |13/12/00 | Initial version | M.Frank |
53 +---------+----------------------------------------------+---------+
54 </PRE>
55 @author Markus Frank
56 @version 1.0
57*/
58class EFEventLoopMgr : public MinimalEventLoopMgr,
59 virtual public IEFEventLoopMgr {
60public:
61 /// Creator friend class
62 friend class SvcFactory<EFEventLoopMgr>;
63
64protected:
65 /// Reference to the indicent service
66 IIncidentSvc* m_incidentSvc;
67 /// Reference to HltStoreSvc;
69 /// Reference to the Event Selector
70 IEvtSelector* m_evtSelector;
71 /// Event Context
72 IEvtSelector::Context* m_evtContext;
73 /// Event selector
74 std::string m_evtsel;
75
76 /// Reference to the Event Data Service's IDataManagerSvc interface
77 IDataManagerSvc* m_evtDataMgrSvc;
78 /// Reference to the Event Data Service's IDataProviderSvc interface
79 IDataProviderSvc* m_evtDataSvc;
80
81 /// Reference to the Histogram Data Service
82 IDataManagerSvc* m_histoDataMgrSvc;
83 /// Reference to the Histogram Persistency Service
84 IConversionSvc* m_histoPersSvc;
85 /// Name of the Hist Pers type
86 std::string m_histPersName;
87
88 /// current run number
91
92protected:
93 /// Standard Constructor
94 EFEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
95 /// Standard Destructor
96 virtual ~EFEventLoopMgr();
97
98public:
99 /// implementation of IAppMgrUI::initalize
100 virtual StatusCode initialize();
101 /// implementation of IAppMgrUI::finalize
102 virtual StatusCode finalize();
103
104 /// implementation of IEventProcessor::executeEvent(void* par)
105 virtual StatusCode executeEvent(void* par);
106 /// Create event address using event selector
107 StatusCode getEventRoot(IOpaqueAddress*& refpAddr);
108 /// implementation of IInterface: queryInterface
109 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
110 /// prepare for run step
111 virtual StatusCode prepareForRun(int ef_run_number);
112
113 /// whether it is a RrandomTrg
114 virtual bool getTrigChn(uint32_t* data, uint32_t ndata);
115 /// return data from EF decision
116 virtual std::string EF_Decision();
117 /// return version number
118 virtual uint32_t EF_Version();
119 /// return algorithm tag
120 virtual uint32_t EF_Algorithm_Tag();
121 /// return total energy
122 virtual uint32_t EF_Total_Energy();
123 ///Return a pointer to the local memory containing the EF subdetector fragment
124 virtual uint32_t* EF_Fragment_Address();
125
126private:
127 int m_total_nevt ;
128 IRawDataInputSvc* m_inputSvc;
129 bool m_disableEFResult ;
130 bool m_okexecuteEvent ;
131 int m_timeTest;
132 EFResult* m_efResult;
133 EFResult* m_evtType;
134//hxt IByteStreamEventAccess* m_ByteStreamEventAccess;
135 char* m_serializedEFAddress; ///< Pointer to the local memory containing the EF Fragment
136 uint32_t m_trgType;
137 bool m_firstEvent;
138 RAWEVENT* m_re;
139 //hxt typedef OFFLINE_FRAGMENTS_NAMESPACE::SubDetectorFragment DETF;
140 //hxt typedef std::vector<DETF*, Hlt_ALLOC> VDETF;
141};
142#endif // STOREGATE_EFEVENTLOOPMGR_H
TTree * data
Defines the EFResult RDO structure.
virtual bool getTrigChn(uint32_t *data, uint32_t ndata)
whether it is a RrandomTrg
std::string m_evtsel
Event selector.
virtual StatusCode executeEvent(void *par)
implementation of IEventProcessor::executeEvent(void* par)
IConversionSvc * m_histoPersSvc
Reference to the Histogram Persistency Service.
virtual ~EFEventLoopMgr()
Standard Destructor.
std::string m_histPersName
Name of the Hist Pers type.
virtual StatusCode initialize()
implementation of IAppMgrUI::initalize
virtual std::string EF_Decision()
return data from EF decision
virtual StatusCode finalize()
implementation of IAppMgrUI::finalize
StatusCode getEventRoot(IOpaqueAddress *&refpAddr)
Create event address using event selector.
EventID::number_type m_currentRun
current run number
virtual uint32_t EF_Version()
return version number
EFEventLoopMgr(const std::string &nam, ISvcLocator *svcLoc)
Standard Constructor.
virtual uint32_t EF_Total_Energy()
return total energy
IIncidentSvc * m_incidentSvc
Reference to the indicent service.
virtual uint32_t * EF_Fragment_Address()
Return a pointer to the local memory containing the EF subdetector fragment.
virtual StatusCode prepareForRun(int ef_run_number)
prepare for run step
IDataManagerSvc * m_evtDataMgrSvc
Reference to the Event Data Service's IDataManagerSvc interface.
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
implementation of IInterface: queryInterface
IEvtSelector::Context * m_evtContext
Event Context.
IDataProviderSvc * m_evtDataSvc
Reference to the Event Data Service's IDataProviderSvc interface.
virtual uint32_t EF_Algorithm_Tag()
return algorithm tag
IDataManagerSvc * m_histoDataMgrSvc
Reference to the Histogram Data Service.
HltStoreSvc * m_HltStoreSvc
Reference to HltStoreSvc;.
IEvtSelector * m_evtSelector
Reference to the Event Selector.
unsigned int number_type
Definition EventID.h:31
Forward and external declarations.