CMS 3D CMS Logo

Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends

edm::Ref< C, T, F > Class Template Reference

#include <Ref.h>

List of all members.

Public Types

typedef boost::binary_traits
< F >::second_argument_type 
argument_type
typedef T const element_type
typedef F finder_type
typedef boost::remove_cv
< typename
boost::remove_reference
< argument_type >::type >
::type 
key_type
typedef C product_type
 etc. etc.: more nesting levels could be supported ...
typedef T value_type

Public Member Functions

T const * get () const
 Returns C++ pointer to the item.
bool hasCache () const
bool hasProductCache () const
ProductID id () const
 Accessor for product ID.
key_type index () const
bool isAvailable () const
bool isNonnull () const
 Checks for non-null.
bool isNull () const
 Checks for null.
bool isTransient () const
 Checks if this ref is transient (i.e. not persistable).
key_type key () const
 Accessor for product key.
bool operator! () const
 Checks for null.
T const & operator* () const
 Dereference operator.
T const * operator-> () const
 Member dereference operator.
C const * product () const
 Accessor for product collection.
EDProductGetter const * productGetter () const
 Accessor for product getter.
RefBase< key_type > const & ref () const
 Accessor for all data.
 Ref (OrphanHandle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from orphan handle.
 Ref ()
 Default constructor needed for reading from persistent store. Not for direct use.
 Ref (RefProd< C > const &refProd, key_type itemKey)
 Constructor from RefProd<C> and key.
 Ref (TestHandle< C > const &handle, key_type itemKey, bool setNow=true)
 Constructor from test handle.
 Ref (ProductID const &productID, key_type itemKey, EDProductGetter const *prodGetter)
 Ref (RefVector< C, T, F > const &refvector, key_type itemKey, bool setNow=true)
 Constructor from RefVector and index into collection.
 Ref (C const *product, key_type itemKey, bool setNow=true)
 Constructors for ref to object that is not in an event.
 Ref (ProductID const &id)
 Ref (Handle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from handle.
 Ref (ProductID const &productID, T const *item, key_type item_key, C const *product)
 Constructor for use in the various X::fillView(...) functions.
 ~Ref ()
 Destructor.

Private Types

typedef
refhelper::FindRefVectorUsingAdvance
< RefToBaseVector< T > > 
VBF
typedef
refhelper::FindRefVectorUsingAdvance
< RefVector< C, T, F > > 
VF

Private Member Functions

void checkTypeAtCompileTime (C const *)
 Ref (RefCore const &refCore, RefItem< key_type > const &item)

Private Attributes

RefBase< key_typeref_

Friends

class RefVector< C, T, F >
class RefVector< RefVector< C, T, F >, T, VBF >
class RefVector< RefVector< C, T, F >, T, VF >
class RefVector< RefVector< RefVector< C, T, F >, T, VBF >, T, VBF >
class RefVector< RefVector< RefVector< C, T, F >, T, VF >, T, VF >
class RefVectorIterator< C, T, F >

Detailed Description

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
class edm::Ref< C, T, F >

Definition at line 148 of file Ref.h.


Member Typedef Documentation

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef boost::binary_traits<F>::second_argument_type edm::Ref< C, T, F >::argument_type

Definition at line 166 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef T const edm::Ref< C, T, F >::element_type

Definition at line 164 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef F edm::Ref< C, T, F >::finder_type

Definition at line 165 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef boost::remove_cv<typename boost::remove_reference<argument_type>::type>::type edm::Ref< C, T, F >::key_type

Definition at line 167 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef C edm::Ref< C, T, F >::product_type

etc. etc.: more nesting levels could be supported ...

for export

Definition at line 162 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef T edm::Ref< C, T, F >::value_type

Definition at line 163 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef refhelper::FindRefVectorUsingAdvance<RefToBaseVector<T> > edm::Ref< C, T, F >::VBF [private]

Definition at line 151 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
typedef refhelper::FindRefVectorUsingAdvance<RefVector<C, T, F> > edm::Ref< C, T, F >::VF [private]

Definition at line 150 of file Ref.h.


Constructor & Destructor Documentation

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::Ref ( ) [inline]

Default constructor needed for reading from persistent store. Not for direct use.

C is the type of the collection T is the type of a member the collection

Definition at line 172 of file Ref.h.

: ref_() {}
template<typename C, typename T , typename F >
edm::Ref< C, T, F >::Ref ( Handle< C > const &  handle,
key_type  itemKey,
bool  setNow = true 
) [inline]

General purpose constructor from handle.

Definition at line 306 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::Handle< T >::product(), edm::Ref< C, T, F >::ref_, edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                                          :
      ref_(handle.id(), handle.product(), itemKey, 0, 0, false) {
    checkTypeAtCompileTime(handle.product());
    assert(ref_.item().key() == itemKey);
        
    if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
  }
template<typename C, typename T , typename F >
edm::Ref< C, T, F >::Ref ( OrphanHandle< C > const &  handle,
key_type  itemKey,
bool  setNow = true 
) [inline]

General purpose constructor from orphan handle.

Definition at line 317 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::OrphanHandle< T >::product(), edm::Ref< C, T, F >::ref_, edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                                                :
      ref_(handle.id(), handle.product(), itemKey, 0, 0, false) {
    checkTypeAtCompileTime(handle.product());
    assert(ref_.item().key() == itemKey);
        
    if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
  }
template<typename C, typename T, typename F>
edm::Ref< C, T, F >::Ref ( RefVector< C, T, F > const &  refvector,
key_type  itemKey,
bool  setNow = true 
) [inline]

Constructor from RefVector and index into collection.

Constructor from RefVector and index into the collection.

Definition at line 328 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::RefVector< C, T, F >::product(), edm::Ref< C, T, F >::ref_, edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                                                      :
      ref_(refvector.id(), refvector.product(), itemKey, 0, 0, refvector.isTransient()) {
    checkTypeAtCompileTime(refvector.product());
    assert(ref_.item().key() == itemKey);
        
    if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
  }
template<typename C, typename T, typename F>
edm::Ref< C, T, F >::Ref ( C const *  product,
key_type  itemKey,
bool  setNow = true 
) [inline]

Constructors for ref to object that is not in an event.

Constructor for refs to object that is not in an event.

Definition at line 345 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::Ref< C, T, F >::ref_, edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                                   :
      ref_(ProductID(), product, product != 0 ? itemKey : key_traits<key_type>::value, 0, 0, true) {
    checkTypeAtCompileTime(product);
    assert(ref_.item().key() == (product != 0 ? itemKey : key_traits<key_type>::value));
        
    if (setNow && product != 0) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
  }
template<typename C, typename T, typename F>
edm::Ref< C, T, F >::Ref ( TestHandle< C > const &  handle,
key_type  itemKey,
bool  setNow = true 
) [inline]

Constructor from test handle.

constructor from test handle.

Definition at line 357 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::TestHandle< T >::product(), edm::Ref< C, T, F >::ref_, edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                                              :
      ref_(handle.id(), handle.product(), itemKey, 0, 0, true) {
    checkTypeAtCompileTime(handle.product());
    assert(ref_.item().key() == itemKey);
        
    if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
  }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::Ref ( ProductID const &  productID,
key_type  itemKey,
EDProductGetter const *  prodGetter 
) [inline]

Constructor for those users who do not have a product handle, but have a pointer to a product getter (such as the EventPrincipal). prodGetter will ususally be a pointer to the event principal.

Definition at line 201 of file Ref.h.

                                                                                         :
      ref_(productID, 0, itemKey, 0, mustBeNonZero(prodGetter, "Ref", productID), false) {
    }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::Ref ( ProductID const &  productID,
T const *  item,
key_type  item_key,
C const *  product 
) [inline]

Constructor for use in the various X::fillView(...) functions.

Definition at line 212 of file Ref.h.

                                                                                         :
      ref_(productID, product, item_key, item, 0, false) { 
    }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::Ref ( ProductID const &  id) [inline, explicit]

Constructor that creates an invalid ("null") Ref that is associated with a given product (denoted by that product's ProductID).

Definition at line 220 of file Ref.h.

                                      :
      ref_(id, 0, key_traits<key_type>::value, 0, 0, false)
    { }
template<typename C, typename T, typename F>
edm::Ref< C, T, F >::Ref ( RefProd< C > const &  refProd,
key_type  itemKey 
) [inline]

Constructor from RefProd<C> and key.

Definition at line 368 of file Ref.h.

References edm::RefBase< KEY >::item(), edm::RefItem< KEY >::key(), edm::RefCore::productPtr(), edm::Ref< C, T, F >::ref_, edm::RefProd< C >::refCore(), edm::RefBase< KEY >::refCore(), and edm::RefItem< KEY >::setPtr().

                                                               :
      ref_(refProd.id(), refProd.refCore().productPtr(), itemKey, 0, refProd.refCore().productGetter(), refProd.refCore().isTransient()) {
    assert(ref_.item().key() == itemKey);
    if (0 != refProd.refCore().productPtr()) {
      ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));
    }
  }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::~Ref ( ) [inline]

Destructor.

Definition at line 228 of file Ref.h.

{}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
edm::Ref< C, T, F >::Ref ( RefCore const &  refCore,
RefItem< key_type > const &  item 
) [inline, private]

Definition at line 285 of file Ref.h.

                                                               : 
      ref_(refCore, item) {
      }

Member Function Documentation

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
void edm::Ref< C, T, F >::checkTypeAtCompileTime ( C const *  ) [inline, private]

Definition at line 292 of file Ref.h.

Referenced by edm::Ref< C, T, F >::Ref().

{}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
T const* edm::Ref< C, T, F >::get ( void  ) const [inline]

Returns C++ pointer to the item.

Definition at line 239 of file Ref.h.

Referenced by ZMuMuAnalyzer_cynematics::analyze(), calcTopMass::analyze(), SiPixelMuonHLT::analyze(), MultiTrackValidator::analyze(), MuonTrackValidator::analyze(), V0Validator::analyze(), HLTMuonDQMSource::analyze(), TestOutliers::analyze(), RecoMuonValidator::analyze(), SiStripMonitorMuonHLT::analyzeOnTrackClusters(), SegmentToTrackAssociator::associate(), reco::RecoCandidate::bestTrack(), reco::CaloMuon::charge(), MuonAlignmentAnalyzer::doMatching(), MuonAlignment::doMatching(), reco::CaloMuon::eta(), L1ExtraParticleMapProd::evaluateDoubleDifferentCaloObjectTrigger(), L1ExtraParticleMapProd::evaluateDoubleDifferentObjectSameTypeTrigger(), L1ExtraParticleMapProd::evaluateDoubleDifferentObjectTrigger(), L1ExtraParticleMapProd::evaluateDoublePlusSingleObjectTrigger(), L1ExtraParticleMapProd::evaluateDoubleSameObjectTrigger(), L1ExtraParticleMapProd::evaluateForwardRapidityGap(), L1ExtraParticleMapProd::evaluateJetGapJetTrigger(), L1ExtraParticleMapProd::evaluateQuadSameObjectTrigger(), L1ExtraParticleMapProd::evaluateTripleSameObjectTrigger(), CandIsoDepositProducer::extractTrack(), PFCandCommonVertexFitterBase::fill(), CaloMETAnalyzer::fillMonitorElement(), METAnalyzer::fillMonitorElement(), HLTMuonIsoFilter::filter(), HLTDisplacedmumuFilter::filter(), HLTmmkFilter::filter(), HLTMuonL3PreFilter::filter(), HLTMuonDimuonL3Filter::filter(), HLTMuonDimuonL2Filter::filter(), HLTMuonL2PreFilter::filter(), l1extra::L1EmParticle::gctEmCand(), l1extra::L1EtMissParticle::gctEtHad(), l1extra::L1EtMissParticle::gctEtMiss(), l1extra::L1EtMissParticle::gctEtTotal(), l1extra::L1HFRings::gctHFBitCounts(), l1extra::L1HFRings::gctHFEtSums(), l1extra::L1EtMissParticle::gctHtMiss(), l1extra::L1JetParticle::gctJetCand(), pat::PATObject< reco::Muon >::genParticle(), EgammaEcalIsolation::getEcalEtSum(), ConversionFinder::getElectronTrack(), getGenTau(), EgammaHcalIsolation::getHcalESum(), EgammaHcalIsolation::getHcalESumDepth1(), EgammaHcalIsolation::getHcalESumDepth2(), EgammaHcalIsolation::getHcalEtSum(), EgammaHcalIsolation::getHcalEtSumDepth1(), EgammaHcalIsolation::getHcalEtSumDepth2(), TrackerMuonHitExtractor::getMuonHits(), PrimaryVertexAnalyzer4PU::getSimEvents(), EgammaRecHitIsolation::getSum_(), EgammaTowerIsolation::getTowerESum(), EgammaTowerIsolation::getTowerEtSum(), CosmicSplitterValidation::is_gold_muon(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), MuonIdProducer::makeMuon(), ZMuMuOverlap::operator()(), tautools::RecoTauDistanceFromTruthPlugin::operator()(), pat::VertexAssociation::operator->(), reco::CaloMuon::p(), reco::CaloMuon::phi(), PrimaryVertexAnalyzer4PU::printEventSummary(), PrimaryVertexAnalyzer4PU::printPVTrks(), ElectronSqPtTkIsolationProducer::produce(), reco::modules::JetFlavourIdentifier::produce(), MuonTrackProducer::produce(), EgammaHLTEcalRecIsolationProducer::produce(), HLTDisplacedmumuVtxProducer::produce(), ShallowSimTracksProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), cms::MuonTCMETValueMapProducer::propagateTrack(), reco::CaloMuon::pt(), reco::CaloMuon::px(), reco::CaloMuon::py(), reco::CaloMuon::pz(), TCTauAlgorithm::recalculateEnergy(), CosmicRegionalSeedGenerator::regions(), MuScleFitMuonSelector::selectGeneratedMuons(), GsfElectronAlgo::setAmbiguityData(), PFDisplacedVertexCandidateFinder::setInput(), pat::Electron::sourceCandidatePtr(), pat::Muon::sourceCandidatePtr(), reco::CaloMuon::theta(), reco::TrackJet::track(), pat::PATObject< ObjectType >::triggerObjectMatch(), and pat::VertexAssociation::vertex().

                         {
      return isNull() ? 0 : this->operator->();
    }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::hasCache ( ) const [inline]

Definition at line 274 of file Ref.h.

{return ref_.item().ptr() != 0;}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::hasProductCache ( ) const [inline]

Definition at line 272 of file Ref.h.

{return ref_.refCore().productPtr() != 0;}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
ProductID edm::Ref< C, T, F >::id ( void  ) const [inline]
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
key_type edm::Ref< C, T, F >::index ( ) const [inline]

Definition at line 267 of file Ref.h.

{return ref_.item().key();}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::isAvailable ( ) const [inline]
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::isNonnull ( ) const [inline]

Checks for non-null.

Definition at line 248 of file Ref.h.

Referenced by pat::PATObject< ObjectType >::addGenParticleRef(), PFCandConnector::analyseNuclearWPrim(), METTester::analyze(), SiStripElectronAnalyzer::analyze(), ZHistogrammer::analyze(), MCAcceptanceAnalyzer::analyze(), DimuonStatistics::analyze(), PhotonValidator::analyze(), calcTopMass::analyze(), ZMuMuEfficiency::analyze(), SiPixelTrackResidualSource::analyze(), TagProbeFitTreeProducer::analyze(), PhotonAnalyzer::analyze(), ZMuMu_Radiative_analyzer::analyze(), TauMVATrainer::analyze(), V0Validator::analyze(), ZMuMuPerformances::analyze(), HLTMonHcalIsoTrack::analyze(), ZMCHistogrammer::analyze(), gamma_radiative_analyzer::analyze(), PatTrackAnalyzer::analyze(), ZMuMu_MCanalyzer::analyze(), HLTTrack::analyze(), HPSPFRecoTauAlgorithm::applyElectronRejection(), HPSPFRecoTauAlgorithm::applyMuonRejection(), PFElecTkProducer::applySelection(), HLTMuonMatchAndPlot::applyTrackSelection(), reco::RecoCandidate::bestTrack(), reco::RecoCandidate::bestTrackRef(), CaloRecoTauAlgorithm::buildCaloTau(), ConvertedPhotonProducer::buildCollections(), PFRecoTauAlgorithm::buildPFTau(), HPSPFRecoTauAlgorithm::buildPFTau(), helper::GsfElectronCollectionStoreManager::cloneAndStore(), TCMETAlgo::closeToElectron(), CaloRecoTauDiscriminationByLeadingTrackPtCut::discriminate(), PFRecoTauDiscriminationByLeadingObjectPtCut::discriminate(), PFRecoTauDiscriminationByTauPolarization::discriminate(), TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::discriminate(), CaloRecoTauDiscriminationByTauPolarization::discriminate(), PFRecoTauDiscriminationAgainstElectron::discriminate(), PrimaryVertexAnalyzer4PU::dumpHitInfo(), pat::GenericParticle::embedCaloTower(), pat::GenericParticle::embedCombined(), pat::GenericParticle::embedGsfTrack(), pat::Muon::embedPFCandidate(), pat::Electron::embedPFCandidate(), pat::Muon::embedPickyMuon(), pat::GenericParticle::embedStandalone(), pat::GenericParticle::embedSuperCluster(), pat::Muon::embedTpfmsMuon(), pat::GenericParticle::embedTrack(), CaloMETAnalyzer::fillMonitorElement(), METAnalyzer::fillMonitorElement(), PhotonCoreProducer::fillPhotonCollection(), MuonTrackAnalyzer::fillPlots(), JPTJetAnalyzer::fillSiStripHitSoNForSingleHit(), PrimaryVertexAnalyzer4PU::fillTrackHistos(), HSCPTreeBuilder::filter(), reco::tau::AssociationMatchRefSelector< InputType, MatchedType >::filter(), pat::PATObject< reco::Muon >::genParticle(), HLTMuonMatchAndPlot::getCandTrackRef(), ConversionFinder::getElectronTrack(), HSCParticleProducer::getHSCPSeedCollection(), reco::PFJet::getTrackRefs(), susybsm::HSCParticle::hasCaloInfo(), susybsm::HSCParticle::hasMuonRef(), reco::PFTau::hasMuonReference(), RecoTracktoTP::hasRV(), TPtoRecoTrack::hasRVA(), TPtoRecoTrack::hasRVB(), susybsm::HSCParticle::hasTrackIsoRef(), susybsm::HSCParticle::hasTrackRef(), TCMETAlgo::isElectron(), PFMuonAlgo::isGlobalLooseMuon(), PFMuonAlgo::isGlobalTightMuon(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodTrack(), PFMuonAlgo::isIsolatedMuon(), TCMETAlgo::isMuon(), pat::VertexAssociation::isNonnull(), edm::Ref< NuclearInteractionCollection >::isNull(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), PFCandConnector::isPrimaryNucl(), PFElectronAlgo::isPrimaryTrack(), PFCandConnector::isSecondaryNucl(), PFMuonAlgo::isTrackerLooseMuon(), PFMuonAlgo::isTrackerTightMuon(), l1extra::L1EmParticle::L1EmParticle(), l1extra::L1JetParticle::L1JetParticle(), PFBlockAlgo::link(), pat::PATGenCandsFromSimTracksProducer::makeGenParticle_(), RecoTracktoTP::matched(), TPtoRecoTrack::matchedA(), TPtoRecoTrack::matchedB(), PFBlockAlgo::muAssocToTrack(), MuonCosmicCompatibilityFiller::muonTiming(), pat::Muon::numberOfSourceCandidatePtrs(), pat::Electron::numberOfSourceCandidatePtrs(), reco::tau::RecoTauElectronRejectionPlugin::operator()(), reco::tau::RecoTauTruthEmbedder::operator()(), CombinedSVComputer::operator()(), reco::tau::RecoTauImpactParameterSignificancePlugin::operator()(), reco::modules::MCMatchCandRefSelector::operator()(), GhostTrackComputer::operator()(), pat::TriggerObject::origL1GctEmCand(), pat::TriggerObject::origL1GctEtHad(), pat::TriggerObject::origL1GctEtMiss(), pat::TriggerObject::origL1GctEtTotal(), pat::TriggerObject::origL1GctHtMiss(), pat::TriggerObject::origL1GctJetCand(), pat::TriggerObject::origL1GmtMuonCand(), reco::CompositeRefCandidateT< GenParticleRefVector >::overlap(), PFAlgo::postMuonCleaning(), PFMuonAlgo::printMuonProperties(), PrimaryVertexAnalyzer4PU::printRecTrks(), PFTauElecRejectionBenchmark::process(), TrackClassifier::processesAtSimulation(), helper::MuonCollectionStoreManager::processMuon(), pat::PATElectronProducer::produce(), MuonWithPFIsoProducer::produce(), MuonsFromRefitTracksProducer::produce(), pat::PATJetProducer::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), ZMuMuUserDataOneTrack::produce(), GlobalMuonProducer::produce(), PFElecTkProducer::produce(), TrajectorySeedFromMuonProducer::produce(), ZMuMuUserData::produce(), ZMuMuTrackUserData::produce(), DimuonMCMatcher::produce(), pat::PATMuonProducer::produce(), reco::modules::JetFlavourIdentifier::produce(), ZToLLEdmNtupleDumper::produce(), DistortedPFCandProducer::produce(), ZMuMuMuonUserData::produce(), pat::PATTauProducer::produce(), L3MuonProducer::produce(), PFTrackProducer::produce(), cms::MuonTCMETValueMapProducer::propagateTrack(), MuonCosmicCompatibilityFiller::pvMatches(), PFAlgo::reconstructTrack(), PFElecTkProducer::resolveGsfTracks(), GsfElectronAlgo::EventData::retreiveOriginalTrackCollections(), ConvBremPFTrackFinder::runConvBremFinder(), RecoTracktoTP::RV(), TPtoRecoTrack::RVA(), TPtoRecoTrack::RVB(), PFElecTkProducer::selectSecondaries(), PFElectronAlgo::SetCandidates(), PFElectronAlgo::SetIDOutputs(), PFBlockAlgo::setInput(), reco::PFCandidateElectronExtra::setKfTrackRef(), PFElectronAlgo::SetLinks(), SiStripRecHit2D::sharesInput(), SiStripRecHit1D::sharesInput(), SiStripRecHit1D::SiStripRecHit1D(), PFBlockAlgo::testLinkByVertex(), PFRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(), RecoTracktoTP::TP(), TPtoRecoTrack::TP(), HistoryBase::traceSimHistory(), pat::PATObject< ObjectType >::triggerObjectMatch(), pat::PATObject< ObjectType >::triggerObjectMatchByAlgorithm(), pat::PATObject< ObjectType >::triggerObjectMatchByCollection(), pat::PATObject< ObjectType >::triggerObjectMatchByCondition(), pat::PATObject< ObjectType >::triggerObjectMatchByFilter(), pat::PATObject< ObjectType >::triggerObjectMatchByPath(), and pat::PATObject< ObjectType >::triggerObjectMatchByType().

{ return ref_.isNonnull(); }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::isNull ( ) const [inline]

Checks for null.

Definition at line 244 of file Ref.h.

Referenced by TtSemiLepSignalSelMVATrainer::analyze(), ElectronMcSignalValidator::analyze(), DebugZMCTruth::analyze(), EwkMuDQM::analyze(), GsfElectronMCAnalyzer::analyze(), PFElecTkProducer::applySelection(), TrackDetectorAssociator::associate(), HPSPFRecoTauAlgorithm::associateIsolationCandidates(), TrackerHitAssociator::associatePixelRecHit(), PFAlgo::associatePSClusters(), MuonIdProducer::checkLinks(), TagProbeFitTreeProducer::checkMother(), GsfElectronAlgo::completeElectrons(), PFElectronTranslator::createBasicCluster(), JetBProbabilityComputer::discriminator(), reco::TauImpactParameterInfo::discriminator(), JetProbabilityComputer::discriminator(), HistoData::Dump(), metsig::SignAlgoResolutions::evalPF(), TrackHistory::evaluate(), VertexHistory::evaluate(), pat::PATElectronProducer::fillElectron(), pat::helper::OverlapBySuperClusterSeed::fillOverlapsForItem(), LeptonRecoSkim::filter(), HSCParticleProducer::filter(), WMuNuValidator::filter(), HLTMuonTrackMassFilter::filter(), UpdatedMuonInnerTrackRef::findNewRef(), PFElecTkProducer::FindPfRef(), edm::Ref< NuclearInteractionCollection >::get(), HSCParticleProducer::getHSCPSeedCollection(), CaloRecoTauTagInfoAlgorithm::getNeutralEcalBasicClusters(), reco::GsfElectronCore::GsfElectronCore(), reco::PFTau::hasMuonReference(), edm::OneToMany< JetC, reco::TrackCollection >::insert(), edm::OneToValue< BasicClusterCollection, float, unsigned short >::insert(), pat::VertexAssociation::isNull(), PFBlockAlgo::link(), DisplayManager::loadGPFBlocks(), L3TkMuonProducer::makePseudoRef(), MuonErrorMatrixAdjuster::makeTrackExtra(), PFRootEventManager::mcTruthMatching(), ZMuMuIsolationAnalyzer::muTag(), edm::Ref< NuclearInteractionCollection >::operator!(), CandMatcherBase< C1, C2 >::operator()(), tautools::RecoTauDecayModeTruthMatchPlugin::operator()(), tautools::RecoTauDistanceFromTruthPlugin::operator()(), pat::VertexAssociation::operator->(), reco::utilsNew::CandMatcher< C >::operator[](), TrackCountingComputer::orderedSignificances(), HLTMuonTrackMassFilter::pairMatched(), reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack(), reco::PFBlockElementTrack::PFBlockElementTrack(), PFJetBenchmark::process(), PFAlgoTestBenchElectrons::processBlock(), PFRootEventManagerColin::processHIGH_E_TAUS(), DistortedMuonProducer::produce(), TtSemiLepSignalSelMVAComputer::produce(), GsfElectronCoreProducer::produce(), GlobalTrackQualityProducer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), PFElectronTranslator::produce(), DistortedPFCandProducer::produce(), PFPileUp::produce(), GsfElectronCoreEcalDrivenProducer::produce(), PFTrackProducer::produce(), TCTauAlgorithm::recalculateEnergy(), PFElecTkProducer::resolveGsfTracks(), L3TkMuonProducer::seedRefBypT(), pf2pat::MuonIDPFCandidateSelectorDefinition::select(), pf2pat::ElectronIDPFCandidateSelectorDefinition::select(), GsfElectronAlgo::setCutBasedPreselectionFlag(), PropagateToMuon::startingState(), reco::GsfElectronCore::superCluster(), LinkByRecHit::testECALAndPSByRecHit(), LinkByRecHit::testTrackAndClusterByRecHit(), GlobalCosmicMuonTrajectoryBuilder::trajectories(), reco::tau::qcuts::trkLongitudinalImpactParameter(), reco::tau::qcuts::trkTransverseImpactParameter(), and pat::VertexAssociation::vertex().

{return !isNonnull(); }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::isTransient ( ) const [inline]

Checks if this ref is transient (i.e. not persistable).

Definition at line 281 of file Ref.h.

Referenced by TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::discriminate().

{return ref_.refCore().isTransient();}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
key_type edm::Ref< C, T, F >::key ( ) const [inline]

Accessor for product key.

Definition at line 264 of file Ref.h.

Referenced by GenParticlePruner::addDaughterRefs(), GenParticlePruner::addMotherRefs(), METTester::analyze(), TrackerDpgAnalysis::analyze(), ZMuMuAnalyzer_cynematics::analyze(), SiPixelHitEfficiencySource::analyze(), SiPixelTrackResidualSource::analyze(), ZMuMuAnalyzer::analyze(), MuonTrackValidator::analyze(), TkConvValidator::analyze(), ConvertedPhotonProducer::cleanCollections(), electronSelector(), TriggerSummaryProducerAOD::fillFilterObjectMember(), PhotonCoreProducer::fillPhotonCollection(), HLTMuonL3PreFilter::filter(), reco::TauMassTagInfo::getInvariantMass(), TrackerMuonHitExtractor::getMuonHits(), edm::OneToMany< JetC, reco::TrackCollection >::insert(), edm::OneToValue< BasicClusterCollection, float, unsigned short >::insert(), ZMuMuAnalyzer_cynematics::isContained(), TCMETAlgo::isElectron(), NuclearInteractionEDProducer::isInside(), TCMETAlgo::isMuon(), DisplayManager::loadGPFBlocks(), L3TkMuonProducer::makePseudoRef(), TrackingTruthProducer::mergeBremsstrahlung(), pat::TriggerEvent::objectInCondition(), pat::TriggerEvent::objectInFilter(), reco::tau::RecoTauPhotonFilter::operator()(), CandMatcherBase< C1, C2 >::operator()(), edm::CompareRefDetSet< T, C >::operator()(), GenParticlesHelper::operator<<(), reco::utilsNew::CandMatcher< C >::operator[](), PFAlgo::postMuonCleaning(), printseed(), TrackClusterRemover::process(), TrackInfoProducer::produce(), DeDxEstimatorProducer::produce(), reco::modules::CosmicTrackSelector::produce(), cms::SimpleTrackListMerger::produce(), reco::modules::TrackMultiSelector::produce(), reco::modules::AnalyticalTrackSelector::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), GlobalMuonProducer::produce(), RecoTauPiZeroProducer::produce(), reco::modules::TrackFullCloneSelectorBase< Selector >::produce(), PFConversionProducer::produce(), reco::modules::TrackerTrackHitFilter::produce(), TkAlCaOverlapTagger::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), MuonTrackProducer::produce(), DistortedPFCandProducer::produce(), PFPileUp::produce(), L3MuonProducer::produce(), L3TkMuonProducer::produce(), PFV0Producer::produce(), ClusterRemovalRefSetter::reKey(), DisplayManager::retrieveBadBrems(), PFBlockAlgo::setInput(), ConvertedPhotonProducer::solveAmbiguity(), PhotonCoreProducer::solveAmbiguity(), pat::Electron::sourceCandidatePtr(), pat::Muon::sourceCandidatePtr(), PFBlockAlgo::testLinkBySuperCluster(), reco::TrackJet::track(), and SiStripMonitorTrack::trackStudy().

{return ref_.item().key();}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
bool edm::Ref< C, T, F >::operator! ( ) const [inline]

Checks for null.

Definition at line 251 of file Ref.h.

{return isNull();}
template<typename C , typename T , typename F >
T const & edm::Ref< C, T, F >::operator* ( ) const [inline]

Dereference operator.

Definition at line 389 of file Ref.h.

                                {
    return *getPtr<C, T, F>(ref_.refCore(), ref_.item());
  }
template<typename C , typename T , typename F >
T const * edm::Ref< C, T, F >::operator-> ( ) const [inline]

Member dereference operator.

Definition at line 397 of file Ref.h.

Referenced by edm::Ref< NuclearInteractionCollection >::get().

                                 {
    return getPtr<C, T, F>(ref_.refCore(), ref_.item());
  }
template<typename C , typename T , typename F >
C const * edm::Ref< C, T, F >::product ( ) const [inline]

Accessor for product collection.

Definition at line 381 of file Ref.h.

References svgfig::template().

Referenced by edm::RefToBaseProd< T >::RefToBaseProd().

                              {
      return isNull() ? 0 : edm::template getProduct<C>(ref_.refCore());
  }
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
EDProductGetter const* edm::Ref< C, T, F >::productGetter ( ) const [inline]

Accessor for product getter.

Definition at line 257 of file Ref.h.

{return ref_.refCore().productGetter();}
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
RefBase<key_type> const& edm::Ref< C, T, F >::ref ( ) const [inline]

Accessor for all data.

Definition at line 270 of file Ref.h.

Referenced by edm::operator==(), and edm::RefVector< TrackingRecHitCollection >::push_back().

{return ref_;}

Friends And Related Function Documentation

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVector< C, T, F > [friend]

Definition at line 153 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVector< RefVector< C, T, F >, T, VBF > [friend]

Definition at line 156 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVector< RefVector< C, T, F >, T, VF > [friend]

Definition at line 154 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVector< RefVector< RefVector< C, T, F >, T, VBF >, T, VBF > [friend]

Definition at line 157 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVector< RefVector< RefVector< C, T, F >, T, VF >, T, VF > [friend]

Definition at line 155 of file Ref.h.

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
friend class RefVectorIterator< C, T, F > [friend]

Definition at line 152 of file Ref.h.


Member Data Documentation

template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
RefBase<key_type> edm::Ref< C, T, F >::ref_ [private]