BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMQSource.h
Go to the documentation of this file.
1#ifndef BMNMQSOURCE_H
2#define BMNMQSOURCE_H
3
4#include <cstring>
5#include <iostream>
6#include <string>
7#include <vector>
8#include <zmq.h>
9// ROOT
10#include "TChain.h"
11#include "TString.h"
12
13#include <TBufferFile.h>
14// FairRoot
15#include "FairEventHeader.h"
16#include "FairOnlineSource.h"
17#include "FairRootManager.h"
18#include "FairRunAna.h"
19// BmnRoot
20#include "BmnEnums.h"
21#include "BmnEventHeader.h"
22#include "BmnParts.h"
23#include "CbmVertex.h"
24#include "DstEventHeader.h"
25
27{
28 public:
29 BmnMQSource(std::string addr = "tcp://localhost:6666", Bool_t toFile = kFALSE);
30 virtual ~BmnMQSource();
31
32 Bool_t Init();
34 void Close();
35 // void Reset();
37 virtual Int_t CheckMaxEventNo(Int_t end_ev) { return end_ev; }
38 FairRunAna* GetRunInstance() { return fRunInst; }
39 void SetRunInstance(FairRunAna* run) { fRunInst = run; }
40
41 uint32_t GetPeriodId() { return fPeriodId; }
42
43 private:
45 {
46 TString name(Form("bmn_run%d_dst.root", runId));
47 return name;
48 }
50 FairRunAna* fRunInst;
51 zmq_msg_t _msg;
53 void* _ctx;
55 std::string _addrString;
56 std::vector<TNamed*> fNamVec;
57 std::vector<TClonesArray*> fArrVec;
58
59 const Int_t TimeDelta = 50000; // sleep micro seconds
62
63 // uint32_t fRunId; // FairSource has one (but int)
64 uint32_t fPeriodId;
65
70};
71
72#endif /* BMNMQSOURCE_H */
int i
Definition P4_F32vec4.h:22
bool Bool_t
int Int_t
unsigned int UInt_t
constexpr Bool_t kFALSE
#define ClassDef(name, id)
char * Form(const char *fmt,...)
Bool_t fFirstEvent
Definition BmnMQSource.h:60
virtual ~BmnMQSource()
TString GetDstNameFromRunId(Int_t runId)
Definition BmnMQSource.h:44
Int_t iT0BranchIndex
Definition BmnMQSource.h:67
Int_t ReadEvent(UInt_t i=0)
void FillEventHeader(FairEventHeader *feh)
void * _ctx
Definition BmnMQSource.h:53
void SetRunInstance(FairRunAna *run)
Definition BmnMQSource.h:39
Int_t iEventNumber
Definition BmnMQSource.h:66
FairEventHeader * fEventHeader
Definition BmnMQSource.h:68
FairRunAna * GetRunInstance()
Definition BmnMQSource.h:38
TBufferFile * _tBuf
Definition BmnMQSource.h:52
void * _decoSocket
Definition BmnMQSource.h:54
uint32_t GetPeriodId()
Definition BmnMQSource.h:41
Bool_t InitZMQ()
std::string _addrString
Definition BmnMQSource.h:55
const Int_t TimeDelta
Definition BmnMQSource.h:59
zmq_msg_t _msg
Definition BmnMQSource.h:51
Bool_t Init()
FairRunAna * fRunInst
Definition BmnMQSource.h:50
Bool_t fToFile
Definition BmnMQSource.h:61
virtual Int_t CheckMaxEventNo(Int_t end_ev)
Definition BmnMQSource.h:37
std::vector< TNamed * > fNamVec
Definition BmnMQSource.h:56
uint32_t fPeriodId
Definition BmnMQSource.h:64
std::vector< TClonesArray * > fArrVec
Definition BmnMQSource.h:57
BmnMQSource(std::string addr="tcp://localhost:6666", Bool_t toFile=kFALSE)
Define enumerations used in tracking.