CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
edm::ContainerMask< T > Class Template Reference

#include <ContainerMask.h>

Public Member Functions

void applyOrTo (std::vector< bool > &) const
 
 ContainerMask ()
 
 ContainerMask (const edm::RefProd< T > &iProd, const std::vector< bool > &iMask)
 
void copyMaskTo (std::vector< bool > &) const
 
bool mask (unsigned int iIndex) const
 
bool mask (const typename ContainerMaskTraits< T >::value_type *)
 
const edm::RefProd< T > & refProd () const
 
size_t size () const
 
void swap (ContainerMask< T > &iOther)
 

Static Public Member Functions

static short Class_Version ()
 

Private Attributes

std::vector< bool > m_mask
 
edm::RefProd< Tm_prod
 

Detailed Description

template<typename T>
class edm::ContainerMask< T >

Definition at line 36 of file ContainerMask.h.

Constructor & Destructor Documentation

template<typename T>
edm::ContainerMask< T >::ContainerMask ( )
inline

Definition at line 38 of file ContainerMask.h.

38 {}
template<typename T >
ContainerMask::ContainerMask ( const edm::RefProd< T > &  iProd,
const std::vector< bool > &  iMask 
)

Definition at line 75 of file ContainerMask.h.

References edm::ContainerMaskTraits< T >::size().

76  : m_prod(iProd), m_mask(iMask) {
77  assert(iMask.size() <= ContainerMaskTraits<T>::size(m_prod.product()));
78  }
std::vector< bool > m_mask
Definition: ContainerMask.h:71
edm::RefProd< T > m_prod
Definition: ContainerMask.h:70
product_type const * product() const
Definition: RefProd.h:110
static size_t size(const T *iContainer)

Member Function Documentation

template<typename T >
void ContainerMask::applyOrTo ( std::vector< bool > &  iTo) const

Definition at line 92 of file ContainerMask.h.

References edm::ContainerMask< T >::m_mask, and HcalDetIdTransform::transform().

Referenced by edm::ContainerMask< T >::mask().

92  {
93  assert(iTo.size() == m_mask.size());
94  std::transform(m_mask.begin(), m_mask.end(), iTo.begin(), iTo.begin(), std::logical_or<bool>());
95  }
std::vector< bool > m_mask
Definition: ContainerMask.h:71
unsigned transform(const HcalDetId &id, unsigned transformCode)
template<typename T>
static short edm::ContainerMask< T >::Class_Version ( )
inlinestatic

Definition at line 62 of file ContainerMask.h.

64 :
65  //ContainerMask(const ContainerMask&); // stop default
template<typename T >
void ContainerMask::copyMaskTo ( std::vector< bool > &  iTo) const
template<typename T>
bool edm::ContainerMask< T >::mask ( unsigned int  iIndex) const
inline

Definition at line 43 of file ContainerMask.h.

References edm::ContainerMask< T >::applyOrTo(), edm::ContainerMask< T >::copyMaskTo(), and edm::ContainerMask< T >::m_mask.

Referenced by ctfseeding::HitExtractorPIX::hits(), and edm::ContainerMask< T >::mask().

43  {
44  if (iIndex < m_mask.size()) {
45  return m_mask[iIndex];
46  }
47  return false;
48  }
std::vector< bool > m_mask
Definition: ContainerMask.h:71
template<typename T >
bool ContainerMask::mask ( const typename ContainerMaskTraits< T >::value_type *  iElement)

Definition at line 81 of file ContainerMask.h.

References edm::ContainerMaskTraits< T >::indexFor(), edm::ContainerMask< T >::m_prod, edm::ContainerMask< T >::mask(), and edm::RefProd< C >::product().

81  {
82  unsigned int index = ContainerMaskTraits<T>::indexFor(iElement, m_prod.product());
83  return this->mask(index);
84  }
edm::RefProd< T > m_prod
Definition: ContainerMask.h:70
bool mask(unsigned int iIndex) const
Definition: ContainerMask.h:43
product_type const * product() const
Definition: RefProd.h:110
static unsigned int indexFor(const value_type *iElement, const T *iContainer)
template<typename T>
const edm::RefProd<T>& edm::ContainerMask< T >::refProd ( ) const
inline

Definition at line 55 of file ContainerMask.h.

References edm::ContainerMask< T >::m_prod, and edm::ContainerMask< T >::swap().

Referenced by ctfseeding::HitExtractorPIX::hits().

55 { return m_prod; }
edm::RefProd< T > m_prod
Definition: ContainerMask.h:70
template<typename T>
size_t edm::ContainerMask< T >::size ( void  ) const
inline
template<typename T >
void ContainerMask::swap ( ContainerMask< T > &  iOther)

Definition at line 98 of file ContainerMask.h.

References edm::ContainerMask< T >::m_mask, edm::ContainerMask< T >::m_prod, edm::RefProd< C >::swap(), and std::swap().

Referenced by edm::ContainerMask< T >::refProd().

98  {
99  m_prod.swap(iOther.m_prod);
100  std::swap(m_mask, iOther.m_mask);
101  }
std::vector< bool > m_mask
Definition: ContainerMask.h:71
edm::RefProd< T > m_prod
Definition: ContainerMask.h:70
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void swap(RefProd< C > &)
Definition: RefProd.h:173

Member Data Documentation

template<typename T>
std::vector<bool> edm::ContainerMask< T >::m_mask
private
template<typename T>
edm::RefProd<T> edm::ContainerMask< T >::m_prod
private