CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Static Public Member Functions | Private Types
edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef > Class Template Reference

#include <OneToManyWithQualityGeneric.h>

Public Types

typedef std::pair< ValRef, Q > data_type
 insert val type More...
 
typedef index index_type
 index type More...
 
typedef KeyRef key_type
 insert key type More...
 
typedef std::map< index_type,
map_assoc
map_type
 map type More...
 
typedef helpers::KeyVal
< keyrefprod_type,
valrefprod_type
ref_type
 reference set type More...
 
typedef std::vector< const
typename CKey::value_type * > 
transient_key_vector
 transient key vector More...
 
typedef std::map< const
typename CKey::value_type
*, std::vector< std::pair
< const typename
CVal::value_type *, Q > > > 
transient_map_type
 transient map type More...
 
typedef std::vector
< std::vector< std::pair
< const typename
CVal::value_type *, Q > > > 
transient_val_vector
 transient val vector More...
 
typedef std::vector< std::pair
< ValRef, Q > > 
val_type
 values reference collection type More...
 

Static Public Member Functions

static void insert (ref_type &ref, map_type &m, const key_type &k, const data_type &v)
 insert in the map More...
 
static void insert (ref_type &ref, map_type &m, const key_type &k, const val_type &v)
 
static map_type::size_type size (const map_assoc &v)
 size of data_type More...
 
static void sort (map_type &m)
 sort More...
 
static transient_key_vector transientKeyVector (const ref_type &ref, const map_type &map)
 fill transient key vector More...
 
static transient_map_type transientMap (const ref_type &ref, const map_type &map)
 fill transient map More...
 
static transient_val_vector transientValVector (const ref_type &ref, const map_type &map)
 fill transient val vector More...
 
static val_type val (const ref_type &ref, const map_assoc &iv)
 return values collection More...
 

Private Types

typedef KeyRefProd keyrefprod_type
 reference to "key" collection More...
 
typedef std::vector< std::pair
< index, Q > > 
map_assoc
 internal map associated data More...
 
typedef ValRefProd valrefprod_type
 reference to "value" collection More...
 

Detailed Description

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
class edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >

Definition at line 23 of file OneToManyWithQualityGeneric.h.

Member Typedef Documentation

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::pair<ValRef, Q> edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::data_type

insert val type

Definition at line 37 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef index edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::index_type

index type

Definition at line 39 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef KeyRef edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::key_type

insert key type

Definition at line 35 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef KeyRefProd edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::keyrefprod_type
private

reference to "key" collection

Definition at line 25 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<std::pair<index, Q> > edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::map_assoc
private

internal map associated data

Definition at line 29 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::map<index_type, map_assoc> edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::map_type

map type

Definition at line 41 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef helpers::KeyVal<keyrefprod_type, valrefprod_type> edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::ref_type

reference set type

Definition at line 43 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<const typename CKey::value_type *> edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_key_vector

transient key vector

Definition at line 49 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::map<const typename CKey::value_type *, std::vector<std::pair<const typename CVal::value_type *, Q > > > edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_map_type

transient map type

Definition at line 47 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<std::vector<std::pair<const typename CVal::value_type *, Q > > > edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_val_vector

transient val vector

Definition at line 52 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<std::pair<ValRef, Q> > edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::val_type

values reference collection type

Definition at line 33 of file OneToManyWithQualityGeneric.h.

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef ValRefProd edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::valrefprod_type
private

reference to "value" collection

Definition at line 27 of file OneToManyWithQualityGeneric.h.

Member Function Documentation

template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static void edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::insert ( ref_type ref,
map_type m,
const key_type k,
const data_type v 
)
inlinestatic

insert in the map

Definition at line 54 of file OneToManyWithQualityGeneric.h.

Referenced by BeautifulSoup.PageElement::_invert(), and edm::OneToManyWithQualityGeneric< std::vector< reco::Track >, std::vector< reco::Vertex >, int, unsigned int >::insert().

55  {
56  const ValRef & vref = v.first;
57  if (k.isNull() || vref.isNull())
59  "can't insert null references in AssociationMap");
60  if (ref.key.isNull()) {
61  ref.key = keyrefprod_type(k);
62  ref.val = valrefprod_type(vref);
63  }
64  helpers::checkRef(ref.key, k); helpers::checkRef(ref.val, vref);
65  index_type ik = index_type(k.key()), iv = index_type(vref.key());
66  m[ik].push_back(std::make_pair(iv, v.second));
67  }
KeyRefProd keyrefprod_type
reference to &quot;key&quot; collection
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
void checkRef(const RP &rp, const R &r)
throw if r hasn&#39;t the same id as rp
ValRefProd valrefprod_type
reference to &quot;value&quot; collection
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static void edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::insert ( ref_type ref,
map_type m,
const key_type k,
const val_type v 
)
inlinestatic

Definition at line 68 of file OneToManyWithQualityGeneric.h.

Referenced by BeautifulSoup.PageElement::_invert().

68  {
69  for(typename val_type::const_iterator i = v.begin(), iEnd = v.end(); i != iEnd; ++i)
70  insert(ref, m, k, *i);
71  }
int i
Definition: DBlmapReader.cc:9
static void insert(ref_type &ref, map_type &m, const key_type &k, const data_type &v)
insert in the map
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static map_type::size_type edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::size ( const map_assoc v)
inlinestatic

size of data_type

Definition at line 80 of file OneToManyWithQualityGeneric.h.

80 { return v.size(); }
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static void edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::sort ( map_type m)
inlinestatic

sort

Definition at line 82 of file OneToManyWithQualityGeneric.h.

82  {
83  // using namespace boost::lambda;
84  for(typename map_type::iterator i = m.begin(), iEnd = m.end(); i != iEnd; ++i) {
85 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
86  using std::placeholders::_1;
87  using std::placeholders::_2;
88 #endif
89  map_assoc & v = i->second;
90  // Q std::pair<index, Q>::*quality = &std::pair<index, Q>::second;
91  // std::sort(v.begin(), v.end(),
92  // bind(quality, boost::lambda::_2) < bind(quality, boost::lambda::_1));
93  std::sort(v.begin(), v.end(),
94 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
95  std::bind(std::less<Q>(),
96  std::bind(&std::pair<index, Q>::second,_2), std::bind( &std::pair<index, Q>::second,_1)
97 #else
98  boost::bind(std::less<Q>(),
99  boost::bind(&std::pair<index, Q>::second,_2), boost::bind( &std::pair<index, Q>::second,_1)
100 #endif
101  )
102  );
103 
104  }
105  }
int i
Definition: DBlmapReader.cc:9
U second(std::pair< T, U > const &p)
std::vector< std::pair< index, Q > > map_assoc
internal map associated data
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_key_vector edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientKeyVector ( const ref_type ref,
const map_type map 
)
inlinestatic

fill transient key vector

Definition at line 124 of file OneToManyWithQualityGeneric.h.

124  {
126  const CKey & ckey = * ref.key;
127  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i)
128  m.push_back(& ckey[i->first]);
129  return m;
130  }
int i
Definition: DBlmapReader.cc:9
std::vector< const typename CKey::value_type * > transient_key_vector
transient key vector
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_map_type edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientMap ( const ref_type ref,
const map_type map 
)
inlinestatic

fill transient map

Definition at line 107 of file OneToManyWithQualityGeneric.h.

107  {
109  const CKey & ckey = * ref.key;
110  const CVal & cval = * ref.val;
111  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i) {
112  const map_assoc & a = i->second;
113  const typename CKey::value_type * k = & ckey[i->first];
114  std::vector<std::pair<const typename CVal::value_type *, Q> > v;
115  for(typename map_assoc::const_iterator j = a.begin(); j != a.end(); ++j) {
116  const typename CVal::value_type * val = & cval[j->first];
117  v.push_back(std::make_pair(val, j->second));
118  }
119  m.insert(std::make_pair(k, v));
120  }
121  return m;
122  }
int i
Definition: DBlmapReader.cc:9
static val_type val(const ref_type &ref, const map_assoc &iv)
return values collection
int j
Definition: DBlmapReader.cc:9
Container::value_type value_type
std::vector< std::pair< index, Q > > map_assoc
internal map associated data
double a
Definition: hdecay.h:121
std::map< const typename CKey::value_type *, std::vector< std::pair< const typename CVal::value_type *, Q > > > transient_map_type
transient map type
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_val_vector edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientValVector ( const ref_type ref,
const map_type map 
)
inlinestatic

fill transient val vector

Definition at line 132 of file OneToManyWithQualityGeneric.h.

132  {
134  const CVal & cval = * ref.val;
135  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i) {
136  const map_assoc & a = i->second;
137  std::vector<std::pair<const typename CVal::value_type *, Q> > v;
138  m.push_back(v);
139  for(typename map_assoc::const_iterator j = a.begin(); j != a.end(); ++j)
140  m.back().push_back(std::make_pair(& cval[ j->first ], j->second));
141  }
142  return m;
143  }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
std::vector< std::pair< index, Q > > map_assoc
internal map associated data
std::vector< std::vector< std::pair< const typename CVal::value_type *, Q > > > transient_val_vector
transient val vector
double a
Definition: hdecay.h:121
template<typename CKey, typename CVal, typename Q, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static val_type edm::OneToManyWithQualityGeneric< CKey, CVal, Q, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::val ( const ref_type ref,
const map_assoc iv 
)
inlinestatic

return values collection

Definition at line 73 of file OneToManyWithQualityGeneric.h.

Referenced by edm::OneToManyWithQualityGeneric< std::vector< reco::Track >, std::vector< reco::Vertex >, int, unsigned int >::transientMap().

73  {
74  val_type v;
75  for(typename map_assoc::const_iterator idx = iv.begin(), idxEnd = iv.end(); idx != idxEnd; ++idx)
76  v.push_back(std::make_pair(ValRef(ref.val, idx->first), idx->second));
77  return v;
78  }
std::vector< std::pair< ValRef, Q > > val_type
values reference collection type
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...