CMS 3D CMS Logo

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

#include <ValueMap.h>

Classes

struct  const_iterator
 
struct  IDComparator
 

Public Types

typedef container::const_reference const_reference_type
 
typedef std::vector< value_typecontainer
 
typedef helper::Filler
< ValueMap< T > > 
Filler
 
typedef std::vector< std::pair
< ProductID, offset > > 
id_offset_vector
 
typedef unsigned int offset
 
typedef container::reference reference_type
 
typedef T value_type
 

Public Member Functions

const_iterator begin () const
 
void clear ()
 
bool contains (ProductID id) const
 
bool empty () const
 
const_iterator end () const
 
const_reference_type get (ProductID id, size_t idx) const
 
reference_type get (ProductID id, size_t idx)
 
const_reference_type get (size_t idx) const
 meant to be used in AssociativeIterator, not by the ordinary user More...
 
const id_offset_vectorids () const
 meant to be used in AssociativeIterator, not by the ordinary user More...
 
size_t idSize () const
 
ValueMap< T > & operator+= (const ValueMap< T > &o)
 
ValueMapoperator= (ValueMap const &rhs)
 
template<typename RefKey >
const_reference_type operator[] (const RefKey &r) const
 
template<typename RefKey >
reference_type operator[] (const RefKey &r)
 
size_t rawIndexOf (ProductID id, size_t idx) const
 
size_t size () const
 
void swap (ValueMap &other)
 
 ValueMap ()
 

Protected Member Functions

id_offset_vector::const_iterator getIdOffset (ProductID id) const
 
void throwIndexBound () const
 

Protected Attributes

id_offset_vector ids_
 
container values_
 

Private Member Functions

void add (const ValueMap< T > &o)
 
void throwNotExisting () const
 

Friends

class helper::Filler< ValueMap< T > >
 

Detailed Description

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

Definition at line 98 of file ValueMap.h.

Member Typedef Documentation

template<typename T>
typedef container::const_reference edm::ValueMap< T >::const_reference_type

Definition at line 105 of file ValueMap.h.

template<typename T>
typedef std::vector<value_type> edm::ValueMap< T >::container

Definition at line 101 of file ValueMap.h.

template<typename T>
typedef helper::Filler<ValueMap<T> > edm::ValueMap< T >::Filler

Definition at line 156 of file ValueMap.h.

template<typename T>
typedef std::vector<std::pair<ProductID, offset> > edm::ValueMap< T >::id_offset_vector

Definition at line 103 of file ValueMap.h.

template<typename T>
typedef unsigned int edm::ValueMap< T >::offset

Definition at line 102 of file ValueMap.h.

template<typename T>
typedef container::reference edm::ValueMap< T >::reference_type

Definition at line 104 of file ValueMap.h.

template<typename T>
typedef T edm::ValueMap< T >::value_type

Definition at line 100 of file ValueMap.h.

Constructor & Destructor Documentation

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

Definition at line 107 of file ValueMap.h.

107 { }

Member Function Documentation

template<typename T>
void edm::ValueMap< T >::add ( const ValueMap< T > &  o)
inlineprivate
template<typename T>
const_iterator edm::ValueMap< T >::begin ( void  ) const
inline
template<typename T>
void edm::ValueMap< T >::clear ( void  )
inline
template<typename T>
bool edm::ValueMap< T >::contains ( ProductID  id) const
inline

Definition at line 148 of file ValueMap.h.

Referenced by LumiList.LumiList::__contains__(), edm::Association< reco::FFTJPTJetCollection >::contains(), and pat::helper::RefHelper< T >::recursiveLookup().

148  {
149  return getIdOffset(id) != ids_.end();
150  }
id_offset_vector ids_
Definition: ValueMap.h:208
id_offset_vector::const_iterator getIdOffset(ProductID id) const
Definition: ValueMap.h:210
template<typename T>
bool edm::ValueMap< T >::empty ( ) const
inline
template<typename T>
const_iterator edm::ValueMap< T >::end ( void  ) const
inline
template<typename T>
const_reference_type edm::ValueMap< T >::get ( ProductID  id,
size_t  idx 
) const
inline
template<typename T>
reference_type edm::ValueMap< T >::get ( ProductID  id,
size_t  idx 
)
inline
template<typename T>
const_reference_type edm::ValueMap< T >::get ( size_t  idx) const
inline
template<typename T>
id_offset_vector::const_iterator edm::ValueMap< T >::getIdOffset ( ProductID  id) const
inlineprotected

Definition at line 210 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::contains(), and edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::rawIndexOf().

210  {
211  typename id_offset_vector::const_iterator i = std::lower_bound(ids_.begin(), ids_.end(), id, IDComparator());
212  if(i==ids_.end()) return i;
213  return i->first == id ? i : ids_.end();
214  }
int i
Definition: DBlmapReader.cc:9
id_offset_vector ids_
Definition: ValueMap.h:208
template<typename T>
const id_offset_vector& edm::ValueMap< T >::ids ( ) const
inline

meant to be used in AssociativeIterator, not by the ordinary user

Definition at line 199 of file ValueMap.h.

199 { return ids_; }
id_offset_vector ids_
Definition: ValueMap.h:208
template<typename T>
size_t edm::ValueMap< T >::idSize ( ) const
inline

Definition at line 152 of file ValueMap.h.

152 { return ids_.size(); }
id_offset_vector ids_
Definition: ValueMap.h:208
template<typename T>
ValueMap<T>& edm::ValueMap< T >::operator+= ( const ValueMap< T > &  o)
inline

Definition at line 144 of file ValueMap.h.

144  {
145  add(o);
146  return *this;
147  }
void add(const ValueMap< T > &o)
Definition: ValueMap.h:230
template<typename T>
ValueMap& edm::ValueMap< T >::operator= ( ValueMap< T > const &  rhs)
inline

Definition at line 114 of file ValueMap.h.

114  {
115  ValueMap temp(rhs);
116  this->swap(temp);
117  return *this;
118  }
void swap(ValueMap &other)
Definition: ValueMap.h:109
template<typename T>
template<typename RefKey >
const_reference_type edm::ValueMap< T >::operator[] ( const RefKey &  r) const
inline

Definition at line 121 of file ValueMap.h.

121  {
122  return get(r.id(), r.key());
123  }
template<typename T>
template<typename RefKey >
reference_type edm::ValueMap< T >::operator[] ( const RefKey &  r)
inline

Definition at line 137 of file ValueMap.h.

137  {
138  return get(r.id(), r.key());
139  }
template<typename T>
size_t edm::ValueMap< T >::rawIndexOf ( ProductID  id,
size_t  idx 
) const
inline

Definition at line 125 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::get().

125  {
126  typename id_offset_vector::const_iterator f = getIdOffset(id);
127  if(f==ids_.end()) throwNotExisting();
128  offset off = f->second;
129  size_t j = off+idx;
130  if(j >= values_.size()) throwIndexBound();
131  return j;
132  }
unsigned int offset
Definition: ValueMap.h:102
id_offset_vector ids_
Definition: ValueMap.h:208
void throwIndexBound() const
Definition: ValueMap.h:216
int j
Definition: DBlmapReader.cc:9
void throwNotExisting() const
Definition: ValueMap.h:226
double f[11][100]
id_offset_vector::const_iterator getIdOffset(ProductID id) const
Definition: ValueMap.h:210
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
container values_
Definition: ValueMap.h:207
template<typename T>
size_t edm::ValueMap< T >::size ( void  ) const
inline
template<typename T>
void edm::ValueMap< T >::swap ( ValueMap< T > &  other)
inline
template<typename T>
void edm::ValueMap< T >::throwIndexBound ( ) const
inlineprotected

Definition at line 216 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::rawIndexOf().

216  {
217  Exception::throwThis(errors::InvalidReference, "ValueMap: index out of upper boundary\n");
218  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
template<typename T>
void edm::ValueMap< T >::throwNotExisting ( ) const
inlineprivate

Definition at line 226 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::rawIndexOf().

226  {
227  Exception::throwThis(errors::InvalidReference, "ValueMap: no associated value for given product and index\n");
228  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")

Friends And Related Function Documentation

template<typename T>
friend class helper::Filler< ValueMap< T > >
friend

Definition at line 236 of file ValueMap.h.

Member Data Documentation

template<typename T>
id_offset_vector edm::ValueMap< T >::ids_
protected

Definition at line 208 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::begin(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::clear(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::contains(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::end(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::ids(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::idSize(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::rawIndexOf(), and edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::swap().

template<typename T>
container edm::ValueMap< T >::values_
protected

Definition at line 207 of file ValueMap.h.

Referenced by edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::begin(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::clear(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::empty(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::end(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::get(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::rawIndexOf(), edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::size(), and edm::ValueMap< edm::Ref< std::vector< reco::PFCandidate >, reco::PFCandidate, edm::refhelper::FindUsingAdvance< std::vector< reco::PFCandidate >, reco::PFCandidate > > >::swap().