CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
MagBinFinders::GeneralBinFinderInR< T > Class Template Reference

#include <MagBinFinders.h>

Inheritance diagram for MagBinFinders::GeneralBinFinderInR< T >:
BaseBinFinder< T >

Public Member Functions

virtual int binIndex (T R) const
 
virtual int binIndex (int i) const
 Returns an index in the valid range. More...
 
virtual T binPosition (int ind) const
 The middle of the bin. More...
 
 GeneralBinFinderInR ()
 
 GeneralBinFinderInR (std::vector< T > &borders)
 
- Public Member Functions inherited from BaseBinFinder< T >
 BaseBinFinder ()
 
virtual ~BaseBinFinder ()
 

Private Attributes

std::vector< TtheBins
 
std::vector< TtheBorders
 
int theNbins
 

Detailed Description

template<class T>
class MagBinFinders::GeneralBinFinderInR< T >

A R binfinder for a non-periodic group of detectors.

Date:
2008/11/14 10:57:30
Revision:
1.5
Author
N. Amapane - INFN Torino

Definition at line 7 of file MagBinFinders.h.

Constructor & Destructor Documentation

template<class T>
MagBinFinders::GeneralBinFinderInR< T >::GeneralBinFinderInR ( )
inline

Definition at line 32 of file MagBinFinders.h.

template<class T>
MagBinFinders::GeneralBinFinderInR< T >::GeneralBinFinderInR ( std::vector< T > &  borders)
inline

Definition at line 34 of file MagBinFinders.h.

34  :
35  theNbins(borders.size()),
36  theBorders(borders) {
37  // FIXME: compute bin positions.
38 // for (vector<T>::const_iterator i=theBorders.begin();
39 // i<theBorders.end(); ++i) {
40 // theBorders.push_back(((*i) + (*(i+1))) / 2.);
41 
42 // cout << "GeneralBinFinderInR_ " << theNbins << " " << theBorders.size() << " " << (int) this << endl;
43 }

Member Function Documentation

template<class T>
virtual int MagBinFinders::GeneralBinFinderInR< T >::binIndex ( T  R) const
inlinevirtual

Returns an index in the valid range for the bin that contains AND is closest to R

Implements BaseBinFinder< T >.

Definition at line 68 of file MagBinFinders.h.

Referenced by MagBinFinders::GeneralBinFinderInR< double >::binIndex(), MagBinFinders::GeneralBinFinderInR< double >::binPosition(), and MagGeometry::findVolume().

68  {
69  int i;
70  for (i = 0; i<theNbins; ++i) {
71  if (R < theBorders[i]){ // FIXME: one can be skipped?
72  break;
73  }
74  }
75  return binIndex(i-1);
76  }
int i
Definition: DBlmapReader.cc:9
virtual int binIndex(T R) const
Definition: MagBinFinders.h:68
template<class T>
virtual int MagBinFinders::GeneralBinFinderInR< T >::binIndex ( int  i) const
inlinevirtual

Returns an index in the valid range.

Implements BaseBinFinder< T >.

Definition at line 79 of file MagBinFinders.h.

79  {
80  return std::min( std::max( i, 0), theNbins-1);
81  }
int i
Definition: DBlmapReader.cc:9
#define min(a, b)
Definition: mlp_lapack.h:161
const T & max(const T &a, const T &b)
template<class T>
virtual T MagBinFinders::GeneralBinFinderInR< T >::binPosition ( int  ind) const
inlinevirtual

The middle of the bin.

Implements BaseBinFinder< T >.

Definition at line 84 of file MagBinFinders.h.

84  {
85  return theBins[binIndex(ind)];
86  }
virtual int binIndex(T R) const
Definition: MagBinFinders.h:68

Member Data Documentation

template<class T>
std::vector<T> MagBinFinders::GeneralBinFinderInR< T >::theBins
private
template<class T>
std::vector<T> MagBinFinders::GeneralBinFinderInR< T >::theBorders
private
template<class T>
int MagBinFinders::GeneralBinFinderInR< T >::theNbins
private