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