rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
Rivet::MultiplexPtr< T > Class Template Reference

#include <RivetYODA.hh>

Public Types

using value_type = T
 

Public Member Functions

 MultiplexPtr (decltype(nullptr))
 
 MultiplexPtr (const vector< string > &weightNames, const typename T::Inner &p)
 Convenience constructor, pass through to the Multiplexer constructor.
 
template<typename U , typename = decltype(shared_ptr<T>(shared_ptr<U>{}))>
 MultiplexPtr (const shared_ptr< U > &p)
 
template<typename U , typename = decltype(shared_ptr<T>(shared_ptr<U>{}))>
 MultiplexPtr (const MultiplexPtr< U > &p)
 
T & operator-> ()
 Goes right through to the active Multiplexer<YODA> object's members.
 
template<typename U = T>
auto binning () const -> std::enable_if_t< hasBinning< typename T::Inner >::value, const typename U::Inner::BinningT & >
 
const T & operator-> () const
 Goes right through to the active Multiplexer<YODA> object's members.
 
T::Inner & operator* ()
 The active YODA object.
 
const T::Inner & operator* () const
 
 operator bool () const
 Object validity check.
 
bool operator! () const
 Object invalidity check.
 
bool operator== (const MultiplexPtr &other) const
 Object validity check.
 
bool operator!= (const MultiplexPtr &other) const
 Object invalidity check.
 
bool operator< (const MultiplexPtr &other) const
 Less-than for ptr ordering.
 
bool operator> (const MultiplexPtr other) const
 Greater-than for ptr ordering.
 
bool operator<= (const MultiplexPtr &other) const
 Less-equals for ptr ordering.
 
bool operator>= (const MultiplexPtr &other) const
 Greater-equals for ptr ordering.
 
shared_ptr< T > get () const
 Get the internal shared ptr.
 

Detailed Description

template<typename T>
class Rivet::MultiplexPtr< T >

Customised shared pointer of multiplexed AOs, dispatching through two layers of indirection.

The customisation is needed in order to dispatch -> and * operators all the way down to the inner YODA analysis objects.

Todo:
Provide remaining functionality that shared_ptr has (not needed right now).

The documentation for this class was generated from the following file:
  • /Users/chrisg/software/rivet/include/Rivet/Tools/RivetYODA.hh