GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TEpicsFrag.h
Go to the documentation of this file.
1#ifndef TEPICSFRAG_H
2#define TEPICSFRAG_H
3
4/** \addtogroup Sorting
5 * @{
6 */
7
8#include <vector>
9#include <ctime>
10#include <map>
11
12#include "Rtypes.h"
13#include "TObject.h"
14#include "TTree.h"
15
16//#if !defined (__CINT__) && !defined (__CLING__)
17//#include "Globals.h"
18//#endif
19
20/////////////////////////////////////////////////////////////////
21///
22/// \class TEpicsFrag
23///
24/// This Class should contain all the information found in
25/// Epics (scaler) events.
26///
27/////////////////////////////////////////////////////////////////
28
29class TEpicsFrag : public TObject {
30public:
31 TEpicsFrag() = default;
32 TEpicsFrag(const TEpicsFrag&) = default;
33 TEpicsFrag(TEpicsFrag&&) noexcept = default;
34 TEpicsFrag& operator=(const TEpicsFrag&) = default;
35 TEpicsFrag& operator=(TEpicsFrag&&) noexcept = default;
36 ~TEpicsFrag() = default;
37
38 size_t GetSize() const { return fData.size(); }
39 float GetData(const unsigned int& index) const
40 {
41 if(index >= fData.size()) {
42 return fData.back();
43 }
44 return fData[index];
45 }
46
47 void Clear(Option_t* opt = "") override; //!<!
48 void Print(Option_t* opt = "") const override; //!<!
49
50 static void AddEpicsVariable(const char* name);
51 static void SetEpicsNameList(const std::vector<std::string>& names);
52 static std::string GetEpicsVariableName(const int& index);
53 static void PrintVariableNames();
54
55 static void BuildScalerMap(TTree* tree);
56 static void BuildScalerMap();
57 static void PrintScalerMap();
58
59 static TEpicsFrag* GetScalerAtTime(Long64_t time);
60
61 // setters
62 void DaqTimeStamp(time_t val) { fDaqTimeStamp = val; }
63 void DaqId(Int_t val) { fDaqId = val; }
64 void Data(const std::vector<float>& val) { fData = val; }
65 void Name(const std::vector<std::string>& val) { fName = val; }
66
67 void AddData(float val) { fData.push_back(val); }
68 void AddName(const std::string& val) { fName.push_back(val); }
69
70 // getters
71 time_t DaqTimeStamp() const { return fDaqTimeStamp; }
72 Int_t DaqId() const { return fDaqId; }
73 std::vector<float> Data() const { return fData; }
74 std::vector<std::string> Name() const { return fName; }
75
76private:
77 static std::vector<std::string> fNameList; // This stuff should potentially move to a run info of some sort
78 static std::map<Long64_t, TEpicsFrag> fScalerMap;
79 static Long64_t fSmallestTime;
80
81 time_t fDaqTimeStamp{0}; //-> Timestamp of the daq event
82 Int_t fDaqId{-1}; //-> daq ID
83
84 std::vector<float> fData; ///< The data in the scaler
85 std::vector<std::string> fName; ///< The name of the scaler
86
87 /// \cond CLASSIMP
88 ClassDefOverride(TEpicsFrag, 2) // NOLINT(readability-else-after-return)
89 /// \endcond
90};
91/*! @} */
92#endif // TEPICSFRAG_H
std::vector< std::string > Name() const
Definition TEpicsFrag.h:74
void Data(const std::vector< float > &val)
Definition TEpicsFrag.h:64
void DaqTimeStamp(time_t val)
Definition TEpicsFrag.h:62
TEpicsFrag(const TEpicsFrag &)=default
void AddData(float val)
Definition TEpicsFrag.h:67
static void SetEpicsNameList(const std::vector< std::string > &names)
static std::map< Long64_t, TEpicsFrag > fScalerMap
Definition TEpicsFrag.h:78
void Print(Option_t *opt="") const override
!
static void BuildScalerMap()
TEpicsFrag()=default
size_t GetSize() const
Definition TEpicsFrag.h:38
static void PrintVariableNames()
Int_t DaqId() const
Definition TEpicsFrag.h:72
void DaqId(Int_t val)
Definition TEpicsFrag.h:63
void Clear(Option_t *opt="") override
!
static std::vector< std::string > fNameList
Definition TEpicsFrag.h:77
Int_t fDaqId
Definition TEpicsFrag.h:82
std::vector< std::string > fName
The name of the scaler.
Definition TEpicsFrag.h:85
time_t fDaqTimeStamp
Definition TEpicsFrag.h:81
TEpicsFrag(TEpicsFrag &&) noexcept=default
static Long64_t fSmallestTime
Definition TEpicsFrag.h:79
float GetData(const unsigned int &index) const
Definition TEpicsFrag.h:39
static void PrintScalerMap()
void Name(const std::vector< std::string > &val)
Definition TEpicsFrag.h:65
std::vector< float > fData
The data in the scaler.
Definition TEpicsFrag.h:84
void AddName(const std::string &val)
Definition TEpicsFrag.h:68
static std::string GetEpicsVariableName(const int &index)
time_t DaqTimeStamp() const
Definition TEpicsFrag.h:71
std::vector< float > Data() const
Definition TEpicsFrag.h:73
static void AddEpicsVariable(const char *name)
static TEpicsFrag * GetScalerAtTime(Long64_t time)