CMS 3D CMS Logo

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

#include <EDProductfwd.h>

Public Types

typedef C product_type
 
typedef C value_type
 

Public Member Functions

product_type const * get () const
 
bool hasCache () const
 Checks if product is in memory. More...
 
bool hasProductCache () const
 Checks if product is in memory. More...
 
ProductID id () const
 Accessor for product ID. More...
 
bool isAvailable () const
 
bool isNonnull () const
 Checks for non-null. More...
 
bool isNull () const
 Checks for null. More...
 
bool isTransient () const
 Checks if this RefProd is transient (i.e. not persistable). More...
 
bool operator! () const
 Checks for null. More...
 
product_type const & operator* () const
 Dereference operator. More...
 
product_type const * operator-> () const
 Member dereference operator. More...
 
product_type const * product () const
 
EDProductGetter const * productGetter () const
 Accessor for product getter. More...
 
RefCore const & refCore () const
 
 RefProd ()
 Default constructor needed for reading from persistent store. Not for direct use. More...
 
 RefProd (Handle< C > const &handle)
 General purpose constructor from handle. More...
 
 RefProd (OrphanHandle< C > const &handle)
 General purpose constructor from orphan handle. More...
 
 RefProd (C const *product)
 Constructor for ref to object that is not in an event. More...
 
 RefProd (TestHandle< C > const &handle)
 General purpose constructor from test handle. More...
 
template<typename T , typename F >
 RefProd (Ref< C, T, F > const &ref)
 Constructor from Ref<C,T,F> More...
 
template<typename T , typename F >
 RefProd (RefVector< C, T, F > const &ref)
 Constructor from RefVector<C,T,F> More...
 
 RefProd (ProductID const &productID, EDProductGetter const *prodGetter)
 
template<typename T , typename F >
 RefProd (Ref< C, T, F > const &ref)
 Constructor from Ref. More...
 
template<typename T , typename F >
 RefProd (RefVector< C, T, F > const &ref)
 Constructor from RefVector. More...
 
void swap (RefProd< C > &)
 
 ~RefProd ()
 Destructor. More...
 

Private Member Functions

void checkTypeAtCompileTime (C const *ptr)
 

Private Attributes

RefCore product_
 

Detailed Description

template<typename T>
class edm::RefProd< T >

Definition at line 24 of file EDProductfwd.h.

Member Typedef Documentation

template<typename T>
typedef C edm::RefProd< T >::product_type

Definition at line 53 of file RefProd.h.

template<typename T>
typedef C edm::RefProd< T >::value_type

Definition at line 54 of file RefProd.h.

Constructor & Destructor Documentation

template<typename T>
edm::RefProd< T >::RefProd ( )
inline

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

Definition at line 57 of file RefProd.h.

57 : product_() {}
RefCore product_
Definition: RefProd.h:166
template<typename T>
edm::RefProd< T >::RefProd ( Handle< C > const &  handle)
inlineexplicit

General purpose constructor from handle.

Definition at line 60 of file RefProd.h.

60  :
61  product_(handle.id(), handle.product(), 0, false) {
62  checkTypeAtCompileTime(handle.product());
63  }
void checkTypeAtCompileTime(C const *ptr)
Definition: RefProd.h:164
RefCore product_
Definition: RefProd.h:166
template<typename T>
edm::RefProd< T >::RefProd ( OrphanHandle< C > const &  handle)
inlineexplicit

General purpose constructor from orphan handle.

Definition at line 66 of file RefProd.h.

66  :
67  product_(handle.id(), handle.product(), 0, false) {
68  checkTypeAtCompileTime(handle.product());
69  }
tuple handle
Definition: patZpeak.py:22
void checkTypeAtCompileTime(C const *ptr)
Definition: RefProd.h:164
RefCore product_
Definition: RefProd.h:166
template<typename T>
edm::RefProd< T >::RefProd ( C const *  product)
inline

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

Definition at line 76 of file RefProd.h.

76  :
77  product_(ProductID(), product, 0, true) {
79  }
void checkTypeAtCompileTime(C const *ptr)
Definition: RefProd.h:164
RefCore product_
Definition: RefProd.h:166
product_type const * product() const
Definition: RefProd.h:123
template<typename T>
edm::RefProd< T >::RefProd ( TestHandle< C > const &  handle)
inlineexplicit

General purpose constructor from test handle.

Definition at line 86 of file RefProd.h.

86  :
87  product_(handle.id(), handle.product(), 0, true) {
88  checkTypeAtCompileTime(handle.product());
89  }
tuple handle
Definition: patZpeak.py:22
void checkTypeAtCompileTime(C const *ptr)
Definition: RefProd.h:164
RefCore product_
Definition: RefProd.h:166
template<typename T>
template<typename T , typename F >
edm::RefProd< T >::RefProd ( Ref< C, T, F > const &  ref)
explicit

Constructor from Ref<C,T,F>

template<typename T>
template<typename T , typename F >
edm::RefProd< T >::RefProd ( RefVector< C, T, F > const &  ref)
explicit

Constructor from RefVector<C,T,F>

template<typename T>
edm::RefProd< T >::RefProd ( ProductID const &  productID,
EDProductGetter const *  prodGetter 
)
inline

Definition at line 102 of file RefProd.h.

102  :
103  product_(productID, 0, mustBeNonZero(prodGetter, "RefProd", productID), false) {
104  }
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
RefCore product_
Definition: RefProd.h:166
template<typename T>
edm::RefProd< T >::~RefProd ( )
inline

Destructor.

Definition at line 107 of file RefProd.h.

107 {}
template<typename T>
template<typename T , typename F >
edm::RefProd< T >::RefProd ( Ref< C, T, F > const &  ref)
inline

Constructor from Ref.

Definition at line 181 of file RefProd.h.

181  :
182  product_(ref.id(), ref.hasProductCache() ? ref.product() : 0, ref.productGetter(), ref.isTransient())
183  { }
RefCore product_
Definition: RefProd.h:166
template<typename T>
template<typename T , typename F >
edm::RefProd< T >::RefProd ( RefVector< C, T, F > const &  ref)
inline

Constructor from RefVector.

Definition at line 189 of file RefProd.h.

189  :
190  product_(ref.id(), ref.hasProductCache() ? ref.product() : 0, ref.productGetter(), ref.isTransient())
191  { }
RefCore product_
Definition: RefProd.h:166

Member Function Documentation

template<typename T>
void edm::RefProd< T >::checkTypeAtCompileTime ( C const *  ptr)
inlineprivate

Definition at line 164 of file RefProd.h.

Referenced by edm::RefProd< TrackingRecHitCollection >::RefProd().

164 {}
template<typename T>
product_type const* edm::RefProd< T >::get ( void  ) const
inline

Returns C++ pointer to the product Will attempt to retrieve product

Definition at line 117 of file RefProd.h.

Referenced by Options.Options::__getitem__(), pat::TriggerEvent::algorithms(), l1extra::L1ParticleMap::candidateInCombo(), pat::TriggerEvent::conditions(), l1extra::L1ParticleMap::etMissParticleInCombo(), pat::TriggerEvent::filters(), pat::TriggerEvent::objects(), and pat::TriggerEvent::paths().

117  {
118  return isNull() ? 0 : this->operator->();
119  }
bool isNull() const
Checks for null.
Definition: RefProd.h:132
product_type const * operator->() const
Member dereference operator.
Definition: RefProd.h:203
template<typename T>
bool edm::RefProd< T >::hasCache ( ) const
inline

Checks if product is in memory.

Definition at line 147 of file RefProd.h.

Referenced by edm::RefProd< TrackingRecHitCollection >::hasProductCache().

147 {return product_.productPtr() != 0;}
void const * productPtr() const
Definition: RefCore.h:23
RefCore product_
Definition: RefProd.h:166
template<typename T>
bool edm::RefProd< T >::hasProductCache ( ) const
inline

Checks if product is in memory.

Definition at line 150 of file RefProd.h.

150 {return hasCache();}
bool hasCache() const
Checks if product is in memory.
Definition: RefProd.h:147
template<typename T>
ProductID edm::RefProd< T >::id ( void  ) const
inline
template<typename T>
bool edm::RefProd< T >::isAvailable ( ) const
inline

Checks if collection is in memory or available in the Event. No type checking is done.

Definition at line 154 of file RefProd.h.

154 {return product_.isAvailable();}
bool isAvailable() const
Definition: RefCore.cc:86
RefCore product_
Definition: RefProd.h:166
template<typename T>
bool edm::RefProd< T >::isNonnull ( ) const
inline

Checks for non-null.

Definition at line 135 of file RefProd.h.

Referenced by reco::ClusterRemovalInfo::hasPixel(), reco::ClusterRemovalInfo::hasStrip(), and edm::RefProd< TrackingRecHitCollection >::isNull().

135 {return product_.isNonnull();}
bool isNonnull() const
Definition: RefCore.h:31
RefCore product_
Definition: RefProd.h:166
template<typename T>
bool edm::RefProd< T >::isNull ( ) const
inline
template<typename T>
bool edm::RefProd< T >::isTransient ( ) const
inline

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

Definition at line 157 of file RefProd.h.

157 {return product_.isTransient();}
RefCore product_
Definition: RefProd.h:166
bool isTransient() const
Definition: RefCore.h:57
template<typename T>
bool edm::RefProd< T >::operator! ( ) const
inline

Checks for null.

Definition at line 138 of file RefProd.h.

138 {return isNull();}
bool isNull() const
Checks for null.
Definition: RefProd.h:132
template<typename C >
C const & edm::RefProd< C >::operator* ( ) const
inline

Dereference operator.

Definition at line 196 of file RefProd.h.

References svgfig::template().

196  {
197  return *(edm::template getProduct<C>(product_));
198  }
RefCore product_
Definition: RefProd.h:166
def template
Definition: svgfig.py:520
template<typename C >
C const * edm::RefProd< C >::operator-> ( ) const
inline

Member dereference operator.

Definition at line 203 of file RefProd.h.

References svgfig::template().

Referenced by edm::RefProd< TrackingRecHitCollection >::get(), and edm::RefProd< TrackingRecHitCollection >::product().

203  {
204  return edm::template getProduct<C>(product_);
205  }
RefCore product_
Definition: RefProd.h:166
def template
Definition: svgfig.py:520
template<typename T>
product_type const* edm::RefProd< T >::product ( ) const
inline

Returns C++ pointer to the product Will attempt to retrieve product

Definition at line 123 of file RefProd.h.

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

123  {
124  return isNull() ? 0 : this->operator->();
125  }
bool isNull() const
Checks for null.
Definition: RefProd.h:132
product_type const * operator->() const
Member dereference operator.
Definition: RefProd.h:203
template<typename T>
EDProductGetter const* edm::RefProd< T >::productGetter ( ) const
inline

Accessor for product getter.

Definition at line 144 of file RefProd.h.

144 {return product_.productGetter();}
RefCore product_
Definition: RefProd.h:166
EDProductGetter const * productGetter() const
Definition: RefCore.h:41
template<typename T>
RefCore const& edm::RefProd< T >::refCore ( ) const
inline

Definition at line 127 of file RefProd.h.

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

127  {
128  return product_;
129  }
RefCore product_
Definition: RefProd.h:166
template<typename C >
void edm::RefProd< C >::swap ( RefProd< C > &  other)
inline

Definition at line 210 of file RefProd.h.

References edm::RefProd< T >::product_, and std::swap().

Referenced by reco::ClusterRemovalInfo::swap(), edm::Association< C >::swap(), and edm::swap().

210  {
211  std::swap(product_, other.product_);
212  }
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
RefCore product_
Definition: RefProd.h:166

Member Data Documentation

template<typename T>
RefCore edm::RefProd< T >::product_
private