CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Axis.h
Go to the documentation of this file.
1 #ifndef Axis_h
2 #define Axis_h
3 
4 /*
5  * file: Axis.h
6  * Author Viktor Khristenko
7  *
8  * Description:
9  * Base Axis Class
10  */
11 
15 
16 #include <string>
17 #include <vector>
18 
19 namespace hcaldqm
20 {
21  using namespace hcaldqm::constants;
22  class Container;
23  class Container1D;
24  class Container2D;
25  class ContainerProf1D;
26  class ContainerProf2D;
27  class ContainerSingle2D;
28  class ContainerSingle1D;
30  namespace axis
31  {
32  enum AxisType
33  {
34  fXaxis = 0,
35  fYaxis = 1,
36  fZaxis = 2,
38  };
39  enum AxisQType
40  {
41  fValue = 0,
43  fFlag = 2,
45  };
46 
47  /*
48  * Base Class for Axis
49  */
50  class Axis
51  {
52  public:
53  friend class hcaldqm::Container;
54  friend class hcaldqm::Container1D;
55  friend class hcaldqm::Container2D;
61 
62  public:
63  Axis();
65  int n, double min, double max, bool log=false);
66  virtual ~Axis() {}
67 
68  // getters of Value to put
69  virtual int get(HcalDetId const&) {return 0;}
70  virtual int get(HcalElectronicsId const&) {return 0;}
71  virtual int get(HcalTrigTowerDetId const&) {return 0;}
72  virtual inline int get(int x) {return x;}
73  virtual inline double get(double x) {return x;}
74 
75  // getters of the Bin
76  virtual int getBin(HcalDetId const&) {return 1;}
77  virtual int getBin(HcalElectronicsId const&) {return 1;}
78  virtual int getBin(HcalTrigTowerDetId const&) {return 1;}
79  virtual int getBin(int) {return 1;}
80 
81  // load labels
82  virtual void loadLabels(std::vector<std::string> const&) {}
83 
84  public:
85  AxisQType getType() {return _qtype;}
86  void setLog(TObject* o)
87  {
88  if (_log)
89  o->SetBit(BIT(BIT_OFFSET+_type));
90  }
91  virtual void setBitAxisLS(TObject *o)
92  {
93  return;
94  }
95  virtual void setBitAxisFlag(TObject *o)
96  {
97  return;
98  }
99  protected:
100 
101  // some member variables should be public
102  int _nbins;
103  double _min;
104  double _max;
106  std::vector<std::string> _labels;
107 
110  bool _log;
111  };
112  }
113 }
114 
115 #endif
type
Definition: HCALResponse.h:21
virtual void setBitAxisFlag(TObject *o)
Definition: Axis.h:95
AxisQType _qtype
Definition: Axis.h:109
virtual int getBin(HcalTrigTowerDetId const &)
Definition: Axis.h:78
virtual int getBin(HcalDetId const &)
Definition: Axis.h:76
AxisType _type
Definition: Axis.h:108
T x() const
Cartesian x coordinate.
std::string _title
Definition: Axis.h:105
virtual int getBin(int)
Definition: Axis.h:79
virtual void loadLabels(std::vector< std::string > const &)
Definition: Axis.h:82
T min(T a, T b)
Definition: MathUtil.h:58
std::vector< std::string > _labels
Definition: Axis.h:106
AxisQType getType()
Definition: Axis.h:85
virtual ~Axis()
Definition: Axis.h:66
virtual int getBin(HcalElectronicsId const &)
Definition: Axis.h:77
void setLog(TObject *o)
Definition: Axis.h:86
virtual void setBitAxisLS(TObject *o)
Definition: Axis.h:91
int const BIT_OFFSET
Definition: Constants.h:180
Readout chain identification for Hcal.