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 hasProductCache () const
 Returns true if container referenced by the Ref has been cached.
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.
 Ref (C const *product, key_type itemKey, bool setNow=true)
 Constructors for ref to object that is not in an event.
 Ref (OrphanHandle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from orphan handle.
 Ref (ProductID const &iProductID, T const *, key_type iItemKey, C const *iProduct)
 Constructor for use in the various X::fillView(...) functions.
 Ref (RefCore const &iRefCore, key_type const &iKey)
 Ref (RefProd< C > const &refProd, key_type itemKey)
 Constructor from RefProd<C> and key.
 Ref (Handle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from handle.
 Ref (ProductID const &iId)
 Ref (ProductID const &productID, key_type itemKey, EDProductGetter const *prodGetter)
 Ref (TestHandle< C > const &handle, key_type itemKey, bool setNow=true)
 Constructor from test handle.
 Ref ()
 Default constructor needed for reading from persistent store. Not for direct use.
 Ref (RefVector< C, T, F > const &refvector, key_type itemKey, bool setNow=true)
 Constructor from RefVector and index into collection.
RefCore const & refCore () const
 ~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 *)

Private Attributes

key_type index_
RefCore product_

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 151 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 169 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 167 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 168 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 170 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 165 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 166 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 154 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 153 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 175 of file Ref.h.

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 468 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::Ref< C, T, F >::index_, edm::Ref< C, T, F >::key(), edm::Handle< T >::product(), and edm::Ref< C, T, F >::product_.

                                                                          :
      product_(handle.id(), handle.product(), 0, false), index_(itemKey){
    checkTypeAtCompileTime(handle.product());
    assert(key() == itemKey);
        
    if (setNow) {getPtr_<C, T, F>(product_, index_);}
  }
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 490 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::Ref< C, T, F >::index_, edm::Ref< C, T, F >::key(), edm::OrphanHandle< T >::product(), and edm::Ref< C, T, F >::product_.

                                                                                :
  product_(handle.id(), handle.product(), 0, false), index_(itemKey) {
    checkTypeAtCompileTime(handle.product());
    assert(key() == itemKey);
        
    if (setNow) {getPtr_<C, T, F>(product_, index_);}
  }
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 512 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::Ref< C, T, F >::index_, edm::Ref< C, T, F >::key(), edm::RefVector< C, T, F >::product(), and edm::Ref< C, T, F >::product_.

                                                                                      :
      product_(refvector.id(), refvector.product(), 0, refvector.isTransient()), index_(itemKey) {
    checkTypeAtCompileTime(refvector.product());
    assert(key() == itemKey);
        
    if (setNow) {getPtr_<C, T, F>(product_, index_);}
  }
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 540 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::Ref< C, T, F >::index_, edm::Ref< C, T, F >::key(), and edm::Ref< C, T, F >::product_.

                                                                      :
    product_(ProductID(), iProduct, 0, true), index_(iProduct != 0 ? iItemKey : key_traits<key_type>::value) {
    checkTypeAtCompileTime(iProduct);
    assert(key() == (iProduct != 0 ? iItemKey : key_traits<key_type>::value));
        
    if (iSetNow && iProduct != 0) {getPtr_<C, T, F>(product_, index_);}
  }
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 562 of file Ref.h.

References edm::Ref< C, T, F >::checkTypeAtCompileTime(), edm::Ref< C, T, F >::index_, edm::Ref< C, T, F >::key(), edm::TestHandle< T >::product(), and edm::Ref< C, T, F >::product_.

                                                                              :
      product_(handle.id(), handle.product(), 0, true), index_(itemKey) {
    checkTypeAtCompileTime(handle.product());
    assert(key() == itemKey);
        
    if (setNow) {getPtr_<C, T, F>(product_, index_);}
  }
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 204 of file Ref.h.

                                                                                         :
      product_(productID, 0, mustBeNonZero(prodGetter, "Ref", productID), false), index_(itemKey) {
    }
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 &  iProductID,
T const *  ,
key_type  iItemKey,
C const *  iProduct 
) [inline]

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

Definition at line 215 of file Ref.h.

                                                                                       :
      product_(iProductID, iProduct, 0, false), index_(iItemKey)
    { }
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 &  iId) [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 223 of file Ref.h.

                                       :
      product_(iId, 0, 0, false), index_(key_traits<key_type>::value)
    { }
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 583 of file Ref.h.

References edm::Ref< C, T, F >::index().

                                                               :
      product_(refProd.id(), refProd.refCore().productPtr(), refProd.refCore().productGetter(), refProd.refCore().isTransient()), index_(itemKey) {
    assert(index() == itemKey);
  }
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 231 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 &  iRefCore,
key_type const &  iKey 
) [inline]

Definition at line 287 of file Ref.h.

                                                       : 
      product_(iRefCore), index_(iKey) {
    }

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 294 of file Ref.h.

Referenced by edm::Ref< C, T, F >::Ref(), and edm::Ref< REF_FOR_VECTOR_ARGS >::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 242 of file Ref.h.

Referenced by ZMuMuAnalyzer_cynematics::analyze(), calcTopMass::analyze(), MultiTrackValidator::analyze(), SiPixelMuonHLT::analyze(), V0Validator::analyze(), MuonTrackValidator::analyze(), RecoMuonValidator::analyze(), TestOutliers::analyze(), SiStripMonitorMuonHLT::analyzeOnTrackClusters(), SegmentToTrackAssociator::associate(), reco::Muon::bestTrack(), 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(), METAnalyzer::fillMonitorElement(), CaloMETAnalyzer::fillMonitorElementTriggered(), 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(), HLTMuonIsoFilter::hltFilter(), HLTDisplacedmumuFilter::hltFilter(), HLTmmkFilter::hltFilter(), HLTDisplacedmumumuFilter::hltFilter(), HLTMuonTrimuonL3Filter::hltFilter(), HLTMuonL3PreFilter::hltFilter(), HLTMuonDimuonL2Filter::hltFilter(), HLTMuonDimuonL3Filter::hltFilter(), HLTmmkkFilter::hltFilter(), CosmicSplitterValidation::is_gold_muon(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), MuonIdProducer::makeMuon(), ZMuMuOverlap::operator()(), tautools::RecoTauDecayModeTruthMatchPlugin::operator()(), pat::VertexAssociation::operator->(), reco::CaloMuon::p(), reco::CaloMuon::phi(), PrimaryVertexAnalyzer4PU::printEventSummary(), PrimaryVertexAnalyzer4PU::printPVTrks(), ElectronSqPtTkIsolationProducer::produce(), HLTDisplacedmumumuVtxProducer::produce(), reco::modules::JetFlavourIdentifier::produce(), MuonTrackProducer::produce(), HLTDisplacedmumuVtxProducer::produce(), EgammaHLTEcalRecIsolationProducer::produce(), ShallowSimTracksProducer::produce(), GsfElectronCoreEcalDrivenProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), cms::MuonTCMETValueMapProducer::propagateTrack(), reco::CaloMuon::pt(), reco::CaloMuon::px(), reco::CaloMuon::py(), reco::CaloMuon::pz(), TCTauAlgorithm::recalculateEnergy(), CosmicRegionalSeedGenerator::regions(), PFTauSelectorDefinition::select(), MuScleFitMuonSelector::selectGeneratedMuons(), GsfElectronAlgo::setAmbiguityData(), PFElectronAlgo::SetCandidates(), PFDisplacedVertexCandidateFinder::setInput(), MuonTrackCSCChamberResidual::setSegmentResidual(), MuonTrackDT2ChamberResidual::setSegmentResidual(), MuonTrackDT13ChamberResidual::setSegmentResidual(), 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 >::hasProductCache ( ) const [inline]

Returns true if container referenced by the Ref has been cached.

Definition at line 272 of file Ref.h.

{return product_.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 269 of file Ref.h.

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

{return index_;}
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 250 of file Ref.h.

Referenced by pat::PATObject< ObjectType >::addGenParticleRef(), BetaCalculatorRPC::addInfoToCandidate(), PFCandConnector::analyseNuclearWPrim(), DimuonStatistics::analyze(), MCAcceptanceAnalyzer::analyze(), ZHistogrammer::analyze(), SiStripElectronAnalyzer::analyze(), METTester::analyze(), PhotonValidator::analyze(), calcTopMass::analyze(), ZMuMuEfficiency::analyze(), SiPixelTrackResidualSource::analyze(), PhotonAnalyzer::analyze(), TagProbeFitTreeProducer::analyze(), WenuPlots::analyze(), ZMuMu_Radiative_analyzer::analyze(), TauMVATrainer::analyze(), ZMuMuPerformances::analyze(), V0Validator::analyze(), HLTMonHcalIsoTrack::analyze(), RecoMuonValidator::analyze(), gamma_radiative_analyzer::analyze(), ZMCHistogrammer::analyze(), ZMuMu_MCanalyzer::analyze(), L25TauAnalyzer::analyze(), PatTrackAnalyzer::analyze(), HLTTrack::analyze(), HPSPFRecoTauAlgorithm::applyElectronRejection(), HPSPFRecoTauAlgorithm::applyMuonRejection(), PFElecTkProducer::applySelection(), reco::RecoCandidate::bestTrack(), reco::RecoCandidate::bestTrackRef(), CaloRecoTauAlgorithm::buildCaloTau(), ConvertedPhotonProducer::buildCollections(), PFRecoTauAlgorithm::buildPFTau(), HPSPFRecoTauAlgorithm::buildPFTau(), helper::GsfElectronCollectionStoreManager::cloneAndStore(), TCMETAlgo::closeToElectron(), PFRecoTauDiscriminationByFlight::discriminate(), CaloRecoTauDiscriminationByLeadingTrackPtCut::discriminate(), PFRecoTauDiscriminationByLeadingObjectPtCut::discriminate(), PFRecoTauDiscriminationByTauPolarization::discriminate(), TauDiscriminationAgainstCaloMuon< TauType, TauDiscriminator >::discriminate(), CaloRecoTauDiscriminationByTauPolarization::discriminate(), PFRecoTauDiscriminationAgainstElectron::discriminate(), RecoTauDiscriminationByGenMatch::discriminate(), PrimaryVertexAnalyzer4PU::dumpHitInfo(), PFPhotonAlgo::EarlyConversion(), pat::GenericParticle::embedCaloTower(), pat::GenericParticle::embedCombined(), pat::Muon::embedDytMuon(), pat::GenericParticle::embedGsfTrack(), pat::Muon::embedPFCandidate(), pat::Electron::embedPFCandidate(), pat::Muon::embedPickyMuon(), pat::GenericParticle::embedStandalone(), pat::GenericParticle::embedSuperCluster(), pat::Muon::embedTpfmsMuon(), pat::GenericParticle::embedTrack(), RecoMuonValidator::MuonME::fill(), METAnalyzer::fillMonitorElement(), CaloMETAnalyzer::fillMonitorElementTriggered(), PhotonCoreProducer::fillPhotonCollection(), JPTJetAnalyzer::fillSiStripHitSoNForSingleHit(), PrimaryVertexAnalyzer4PU::fillTrackHistos(), HSCPTreeBuilder::filter(), reco::tau::AssociationMatchRefSelector< InputType, MatchedType, OutputType, ClonePolicy >::filter(), pat::PATObject< reco::Muon >::genParticle(), ConversionFinder::getElectronTrack(), HSCParticleProducer::getHSCPSeedCollection(), reco::tau::getTrack(), reco::PFJet::getTrackRefs(), susybsm::HSCParticle::hasCaloInfo(), susybsm::HSCParticle::hasMuonRef(), reco::PFTau::hasMuonReference(), RecoTracktoTP::hasRV(), TPtoRecoTrack::hasRVA(), TPtoRecoTrack::hasRVB(), susybsm::HSCParticle::hasTrackIsoRef(), susybsm::HSCParticle::hasTrackRef(), HLTMuonIsoFilter::hltFilter(), HLTDoubletDZ< T1, T2 >::hltFilter(), reco::Muon::isAValidMuonTrack(), TCMETAlgo::isElectron(), PFMuonAlgo::isGlobalLooseMuon(), PFMuonAlgo::isGlobalTightMuon(), cms::MuonTCMETValueMapProducer::isGoodCaloMuon(), cms::MuonTCMETValueMapProducer::isGoodMuon(), cms::MuonTCMETValueMapProducer::isGoodTrack(), PFMuonAlgo::isIsolatedMuon(), TCMETAlgo::isMuon(), pat::VertexAssociation::isNonnull(), edm::Ref< REF_FOR_VECTOR_ARGS >::isNull(), edm::Ref< TrackingRecHitCollection >::isNull(), MuonCosmicCompatibilityFiller::isOverlappingMuon(), PFCandConnector::isPrimaryNucl(), PFElectronAlgo::isPrimaryTrack(), PFElecTkProducer::isSameEgSC(), PFCandConnector::isSecondaryNucl(), PFElecTkProducer::isSharingEcalEnergyWithEgSC(), PFMuonAlgo::isTrackerLooseMuon(), PFMuonAlgo::isTrackerTightMuon(), l1extra::L1EmParticle::L1EmParticle(), l1extra::L1JetParticle::L1JetParticle(), PFBlockAlgo::link(), pat::PATGenCandsFromSimTracksProducer::makeGenParticle_(), RecoTracktoTP::matched(), TPtoRecoTrack::matchedA(), TPtoRecoTrack::matchedB(), ConversionTools::matchesConversion(), PFBlockAlgo::muAssocToTrack(), MuonCosmicCompatibilityFiller::muonTiming(), ElectronMVAEstimator::mva(), pat::Muon::numberOfSourceCandidatePtrs(), pat::Electron::numberOfSourceCandidatePtrs(), reco::tau::RecoTauElectronRejectionPlugin::operator()(), reco::tau::RecoTauObjectEmbedder< T >::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(), MuonWithPFIsoProducer::produce(), pat::PATElectronProducer::produce(), PFLinker::produce(), pat::PATJetProducer::produce(), ZMuMuUserDataOneTrack::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), GlobalMuonProducer::produce(), PFElecTkProducer::produce(), TrajectorySeedFromMuonProducer::produce(), ZMuMuTrackUserData::produce(), ZMuMuUserData::produce(), DimuonMCMatcher::produce(), ZToLLEdmNtupleDumper::produce(), reco::modules::JetFlavourIdentifier::produce(), pat::PATMuonProducer::produce(), DistortedPFCandProducer::produce(), ZMuMuMuonUserData::produce(), L1HLTTauMatching::produce(), pat::PATTauProducer::produce(), L3MuonProducer::produce(), PFTrackProducer::produce(), cms::MuonTCMETValueMapProducer::propagateTrack(), MuonCosmicCompatibilityFiller::pvMatches(), PFAlgo::reconstructTrack(), GsfElectronAlgo::EventData::retreiveOriginalTrackCollections(), ConvBremPFTrackFinder::runConvBremFinder(), RecoTracktoTP::RV(), TPtoRecoTrack::RVA(), TPtoRecoTrack::RVB(), PFElectronAlgo::SetCandidates(), reco::PFCandidate::setConversionRef(), reco::PFCandidate::setDisplacedVertexRef(), reco::PFCandidate::setGsfElectronRef(), reco::PFCandidate::setGsfTrackRef(), PFElectronAlgo::SetIDOutputs(), PFBlockAlgo::setInput(), reco::PFCandidateElectronExtra::setKfTrackRef(), reco::tau::RecoTauQualityCuts::setLeadTrack(), PFElectronAlgo::SetLinks(), reco::PFCandidate::setMuonRef(), reco::PFCandidate::setPFElectronExtraRef(), reco::PFCandidate::setPFPhotonExtraRef(), reco::PFCandidate::setPhotonRef(), reco::PFCandidate::setSuperClusterRef(), reco::PFCandidate::setTrackRef(), reco::PFCandidate::setV0Ref(), PFMuonSelector::spring11Cuts(), PFBlockAlgo::testLinkByVertex(), PFRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(), muon::TMR(), 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().

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 247 of file Ref.h.

Referenced by GsfElectronAlgo::addPflowInfo(), TtSemiLepSignalSelMVATrainer::analyze(), ElectronConversionRejectionValidator::analyze(), ElectronMcSignalValidator::analyze(), DebugZMCTruth::analyze(), EwkMuDQM::analyze(), GsfElectronMCAnalyzer::analyze(), PFElecTkProducer::applySelection(), TrackDetectorAssociator::associate(), reco::tau::RecoTauVertexAssociator::associatedVertex(), HPSPFRecoTauAlgorithm::associateIsolationCandidates(), TrackerHitAssociator::associatePixelRecHit(), PFAlgo::associatePSClusters(), MuonIdProducer::checkLinks(), TagProbeFitTreeProducer::checkMother(), GsfElectronAlgo::completeElectrons(), PFElectronTranslator::createBasicCluster(), PFPhotonTranslator::createBasicCluster(), GsfElectronAlgo::createElectron(), PFRecoTauDiscriminationAgainstElectron::discriminate(), JetBProbabilityComputer::discriminator(), reco::TauImpactParameterInfo::discriminator(), JetProbabilityComputer::discriminator(), HistoData::Dump(), metsig::SignAlgoResolutions::evalPF(), TrackHistory::evaluate(), VertexHistory::evaluate(), pat::PATElectronProducer::fillElectron(), PFElectronTranslator::fillMVAValueMap(), pat::helper::OverlapBySuperClusterSeed::fillOverlapsForItem(), HSCParticleProducer::filter(), LeptonRecoSkim::filter(), HSCPEventFilter::filter(), WMuNuValidator::filter(), RecoTauDifferenceAnalyzer::filter(), HSCPFilter::filter(), UpdatedMuonInnerTrackRef::findNewRef(), PFElecTkProducer::FindPfRef(), edm::Ref< REF_FOR_VECTOR_ARGS >::get(), edm::Ref< TrackingRecHitCollection >::get(), HSCParticleProducer::getHSCPSeedCollection(), CaloRecoTauTagInfoAlgorithm::getNeutralEcalBasicClusters(), reco::GsfElectronCore::GsfElectronCore(), ConversionTools::hasMatchedConversion(), ConversionTools::hasMatchedPromptElectron(), reco::PFTau::hasMuonReference(), HLTMuonTrackMassFilter::hltFilter(), edm::OneToMany< JetC, reco::TrackCollection >::insert(), edm::OneToValue< BasicClusterCollection, float, unsigned short >::insert(), KDTreeLinkerTrackHcal::insertFieldClusterElt(), KDTreeLinkerTrackEcal::insertFieldClusterElt(), KDTreeLinkerPSEcal::insertFieldClusterElt(), pat::VertexAssociation::isNull(), CandidateSelector::isSelected(), PFBlockAlgo::link(), DisplayManager::loadGPFBlocks(), L3TkMuonProducer::makePseudoRef(), MuonErrorMatrixAdjuster::makeTrackExtra(), ConversionTools::matchedConversion(), ConversionTools::matchedPromptElectron(), ConversionTools::matchesConversion(), PFRootEventManager::mcTruthMatching(), reco::tau::qcuts::minTrackVertexWeight(), ZMuMuIsolationAnalyzer::muTag(), edm::Ref< REF_FOR_VECTOR_ARGS >::operator!(), edm::Ref< TrackingRecHitCollection >::operator!(), CandMatcherBase< C1, C2 >::operator()(), tautools::RecoTauDecayModeTruthMatchPlugin::operator()(), tautools::RecoTauDistanceFromTruthPlugin::operator()(), pat::VertexAssociation::operator->(), reco::utilsNew::CandMatcher< C >::operator[](), TrackCountingComputer::orderedSignificances(), PromptTrackCountingComputer::orderedSignificances(), HLTMuonTrackMassFilter::pairMatched(), reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack(), reco::PFBlockElementTrack::PFBlockElementTrack(), PFCandidateChecker::printElementsInBlocks(), PFJetBenchmark::process(), PFAlgoTestBenchElectrons::processBlock(), PFRootEventManagerColin::processHIGH_E_TAUS(), DistortedMuonProducer::produce(), TtSemiLepSignalSelMVAComputer::produce(), PFPhotonTranslator::produce(), L3MuonCandidateProducer::produce(), PFElecTkProducer::produce(), GlobalTrackQualityProducer::produce(), FFTJetPFPileupCleaner::produce(), RecoTauProducer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), PFElectronTranslator::produce(), DistortedPFCandProducer::produce(), PFTrackProducer::produce(), GsfElectronCoreEcalDrivenProducer::produceEcalDrivenCore(), edm::Ref< REF_FOR_VECTOR_ARGS >::product(), TCTauAlgorithm::recalculateEnergy(), L3TkMuonProducer::seedRefBypT(), pf2pat::MuonIDPFCandidateSelectorDefinition::select(), pf2pat::ElectronIDPFCandidateSelectorDefinition::select(), GsfElectronAlgo::setCutBasedPreselectionFlag(), PropagateToMuon::startingState(), reco::GsfElectronCore::superCluster(), LinkByRecHit::testECALAndPSByRecHit(), LinkByRecHit::testTrackAndClusterByRecHit(), PFRecoTauDiscriminationByFlightPathSignificance::threeProngFlightPathSig(), 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 279 of file Ref.h.

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

{return product_.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 266 of file Ref.h.

Referenced by TkPixelMeasurementDet::accept(), TkStripMeasurementDet::accept(), GenParticlePruner::addDaughterRefs(), GenParticlePruner::addMotherRefs(), METTester::analyze(), ZMuMuAnalyzer_cynematics::analyze(), TrackerDpgAnalysis::analyze(), PhotonValidator::analyze(), SiPixelHitEfficiencySource::analyze(), SiPixelTrackResidualSource::analyze(), ZMuMuAnalyzer::analyze(), MuonTrackValidator::analyze(), TkConvValidator::analyze(), ConvertedPhotonProducer::cleanCollections(), RecoTauIndexDiscriminatorProducer::discriminate(), electronSelector(), reco::tau::disc::EMFraction(), TkStripMeasurementDet::fastMeasurements(), TriggerSummaryProducerAOD::fillFilterObjectMember(), PhotonCoreProducer::fillPhotonCollection(), reco::TauMassTagInfo::getInvariantMass(), TrackerMuonHitExtractor::getMuonHits(), HLTMuonL3PreFilter::hltFilter(), edm::OneToMany< JetC, reco::TrackCollection >::insert(), edm::OneToValue< BasicClusterCollection, float, unsigned short >::insert(), ZMuMuAnalyzer_cynematics::isContained(), TCMETAlgo::isElectron(), NuclearInteractionEDProducer::isInside(), TCMETAlgo::isMuon(), edm::Ref< REF_FOR_VECTOR_ARGS >::isNonnull(), DisplayManager::loadGPFBlocks(), L3TkMuonProducer::makePseudoRef(), ConversionTools::matchesConversion(), reco::modules::HICaloCompatibleTrackSelector::matchPFCandToTrack(), TrackingTruthProducer::mergeBremsstrahlung(), pat::TriggerEvent::objectInCondition(), pat::TriggerEvent::objectInFilter(), reco::tau::RecoTauPhotonFilter::operator()(), CandMatcherBase< C1, C2 >::operator()(), edm::CompareRefDetSet< T, C >::operator()(), edm::Ref< REF_FOR_VECTOR_ARGS >::operator*(), edm::Ref< REF_FOR_VECTOR_ARGS >::operator->(), GenParticlesHelper::operator<<(), edm::operator==(), reco::utilsNew::CandMatcher< C >::operator[](), PFAlgo::postMuonCleaning(), printseed(), HLTTrackClusterRemover::process(), SeedClusterRemover::process(), TrackClusterRemover::process(), TrackInfoProducer::produce(), DeDxEstimatorProducer::produce(), reco::modules::CosmicTrackSelector::produce(), cms::SimpleTrackListMerger::produce(), cms::TrackListMerger::produce(), reco::modules::TrackMultiSelector::produce(), reco::modules::AnalyticalTrackSelector::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), GlobalMuonProducer::produce(), RecoTauPiZeroProducer::produce(), FFTJetPFPileupCleaner::produce(), reco::modules::TrackFullCloneSelectorBase< Selector >::produce(), PFConversionProducer::produce(), reco::modules::TrackerTrackHitFilter::produce(), TkAlCaOverlapTagger::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), MuonTrackProducer::produce(), DistortedPFCandProducer::produce(), RecoTauJetRegionProducer::produce(), L3MuonProducer::produce(), reco::modules::HICaloCompatibleTrackSelector::produce(), L3TkMuonProducer::produce(), MuonProducer::produce(), PFV0Producer::produce(), edm::RefVector< TrackingRecHitCollection >::push_back(), TkStripMeasurementDet::recHits(), edm::Ref< C, T, F >::Ref(), edm::Ref< REF_FOR_VECTOR_ARGS >::Ref(), DisplayManager::retrieveBadBrems(), reco::PFCandidate::setConversionRef(), reco::PFCandidate::setDisplacedVertexRef(), reco::PFCandidate::setGsfElectronRef(), reco::PFCandidate::setGsfTrackRef(), PFBlockAlgo::setInput(), reco::PFCandidate::setMuonRef(), reco::PFCandidate::setPFElectronExtraRef(), reco::PFCandidate::setPFPhotonExtraRef(), reco::PFCandidate::setPhotonRef(), reco::PFCandidate::setSuperClusterRef(), reco::PFCandidate::setTrackRef(), reco::PFCandidate::setV0Ref(), TkStripMeasurementDet::simpleRecHits(), ConvertedPhotonProducer::solveAmbiguity(), PhotonCoreProducer::solveAmbiguity(), pat::Electron::sourceCandidatePtr(), pat::Muon::sourceCandidatePtr(), PFBlockAlgo::testLinkBySuperCluster(), reco::TrackJet::track(), and SiStripMonitorTrack::trackStudy().

{return index_;}
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 253 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 615 of file Ref.h.

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

Member dereference operator.

Definition at line 629 of file Ref.h.

Referenced by edm::Ref< REF_FOR_VECTOR_ARGS >::get(), and edm::Ref< TrackingRecHitCollection >::get().

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

Accessor for product collection.

Definition at line 601 of file Ref.h.

References svgfig::template().

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

                              {
      return isNull() ? 0 : edm::template getProduct<C>(product_);
  }
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]
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
RefCore const& edm::Ref< C, T, F >::refCore ( ) const [inline]

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 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, VBF > [friend]

Definition at line 159 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 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, VBF >, T, VBF > [friend]

Definition at line 160 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 158 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 155 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>
key_type edm::Ref< C, T, F >::index_ [private]
template<typename C, typename T = typename refhelper::ValueTrait<C>::value, typename F = typename refhelper::FindTrait<C, T>::value>
RefCore edm::Ref< C, T, F >::product_ [mutable, private]