LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
reco::shower::ShowerUniqueProductPtr< std::vector< T > > Class Template Reference

#include "ShowerProducedPtrsHolder.hh"

Inheritance diagram for reco::shower::ShowerUniqueProductPtr< std::vector< T > >:
reco::shower::ShowerUniqueProduerPtrBase

Public Member Functions

 ShowerUniqueProductPtr (const std::string &Instancename)
 
std::unique_ptr< T > & GetPtr ()
 
void reset () override
 
void AddDataProduct (const reco::shower::ShowerElementHolder &selement_holder, const std::string &Name) override
 
void MoveToEvent (art::Event &evt) override
 
std::string GetType () const override
 
std::string GetInstanceName () const override
 
int GetVectorPtrSize () const override
 

Private Attributes

std::unique_ptr< std::vector< T > > showeruniqueptr
 
bool ptr
 
std::string InstanceName
 

Detailed Description

template<class T>
class reco::shower::ShowerUniqueProductPtr< std::vector< T > >

Definition at line 81 of file ShowerProducedPtrsHolder.hh.

Constructor & Destructor Documentation

template<class T >
reco::shower::ShowerUniqueProductPtr< std::vector< T > >::ShowerUniqueProductPtr ( const std::string &  Instancename)
inline

Definition at line 85 of file ShowerProducedPtrsHolder.hh.

Member Function Documentation

template<class T >
void reco::shower::ShowerUniqueProductPtr< std::vector< T > >::AddDataProduct ( const reco::shower::ShowerElementHolder selement_holder,
const std::string &  Name 
)
inlineoverridevirtual

Implements reco::shower::ShowerUniqueProduerPtrBase.

Definition at line 104 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerElementHolder::CheckElement(), and reco::shower::ShowerElementHolder::GetElement().

106  {
107  T product;
108  if (!selement_holder.CheckElement(Name)) {
109  mf::LogError("ShowerProducedPtrsHolder")
110  << "Trying to add data product: " << Name
111  << ". This element does not exist in the element holder" << std::endl;
112  return;
113  }
114 
115  int err = selement_holder.GetElement(Name, product);
116  if (err) {
117  mf::LogError("ShowerProducedPtrsHolder")
118  << "Trying to add data product: " << Name
119  << ". This element does not exist in the element holder" << std::endl;
120  return;
121  }
122  showeruniqueptr->push_back(product);
123  return;
124  }
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
bool CheckElement(const std::string &Name) const
int GetElement(const std::string &Name, T &Element) const
template<class T >
std::string reco::shower::ShowerUniqueProductPtr< std::vector< T > >::GetInstanceName ( ) const
inlineoverridevirtual
template<class T >
std::unique_ptr<T>& reco::shower::ShowerUniqueProductPtr< std::vector< T > >::GetPtr ( )
inline

Definition at line 93 of file ShowerProducedPtrsHolder.hh.

94  {
95  if (ptr) { return showeruniqueptr; }
96  else {
97  throw cet::exception("ShowerUniqueProduerPtr") << "Element does not exist" << std::endl;
98  }
99  }
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<class T >
std::string reco::shower::ShowerUniqueProductPtr< std::vector< T > >::GetType ( ) const
inlineoverridevirtual

Implements reco::shower::ShowerUniqueProduerPtrBase.

Definition at line 130 of file ShowerProducedPtrsHolder.hh.

131  {
132  return cet::demangle_symbol(typeid(showeruniqueptr.get()).name());
133  }
template<class T >
int reco::shower::ShowerUniqueProductPtr< std::vector< T > >::GetVectorPtrSize ( ) const
inlineoverridevirtual

Reimplemented from reco::shower::ShowerUniqueProduerPtrBase.

Definition at line 139 of file ShowerProducedPtrsHolder.hh.

139 { return showeruniqueptr->size(); }
template<class T >
void reco::shower::ShowerUniqueProductPtr< std::vector< T > >::MoveToEvent ( art::Event evt)
inlineoverridevirtual

Implements reco::shower::ShowerUniqueProduerPtrBase.

Definition at line 127 of file ShowerProducedPtrsHolder.hh.

References art::Event::put().

127 { evt.put(std::move(showeruniqueptr), InstanceName); }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Event.h:77
template<class T >
void reco::shower::ShowerUniqueProductPtr< std::vector< T > >::reset ( )
inlineoverridevirtual

Implements reco::shower::ShowerUniqueProduerPtrBase.

Definition at line 101 of file ShowerProducedPtrsHolder.hh.

101 { showeruniqueptr.reset(new std::vector<T>()); }

Member Data Documentation

template<class T >
std::string reco::shower::ShowerUniqueProductPtr< std::vector< T > >::InstanceName
private

Definition at line 149 of file ShowerProducedPtrsHolder.hh.

template<class T >
bool reco::shower::ShowerUniqueProductPtr< std::vector< T > >::ptr
private

Definition at line 146 of file ShowerProducedPtrsHolder.hh.

template<class T >
std::unique_ptr<std::vector<T> > reco::shower::ShowerUniqueProductPtr< std::vector< T > >::showeruniqueptr
private

Definition at line 143 of file ShowerProducedPtrsHolder.hh.


The documentation for this class was generated from the following file: