CMS 3D CMS Logo

pat::UserHolder< T > Class Template Reference

#include <DataFormats/PatCandidates/interface/UserData.h>

Inheritance diagram for pat::UserHolder< T >:

pat::UserData

List of all members.

Public Member Functions

virtual UserHolder< T > * clone () const
 Clone.
virtual const std::type_info & typeId () const
 Concrete type of stored data.
virtual const std::string & typeName () const
 Human readable name of the concrete type of stored data.
 UserHolder (const T &data)
 UserHolder ()

Protected Member Functions

virtual const voiddata_ () const
 Get out the data (can't template non virtual functions).

Static Private Member Functions

static const std::string & typeName_ ()

Private Attributes

obj_


Detailed Description

template<typename T>
class pat::UserHolder< T >

Definition at line 67 of file UserData.h.


Constructor & Destructor Documentation

template<typename T>
pat::UserHolder< T >::UserHolder (  )  [inline]

Definition at line 69 of file UserData.h.

00069 : obj_() {}

template<typename T>
pat::UserHolder< T >::UserHolder ( const T &  data  )  [inline]

Definition at line 70 of file UserData.h.

00070 : obj_(data) {}


Member Function Documentation

template<typename T>
virtual UserHolder<T>* pat::UserHolder< T >::clone ( void   )  const [inline, virtual]

Clone.

Implements pat::UserData.

Definition at line 72 of file UserData.h.

00072 { return new UserHolder<T>(*this); }

template<typename T>
virtual const void* pat::UserHolder< T >::data_ (  )  const [inline, protected, virtual]

Get out the data (can't template non virtual functions).

Implements pat::UserData.

Definition at line 78 of file UserData.h.

References pat::UserHolder< T >::obj_.

00078 { return &obj_; }

template<typename T>
virtual const std::type_info& pat::UserHolder< T >::typeId (  )  const [inline, virtual]

Concrete type of stored data.

Implements pat::UserData.

Definition at line 74 of file UserData.h.

00074 { return typeid(T); }

template<typename T>
virtual const std::string& pat::UserHolder< T >::typeName (  )  const [inline, virtual]

Human readable name of the concrete type of stored data.

Implements pat::UserData.

Definition at line 76 of file UserData.h.

References pat::UserHolder< T >::typeName_().

00076 { return typeName_(); }

template<typename T>
const std::string & pat::UserHolder< T >::typeName_ (  )  [inline, static, private]

Definition at line 98 of file UserData.h.

References name, and StDecayID::status.

Referenced by pat::UserHolder< T >::typeName().

00098                                               {
00099     static int status = 0;
00100     static const char * demangled = abi::__cxa_demangle(typeid(T).name(),  0, 0, &status);
00101     static const std::string name(status == 0 ? demangled : "[UNKNOWN]");
00102     return name;
00103 }


Member Data Documentation

template<typename T>
T pat::UserHolder< T >::obj_ [private]

Definition at line 80 of file UserData.h.

Referenced by pat::UserHolder< T >::data_().


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