CMS 3D CMS Logo

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

#include <DataFormats/Common/interface/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
 Checks if collection is in memory or available in the Event.
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.
T const & operator * () const
 Dereference operator.
bool operator! () const
 Checks for null.
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 (RefProd< C > const &refProd, key_type itemKey)
 Constructor from RefProd<C> and key.
 Ref (ProductID const &id)
 Constructor that creates an invalid ("null") Ref that is associated with a given product (denoted by that product's ProductID).
 Ref (ProductID const &productID, T const *item, key_type item_key, C const *product)
 Constructor for use in the various X::fillView(...) functions.
 Ref (ProductID const &productID, key_type itemKey, EDProductGetter const *prodGetter)
 Constructor for those users who do not have a product handle, but have a pointer to a product getter (such as the EventPrincipal).
 Ref (TestHandle< C > const &handle, key_type itemKey, bool setNow=true)
 Constructor from test handle.
 Ref (C const *product, key_type itemKey, bool setNow=true)
 Constructors for ref to object that is not in an event.
 Ref (RefVector< C, T, F > const &refvector, key_type itemKey, bool setNow=true)
 Constructor from RefVector and index into collection.
 Ref (OrphanHandle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from orphan handle.
 Ref (Handle< C > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from handle.
 Ref ()
 C is the type of the collection T is the type of a member the collection.
 ~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 *ptr)
 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 150 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 168 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 166 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 167 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 169 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 164 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 165 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 153 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 152 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]

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

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

Definition at line 174 of file Ref.h.

00174 : 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 308 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().

00308                                                                           :
00309       ref_(handle.id(), handle.product(), itemKey, 0, 0, false) {
00310     checkTypeAtCompileTime(handle.product());
00311     assert(ref_.item().key() == itemKey);
00312         
00313     if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
00314   }

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 319 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().

00319                                                                                 :
00320       ref_(handle.id(), handle.product(), itemKey, 0, 0, false) {
00321     checkTypeAtCompileTime(handle.product());
00322     assert(ref_.item().key() == itemKey);
00323         
00324     if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
00325   }

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 330 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().

00330                                                                                       :
00331       ref_(refvector.id(), refvector.product(), itemKey, 0, 0, refvector.isTransient()) {
00332     checkTypeAtCompileTime(refvector.product());
00333     assert(ref_.item().key() == itemKey);
00334         
00335     if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
00336   }

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 347 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().

00347                                                                    :
00348       ref_(ProductID(), product, product != 0 ? itemKey : key_traits<key_type>::value, 0, 0, true) {
00349     checkTypeAtCompileTime(product);
00350     assert(ref_.item().key() == (product != 0 ? itemKey : key_traits<key_type>::value));
00351         
00352     if (setNow && product != 0) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
00353   }

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 359 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().

00359                                                                               :
00360       ref_(handle.id(), handle.product(), itemKey, 0, 0, true) {
00361     checkTypeAtCompileTime(handle.product());
00362     assert(ref_.item().key() == itemKey);
00363         
00364     if (setNow) {ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));}
00365   }

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

00203                                                                                          :
00204       ref_(productID, 0, itemKey, 0, mustBeNonZero(prodGetter, "Ref", productID), false) {
00205     }

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

00214                                                                                          :
00215       ref_(productID, product, item_key, item, 0, false) { 
00216     }

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

00222                                       :
00223       ref_(id, 0, key_traits<key_type>::value, 0, 0, false)
00224     { }

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 370 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().

00370                                                                :
00371       ref_(refProd.id(), refProd.refCore().productPtr(), itemKey, 0, refProd.refCore().productGetter(), refProd.refCore().isTransient()) {
00372     assert(ref_.item().key() == itemKey);
00373     if (0 != refProd.refCore().productPtr()) {
00374       ref_.item().setPtr(getPtr_<C, T, F>(ref_.refCore(), ref_.item()));
00375     }
00376   }

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

00230 {}

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

00287                                                                : 
00288       ref_(refCore, item) {
00289       }


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 *  ptr  )  [inline, private]

Definition at line 294 of file Ref.h.

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

00294 {}

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

Referenced by ZMuMuAnalyzer_cynematics::analyze(), MultiTrackValidator::analyze(), HLTMuonRate::analyze(), RecoMuonValidator::analyze(), TestOutliers::analyze(), reco::RecoCandidate::bestTrack(), PhotonIDAlgo::calculateR9(), reco::CaloMuon::charge(), MuonAlignmentAnalyzer::doMatching(), MuonStandaloneAlgorithm::doMatching(), reco::CaloMuon::eta(), L1ExtraParticleMapProd::evaluateDoubleDifferentCaloObjectTrigger(), L1ExtraFromMCTruthProd::evaluateDoubleDifferentObjectSameTypeTrigger(), L1ExtraParticleMapProd::evaluateDoubleDifferentObjectSameTypeTrigger(), L1ExtraFromMCTruthProd::evaluateDoubleDifferentObjectTrigger(), L1ExtraParticleMapProd::evaluateDoubleDifferentObjectTrigger(), L1ExtraParticleMapProd::evaluateDoublePlusSingleObjectTrigger(), L1ExtraFromMCTruthProd::evaluateDoublePlusSingleObjectTrigger(), L1ExtraParticleMapProd::evaluateDoubleSameObjectTrigger(), L1ExtraFromMCTruthProd::evaluateDoubleSameObjectTrigger(), L1ExtraParticleMapProd::evaluateForwardRapidityGap(), L1ExtraFromMCTruthProd::evaluateForwardRapidityGap(), L1ExtraFromMCTruthProd::evaluateJetGapJetTrigger(), L1ExtraParticleMapProd::evaluateJetGapJetTrigger(), L1ExtraParticleMapProd::evaluateQuadSameObjectTrigger(), L1ExtraFromMCTruthProd::evaluateQuadSameObjectTrigger(), L1ExtraFromMCTruthProd::evaluateTripleSameObjectTrigger(), L1ExtraParticleMapProd::evaluateTripleSameObjectTrigger(), CandIsoDepositProducer::extractTrack(), PFTauDiscriminants::PFTauDiscriminantManager::fillOutlierObjects(), HLTDisplacedmumuFilter::filter(), HLTmmkFilter::filter(), HLTMuonL3PreFilter::filter(), HLTMuonDimuonL3Filter::filter(), HLTMuonDimuonL2Filter::filter(), HLTMuonL2PreFilter::filter(), TkNavigableSimElectronAssembler::findParent(), pat::PATObject< reco::Muon >::genParticle(), EgammaEcalIsolation::getEcalEtSum(), EgammaHcalIsolation::getHcalEtSum(), PhotonTkIsolation::getIso(), EgammaRecHitIsolation::getSum_(), EgammaTowerIsolation::getTowerEtSum(), CaloMuonProducer::makeMuon(), MuonIdProducer::makeMuon(), pat::VertexAssociation::operator->(), reco::CaloMuon::p(), reco::CaloMuon::phi(), EgammaPhotonTkIsolationProducer::produce(), EgammaElectronTkIsolationProducer::produce(), reco::modules::JetFlavourIdentifier::produce(), EgammaHLTEcalRecIsolationProducer::produce(), EgammaHcalIsolationProducer::produce(), EgammaEcalRecHitIsolationProducer::produce(), EgammaEcalIsolationProducer::produce(), EgammaTowerIsolationProducer::produce(), reco::CaloMuon::pt(), reco::CaloMuon::px(), reco::CaloMuon::py(), reco::CaloMuon::pz(), HardTauAlgorithm::recalculateEnergy(), reco::CaloMuon::theta(), and pat::VertexAssociation::vertex().

00241                          {
00242       return isNull() ? 0 : this->operator->();
00243     }

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

00276 {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 274 of file Ref.h.

00274 {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]

Accessor for product ID.

Definition at line 256 of file Ref.h.

Referenced by ZMuMuAnalyzer_cynematics::analyze(), ZMuMuEfficiency::analyze(), ZMuMuAnalyzer::analyze(), HLTMuonIsoDQMSource::analyze(), HLTMuonDQMSource::analyze(), HLTMuonRecoDQMSource::analyze(), PhotonProducer::fillPhotonCollection(), HLTMuonL3PreFilter::filter(), ZMuMuAnalyzer_cynematics::isContained(), TrackClusterRemover::process(), pat::PATGenCandsFromSimTracksProducer::produce(), edm::RefToBaseProd< T >::RefToBaseProd(), ClusterRemovalRefSetter::reKey(), and PhotonProducer::solveAmbiguity().

00256 {return ref_.refCore().id();}

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.

00269 {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]

Checks if collection is in memory or available in the Event.

No type checking is done.

Definition at line 280 of file Ref.h.

Referenced by pat::Muon::embedPFCandidate(), pat::Electron::embedPFCandidate(), pat::PATElectronProducer::FillElectron(), pat::PATMuonProducer::fillMuon(), pat::helper::OverlapBySuperClusterSeed::fillOverlapsForItem(), pat::VertexAssociation::isAvailable(), pat::PATJetProducer::produce(), pat::PATMETProducer::produce(), pat::PATPhotonProducer::produce(), pat::PATTriggerMatchEmbedder< PATObjectType, RecoObjectType >::produce(), pat::PATTauProducer::produce(), pat::PATGenericParticleProducer::produce(), PFElectronAlgo::SetCandidates(), and VisRefitTrackTwig::update().

00280 {return ref_.refCore().isAvailable();}

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(), SiStripElectronAnalyzer::analyze(), ZHistogrammer::analyze(), PhotonValidator::analyze(), SiPixelTrackResidualSource::analyze(), PhotonAnalyzer::analyze(), TauMVATrainer::analyze(), reco::RecoCandidate::bestTrack(), reco::RecoCandidate::bestTrackRef(), CaloRecoTauAlgorithm::buildCaloTau(), PFRecoTauAlgorithm::buildPFTau(), TrackClassifier::conversionInteraction(), 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(), pat::HistoTau::fill(), pat::HistoTrack::fill(), pat::PATElectronProducer::FillElectron(), pat::PATMuonProducer::fillMuon(), PhotonProducer::fillPhotonCollection(), pat::PATObject< reco::Muon >::genParticle(), reco::PFJet::getTrackRefs(), reco::PFTau::hasMuonReference(), RecoTracktoTP::hasRV(), TPtoRecoTrack::hasRVA(), TPtoRecoTrack::hasRVB(), pat::VertexAssociation::isNonnull(), edm::Ref< std::vector< L1GctEtTotal > >::isNull(), PFBlockAlgo::link(), pat::PATGenCandsFromSimTracksProducer::makeGenParticle_(), RecoTracktoTP::matched(), TPtoRecoTrack::matchedA(), TPtoRecoTrack::matchedB(), PFBlockAlgo::muAssocToTrack(), reco::modules::MCMatchCandRefSelector::operator()(), helper::MuonCollectionStoreManager::processMuon(), CaloRecoTauDiscriminationByLeadingTrackFinding::produce(), PFRecoTauDiscriminationAgainstElectron::produce(), pat::PATJetProducer::produce(), GlobalMuonProducer::produce(), TrackerOnlyConversionProducer::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), PFRecoTauDiscriminationByLeadingTrackFinding::produce(), pat::PATMETProducer::produce(), TrackingElectronProducer::produce(), pat::PATPhotonProducer::produce(), pat::PATMuonProducer::produce(), reco::modules::JetFlavourIdentifier::produce(), ZToLLEdmNtupleDumper::produce(), pat::PATTriggerMatchEmbedder< PATObjectType, RecoObjectType >::produce(), L3MuonProducer::produce(), pat::PATTauProducer::produce(), pat::PATGenericParticleProducer::produce(), PFAlgo::reconstructTrack(), VisMuon::refitTrack(), VisEventSetupService::refitTrack(), RecoTracktoTP::RV(), TPtoRecoTrack::RVA(), TPtoRecoTrack::RVB(), PFElectronAlgo::SetCandidates(), PFElectronAlgo::SetIDOutputs(), SiStripRecHit2D::sharesInput(), PFCandConnector::shouldBeLinked(), PFBlockAlgo::testLinkByVertex(), RecoTracktoTP::TP(), TPtoRecoTrack::TP(), TrackHistory::traceSimHistory(), and VisRefitTrackTwig::update().

00250 { 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 246 of file Ref.h.

Referenced by TtSemiLepSignalSelMVATrainer::analyze(), DebugZMCTruth::analyze(), TrackDetectorAssociator::associate(), reco::TauImpactParameterInfo::discriminator(), TrackHistory::evaluate(), pat::helper::OverlapBySuperClusterSeed::fillOverlapsForItem(), reco::Pi0Algo::fillPi0sUsingPF(), reco::Tau3DAlgo::fillTau3Ds(), edm::Ref< std::vector< L1GctEtTotal > >::get(), CaloRecoTauTagInfoAlgorithm::getNeutralEcalBasicClusters(), reco::PFTau::hasMuonReference(), edm::OneToValue< CKey, Val, index >::insert(), edm::OneToMany< CKey, CVal, index >::insert(), pat::VertexAssociation::isNull(), PFBlockAlgo::link(), DisplayManager::loadGPFBlocks(), MuonErrorMatrixAdjuster::makeTrackExtra(), TauVariables::makeVariables(), PFRootEventManager::mcTruthMatching(), edm::Ref< std::vector< L1GctEtTotal > >::operator!(), CandMatcherBase< C1, C2 >::operator()(), pat::VertexAssociation::operator->(), reco::utilsNew::CandMatcher< C >::operator[](), reco::PFBlockElementGsfTrack::PFBlockElementGsfTrack(), reco::PFBlockElementTrack::PFBlockElementTrack(), GlobalGsfElectronAlgo::process(), PFRootEventManagerColin::processHIGH_E_TAUS(), TtSemiLepSignalSelMVAComputer::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), pat::PATPhotonProducer::produce(), PFPileUp::produce(), edm::Ref< C, T, F >::product(), PFBlockAlgo::testLinkByRecHit(), GlobalCosmicMuonTrajectoryBuilder::trajectories(), and pat::VertexAssociation::vertex().

00246 {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 283 of file Ref.h.

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

Referenced by GenParticlePruner::addDaughterRefs(), GenParticlePruner::addMotherRefs(), ZMuMuAnalyzer_cynematics::analyze(), ZMuMuAnalyzer::analyze(), HLTMuonRecoDQMSource::analyze(), PhotonProducer::fillPhotonCollection(), HLTMuonL3PreFilter::filter(), edm::OneToValue< CKey, Val, index >::insert(), edm::OneToMany< CKey, CVal, index >::insert(), ZMuMuAnalyzer_cynematics::isContained(), NuclearInteractionEDProducer::isInside(), DisplayManager::loadGPFBlocks(), TrackingTruthProducer::mergeBremsstrahlung(), pat::TriggerEvent::objectInFilter(), CandMatcherBase< C1, C2 >::operator()(), edm::CompareRefDetSet< T, C >::operator()(), reco::operator<<(), GenParticlesHelper::operator<<(), reco::utilsNew::CandMatcher< C >::operator[](), TrackClusterRemover::process(), cms::SimpleTrackListMerger::produce(), pat::PATGenCandsFromSimTracksProducer::produce(), MergedTruthProducer::produce(), reco::modules::TrackFullCloneSelectorBase< Selector >::produce(), reco::modulesNew::MCTruthCompositeMatcher::produce(), PFPileUp::produce(), ClusterRemovalRefSetter::reKey(), and PhotonProducer::solveAmbiguity().

00266 {return ref_.item().key();}

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

Dereference operator.

Definition at line 391 of file Ref.h.

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

00391                                 {
00392     return *getPtr<C, T, F>(ref_.refCore(), ref_.item());
00393   }

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.

00253 {return isNull();}

template<typename C, typename T, typename F>
T const * edm::Ref< C, T, F >::operator-> (  )  const [inline]

Member dereference operator.

Definition at line 399 of file Ref.h.

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

Referenced by edm::Ref< std::vector< L1GctEtTotal > >::get().

00399                                  {
00400     return getPtr<C, T, F>(ref_.refCore(), ref_.item());
00401   }

template<typename C, typename T, typename F>
C const * edm::Ref< C, T, F >::product (  )  const [inline]

Accessor for product collection.

Definition at line 383 of file Ref.h.

References edm::Ref< C, T, F >::isNull(), edm::Ref< C, T, F >::ref_, and edm::RefBase< KEY >::refCore().

Referenced by SignCaloSpecificAlgo::addInfo(), and edm::RefToBaseProd< T >::RefToBaseProd().

00383                               {
00384       return isNull() ? 0 : edm::template getProduct<C>(ref_.refCore());
00385   }

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

00259 {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 272 of file Ref.h.

Referenced by edm::operator==(), and edm::RefVector< std::vector< Track > >::push_back().

00272 {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 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 RefVector< RefVector< C, T, F >, T, VBF > [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 RefVector< RefVector< C, T, F >, T, VF > [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< RefVector< C, T, F >, T, VBF >, 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< RefVector< C, T, F >, T, VF >, 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 RefVectorIterator< C, T, F > [friend]

Definition at line 154 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]

Definition at line 296 of file Ref.h.

Referenced by edm::Ref< std::vector< L1GctEtTotal > >::hasCache(), edm::Ref< std::vector< L1GctEtTotal > >::hasProductCache(), edm::Ref< std::vector< L1GctEtTotal > >::id(), edm::Ref< std::vector< L1GctEtTotal > >::index(), edm::Ref< std::vector< L1GctEtTotal > >::isAvailable(), edm::Ref< std::vector< L1GctEtTotal > >::isNonnull(), edm::Ref< std::vector< L1GctEtTotal > >::isTransient(), edm::Ref< std::vector< L1GctEtTotal > >::key(), edm::Ref< C, T, F >::operator *(), edm::Ref< C, T, F >::operator->(), edm::Ref< C, T, F >::product(), edm::Ref< std::vector< L1GctEtTotal > >::productGetter(), edm::Ref< C, T, F >::Ref(), and edm::Ref< std::vector< L1GctEtTotal > >::ref().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:43:27 2009 for CMSSW by  doxygen 1.5.4