ndmspc v1.2.0-0.1.rc5
Loading...
Searching...
No Matches
NBinningDef.h
1#ifndef Ndmspc_NBinningDef_H
2#define Ndmspc_NBinningDef_H
3#include <string>
4#include <vector>
5#include <map>
6#include <TObject.h>
7#include <TAxis.h>
8#include <THnSparse.h>
9namespace Ndmspc {
10
20class NBinning;
21
26class NBinningDef : public TObject {
27 public:
34 NBinningDef(std::string name = "default", std::map<std::string, std::vector<std::vector<int>>> definition = {},
35 NBinning * binning = nullptr);
36
40 virtual ~NBinningDef();
41
46 virtual void Print(Option_t * option = "") const;
47
52 std::map<std::string, std::vector<std::vector<int>>> GetDefinition() const { return fDefinition; }
53
58 void SetDefinition(const std::map<std::string, std::vector<std::vector<int>>> & d) { fDefinition = d; }
59
65 void SetAxisDefinition(std::string axisName, const std::vector<std::vector<int>> & d) { fDefinition[axisName] = d; }
66
71 std::vector<int> GetVariableAxes() const { return fVariableAxes; }
72
77 void AddVariableAxis(size_t axis) { fVariableAxes.push_back(axis); }
78
83
88
93 std::vector<Long64_t> GetIds() const { return fIds; }
94
99 std::vector<Long64_t> & GetIds() { return fIds; }
100
106 Long64_t GetId(size_t index) const;
107
112 TObjArray * GetAxes() const { return fContent->GetListOfAxes(); }
113
118 THnSparse * GetContent() const { return fContent; }
119
124 NBinning * GetBinning() const { return fBinning; }
125
126 private:
127 NBinning * fBinning{nullptr};
128 std::string fName;
129 std::map<std::string, std::vector<std::vector<int>>> fDefinition;
130 std::vector<int> fVariableAxes{};
131 std::vector<Long64_t> fIds{};
132 THnSparse * fContent{nullptr};
133
135 ClassDef(NBinningDef, 1);
137};
138} // namespace Ndmspc
139#endif
Defines binning mapping and content for NDMSPC histograms.
Definition NBinningDef.h:26
std::vector< int > GetVariableAxes() const
Get list of variable axes indices.
Definition NBinningDef.h:71
std::vector< int > fVariableAxes
List of variable axes indices in the content histogram.
void SetAxisDefinition(std::string axisName, const std::vector< std::vector< int > > &d)
Set axis definition for a specific axis.
Definition NBinningDef.h:65
std::vector< Long64_t > GetIds() const
Get list of bin IDs.
Definition NBinningDef.h:93
void SetDefinition(const std::map< std::string, std::vector< std::vector< int > > > &d)
Set the binning mapping definition.
Definition NBinningDef.h:58
NBinning * GetBinning() const
Get pointer to parent NBinning object.
THnSparse * GetContent() const
Get the template content histogram.
TObjArray * GetAxes() const
Get list of axes from content histogram.
std::map< std::string, std::vector< std::vector< int > > > GetDefinition() const
Get the binning mapping definition.
Definition NBinningDef.h:52
NBinning * fBinning
Pointer to the parent binning.
virtual void Print(Option_t *option="") const
Print binning definition information.
virtual ~NBinningDef()
Destructor.
std::string fName
Name of the binning definition.
std::vector< Long64_t > & GetIds()
Get reference to list of bin IDs.
Definition NBinningDef.h:99
void AddVariableAxis(size_t axis)
Add a variable axis index.
Definition NBinningDef.h:77
void RefreshIdsFromContent()
Refresh bin IDs from content histogram.
std::vector< Long64_t > fIds
List of IDs for the binning definition.
std::map< std::string, std::vector< std::vector< int > > > fDefinition
Binning mapping definition.
NBinningDef(std::string name="default", std::map< std::string, std::vector< std::vector< int > > > definition={}, NBinning *binning=nullptr)
Constructor.
Long64_t GetId(size_t index) const
Get bin ID at specified index.
void RefreshContentFromIds()
Refresh content histogram from bin IDs.
THnSparse * fContent
Template histogram for the binning definition.
NBinning object for managing multi-dimensional binning and axis definitions.
Definition NBinning.h:45
Global callback function for libwebsockets client events.