2#define BMNCONVERTER_H 1
12#include <boost/property_tree/json_parser.hpp>
13#include <boost/property_tree/ptree.hpp>
27#include "FairRootManager.h"
28#include "FairSource.h"
30#include "BmnADCDigit.h"
31#include "BmnDetectorList.h"
32#include "BmnEventHeader.h"
33#include "BmnGemStripDigit.h"
34#include "BmnHRBDigit.h"
35#include "BmnMSCDigit.h"
37#include "BmnMetadataRaw.h"
38#include "BmnSpillHeader.h"
39#include "BmnSyncDigit.h"
40#include "BmnTDCDigit.h"
41#include "BmnTQDCADCDigit.h"
43#include "BmnTrigConfig.h"
44#include "DigiRunHeader.h"
49#define WAIT_LIMIT 40000000
52typedef pair<TTree*, uint64_t>
TreePE;
57namespace pt = boost::property_tree;
64 vector<pair<int, pair<int, int>>>
vecTree;
68 map<int32_t, map<int32_t, TreePos>>
treeMap;
74 BmnConverter(uint32_t threadCount = 0, uint32_t period = 8,
TString outDir =
".",
bool tempFileOnDisk =
false);
#define ClassDef(name, id)
BmnStatus
Define status code.
std::chrono::time_point< SysClock > SysPoint
void SetDecoderConfigFileName(string FileName)
void QuickProcessEvent(UInt_t *d, UInt_t &len)
map< int32_t, MapTP2TreePE > treeTimeMapDiv
BmnStatus ParseJsonTLV(UInt_t *buf, UInt_t &len)
BmnConverterThread * fCurWaitingThread
BmnStatus FeedEvent(UInt_t *buf, UInt_t len, Int_t type)
void SetSubName(TString v)
BmnStatus FeedFile(TString name, Bool_t getRunId=kTRUE, Bool_t getSubName=kTRUE)
multimap< SysPoint, TreePE > treeTimeMap
const TTimeStamp TimeZero
void ReproduceBranches(TTree *inTree, TTree *outTree)
BmnThreadManager< BmnConverterThread > * fThreads
vector< TClonesArray * > fArrVec
void QuickConvertStatEvent(UInt_t *buf, UInt_t &len)
map< int32_t, multimap< SysPoint, TreePos > > treeMapSpills
vector< TObject * > fNamVec
unique_ptr< DigiRunHeader > runHeader
void SeparateEventsBySpills()
unique_ptr< BmnMetadataRaw > metadata
map< int32_t, map< int32_t, TreePos > > treeMap
void SetSpillMap(map< SysPoint, BmnSpillInfo > spillMap)
void SetPeriod(uint32_t v)
BmnConverter(uint32_t threadCount=0, uint32_t period=8, TString outDir=".", bool tempFileOnDisk=false)
BmnStatus CreateTempFile()
map< SysPoint, BmnSpillInfo > fSpillMap
static BmnStatus ParseComplexTLV(UInt_t *buf, UInt_t &len, UInt_t &runId)
BmnStatus ConvertRawToRootIterateFileRead()
void SeparateEventsBySpillsTM()
TString fRawTreeSpillName
void SetRunId(uint32_t v)
map< TTimeStamp, Int_t > leaps
map< SysPoint, BmnSpillInfo > GetSpillMap()
BmnSpillHeader * spillHeader
vector< pair< int, pair< int, int > > > vecTree
Int_t GetUTCShift(TTimeStamp t)
Int_t GetSpillNumber(vector< SysPoint > *spillEnds, vector< SysPoint > *spillStarts, SysPoint time)
unique_ptr< ROOT::TBufferMerger > fMerger
string fDecoderConfigFileName
vector< pair< int, pair< int, int > > > vecTreeSpills
multimap< SysPoint, TreePE > MapTP2TreePE
pair< uint32_t, uint64_t > TreePos
pair< TTree *, uint64_t > TreePE
basic_json<> json
default specialization