CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends

npstat::StorableInterpolationFunctor< Numeric, Axis, Converter > Class Template Reference

#include <StorableInterpolationFunctor.h>

Inheritance diagram for npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >:
npstat::StorableMultivariateFunctor npstat::AbsMultivariateFunctor

List of all members.

Public Types

typedef LinInterpolatedTableND
< Numeric, Axis > 
Table

Public Member Functions

virtual unsigned minDim () const
virtual double operator() (const double *point, unsigned dim) const
void setConverter (const Converter &conv)
template<class Num2 , class Conv2 >
 StorableInterpolationFunctor (const StorableInterpolationFunctor< Num2, Axis, Conv2 > &tab)
virtual ~StorableInterpolationFunctor ()
template<class Num2 >
 StorableInterpolationFunctor (const LinInterpolatedTableND< Num2, Axis > &table)
template<class Num2 >
 StorableInterpolationFunctor (const LinInterpolatedTableND< Num2, Axis > &table, const std::string &descr)
 StorableInterpolationFunctor (const std::vector< Axis > &axes, const std::vector< std::pair< bool, bool > > &interpolationType, const char *functionLabel=0)
 StorableInterpolationFunctor (const Axis &xAxis, bool leftX, bool rightX, const char *functionLabel=0)
 StorableInterpolationFunctor (const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const char *functionLabel=0)
 StorableInterpolationFunctor (const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const char *functionLabel=0)
 StorableInterpolationFunctor (const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const Axis &tAxis, bool leftT, bool rightT, const char *functionLabel=0)
 StorableInterpolationFunctor (const Axis &xAxis, bool leftX, bool rightX, const Axis &yAxis, bool leftY, bool rightY, const Axis &zAxis, bool leftZ, bool rightZ, const Axis &tAxis, bool leftT, bool rightT, const Axis &vAxis, bool leftV, bool rightV, const char *functionLabel=0)
Tableinterpolator ()
const Tableinterpolator () const
ArrayND< Numeric > & table ()
const ArrayND< Numeric > & table () const
virtual gs::ClassId classId () const
virtual bool write (std::ostream &of) const

Static Public Member Functions

static const char * classname ()
static
StorableInterpolationFunctor
read (const gs::ClassId &id, std::istream &in)
static unsigned version ()

Protected Member Functions

virtual bool isEqual (const StorableMultivariateFunctor &other) const

Private Member Functions

 StorableInterpolationFunctor ()

Private Attributes

Converter conv_
Table table_

Friends

class StorableInterpolationFunctor

Detailed Description

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
class npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >

This class adapts LinInterpolatedTableND template to the StorableMultivariateFunctor interface

Definition at line 30 of file StorableInterpolationFunctor.h.


Member Typedef Documentation

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
typedef LinInterpolatedTableND<Numeric,Axis> npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::Table

Definition at line 36 of file StorableInterpolationFunctor.h.


Constructor & Destructor Documentation

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
template<class Num2 >
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const LinInterpolatedTableND< Num2, Axis > &  table) [inline]

Constructor from a pre-existing table

Definition at line 41 of file StorableInterpolationFunctor.h.

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
template<class Num2 >
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const LinInterpolatedTableND< Num2, Axis > &  table,
const std::string &  descr 
) [inline]

Definition at line 46 of file StorableInterpolationFunctor.h.

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
template<class Num2 , class Conv2 >
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const StorableInterpolationFunctor< Num2, Axis, Conv2 > &  tab) [inline]

Converting copy constructor

Definition at line 54 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(tab.description()),
              table_(tab.table_) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const std::vector< Axis > &  axes,
const std::vector< std::pair< bool, bool > > &  interpolationType,
const char *  functionLabel = 0 
) [inline]

Constructor which builds the table in place. It basically passses its arguments to the corresponding constructor of LinInterpolatedTableND.

Definition at line 65 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(axes, interpolationType, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const Axis &  xAxis,
bool  leftX,
bool  rightX,
const char *  functionLabel = 0 
) [inline]

Definition at line 72 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(xAxis, leftX, rightX, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const Axis &  xAxis,
bool  leftX,
bool  rightX,
const Axis &  yAxis,
bool  leftY,
bool  rightY,
const char *  functionLabel = 0 
) [inline]

Definition at line 78 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(xAxis, leftX, rightX,
                     yAxis, leftY, rightY, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const Axis &  xAxis,
bool  leftX,
bool  rightX,
const Axis &  yAxis,
bool  leftY,
bool  rightY,
const Axis &  zAxis,
bool  leftZ,
bool  rightZ,
const char *  functionLabel = 0 
) [inline]

Definition at line 86 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(xAxis, leftX, rightX,
                     yAxis, leftY, rightY,
                     zAxis, leftZ, rightZ, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const Axis &  xAxis,
bool  leftX,
bool  rightX,
const Axis &  yAxis,
bool  leftY,
bool  rightY,
const Axis &  zAxis,
bool  leftZ,
bool  rightZ,
const Axis &  tAxis,
bool  leftT,
bool  rightT,
const char *  functionLabel = 0 
) [inline]

Definition at line 96 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(xAxis, leftX, rightX,
                     yAxis, leftY, rightY,
                     zAxis, leftZ, rightZ,
                     tAxis, leftT, rightT, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( const Axis &  xAxis,
bool  leftX,
bool  rightX,
const Axis &  yAxis,
bool  leftY,
bool  rightY,
const Axis &  zAxis,
bool  leftZ,
bool  rightZ,
const Axis &  tAxis,
bool  leftT,
bool  rightT,
const Axis &  vAxis,
bool  leftV,
bool  rightV,
const char *  functionLabel = 0 
) [inline]

Definition at line 108 of file StorableInterpolationFunctor.h.

            : StorableMultivariateFunctor(),
              table_(xAxis, leftX, rightX,
                     yAxis, leftY, rightY,
                     zAxis, leftZ, rightZ,
                     tAxis, leftT, rightT,
                     vAxis, leftV, rightV, functionLabel) {}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
virtual npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::~StorableInterpolationFunctor ( ) [inline, virtual]

Definition at line 123 of file StorableInterpolationFunctor.h.

{}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::StorableInterpolationFunctor ( ) [private]

Member Function Documentation

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
virtual gs::ClassId npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::classId ( ) const [inline, virtual]

Method related to "geners" I/O

Implements npstat::StorableMultivariateFunctor.

Definition at line 147 of file StorableInterpolationFunctor.h.

{return gs::ClassId(*this);}
template<typename Numeric , class Axis , class Converter >
const char * npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::classname ( ) [inline, static]

Reimplemented from npstat::StorableMultivariateFunctor.

Definition at line 182 of file StorableInterpolationFunctor.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

    {
        static const std::string myClass(gs::template_class_name<Numeric,Axis>(
                                      "npstat::StorableInterpolationFunctor"));
        return myClass.c_str();
    }    
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
const Table& npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::interpolator ( ) const [inline]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
Table& npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::interpolator ( ) [inline]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
virtual bool npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::isEqual ( const StorableMultivariateFunctor ) const [inline, protected, virtual]

Method needed to compare objects for equality. Must be overriden by derived classes. It is left up to the derived classes to decide whether they should compare description strings in order to establish equality.

Implements npstat::StorableMultivariateFunctor.

Definition at line 158 of file StorableInterpolationFunctor.h.

References npstat::StorableMultivariateFunctor::description(), alignCSCRings::r, and npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::table_.

        {
            // Note the use of static_cast rather than dynamic_cast below.
            // static_cast works faster and it is guaranteed to succeed here.
            const StorableInterpolationFunctor& r = 
                static_cast<const StorableInterpolationFunctor&>(other);
            return table_ == r.table_ &&
                   this->description() == other.description();
        }
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
virtual unsigned npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::minDim ( ) const [inline, virtual]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
virtual double npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::operator() ( const double *  point,
unsigned  dim 
) const [inline, virtual]
template<typename Numeric , class Axis , class Converter >
StorableInterpolationFunctor< Numeric, Axis, Converter > * npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::read ( const gs::ClassId &  id,
std::istream &  in 
) [static]

Reimplemented from npstat::StorableMultivariateFunctor.

Definition at line 199 of file StorableInterpolationFunctor.h.

References cond::rpcobimon::current, SiPixelLorentzAngle_cfi::read, AlCaHLTBitMon_QueryRunRegistry::string, and accesses::tab.

    {
        static const gs::ClassId current(
            gs::ClassId::makeId<StorableInterpolationFunctor<Numeric,Axis> >());
        current.ensureSameId(id);

        std::string descr;
        gs::read_pod(in, &descr);
        gs::ClassId tabid(in, 1);
        if (in.fail()) throw gs::IOReadFailure(
            "In npstat::StorableInterpolationFunctor::read: "
            "input stream failure");
        CPP11_auto_ptr<Table> tab(Table::read(tabid, in));
        return new StorableInterpolationFunctor(*tab, descr);
    }
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
void npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::setConverter ( const Converter &  conv) [inline]

Change the coordinate converter

Definition at line 143 of file StorableInterpolationFunctor.h.

References conv, and npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::conv_.

{conv_ = conv;}
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
const ArrayND<Numeric>& npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::table ( ) const [inline]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
ArrayND<Numeric>& npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::table ( ) [inline]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
static unsigned npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::version ( ) [inline, static]

Reimplemented from npstat::StorableMultivariateFunctor.

Definition at line 153 of file StorableInterpolationFunctor.h.

{return 1;}
template<typename Numeric , class Axis , class Converter >
bool npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::write ( std::ostream &  of) const [virtual]

Friends And Related Function Documentation

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
friend class StorableInterpolationFunctor [friend]

Definition at line 33 of file StorableInterpolationFunctor.h.


Member Data Documentation

template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
Converter npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::conv_ [private]
template<class Numeric, class Axis = UniformAxis, class Converter = Same<Numeric>>
Table npstat::StorableInterpolationFunctor< Numeric, Axis, Converter >::table_ [private]