CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

Grid3D Class Reference

#include <Grid3D.h>

List of all members.

Public Types

typedef ValueType ReturnType
typedef float Scalar
typedef Basic3DVector< ScalarValueType

Public Member Functions

const Container & data () const
void dump () const
 Grid3D (const Grid1D &ga, const Grid1D &gb, const Grid1D &gc, std::vector< BVector > &data)
 Grid3D ()
const Grid1Dgrida () const
const Grid1Dgridb () const
const Grid1Dgridc () const
int index (int i, int j, int k) const
ValueType operator() (int i, int j, int k) const
ValueType operator() (int i) const
int stride1 () const
int stride2 () const
int stride3 () const

Private Attributes

Container data_
Grid1D grida_
Grid1D gridb_
Grid1D gridc_
int stride1_
int stride2_

Detailed Description

Implementation of a 3D regular grid.

Author:
T. Todorov

Definition at line 28 of file Grid3D.h.


Member Typedef Documentation

Definition at line 34 of file Grid3D.h.

typedef float Grid3D::Scalar

Definition at line 32 of file Grid3D.h.

Definition at line 33 of file Grid3D.h.


Constructor & Destructor Documentation

Grid3D::Grid3D ( ) [inline]

Definition at line 40 of file Grid3D.h.

{}
Grid3D::Grid3D ( const Grid1D ga,
const Grid1D gb,
const Grid1D gc,
std::vector< BVector > &  data 
) [inline]

Definition at line 42 of file Grid3D.h.

                                    : 
    grida_(ga), gridb_(gb), gridc_(gc) {
     data_.swap(data);
     stride1_ = gridb_.nodes() * gridc_.nodes();
     stride2_ = gridc_.nodes();
  }

Member Function Documentation

const Container& Grid3D::data ( ) const [inline]

Definition at line 71 of file Grid3D.h.

{return data_;}
void Grid3D::dump ( void  ) const

Definition at line 18 of file Grid3D.cc.

References gather_cfg::cout, grida(), gridb(), gridc(), i, j, gen::k, Grid1D::node(), Grid1D::nodes(), and operator()().

{
  for (int j=0; j<gridb().nodes(); ++j) {
    for (int k=0; k<gridc().nodes(); ++k) {
      for (int i=0; i<grida().nodes(); ++i) {
        std::cout << grida().node(i) << " " << gridb().node(j) << " " << gridc().node(k) << " " 
                  << operator()(i,j,k) << std::endl;
      }
    }
  }
}
const Grid1D& Grid3D::grida ( ) const [inline]

Definition at line 67 of file Grid3D.h.

Referenced by dump().

{return grida_;}
const Grid1D& Grid3D::gridb ( ) const [inline]

Definition at line 68 of file Grid3D.h.

Referenced by dump().

{return gridb_;}
const Grid1D& Grid3D::gridc ( ) const [inline]

Definition at line 69 of file Grid3D.h.

Referenced by dump().

{return gridc_;}
int Grid3D::index ( int  i,
int  j,
int  k 
) const [inline]

Definition at line 55 of file Grid3D.h.

References gen::k.

Referenced by LinearGridInterpolator3D::interpolate().

{return i*stride1_ + j*stride2_ + k;}
ValueType Grid3D::operator() ( int  i) const [inline]

Definition at line 59 of file Grid3D.h.

Referenced by dump().

                                    {
    return ValueType(data_[i][0],data_[i][1],data_[i][2]);
  }
ValueType Grid3D::operator() ( int  i,
int  j,
int  k 
) const [inline]

Definition at line 63 of file Grid3D.h.

References getHLTprescales::index.

                                                  {
    return (*this)(index(i,j,k));
  }
int Grid3D::stride1 ( ) const [inline]

Definition at line 56 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

{ return stride1_;}
int Grid3D::stride2 ( ) const [inline]

Definition at line 57 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

{ return stride2_;}
int Grid3D::stride3 ( ) const [inline]

Definition at line 58 of file Grid3D.h.

Referenced by LinearGridInterpolator3D::interpolate().

{ return 1;}

Member Data Documentation

Container Grid3D::data_ [private]

Definition at line 81 of file Grid3D.h.

Definition at line 77 of file Grid3D.h.

Definition at line 78 of file Grid3D.h.

Definition at line 79 of file Grid3D.h.

int Grid3D::stride1_ [private]

Definition at line 83 of file Grid3D.h.

int Grid3D::stride2_ [private]

Definition at line 84 of file Grid3D.h.