CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
edm::AssociationMap< Tag > Class Template Reference

#include <AssociationMap.h>

Classes

struct  const_iterator
 const iterator More...
 
struct  Find
 find helper More...
 

Public Types

typedef Tag::data_type data_type
 insert data type More...
 
typedef Tag::index_type index_type
 index type More...
 
typedef oneapi::tbb::concurrent_unordered_map< index_type, value_typeinternal_transient_map_type
 transient map type More...
 
typedef Tag::key_type key_type
 insert key type More...
 
typedef Tag::map_type map_type
 map type More...
 
typedef Tag::ref_type ref_type
 Holds the RefProd or RefToBaseProd of 1 or 2 collections. More...
 
typedef value_type::value_type result_type
 type return by operator[] More...
 
typedef AssociationMap< Tag > self
 self type More...
 
typedef map_type::size_type size_type
 size type More...
 
typedef Tag tag_type
 tag/association type More...
 
typedef helpers::KeyVal< key_type, internal_val_typevalue_type
 type returned by dereferenced iterator, also can be inserted More...
 

Public Member Functions

 AssociationMap ()
 default constructor More...
 
 AssociationMap (EDProductGetter const *getter)
 
 AssociationMap (const ref_type &ref)
 
template<typename... Args>
 AssociationMap (Args... args)
 
const_iterator begin () const
 first iterator over the map (read only) More...
 
void clear ()
 clear map More...
 
bool empty () const
 return true if empty More...
 
const_iterator end () const
 last iterator over the map (read only) More...
 
size_type erase (const key_type &k)
 erase the element whose key is k More...
 
const_iterator find (const key_type &k) const
 find element with specified reference key More...
 
void insert (const key_type &k, const data_type &v)
 insert an association More...
 
void insert (const value_type &kv)
 
Tag::transient_key_vector keys ()
 
Tag::transient_map_type map ()
 
size_type numberOfAssociations (const key_type &k) const
 number of associations to a key More...
 
template<typename K >
size_type numberOfAssociations (const K &k) const
 
const result_typeoperator[] (const key_type &k) const
 find element with specified reference key More...
 
template<typename K >
const result_typeoperator[] (const K &k) const
 
void post_insert ()
 post insert action More...
 
const ref_typerefProd () const
 return ref-prod structure More...
 
size_type size () const
 map size More...
 
Tag::transient_val_vector values ()
 

Static Public Member Functions

static short Class_Version ()
 

Private Types

typedef Tag::val_type internal_val_type
 

Private Member Functions

const_iterator find (size_type i) const
 find element with index i More...
 
const value_typeget (size_type i) const
 return value_typeelement with key i More...
 

Private Attributes

map_type map_
 index map More...
 
ref_type ref_
 reference set More...
 
internal_transient_map_type transientMap_
 transient reference map More...
 

Friends

struct const_iterator
 
struct Find
 
template<typename , typename , typename >
class OneToMany
 
template<typename , typename , typename , typename >
class OneToManyWithQuality
 
template<typename , typename , typename >
class OneToOne
 
template<typename , typename , typename >
class OneToValue
 
struct refhelper::FindTrait< self, value_type >
 

Detailed Description

template<typename Tag>
class edm::AssociationMap< Tag >

one-to-many or one-to-one associative map using EDM references

Author
Luca Lista, INFN

In general, this class is intuitive, but two special cases deserves some extra discussion. These are somewhat unusual corner cases, but sometimes actually have arisen.

First, one can initialize the AssociationMap by passing in a Handle to a collection as an argument to the constructor. Usually it is a good way to initialize it. But this will fail in the case where a collection template parameter to Tag (either CKey or CVal) is a View and the underlying collection read into the View is a RefVector, PtrVector, or vector(Ptr). AssociationMap will behave improperly if the constructor is passed a Handle<View<C> >. In this case, one should initialize with a EDProductGetter const* or construct a RefToBaseProd whose ProductID is associated with the underlying container, not the RefVector, PtrVector, or vector<Ptr>.

AssociationMap is designed to support cases where all the Key Ref's point into one container and all the Val Ref's point into one other container. For example, if one read a vector<Ptr> into a View and the Ptr's pointed into different containers and you tried to use these as elements of CVal, then AssociationMap will not work.

Definition at line 48 of file AssociationMap.h.

Member Typedef Documentation

◆ data_type

template<typename Tag>
typedef Tag::data_type edm::AssociationMap< Tag >::data_type

insert data type

Definition at line 63 of file AssociationMap.h.

◆ index_type

template<typename Tag>
typedef Tag::index_type edm::AssociationMap< Tag >::index_type

index type

Definition at line 59 of file AssociationMap.h.

◆ internal_transient_map_type

template<typename Tag>
typedef oneapi::tbb::concurrent_unordered_map<index_type, value_type> edm::AssociationMap< Tag >::internal_transient_map_type

transient map type

Definition at line 75 of file AssociationMap.h.

◆ internal_val_type

template<typename Tag>
typedef Tag::val_type edm::AssociationMap< Tag >::internal_val_type
private

This is the second part of the value part of the items stored in the transient map

Definition at line 51 of file AssociationMap.h.

◆ key_type

template<typename Tag>
typedef Tag::key_type edm::AssociationMap< Tag >::key_type

insert key type

Definition at line 61 of file AssociationMap.h.

◆ map_type

template<typename Tag>
typedef Tag::map_type edm::AssociationMap< Tag >::map_type

map type

Definition at line 67 of file AssociationMap.h.

◆ ref_type

template<typename Tag>
typedef Tag::ref_type edm::AssociationMap< Tag >::ref_type

Holds the RefProd or RefToBaseProd of 1 or 2 collections.

Definition at line 65 of file AssociationMap.h.

◆ result_type

template<typename Tag>
typedef value_type::value_type edm::AssociationMap< Tag >::result_type

type return by operator[]

Definition at line 73 of file AssociationMap.h.

◆ self

template<typename Tag>
typedef AssociationMap<Tag> edm::AssociationMap< Tag >::self

self type

Definition at line 55 of file AssociationMap.h.

◆ size_type

template<typename Tag>
typedef map_type::size_type edm::AssociationMap< Tag >::size_type

size type

Definition at line 69 of file AssociationMap.h.

◆ tag_type

template<typename Tag>
typedef Tag edm::AssociationMap< Tag >::tag_type

tag/association type

Definition at line 57 of file AssociationMap.h.

◆ value_type

template<typename Tag>
typedef helpers::KeyVal<key_type, internal_val_type> edm::AssociationMap< Tag >::value_type

type returned by dereferenced iterator, also can be inserted

Definition at line 71 of file AssociationMap.h.

Constructor & Destructor Documentation

◆ AssociationMap() [1/4]

template<typename Tag>
edm::AssociationMap< Tag >::AssociationMap ( )
inline

default constructor

Definition at line 115 of file AssociationMap.h.

115 {}

◆ AssociationMap() [2/4]

template<typename Tag>
edm::AssociationMap< Tag >::AssociationMap ( EDProductGetter const *  getter)
inlineexplicit

Definition at line 120 of file AssociationMap.h.

120 : ref_(getter) {}
ref_type ref_
reference set

◆ AssociationMap() [3/4]

template<typename Tag>
edm::AssociationMap< Tag >::AssociationMap ( const ref_type ref)
inlineexplicit

Definition at line 123 of file AssociationMap.h.

123 : ref_(ref) {}
ref_type ref_
reference set

◆ AssociationMap() [4/4]

template<typename Tag>
template<typename... Args>
edm::AssociationMap< Tag >::AssociationMap ( Args...  args)
inline

Definition at line 156 of file AssociationMap.h.

156 : ref_(std::forward<Args>(args)...) {}
ref_type ref_
reference set

Member Function Documentation

◆ begin()

template<typename Tag>
const_iterator edm::AssociationMap< Tag >::begin ( void  ) const
inline

first iterator over the map (read only)

Definition at line 171 of file AssociationMap.h.

Referenced by DeDxDiscriminatorLearner::algoAnalyze(), SiStripGainFromData::algoAnalyze(), reco::JetTrackMatch< JetC >::allJets(), SiStripLAProfileBooker::analyze(), SiPixelHitEfficiencySource::analyze(), HitEff::analyze(), OverlapProblemTSOSAnalyzer::analyze(), analyzer::SiPixelLorentzAngle::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), ApeEstimator::analyze(), MuonTrackValidator::analyze(), FWTrackProxyBuilderFullFramework::build(), V0Validator::doEfficiencies(), OverlapProblemTSOSPositionFilter::filter(), noPuUtils::isVertexAssociated(), noPuUtils::isVertexAssociated_fast(), AlignmentProducerBase::processEvent(), QualityFilter::produce(), TrackListCombiner::produce(), TkAlCaOverlapTagger::produce(), Type0PFMETcorrInputProducer::produce(), TrackInfoProducer::produce(), GlobalMuonProducer::produce(), L3MuonProducer::produce(), ConversionSeedFilter::produce(), PF_PU_FirstVertexTracks::produce(), AlignmentMuonHIPTrajectorySelector::produce(), PFCand_NoPU_WithAM::produce(), reco::modules::CosmicTrackSplitter::produce(), reco::modules::TrackerTrackHitFilter::produce(), noPuUtils::reversePFCandToVertexAssociation(), PF_PU_AssoMapAlgos::SortAssociationMap(), PFCand_AssoMapAlgos::SortPFCandAssociationMap(), and FWTrackProxyBuilderFullFramework::visibilityModelChanges().

171 { return const_iterator(this, map_.begin()); }
friend struct const_iterator
map_type map_
index map

◆ Class_Version()

template<typename Tag>
static short edm::AssociationMap< Tag >::Class_Version ( )
inlinestatic

Definition at line 245 of file AssociationMap.h.

247 :

◆ clear()

template<typename Tag>
void edm::AssociationMap< Tag >::clear ( void  )
inline

clear map

Definition at line 159 of file AssociationMap.h.

159  {
160  map_.clear();
161  transientMap_.clear();
162  }
internal_transient_map_type transientMap_
transient reference map
map_type map_
index map

◆ empty()

template<typename Tag>
bool edm::AssociationMap< Tag >::empty ( ) const
inline

return true if empty

Definition at line 166 of file AssociationMap.h.

Referenced by TkConvValidator::analyze(), analyzer::SiPixelLorentzAngle::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), and V0Validator::doEfficiencies().

166 { return map_.empty(); }
map_type map_
index map

◆ end()

template<typename Tag>
const_iterator edm::AssociationMap< Tag >::end ( void  ) const
inline

last iterator over the map (read only)

Definition at line 173 of file AssociationMap.h.

Referenced by DeDxDiscriminatorLearner::algoAnalyze(), SiStripGainFromData::algoAnalyze(), reco::JetTrackMatch< JetC >::allJets(), ValidationMisalignedTracker::analyze(), GlobalMuonMatchAnalyzer::analyze(), SiStripLAProfileBooker::analyze(), SiPixelHitEfficiencySource::analyze(), TkConvValidator::analyze(), HitEff::analyze(), TestOutliers::analyze(), TestTrackHits::analyze(), OverlapProblemTPAnalyzer::analyze(), OverlapProblemTSOSAnalyzer::analyze(), analyzer::SiPixelLorentzAngle::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), ApeEstimator::analyze(), MuonTrackValidator::analyze(), LCToSimTSAssociatorByEnergyScoreImpl::associateRecoToSim(), LCToSimTSAssociatorByEnergyScoreImpl::associateSimToReco(), FWTrackProxyBuilderFullFramework::build(), calculateVertexSharedTracks(), Types.LuminosityBlockRange::cppID(), Types.EventRange::cppID(), V0Validator::doEfficiencies(), V0Validator::doFakeRates(), MultiTrackValidatorGenPs::dqmAnalyze(), MultiTrackValidator::dqmAnalyze(), TrackingNtuple::fillCandidates(), TrackingNtuple::fillSeeds(), TrackingNtuple::fillTrackingParticles(), TrackingNtuple::fillTracks(), OverlapProblemTSOSPositionFilter::filter(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::find(), Primary4DVertexValidation::getMatchedTP(), PrimaryVertexAnalyzer4PUSlimmed::getRecoPVs(), Primary4DVertexValidation::getRecoPVs(), PrimaryVertexAnalyzer4PUSlimmed::getSimPVs(), Primary4DVertexValidation::getSimPVs(), noPuUtils::isVertexAssociated(), noPuUtils::isVertexAssociated_fast(), HGVHistoProducerAlgo::layerClusters_to_CaloParticles(), HGVHistoProducerAlgo::layerClusters_to_SimClusters(), PrimaryVertexAnalyzer4PUSlimmed::matchReco2SimVertices(), PrimaryVertexAnalyzer4PUSlimmed::matchRecoTrack2SimSignal(), Primary4DVertexValidation::matchRecoTrack2SimSignal(), PrimaryVertexAnalyzer4PUSlimmed::matchSim2RecoVertices(), HLTEgammaCaloIsolFilterPairs::PassCaloIsolation(), AlignmentProducerBase::processEvent(), QualityFilter::produce(), TrackListCombiner::produce(), Type0PFMETcorrInputProducer::produce(), TkAlCaOverlapTagger::produce(), TrackListMerger::produce(), TrackInfoProducer::produce(), MatchedProbeMaker< T >::produce(), CosmicTrackSelector::produce(), L3MuonProducer::produce(), GlobalMuonProducer::produce(), ConversionSeedFilter::produce(), TrackMCQuality::produce(), TrackAlgoCompareUtil::produce(), PF_PU_FirstVertexTracks::produce(), AlignmentMuonHIPTrajectorySelector::produce(), PFCand_NoPU_WithAM::produce(), reco::modules::HICaloCompatibleTrackSelector::produce(), reco::modules::TrackFullCloneSelectorBase< Selector >::produce(), reco::modules::CosmicTrackSplitter::produce(), reco::modules::TrackerTrackHitFilter::produce(), noPuUtils::reversePFCandToVertexAssociation(), AnalyticalTrackSelector::run(), PF_PU_AssoMapAlgos::SortAssociationMap(), PFCand_AssoMapAlgos::SortPFCandAssociationMap(), and tevOptimizedTMR().

173 { return const_iterator(this, map_.end()); }
friend struct const_iterator
map_type map_
index map

◆ erase()

template<typename Tag>
size_type edm::AssociationMap< Tag >::erase ( const key_type k)
inline

erase the element whose key is k

Definition at line 181 of file AssociationMap.h.

181  {
182  index_type i = k.key();
183  transientMap_.unsafe_erase(i);
184  return map_.erase(i);
185  }
Tag::index_type index_type
index type
internal_transient_map_type transientMap_
transient reference map
map_type map_
index map

◆ find() [1/2]

template<typename Tag>
const_iterator edm::AssociationMap< Tag >::find ( const key_type k) const
inline

find element with specified reference key

Definition at line 175 of file AssociationMap.h.

Referenced by ValidationMisalignedTracker::analyze(), GlobalMuonMatchAnalyzer::analyze(), TkConvValidator::analyze(), TestTrackHits::analyze(), TestOutliers::analyze(), OverlapProblemTPAnalyzer::analyze(), MuonTrackValidator::analyze(), LCToSimTSAssociatorByEnergyScoreImpl::associateRecoToSim(), LCToSimTSAssociatorByEnergyScoreImpl::associateSimToReco(), calculateVertexSharedTracks(), V0Validator::doEfficiencies(), V0Validator::doFakeRates(), MultiTrackValidatorGenPs::dqmAnalyze(), MultiTrackValidator::dqmAnalyze(), TrackingNtuple::fillCandidates(), TrackingNtuple::fillSeeds(), TrackingNtuple::fillTrackingParticles(), TrackingNtuple::fillTracks(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::find(), Primary4DVertexValidation::getMatchedTP(), PrimaryVertexAnalyzer4PUSlimmed::getRecoPVs(), Primary4DVertexValidation::getRecoPVs(), PrimaryVertexAnalyzer4PUSlimmed::getSimPVs(), Primary4DVertexValidation::getSimPVs(), noPuUtils::isVertexAssociated_fast(), HGVHistoProducerAlgo::layerClusters_to_CaloParticles(), HGVHistoProducerAlgo::layerClusters_to_SimClusters(), PrimaryVertexAnalyzer4PUSlimmed::matchReco2SimVertices(), PrimaryVertexAnalyzer4PUSlimmed::matchRecoTrack2SimSignal(), Primary4DVertexValidation::matchRecoTrack2SimSignal(), PrimaryVertexAnalyzer4PUSlimmed::matchSim2RecoVertices(), HLTEgammaCaloIsolFilterPairs::PassCaloIsolation(), HFRecoEcalCandidateAlgo::produce(), TrackListMerger::produce(), MatchedProbeMaker< T >::produce(), CosmicTrackSelector::produce(), GlobalMuonProducer::produce(), L3MuonProducer::produce(), TrackMCQuality::produce(), TrackAlgoCompareUtil::produce(), reco::modules::HICaloCompatibleTrackSelector::produce(), reco::modules::TrackFullCloneSelectorBase< Selector >::produce(), AnalyticalTrackSelector::run(), and tevOptimizedTMR().

175  {
176  if (ref_.key.id() != k.id())
177  return end();
178  return find(k.key());
179  }
ref_type ref_
reference set
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)

◆ find() [2/2]

template<typename Tag>
const_iterator edm::AssociationMap< Tag >::find ( size_type  i) const
inlineprivate

find element with index i

Definition at line 255 of file AssociationMap.h.

255  {
256  typename map_type::const_iterator f = map_.find(i);
257  if (f == map_.end())
258  return end();
259  return const_iterator(this, f);
260  }
friend struct const_iterator
const_iterator end() const
last iterator over the map (read only)
double f[11][100]
map_type map_
index map

◆ get()

template<typename Tag>
const value_type& edm::AssociationMap< Tag >::get ( size_type  i) const
inlineprivate

return value_typeelement with key i

Definition at line 262 of file AssociationMap.h.

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), submitPVValidationJobs.BetterConfigParser::__updateDict(), rrapi.RRApi::columns(), util.rrapi.RRApi::columns(), rrapi.RRApi::count(), util.rrapi.RRApi::count(), rrapi.RRApi::data(), util.rrapi.RRApi::data(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), submitPVValidationJobs.BetterConfigParser::getResultingSection(), edm::AssociationMap< Tag >::const_iterator::operator*(), util.rrapi.RRApi::report(), rrapi.RRApi::report(), util.rrapi.RRApi::reports(), rrapi.RRApi::reports(), rrapi.RRApi::tables(), util.rrapi.RRApi::tables(), util.rrapi.RRApi::tags(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), util.rrapi.RRApi::templates(), util.rrapi.RRApi::workspaces(), and rrapi.RRApi::workspaces().

262  {
263  typename internal_transient_map_type::const_iterator tf = transientMap_.find(i);
264  if (tf == transientMap_.end()) {
265  typename map_type::const_iterator f = map_.find(i);
266  if (f == map_.end())
267  Exception::throwThis(edm::errors::InvalidReference, "can't find reference in AssociationMap at position ", i);
268  value_type v(key_type(ref_.key, i), Tag::val(ref_, f->second));
269  std::pair<typename internal_transient_map_type::const_iterator, bool> ins =
270  transientMap_.insert(std::make_pair(i, v));
271  return ins.first->second;
272  } else {
273  return tf->second;
274  }
275  }
internal_transient_map_type transientMap_
transient reference map
helpers::KeyVal< key_type, internal_val_type > value_type
type returned by dereferenced iterator, also can be inserted
Tag::key_type key_type
insert key type
ref_type ref_
reference set
ins
Definition: cuy.py:313
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:84
double f[11][100]
map_type map_
index map

◆ insert() [1/2]

template<typename Tag>
void edm::AssociationMap< Tag >::insert ( const key_type k,
const data_type v 
)
inline

insert an association

Definition at line 168 of file AssociationMap.h.

Referenced by SequenceTypes.Schedule::_replaceIfHeldDirectly(), TrackGenAssociatorByChi2Impl::associateGenToReco(), TrackGenAssociatorByChi2Impl::associateRecoToGen(), VertexAssociatorByTracks::associateRecoToSim(), LCToSimTSAssociatorByEnergyScoreImpl::associateRecoToSim(), TSToSCAssociatorByEnergyScoreImpl::associateRecoToSim(), TrackAssociatorByHitsImpl::associateRecoToSim(), MultiClusterAssociatorByEnergyScoreImpl::associateRecoToSim(), TrackAssociatorByPositionImpl::associateRecoToSim(), TrackAssociatorByChi2Impl::associateRecoToSim(), LCToSCAssociatorByEnergyScoreImpl::associateRecoToSim(), LCToCPAssociatorByEnergyScoreImpl::associateRecoToSim(), TSToSimTSAssociatorByEnergyScoreImpl::associateRecoToSim(), VertexAssociatorByTracks::associateSimToReco(), LCToSimTSAssociatorByEnergyScoreImpl::associateSimToReco(), TSToSCAssociatorByEnergyScoreImpl::associateSimToReco(), TrackAssociatorByHitsImpl::associateSimToReco(), MultiClusterAssociatorByEnergyScoreImpl::associateSimToReco(), TrackAssociatorByPositionImpl::associateSimToReco(), TrackAssociatorByChi2Impl::associateSimToReco(), LCToSCAssociatorByEnergyScoreImpl::associateSimToReco(), LCToCPAssociatorByEnergyScoreImpl::associateSimToReco(), TSToSimTSAssociatorByEnergyScoreImpl::associateSimToReco(), reco::JetTrackMatch< JetC >::insert(), EgammaHLTBcHcalIsolationProducersRegional::produce(), EgammaHLTClusterShapeProducer::produce(), EgammaHLTHcalVarProducerFromRecHit::produce(), EgammaHLTR9IDProducer::produce(), EgammaHLTElectronTrackIsolationProducers::produce(), HLTHcalPFClusterIsolationProducer< T1 >::produce(), EgammaHLTGsfTrackVarProducer::produce(), EgammaHLTPhotonTrackIsolationProducersRegional::produce(), HLTHGCalLayerClusterIsolationProducer< T1 >::produce(), HLTEcalPFClusterIsolationProducer< T1 >::produce(), NuclearTrackCorrector::produce(), and noPuUtils::reversePFCandToVertexAssociation().

168 { Tag::insert(ref_, map_, k, v); }
ref_type ref_
reference set
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50
map_type map_
index map

◆ insert() [2/2]

template<typename Tag>
void edm::AssociationMap< Tag >::insert ( const value_type kv)
inline

Definition at line 169 of file AssociationMap.h.

Referenced by SequenceTypes.Schedule::_replaceIfHeldDirectly().

169 { Tag::insert(ref_, map_, kv.key, kv.val); }
ref_type ref_
reference set
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50
map_type map_
index map

◆ keys()

template<typename Tag>
Tag::transient_key_vector edm::AssociationMap< Tag >::keys ( )
inline

fill and return a transient key vector required for ROOT interactive usage

Definition at line 226 of file AssociationMap.h.

Referenced by psClasses.queueList::__init__(), psClasses.queueList::smallestQueue(), and psClasses.queueList::thinerQueue().

226 { return Tag::transientKeyVector(ref_, map_); }
ref_type ref_
reference set
map_type map_
index map

◆ map()

template<typename Tag>
Tag::transient_map_type edm::AssociationMap< Tag >::map ( )
inline

fill and return a transient map required for ROOT interactive usage

Definition at line 223 of file AssociationMap.h.

223 { return Tag::transientMap(ref_, map_); }
ref_type ref_
reference set
map_type map_
index map

◆ numberOfAssociations() [1/2]

template<typename Tag>
size_type edm::AssociationMap< Tag >::numberOfAssociations ( const key_type k) const
inline

number of associations to a key

Definition at line 199 of file AssociationMap.h.

Referenced by VertexAssociatorByTracks::associateRecoToSim(), and VertexAssociatorByTracks::associateSimToReco().

199  {
200  if (ref_.key.id() != k.id())
201  return 0;
202  typename map_type::const_iterator f = map_.find(k.key());
203  if (f == map_.end())
204  return 0;
205  return Tag::size(f->second);
206  }
size
Write out results.
ref_type ref_
reference set
double f[11][100]
map_type map_
index map

◆ numberOfAssociations() [2/2]

template<typename Tag>
template<typename K >
size_type edm::AssociationMap< Tag >::numberOfAssociations ( const K &  k) const
inline

Definition at line 209 of file AssociationMap.h.

209  {
210  if (ref_.key.id() != k.id())
211  return 0;
212  typename map_type::const_iterator f = map_.find(k.key());
213  if (f == map_.end())
214  return 0;
215  return Tag::size(f->second);
216  }
size
Write out results.
ref_type ref_
reference set
double f[11][100]
map_type map_
index map

◆ operator[]() [1/2]

template<typename Tag>
const result_type& edm::AssociationMap< Tag >::operator[] ( const key_type k) const
inline

find element with specified reference key

Definition at line 187 of file AssociationMap.h.

187  {
188  helpers::checkRef(ref_.key, k);
189  return get(k.key()).val;
190  }
ref_type ref_
reference set
void checkRef(const RP &rp, const R &r)
throw if r hasn&#39;t the same id as rp

◆ operator[]() [2/2]

template<typename Tag>
template<typename K >
const result_type& edm::AssociationMap< Tag >::operator[] ( const K &  k) const
inline

Definition at line 193 of file AssociationMap.h.

193  {
194  helpers::checkRef(ref_.key, k);
195  return get(k.key()).val;
196  }
ref_type ref_
reference set
void checkRef(const RP &rp, const R &r)
throw if r hasn&#39;t the same id as rp

◆ post_insert()

template<typename Tag>
void edm::AssociationMap< Tag >::post_insert ( )
inline

◆ refProd()

template<typename Tag>
const ref_type& edm::AssociationMap< Tag >::refProd ( ) const
inline

return ref-prod structure

Definition at line 219 of file AssociationMap.h.

Referenced by TrackInfoProducer::produce(), and NuclearTrackCorrector::produce().

219 { return ref_; }
ref_type ref_
reference set

◆ size()

template<typename Tag>
size_type edm::AssociationMap< Tag >::size ( void  ) const
inline

◆ values()

template<typename Tag>
Tag::transient_val_vector edm::AssociationMap< Tag >::values ( )
inline

fill and return a transient key vector required for ROOT interactive usage

Definition at line 229 of file AssociationMap.h.

229 { return Tag::transientValVector(ref_, map_); }
ref_type ref_
reference set
map_type map_
index map

Friends And Related Function Documentation

◆ const_iterator

template<typename Tag>
friend struct const_iterator
friend

◆ Find

template<typename Tag>
friend struct Find
friend

Definition at line 277 of file AssociationMap.h.

◆ OneToMany

template<typename Tag>
template<typename , typename , typename >
friend class OneToMany
friend

Definition at line 284 of file AssociationMap.h.

◆ OneToManyWithQuality

template<typename Tag>
template<typename , typename , typename , typename >
friend class OneToManyWithQuality
friend

Definition at line 286 of file AssociationMap.h.

◆ OneToOne

template<typename Tag>
template<typename , typename , typename >
friend class OneToOne
friend

Definition at line 282 of file AssociationMap.h.

◆ OneToValue

template<typename Tag>
template<typename , typename , typename >
friend class OneToValue
friend

Definition at line 280 of file AssociationMap.h.

◆ refhelper::FindTrait< self, value_type >

template<typename Tag>
friend struct refhelper::FindTrait< self, value_type >
friend

Definition at line 278 of file AssociationMap.h.

Member Data Documentation

◆ map_

template<typename Tag>
map_type edm::AssociationMap< Tag >::map_
private

index map

Definition at line 251 of file AssociationMap.h.

Referenced by edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::begin(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::clear(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::empty(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::end(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::erase(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::find(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::get(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::insert(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::keys(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::map(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::numberOfAssociations(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::post_insert(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::size(), and edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::GsfTrackCollection, unsigned short > >::values().

◆ ref_

template<typename Tag>
ref_type edm::AssociationMap< Tag >::ref_
private

◆ transientMap_

template<typename Tag>
internal_transient_map_type edm::AssociationMap< Tag >::transientMap_
mutableprivate