CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static 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)
 
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
 
void shrink_to_fit ()
 
size_t size () const
 
void swap (ValueMap &other)
 
 ValueMap ()
 

Static Public Member Functions

static short Class_Version ()
 

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 107 of file ValueMap.h.

Member Typedef Documentation

◆ const_reference_type

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

Definition at line 114 of file ValueMap.h.

◆ container

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

Definition at line 110 of file ValueMap.h.

◆ Filler

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

Definition at line 162 of file ValueMap.h.

◆ id_offset_vector

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

Definition at line 112 of file ValueMap.h.

◆ offset

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

Definition at line 111 of file ValueMap.h.

◆ reference_type

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

Definition at line 113 of file ValueMap.h.

◆ value_type

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

Definition at line 109 of file ValueMap.h.

Constructor & Destructor Documentation

◆ ValueMap()

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

Definition at line 116 of file ValueMap.h.

116 {}

Member Function Documentation

◆ add()

template<typename T>
void edm::ValueMap< T >::add ( const ValueMap< T > &  o)
inlineprivate

◆ begin()

template<typename T>
const_iterator edm::ValueMap< T >::begin ( void  ) const
inline

◆ Class_Version()

template<typename T>
static short edm::ValueMap< T >::Class_Version ( )
inlinestatic

Definition at line 232 of file ValueMap.h.

234 :
std::vector< value_type > container
Definition: ValueMap.h:110
container values_
Definition: ValueMap.h:235

◆ clear()

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

Definition at line 153 of file ValueMap.h.

Referenced by edm::Association< C >::clear().

153  {
154  values_.clear();
155  ids_.clear();
156  }
id_offset_vector ids_
Definition: ValueMap.h:236
container values_
Definition: ValueMap.h:235

◆ contains()

template<typename T>
bool edm::ValueMap< T >::contains ( ProductID  id) const
inline

◆ empty()

template<typename T>
bool edm::ValueMap< T >::empty ( ) const
inline

◆ end()

template<typename T>
const_iterator edm::ValueMap< T >::end ( void  ) const
inline

Definition at line 224 of file ValueMap.h.

Referenced by PhotonValidator::analyze(), ZToMuMuGammaAnalyzer::analyze(), Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

224 { return const_iterator(ids_.end(), ids_.end(), &values_); }
id_offset_vector ids_
Definition: ValueMap.h:236
container values_
Definition: ValueMap.h:235

◆ get() [1/3]

template<typename T>
const_reference_type edm::ValueMap< T >::get ( ProductID  id,
size_t  idx 
) const
inline

◆ get() [2/3]

template<typename T>
reference_type edm::ValueMap< T >::get ( ProductID  id,
size_t  idx 
)
inline

◆ get() [3/3]

template<typename T>
const_reference_type edm::ValueMap< T >::get ( size_t  idx) const
inline

◆ getIdOffset()

template<typename T>
id_offset_vector::const_iterator edm::ValueMap< T >::getIdOffset ( ProductID  id) const
inlineprotected

Definition at line 238 of file ValueMap.h.

Referenced by edm::ValueMap< math::XYZTLorentzVector >::contains(), and edm::ValueMap< math::XYZTLorentzVector >::rawIndexOf().

238  {
239  typename id_offset_vector::const_iterator i = std::lower_bound(ids_.begin(), ids_.end(), id, IDComparator());
240  if (i == ids_.end())
241  return i;
242  return i->first == id ? i : ids_.end();
243  }
id_offset_vector ids_
Definition: ValueMap.h:236

◆ ids()

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 227 of file ValueMap.h.

227 { return ids_; }
id_offset_vector ids_
Definition: ValueMap.h:236

◆ idSize()

template<typename T>
size_t edm::ValueMap< T >::idSize ( ) const
inline

◆ operator+=()

template<typename T>
ValueMap<T>& edm::ValueMap< T >::operator+= ( const ValueMap< T > &  o)
inline

Definition at line 145 of file ValueMap.h.

145  {
146  add(o);
147  return *this;
148  }
void add(const ValueMap< T > &o)
Definition: ValueMap.h:257

◆ operator[]() [1/2]

template<typename T>
template<typename RefKey >
const_reference_type edm::ValueMap< T >::operator[] ( const RefKey &  r) const
inline

Definition at line 124 of file ValueMap.h.

124  {
125  return get(r.id(), r.key());
126  }

◆ operator[]() [2/2]

template<typename T>
template<typename RefKey >
reference_type edm::ValueMap< T >::operator[] ( const RefKey &  r)
inline

Definition at line 140 of file ValueMap.h.

140  {
141  return get(r.id(), r.key());
142  }

◆ rawIndexOf()

template<typename T>
size_t edm::ValueMap< T >::rawIndexOf ( ProductID  id,
size_t  idx 
) const
inline

Definition at line 128 of file ValueMap.h.

Referenced by edm::ValueMap< math::XYZTLorentzVector >::get().

128  {
129  typename id_offset_vector::const_iterator f = getIdOffset(id);
130  if (f == ids_.end())
132  offset off = f->second;
133  size_t j = off + idx;
134  if (j >= values_.size())
135  throwIndexBound();
136  return j;
137  }
unsigned int offset
Definition: ValueMap.h:111
id_offset_vector::const_iterator getIdOffset(ProductID id) const
Definition: ValueMap.h:238
id_offset_vector ids_
Definition: ValueMap.h:236
double f[11][100]
void throwIndexBound() const
Definition: ValueMap.h:245
void throwNotExisting() const
Definition: ValueMap.h:253
container values_
Definition: ValueMap.h:235

◆ shrink_to_fit()

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

Definition at line 157 of file ValueMap.h.

157  {
158  ids_.shrink_to_fit();
159  values_.shrink_to_fit();
160  }
id_offset_vector ids_
Definition: ValueMap.h:236
container values_
Definition: ValueMap.h:235

◆ size()

template<typename T>
size_t edm::ValueMap< T >::size ( void  ) const
inline

◆ swap()

template<typename T>
void edm::ValueMap< T >::swap ( ValueMap< T > &  other)
inline

Definition at line 118 of file ValueMap.h.

Referenced by edm::Association< C >::swap(), and edm::swap().

118  {
119  values_.swap(other.values_);
120  ids_.swap(other.ids_);
121  }
id_offset_vector ids_
Definition: ValueMap.h:236
container values_
Definition: ValueMap.h:235

◆ throwIndexBound()

template<typename T>
void edm::ValueMap< T >::throwIndexBound ( ) const
inlineprotected

Definition at line 245 of file ValueMap.h.

Referenced by edm::ValueMap< math::XYZTLorentzVector >::rawIndexOf().

245  {
246  Exception::throwThis(errors::InvalidReference, "ValueMap: index out of upper boundary\n");
247  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:86

◆ throwNotExisting()

template<typename T>
void edm::ValueMap< T >::throwNotExisting ( ) const
inlineprivate

Definition at line 253 of file ValueMap.h.

Referenced by edm::ValueMap< math::XYZTLorentzVector >::rawIndexOf().

253  {
254  Exception::throwThis(errors::InvalidReference, "ValueMap: no associated value for given product and index\n");
255  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:86

Friends And Related Function Documentation

◆ helper::Filler< ValueMap< T > >

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

Definition at line 263 of file ValueMap.h.

Member Data Documentation

◆ ids_

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

◆ values_

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