CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Fireworks/Core/interface/FWGenericParameterWithRange.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWGenericParameterWithRange_h
00002 #define Fireworks_Core_FWGenericParameterWithRange_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWGenericParameterWithRange
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Fri Mar  7 14:36:34 EST 2008
00019 // $Id: FWGenericParameterWithRange.h,v 1.3 2010/09/01 18:48:59 amraktad Exp $
00020 //
00021 
00022 // user include files
00023 #include "Fireworks/Core/interface/FWGenericParameter.h"
00024 
00025 // forward declarations
00026 
00027 template<class T>
00028 class FWGenericParameterWithRange : public FWGenericParameter<T>
00029 {
00030 
00031 public:
00032    FWGenericParameterWithRange(void)
00033    :FWGenericParameter<T>(),
00034     m_min(-1),
00035     m_max(-1)
00036    {}
00037 
00038    FWGenericParameterWithRange(FWParameterizable* iParent,
00039                                const std::string& iName,
00040                                const T &iDefault=T(),
00041                                T iMin=-1,
00042                                T iMax=-1)
00043    : FWGenericParameter<T>(iParent, iName, iDefault),
00044      m_min(iMin),
00045      m_max(iMax)
00046    {}
00047 
00048    template <class K>
00049    FWGenericParameterWithRange(FWParameterizable* iParent,
00050                                const std::string& iName,
00051                                K iCallback,
00052                                const T &iDefault=T(),
00053                                T iMin=-1,
00054                                T iMax=-1)
00055    : FWGenericParameter<T>(iParent, iName, iCallback, iDefault),
00056      m_min(iMin),
00057      m_max(iMax)
00058    {}
00059 
00060    // ---------- const member functions ---------------------
00061    T min() const {
00062       return m_min;
00063    }
00064    T max() const {
00065       return m_max;
00066    }
00067 
00068 private:
00069    T m_min;
00070    T m_max;
00071 };
00072 
00073 #endif