CMS 3D CMS Logo

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

#include <ValueMap.h>

Public Member Functions

void add (const Map &map)
 
void fill ()
 
 Filler (Map &map)
 
template<typename H , typename I >
void insert (const H &h, I begin, I end)
 

Protected Attributes

Map & map_
 

Private Types

typedef Map::id_offset_vector id_offset_vector
 
typedef std::vector< size_t > index_vector
 
typedef Map::offset offset
 
typedef std::map< ProductID,
value_vector
value_map
 
typedef std::vector< typename
Map::value_type > 
value_vector
 

Private Member Functions

void throwAdd () const
 
void throwFillID (ProductID id) const
 
void throwFillSize () const
 

Private Attributes

value_map values_
 

Detailed Description

template<typename Map>
class edm::helper::Filler< Map >

Definition at line 21 of file ValueMap.h.

Member Typedef Documentation

template<typename Map>
typedef Map::id_offset_vector edm::helper::Filler< Map >::id_offset_vector
private

Definition at line 27 of file ValueMap.h.

template<typename Map>
typedef std::vector<size_t> edm::helper::Filler< Map >::index_vector
private

Definition at line 23 of file ValueMap.h.

template<typename Map>
typedef Map::offset edm::helper::Filler< Map >::offset
private

Definition at line 26 of file ValueMap.h.

template<typename Map>
typedef std::map<ProductID, value_vector> edm::helper::Filler< Map >::value_map
private

Definition at line 25 of file ValueMap.h.

template<typename Map>
typedef std::vector<typename Map::value_type> edm::helper::Filler< Map >::value_vector
private

Definition at line 24 of file ValueMap.h.

Constructor & Destructor Documentation

template<typename Map>
edm::helper::Filler< Map >::Filler ( Map &  map)
inlineexplicit

Definition at line 29 of file ValueMap.h.

29  :
30  map_(map) {
31  add(map);
32  }
dictionary map
Definition: Association.py:160
void add(const Map &map)
Definition: ValueMap.h:33

Member Function Documentation

template<typename Map>
void edm::helper::Filler< Map >::add ( const Map &  map)
inline

Definition at line 33 of file ValueMap.h.

Referenced by edm::ValueMap< reco::MuonMETCorrectionData >::add(), and edm::helper::Filler< Association< C > >::Filler().

33  {
34  if (map.empty()) return;
35  typename id_offset_vector::const_iterator j = map.ids_.begin();
36  const typename id_offset_vector::const_iterator end = map.ids_.end();
37  size_t i = 0;
38  const size_t size = map.values_.size();
39  std::pair<ProductID, offset> id = *j;
40  do {
41  ProductID id = j->first;
42  ++j;
43  size_t max = (j == end ? size : j->second);
44  typename value_map::iterator f = values_.find(id);
45  if(f!=values_.end()) throwAdd();
46  value_vector & values = values_.insert(std::make_pair(id, value_vector())).first->second;
47  while(i!=max)
48  values.push_back( map.values_[i++] );
49  } while(j != end);
50  }
int i
Definition: DBlmapReader.cc:9
dictionary map
Definition: Association.py:160
int j
Definition: DBlmapReader.cc:9
double f[11][100]
#define end
Definition: vmac.h:38
std::vector< typename Map::value_type > value_vector
Definition: ValueMap.h:24
value_map values_
Definition: ValueMap.h:79
tuple size
Write out results.
void throwAdd() const
Definition: ValueMap.h:90
EventID const & max(EventID const &lh, EventID const &rh)
Definition: EventID.h:137
template<typename Map>
void edm::helper::Filler< Map >::fill ( void  )
inline

Definition at line 61 of file ValueMap.h.

Referenced by edm::Association< C >::add(), edm::ValueMap< reco::MuonMETCorrectionData >::add(), HLTMuonIsoFilter::filter(), IsolationProducerForTracks::produce(), EnergyLossProducer::produce(), MCTrackMatcher::produce(), PhotonIDProducer::produce(), AssociationMapOneToOne2Association< CKey, CVal >::produce(), AssociationVector2ValueMap< KeyRefProd, CVal >::produce(), MuIsoDepositProducer::produce(), EgammaElectronTkIsolationProducer::produce(), EgammaPhotonTkIsolationProducer::produce(), EgammaPhotonTkNumIsolationProducer::produce(), CandIsoDepositProducer::produce(), TrackProducerWithSCAssociation::produce(), SoftElectronCandProducer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), PFElectronTranslator::produce(), GenTrackMatcher::produce(), ElectronIDExternalProducer< algo >::produce(), EgammaElectronTkNumIsolationProducer::produce(), MuonSelectionTypeValueMapProducer::produce(), AlignmentPrescaler::produce(), MuonShowerInformationProducer::produce(), CosmicsMuonIdProducer::produce(), L3MuonIsolationProducer::produce(), reco::modulesNew::Matcher< C1, C2, S, D >::produce(), CandIsolatorFromDeposits::produce(), GlobalTrackQualityProducer::produce(), L2MuonIsolationProducer::produce(), cms::MuonMETValueMapProducer::produce(), pat::PATVertexAssociationProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), EgammaTowerIsolationProducer::produce(), DeDxEstimatorProducer::produce(), TkAlCaOverlapTagger::produce(), cms::MuonTCMETValueMapProducer::produce(), SoftConversionTrackCandidateProducer::produce(), CastorJetIDProducer::produce(), MuonTimingProducer::produce(), ConversionTrackCandidateProducer::produce(), GoodSeedProducer::produce(), JetIDProducer::produce(), DeDxDiscriminatorProducer::produce(), pat::PATTriggerEventProducer::produce(), MuonIdProducer::produce(), pat::JetCorrFactorsProducer::produce(), reco::PhysObjectMatcher< C1, C2, S, D, Q >::produce(), and MuIsolatorResultProducer< BT >::writeOutImpl().

61  {
62  map_.clear();
63  offset off = 0;
64  for(typename value_map::const_iterator i = values_.begin(); i != values_.end(); ++i) {
65  ProductID id = i->first;
66  map_.ids_.push_back(std::make_pair(id, off));
67  const value_vector & values = i->second;
68  for(typename value_vector::const_iterator j = values.begin(); j != values.end(); ++j) {
69  map_.values_.push_back( *j );
70  ++off;
71  }
72  }
73  }
int i
Definition: DBlmapReader.cc:9
Map::offset offset
Definition: ValueMap.h:26
int j
Definition: DBlmapReader.cc:9
std::vector< typename Map::value_type > value_vector
Definition: ValueMap.h:24
value_map values_
Definition: ValueMap.h:79
template<typename Map>
template<typename H , typename I >
void edm::helper::Filler< Map >::insert ( const H &  h,
begin,
end 
)
inline

Definition at line 52 of file ValueMap.h.

Referenced by BeautifulSoup.PageElement::append(), EcalHaloAlgo::Calculate(), PFElectronTranslator::fillMVAValueMap(), GoodSeedProducer::fillPreIdRefValueMap(), PFElectronTranslator::fillSCRefValueMap(), HLTMuonIsoFilter::filter(), IsolationProducerForTracks::produce(), EnergyLossProducer::produce(), MCTrackMatcher::produce(), PhotonIDProducer::produce(), AssociationMapOneToOne2Association< CKey, CVal >::produce(), AssociationVector2ValueMap< KeyRefProd, CVal >::produce(), MuIsoDepositProducer::produce(), EgammaElectronTkIsolationProducer::produce(), EgammaPhotonTkIsolationProducer::produce(), EgammaPhotonTkNumIsolationProducer::produce(), CandIsoDepositProducer::produce(), TrackProducerWithSCAssociation::produce(), SoftElectronCandProducer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), GenTrackMatcher::produce(), ElectronIDExternalProducer< algo >::produce(), EgammaElectronTkNumIsolationProducer::produce(), MuonSelectionTypeValueMapProducer::produce(), AlignmentPrescaler::produce(), MuonShowerInformationProducer::produce(), L3MuonIsolationProducer::produce(), CosmicsMuonIdProducer::produce(), reco::modulesNew::Matcher< C1, C2, S, D >::produce(), CandIsolatorFromDeposits::produce(), GlobalTrackQualityProducer::produce(), L2MuonIsolationProducer::produce(), cms::MuonMETValueMapProducer::produce(), pat::PATVertexAssociationProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), EgammaTowerIsolationProducer::produce(), TkAlCaOverlapTagger::produce(), DeDxEstimatorProducer::produce(), cms::MuonTCMETValueMapProducer::produce(), SoftConversionTrackCandidateProducer::produce(), CastorJetIDProducer::produce(), ConversionTrackCandidateProducer::produce(), MuonTimingProducer::produce(), JetIDProducer::produce(), DeDxDiscriminatorProducer::produce(), pat::PATTriggerEventProducer::produce(), MuonIdProducer::produce(), pat::JetCorrFactorsProducer::produce(), reco::PhysObjectMatcher< C1, C2, S, D, Q >::produce(), and MuIsolatorResultProducer< BT >::writeOutImpl().

52  {
53  ProductID id = h.id();
54  size_t size = h->size(), sizeIt = end - begin;
55  if(sizeIt!=size) throwFillSize();
56  typename value_map::const_iterator f = values_.find(id);
57  if(f != values_.end()) throwFillID(id);
58  value_vector & values = values_.insert(make_pair(id, value_vector(size))).first->second;
59  std::copy(begin, end, values.begin());
60  }
void throwFillSize() const
Definition: ValueMap.h:80
double f[11][100]
#define end
Definition: vmac.h:38
std::vector< typename Map::value_type > value_vector
Definition: ValueMap.h:24
value_map values_
Definition: ValueMap.h:79
#define begin
Definition: vmac.h:31
void throwFillID(ProductID id) const
Definition: ValueMap.h:85
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
tuple size
Write out results.
template<typename Map>
void edm::helper::Filler< Map >::throwAdd ( ) const
inlineprivate

Definition at line 90 of file ValueMap.h.

Referenced by edm::helper::Filler< Association< C > >::add().

90  {
92  "ValueMap: trying to add entries for an already existing product\n");
93  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:81
template<typename Map>
void edm::helper::Filler< Map >::throwFillID ( ProductID  id) const
inlineprivate

Definition at line 85 of file ValueMap.h.

Referenced by edm::helper::Filler< Association< C > >::insert().

85  {
87  e << "index map has already been filled for id: " << id << "\n";
88  e.raise();
89  }
template<typename Map>
void edm::helper::Filler< Map >::throwFillSize ( ) const
inlineprivate

Definition at line 80 of file ValueMap.h.

Referenced by edm::helper::Filler< Association< C > >::insert().

80  {
82  "ValueMap::Filler: handle and reference "
83  "collections should the same size\n");
84  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:81

Member Data Documentation

template<typename Map>
Map& edm::helper::Filler< Map >::map_
protected

Definition at line 76 of file ValueMap.h.

Referenced by edm::helper::Filler< Association< C > >::fill().

template<typename Map>
value_map edm::helper::Filler< Map >::values_
private