ndmspc 0.20250128.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
21 virtual void Print(Option_t * option = "", int spaces = 0) const;
22 void SetBaseAxis(TAxis * base) { fBaseAxis = base; }
23 TAxis * SetBaseAxis() const { return fBaseAxis; }
24
25 void SetRebin(int rebin) { fRebin = rebin; }
26 void SetRebinShift(int rebinShift) { fRebinStart = rebinShift + 1; }
27 void SetBinMin(int min) { fBinMin = min; }
28 void SetBinMax(int max) { fBinMax = max; }
29 void SetRange(int min, int max) { fBinMin = min, fBinMax = max; }
30 // void SetNBins(int nBins) { fNBins = nBins; }
31
32 int GetRebin() const { return fRebin; }
33 int GetRebinStart() const { return fRebinStart; }
34 int GetRebinShift() const { return fRebinStart - 1; }
35 int GetBinMin() const { return fBinMin; }
36 int GetBinMax() const { return fBinMax; }
37 int GetBinMinBase() const;
38 int GetBinMaxBase() const;
39 int GetNBins() const { return fNBins; }
40
41 void AddChild(Axis * axis) { fChildren.push_back(axis); }
42 Axis * AddChild(int rebin /*= 1*/, int rebinShift /*= 0*/, int min /*= 1*/, int max /*= -1*/, Option_t * option = "");
43 Axis * GetChild(int i) { return fChildren[i]; }
44
45 Axis * AddRange(int rebin, int nBins = -1);
46
47 void FillAxis(TAxis * axis);
48
49 bool IsRangeValid();
50
51 private:
52 TAxis * fBaseAxis{nullptr}; // base axis
53 int fNBins{0}; // total number of bins
54 int fRebin{1}; // rebin factor
55 int fRebinStart{1}; // rebin start
56 int fBinMin{1}; // range minimum
57 int fBinMax{-1}; // range maximum
58 std::vector<Axis *> fChildren; // list of children axis
60 ClassDef(Axis, 1);
62};
63} // namespace Ndmspc
64#endif
Axis object.
Definition Axis.h:16