GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
THILDataParser.h
Go to the documentation of this file.
1#ifndef THILDARAPARSER_H
2#define THILDARAPARSER_H
3
4/** \addtogroup Sorting
5 * @{
6 */
7
8/////////////////////////////////////////////////////////////////
9///
10/// \class THILDataParser
11///
12/// The THILDataParser is the DAQ dependent part of GRSISort.
13/// It takes a "DAQ-dependent"-flavoured LMD file and
14/// converts it into a generic TFragment that the rest of
15/// GRSISort can deal with. This is where event word masks
16/// are applied, and any changes to the event format must
17/// be implemented.
18///
19/////////////////////////////////////////////////////////////////
20
21#include "Globals.h"
22#include <ctime>
23#include <sstream>
24#include <vector>
25#include <map>
26#include <limits>
27
28#ifndef __CINT__
29#include <memory>
30#endif
31
32#include "TDataParser.h"
33#include "TChannel.h"
34#include "TFragment.h"
35#include "TPPG.h"
36#include "TScaler.h"
37#include "TFragmentMap.h"
38#include "ThreadsafeQueue.h"
39#include "TEpicsFrag.h"
40#include "TRawEvent.h"
41#include "TRlmdEvent.h"
42
44public:
47
48 // ENUM(EBank, char, kWFDN,kGRF1,kGRF2,kGRF3,kFME0,kFME1,kFME2,kFME3);
49 enum class EBank { kWFDN = 0, kGRF1 = 1, kGRF2 = 2, kGRF3 = 3, kGRF4 = 4, kFME0 = 5, kFME1 = 6, kFME2 = 7, kFME3 = 8 };
50
51 enum class EDigitizer {
52 kV1751 = 1,
53 kV1724 = 2,
54 kV1730_PSD = 3,
55 kV1730_PHA = 4,
56 kV1725_PHA = 7,
57 kV1725_PSD = 8
58 };
59
80
81#ifndef __CINT__
82 int Process(std::shared_ptr<TRawEvent>) override;
83#endif
84
85private:
86 uint16_t ByteSwap(const uint16_t& val) {
87 return ((val&0xff) << 8) | ((val&0xff00) >> 8);
88 }
89
90 int EagleEventToFragment(uint32_t size, uint16_t* data);
91
93};
94/*! @} */
95#endif
EDataParserState fState
uint16_t ByteSwap(const uint16_t &val)
int EagleEventToFragment(uint32_t size, uint16_t *data)
int Process(std::shared_ptr< TRawEvent >) override