Line data Source code
1 : #ifndef artdaq_Application_MPI2_EventBuilderCore_hh
2 : #define artdaq_Application_MPI2_EventBuilderCore_hh
3 :
4 : #include "artdaq/Application/DataReceiverCore.hh"
5 :
6 : namespace fhicl {
7 : class ParameterSet;
8 : }
9 :
10 : namespace artdaq {
11 : class EventBuilderCore;
12 : }
13 :
14 : /**
15 : * \brief EventBuilderCore implements the state machine for the EventBuilder artdaq application.
16 : * EventBuilderCore receives Fragment objects from the DataReceiverManager, and sends them to the EventStore.
17 : */
18 : class artdaq::EventBuilderCore : public DataReceiverCore
19 : {
20 : public:
21 : /**
22 : * \brief EventBuilderCore Constructor.
23 : */
24 0 : EventBuilderCore() = default;
25 :
26 : /**
27 : * \brief Copy Constructor is deleted
28 : */
29 : EventBuilderCore(EventBuilderCore const&) = delete;
30 :
31 : /**
32 : * Destructor.
33 : */
34 0 : ~EventBuilderCore()
35 0 : {
36 0 : TLOG(TLVL_DEBUG + 32) << "Destructor";
37 0 : }
38 :
39 : /**
40 : * \brief Copy Assignment operator is deleted
41 : * \return AggregatorCore copy
42 : */
43 : EventBuilderCore& operator=(EventBuilderCore const&) = delete;
44 : EventBuilderCore(EventBuilderCore&&) = delete; ///< Move Constructor is deleted
45 : EventBuilderCore& operator=(EventBuilderCore&&) = delete; ///< Move Assignment Operator is deleted
46 :
47 : /**
48 : * \brief Processes the initialize request.
49 : * \param pset ParameterSet used to configure the EventBuilderCore
50 : * \return Whether the initialize attempt succeeded
51 : *
52 : * \verbatim
53 : * EventBuilderCore accepts the following Parameters:
54 : * "daq" (REQUIRED): FHiCL table containing DAQ configuration
55 : * "event_builder" (REQUIRED): FHiCL table containing Aggregator paramters
56 : * "fragment_count" (REQUIRED): Number of Fragment objects to collect before sending them to art
57 : * "inrun_recv_timeout_usec" (Default: 100000): Amount of time to wait for new Fragment objects while running
58 : * "endrun_recv_timeout_usec" (Default: 20000000): Amount of time to wait for additional Fragment objects at EndOfRun
59 : * "pause_recv_timeout_usec" (Default: 3000000): Amount of time to wait for additional Fragment objects at PauseRun
60 : * "verbose" (Default: true): Whether to print transition messages
61 : * "metrics": FHiCL table containing configuration for MetricManager
62 : * \endverbatim
63 : *
64 : * Note that the "event_builder" ParameterSet is also used to configure the SharedMemoryEventManager. See that class' documentation for more information.
65 : */
66 : bool initialize(fhicl::ParameterSet const& pset) override;
67 : };
68 :
69 : #endif /* artdaq_Application_MPI2_EventBuilderCore_hh */
|