ndmspc 0.20250304.0
Loading...
Searching...
No Matches
Axis.h
1#ifndef NdmspcAxis_H
2#define NdmspcAxis_H
3#include <TObject.h>
4#include <TAxis.h>
5#include <vector>
6
7namespace Ndmspc {
8
15
16class Axis : public TObject {
17 public:
18 Axis(TAxis * base = nullptr, int rebin = 1, int rebinShift = 0, int min = 1, int max = -1);
19 virtual ~Axis();
20
22 virtual void Print(Option_t * option = "") const { Print(option, 0); }
23 virtual void Print(Option_t * option, int spaces) const;
24
26 void SetBaseAxis(TAxis * base) { fBaseAxis = base; }
28 TAxis * SetBaseAxis() const { return fBaseAxis; }
29
31 void SetRebin(int rebin) { fRebin = rebin; }
33 void SetRebinShift(int rebinShift) { fRebinStart = rebinShift + 1; }
35 void SetBinMin(int min) { fBinMin = min; }
37 void SetBinMax(int max) { fBinMax = max; }
39 void SetRange(int min, int max) { fBinMin = min, fBinMax = max; }
40 // void SetNBins(int nBins) { fNBins = nBins; }
41
43 int GetRebin() const { return fRebin; }
45 int GetRebinStart() const { return fRebinStart; }
47 int GetRebinShift() const { return fRebinStart - 1; }
49 int GetBinMin() const { return fBinMin; }
51 int GetBinMax() const { return fBinMax; }
53 int GetBinMinBase() const;
55 int GetBinMaxBase() const;
57 int GetNBins() const { return fNBins; }
58
60 void AddChild(Axis * axis) { fChildren.push_back(axis); }
62 Axis * AddChild(int rebin /*= 1*/, int rebinShift /*= 0*/, int min /*= 1*/, int max /*= -1*/, Option_t * option = "");
64 Axis * GetChild(int i) { return fChildren[i]; }
65
67 Axis * AddRange(int rebin, int nBins = -1);
68
70 void FillAxis(TAxis * axis);
71
73 bool IsRangeValid();
74
75 private:
76 TAxis * fBaseAxis = {nullptr};
77 int fNBins{0};
78 int fRebin{1};
79 int fRebinStart{1};
80 int fBinMin{1};
81 int fBinMax{-1};
82 std::vector<Axis *> fChildren;
83
85 ClassDef(Axis, 1);
87};
88} // namespace Ndmspc
89#endif
Axis object.
Definition Axis.h:16
int GetBinMaxBase() const
Returns base maximum.
Definition Axis.cxx:188
virtual ~Axis()
Definition Axis.cxx:24
TAxis * SetBaseAxis() const
Get base axixs.
Definition Axis.h:28
int fRebinStart
rebin start
Definition Axis.h:79
int fBinMin
range minimum
Definition Axis.h:80
int fRebin
rebin factor
Definition Axis.h:78
TAxis * fBaseAxis
Base axis.
Definition Axis.h:76
int GetBinMax() const
Return bin maximum.
Definition Axis.h:51
int GetBinMinBase() const
Returns base minimum.
Definition Axis.cxx:182
void AddChild(Axis *axis)
Add axis child.
Definition Axis.h:60
int GetBinMin() const
Returns bin minimum.
Definition Axis.h:49
int GetRebin() const
Returns rebin.
Definition Axis.h:43
int fNBins
Total number of bins.
Definition Axis.h:77
int GetRebinStart() const
Returns rebin start.
Definition Axis.h:45
void SetRebin(int rebin)
Sets rebin.
Definition Axis.h:31
virtual void Print(Option_t *option="") const
Print function.
Definition Axis.h:22
Axis * GetChild(int i)
Returns child.
Definition Axis.h:64
int fBinMax
range maximum
Definition Axis.h:81
void SetBinMin(int min)
Sets bin minimum.
Definition Axis.h:35
Axis * AddRange(int rebin, int nBins=-1)
Add range.
Definition Axis.cxx:84
std::vector< Axis * > fChildren
list of children axis
Definition Axis.h:82
int GetRebinShift() const
Returns rebin shift.
Definition Axis.h:47
Axis(TAxis *base=nullptr, int rebin=1, int rebinShift=0, int min=1, int max=-1)
Definition Axis.cxx:10
int GetNBins() const
Returns number of bins.
Definition Axis.h:57
void SetBinMax(int max)
Sets bin maximum.
Definition Axis.h:37
void FillAxis(TAxis *axis)
Fill axis.
Definition Axis.cxx:160
void SetBaseAxis(TAxis *base)
Sets base axis.
Definition Axis.h:26
void SetRange(int min, int max)
Sets range (minimum and maximum)
Definition Axis.h:39
void SetRebinShift(int rebinShift)
Sets rebin shift.
Definition Axis.h:33
bool IsRangeValid()
Checks if range is valid.
Definition Axis.cxx:119