LOGO

RestFrames  v1.0.0
RestFrames HEP Event Analysis Software Library
HistPlotVar.hh
Go to the documentation of this file.
1 // RestFrames: particle physics event analysis library
3 // --------------------------------------------------------------------
4 // Copyright (c) 2014-2016, Christopher Rogan
14 // This file is part of RestFrames.
15 //
16 // RestFrames is free software; you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation; either version 2 of the License, or
19 // (at your option) any later version.
20 //
21 // RestFrames is distributed in the hope that it will be useful,
22 // but WITHOUT ANY WARRANTY; without even the implied warranty of
23 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 // GNU General Public License for more details.
25 //
26 // You should have received a copy of the GNU General Public License
27 // along with RestFrames. If not, see <http://www.gnu.org/licenses/>.
29 
30 #ifndef HistPlotVar_HH
31 #define HistPlotVar_HH
32 
33 #include "RestFrames/RFBase.hh"
34 
35 namespace RestFrames {
36 
38  // HistPlotVar class
40  class HistPlotVar : public RFBase {
41 
42  public:
43  HistPlotVar(const std::string& name,
44  const std::string& title,
45  double minval, double maxval,
46  const std::string& unit);
47  HistPlotVar();
48  ~HistPlotVar();
49 
50  void operator = (double val) const;
51 
52  void operator += (double val) const;
53 
54  void operator -= (double val) const;
55 
56  void operator *= (double val) const;
57 
58  void operator /= (double val) const;
59 
60  operator double() const;
61 
62  double GetVal() const;
63 
64  double GetMin() const;
65 
66  double GetMax() const;
67 
68  std::string GetUnit() const;
69 
70  static HistPlotVar& Empty();
71 
72  private:
74  static int m_class_key;
75 
76  std::string m_Unit;
77  double m_Min;
78  double m_Max;
79  mutable double m_Val;
80 
81  static HistPlotVar m_Empty;
82 
83  };
84 
85 }
86 
87 #endif
Base class for all RestFrame package objects.
Definition: RFBase.hh:53