KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVValueRange.h
Go to the documentation of this file.
1 
4 #ifndef __KVVALUERANGE_H
5 #define __KVVALUERANGE_H
6 
7 #include "KVBase.h"
8 
16 template< typename ValueType >
17 class KVValueRange : public KVBase {
18  ValueType fMin;
19  ValueType fMax;
20  ValueType fSize;
21 
22 public:
23  KVValueRange(ValueType min, ValueType max)
24  : fMin(min), fMax(max), fSize(fMax - fMin)
25  {}
27  : KVBase()
28  {
29  r.Copy(*this);
30  }
31  void Copy(TObject& o) const
32  {
33  KVBase::Copy(o);
34  KVValueRange& vr = static_cast<KVValueRange&>(o);
35  vr.fMin = fMin;
36  vr.fMax = fMax;
37  vr.fSize = fSize;
38  }
39  ROOT_COPY_ASSIGN_OP(KVValueRange)
40  ValueType Min() const
41  {
42  return fMin;
43  }
44  ValueType Max() const
45  {
46  return fMax;
47  }
48  ValueType Size() const
49  {
50  return fSize;
51  }
52  ValueType Random() const
53  {
54  return gRandom->Uniform(fMin, fMax);
55  }
56  ValueType ValueIofN(Int_t i, Int_t n) const
57  {
60 
61  i >= n ? i = n - 1 : (i < 0 ? i = 0 : 1);
62  return fMin + i * fSize / (n - 1.);
63  }
64 
65  virtual ~KVValueRange() {}
66 
67  ClassDef(KVValueRange, 1) //Range of values specified by minimum, maximum
68 };
69 #endif
int Int_t
ROOT::R::TRInterface & r
#define ClassDef(name, id)
R__EXTERN TRandom * gRandom
Base class for KaliVeda framework.
Definition: KVBase.h:135
virtual void Copy(TObject &) const
Make a copy of this object.
Definition: KVBase.cpp:397
Range of values specified by minimum, maximum.
Definition: KVValueRange.h:17
ValueType Max() const
Definition: KVValueRange.h:44
void Copy(TObject &o) const
Make a copy of this object.
Definition: KVValueRange.h:31
ValueType fMax
Definition: KVValueRange.h:19
virtual ~KVValueRange()
Definition: KVValueRange.h:65
KVValueRange(ValueType min, ValueType max)
Definition: KVValueRange.h:23
ValueType ValueIofN(Int_t i, Int_t n) const
Definition: KVValueRange.h:56
ValueType fMin
Definition: KVValueRange.h:18
ValueType Random() const
Definition: KVValueRange.h:52
ValueType Min() const
Definition: KVValueRange.h:40
ValueType fSize
Definition: KVValueRange.h:20
KVValueRange(const KVValueRange &r)
Definition: KVValueRange.h:26
ValueType Size() const
Definition: KVValueRange.h:48
virtual void Copy(TObject &object) const
virtual Double_t Uniform(Double_t x1, Double_t x2)
const Int_t n