CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/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.4 2012/02/22 03:45:57 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 public:
00031    FWGenericParameterWithRange(void) :
00032       FWGenericParameter<T>(),
00033       m_min(-1),
00034       m_max(-1)
00035    {}
00036 
00037    FWGenericParameterWithRange(FWParameterizable* iParent,
00038                                const std::string& iName,
00039                                const T &iDefault=T(),
00040                                T iMin=-1,
00041                                T iMax=-1) :
00042       FWGenericParameter<T>(iParent, iName, iDefault),
00043       m_min(iMin),
00044       m_max(iMax)
00045    {}
00046 
00047    template <class K>
00048    FWGenericParameterWithRange(FWParameterizable* iParent,
00049                                const std::string& iName,
00050                                K iCallback,
00051                                const T &iDefault=T(),
00052                                T iMin=-1,
00053                                T iMax=-1) :
00054       FWGenericParameter<T>(iParent, iName, iCallback, iDefault),
00055       m_min(iMin),
00056       m_max(iMax)
00057    {}
00058 
00059    // ---------- const member functions ---------------------
00060 
00061    T min() const { return m_min; }
00062    T max() const { return m_max; }
00063 
00064 private:
00065 
00066    T m_min;
00067    T m_max;
00068 };
00069 
00070 #endif