BmnRoot
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
26class BmnMQSource : public FairOnlineSource
27{
28 public:
29 BmnMQSource(std::string addr = "tcp://localhost:6666", Bool_t toFile = kFALSE);
30 virtual ~BmnMQSource();
31
32 Bool_t Init();
33 Int_t ReadEvent(UInt_t i = 0);
34 void Close();
35 // void Reset();
36 void FillEventHeader(FairEventHeader* feh);
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:
44 TString GetDstNameFromRunId(Int_t runId)
45 {
46 TString name(Form("bmn_run%d_dst.root", runId));
47 return name;
48 }
49 Bool_t InitZMQ();
50 FairRunAna* fRunInst;
51 zmq_msg_t _msg;
52 TBufferFile* _tBuf;
53 void* _ctx;
54 void* _decoSocket;
55 std::string _addrString;
56 std::vector<TNamed*> fNamVec;
57 std::vector<TClonesArray*> fArrVec;
58
59 const Int_t TimeDelta = 50000; // sleep micro seconds
60 Bool_t fFirstEvent;
61 Bool_t fToFile;
62
63 // uint32_t fRunId; // FairSource has one (but int)
64 uint32_t fPeriodId;
65
66 Int_t iEventNumber;
67 Int_t iT0BranchIndex;
68 FairEventHeader* fEventHeader;
69 ClassDef(BmnMQSource, 1);
70};
71
72#endif /* BMNMQSOURCE_H */
int i
Definition P4_F32vec4.h:22
Int_t ReadEvent(UInt_t i=0)
void FillEventHeader(FairEventHeader *feh)
void SetRunInstance(FairRunAna *run)
Definition BmnMQSource.h:39
virtual ~BmnMQSource()
void Close()
FairRunAna * GetRunInstance()
Definition BmnMQSource.h:38
uint32_t GetPeriodId()
Definition BmnMQSource.h:41
Bool_t Init()
virtual Int_t CheckMaxEventNo(Int_t end_ev)
Definition BmnMQSource.h:37
BmnMQSource(std::string addr="tcp://localhost:6666", Bool_t toFile=kFALSE)
-clang-format