Belle II Software  release-05-02-19
DeSerializerPC.h
1 //+
2 // File : DeSerializerPC.h
3 // Description : Module to receive data from outside and store it to DataStore
4 //
5 // Author : Satoru Yamada Itoh, IPNS, KEK
6 // Date : 2 - Aug - 2013
7 //-
8 
9 #ifndef DESERIALIZERPC_H
10 #define DESERIALIZERPC_H
11 
12 #include <string>
13 #include <vector>
14 
15 #include <framework/datastore/StoreObjPtr.h>
16 #include <framework/datastore/StoreArray.h>
17 
18 #include <daq/rawdata/modules/DeSerializer.h>
19 #include <daq/dataflow/EvtSocket.h>
20 
21 #include <rawdata/dataobjects/RawCOPPER.h>
22 
23 #include <rawdata/dataobjects/RawFTSW.h>
24 #include <framework/dataobjects/EventMetaData.h>
25 
26 namespace Belle2 {
35 
36  // Public functions
37  public:
38 
41  virtual ~DeSerializerPCModule();
42 
44  virtual void initialize();
45 
47  virtual void event();
48 
49 
50  protected :
52  virtual int Connect();
53 
55  virtual int recvFD(int fd, char* buf, int data_size_byte, int flag);
56 
57 
59  virtual int* recvData(int* delete_flag, int* total_m_size_word, int* num_events_in_sendblock, int* num_nodes_in_sendblock);
60 
62  virtual void setRecvdBuffer(RawDataBlock* raw_datablk, int* delete_flag);
63 
65  // virtual void checkData(RawDataBlock* raw_datablk, unsigned int* eve_copper_0);
66  virtual void checkData(RawDataBlock* raw_datablk, unsigned int* exp_copper_0,
67  unsigned int* run_copper_0, unsigned int* subrun_copper_0,
68  unsigned int* eve_copper_0, unsigned int* error_bit_flag);
69 
70  void setErrorFlag(unsigned int error_flag, StoreObjPtr<EventMetaData> evtmetadata);
71 
72 #ifdef NONSTOP
73  virtual void waitResume();
75 #endif
76 
77 
80 
82  std::vector<EvtSocketRecv*> m_recv;
83 
85  std::vector<int> m_socket;
86 
88  std::vector<std::string> m_hostname_from;
89 
91  std::vector<int> m_port_from;
92 
93  StoreArray<RawFTSW> raw_ftswarray;
94 
95  StoreArray<RawCOPPER> rawcprarray;
96 
97 
98  // StoreArray<ReducedRawCOPPER> rawcprarray;
100  PreRawCOPPERFormat_latest m_pre_rawcpr;
101 
102  int event_diff;
103 
104  unsigned int m_prev_copper_ctr;
105 
106  unsigned int m_prev_evenum;
107 
108  };
109 
111 } // end namespace Belle2
112 
113 #endif // MODULEHELLO_H
Belle2::DeSerializerPCModule::m_num_connections
int m_num_connections
Definition: DeSerializerPC.h:79
Belle2::DeSerializerPCModule::recvFD
virtual int recvFD(int fd, char *buf, int data_size_byte, int flag)
receive data
Definition: DeSerializerPC.cc:138
Belle2::DeSerializerPCModule::checkData
virtual void checkData(RawDataBlock *raw_datablk, unsigned int *exp_copper_0, unsigned int *run_copper_0, unsigned int *subrun_copper_0, unsigned int *eve_copper_0, unsigned int *error_bit_flag)
check data contents
Definition: DeSerializerPC.cc:467
Belle2::DeSerializerPCModule::DeSerializerPCModule
DeSerializerPCModule()
Constructor / Destructor.
Definition: DeSerializerPC.cc:46
Belle2::PreRawCOPPERFormat_latest
The Raw COPPER class ver.1 ( the latest version since May, 2014 ) This class stores data received by ...
Definition: PreRawCOPPERFormat_latest.h:30
Belle2::DeSerializerPCModule::m_hostname_from
std::vector< std::string > m_hostname_from
hostname of upstream Data Sources
Definition: DeSerializerPC.h:88
Belle2::DeSerializerPCModule::m_socket
std::vector< int > m_socket
Reciever Socket.
Definition: DeSerializerPC.h:85
Belle2::DeSerializerPCModule::Connect
virtual int Connect()
Accept connection.
Definition: DeSerializerPC.cc:186
Belle2::DeSerializerPCModule::event
virtual void event()
Module functions to be called from event process.
Definition: DeSerializerPC.cc:684
Belle2::DeSerializerPCModule::recvData
virtual int * recvData(int *delete_flag, int *total_m_size_word, int *num_events_in_sendblock, int *num_nodes_in_sendblock)
receive data
Definition: DeSerializerPC.cc:268
Belle2::DeSerializerPCModule::m_port_from
std::vector< int > m_port_from
port # to connect data sources
Definition: DeSerializerPC.h:91
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::DeSerializerModule
A class definition of an input module for Sequential ROOT I/O.
Definition: DeSerializer.h:36
Belle2::DeSerializerPCModule::setRecvdBuffer
virtual void setRecvdBuffer(RawDataBlock *raw_datablk, int *delete_flag)
attach buffer to RawDataBlock
Definition: DeSerializerPC.cc:422
Belle2::DeSerializerPCModule
A class definition of an input module for Sequential ROOT I/O.
Definition: DeSerializerPC.h:34
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::DeSerializerPCModule::m_recv
std::vector< EvtSocketRecv * > m_recv
Reciever basf2 Socket.
Definition: DeSerializerPC.h:82
Belle2::DeSerializerPCModule::initialize
virtual void initialize()
Module functions to be called from main process.
Definition: DeSerializerPC.cc:69
Belle2::RawDataBlock
The RawDataBlock class Base class for rawdata handling.
Definition: RawDataBlock.h:27