LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
reco::shower::ShowerProducedPtrsHolder Class Reference

#include "ShowerProducedPtrsHolder.hh"

Public Member Functions

template<class T >
int SetShowerUniqueProduerPtr (type< T >, const std::string &Name, const std::string &Instance="")
 
template<class T >
int SetShowerUniqueProduerPtr (type< std::vector< T >>, const std::string &Name, const std::string &Instance="")
 
bool CheckUniqueProduerPtr (const std::string &Name) const
 
void reset ()
 
void AddDataProducts (const reco::shower::ShowerElementHolder &selement_holder)
 
void MoveAllToEvent (art::Event &evt)
 
bool CheckAllProducedElements (reco::shower::ShowerElementHolder &selement_holder) const
 
template<class T >
T & GetPtr (const std::string &Name)
 
template<class T , class A , class B >
void AddSingle (A &a, B &b, const std::string &Name)
 
void SetPtrMakers (art::Event &evt)
 
template<class T >
art::PtrMaker< T > & GetPtrMaker (const std::string &Name)
 
template<class T >
art::Ptr< T > GetArtPtr (const std::string &Name, const int &iter) const
 
void ResetPtrMakers ()
 
int GetVectorPtrSize (const std::string &Name) const
 
void PrintPtr (const std::string &Name) const
 
void PrintPtrs () const
 

Private Member Functions

template<class T >
bool CheckForMultipleTypes (type< T >, const std::string &Name, const std::string &Instance) const
 
template<class T >
bool CheckForMultipleTypes (type< std::vector< T >>, const std::string &Name, const std::string &Instance) const
 

Private Attributes

std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
 
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
 
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
 

Detailed Description

Definition at line 303 of file ShowerProducedPtrsHolder.hh.

Member Function Documentation

void reco::shower::ShowerProducedPtrsHolder::AddDataProducts ( const reco::shower::ShowerElementHolder selement_holder)
inline

Definition at line 385 of file ShowerProducedPtrsHolder.hh.

Referenced by reco::shower::LArPandoraModularShowerCreation::produce().

386  {
387  for (auto const& showerproductPtr : showerproductPtrs) {
388  (showerproductPtr.second)->AddDataProduct(selement_holder, showerproductPtr.first);
389  }
390  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
template<class T , class A , class B >
void reco::shower::ShowerProducedPtrsHolder::AddSingle ( A &  a,
B &  b,
const std::string &  Name 
)
inline

Definition at line 438 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerUniqueAssnPtr< T >::GetPtr().

Referenced by ShowerRecoTools::IShowerTool::AddSingle(), and reco::shower::LArPandoraModularShowerCreation::produce().

439  {
440  auto const showerassnPtrsIt = showerassnPtrs.find(Name);
441  if (showerassnPtrsIt == showerassnPtrs.end()) {
442  throw cet::exception("ShowerProducedPtrsHolder")
443  << "Trying to get the association: " << Name << "Element does not exist" << std::endl;
444  }
445  if (!is_assn<T>::value) {
446  throw cet::exception("ShowerProducedPtrsHolder")
447  << "Element type is not an assoication please only use this for assocations" << std::endl;
448  }
450  dynamic_cast<reco::shower::ShowerUniqueAssnPtr<T>*>(showerassnPtrsIt->second.get());
451  if (assnptr == nullptr) {
452  throw cet::exception("ShowerProducedPtrsHolder")
453  << "Failed to cast back. Maybe you got the type wrong or you are accidently accessing a "
454  "differently named product"
455  << std::endl;
456  }
457 
458  T* assn = dynamic_cast<T*>(assnptr->GetPtr().get());
459  if (assn == nullptr) {
460  throw cet::exception("ShowerProducedPtrsHolder")
461  << "Something went wrong trying to cast tothe assn. Maybe the name: " << Name
462  << " exists but its not an assn" << std::endl;
463  }
464 
465  assn->addSingle(a, b);
466  return;
467  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
bool reco::shower::ShowerProducedPtrsHolder::CheckAllProducedElements ( reco::shower::ShowerElementHolder selement_holder) const
inline

Definition at line 403 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerElementHolder::CheckElement().

Referenced by reco::shower::LArPandoraModularShowerCreation::produce().

404  {
405  bool checked = true;
406  for (auto const& showerproductPtr : showerproductPtrs) {
407  if (showerproductPtr.first == "shower") { continue; }
408  checked = checked && selement_holder.CheckElement(showerproductPtr.first);
409  }
410  return checked;
411  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
bool CheckElement(const std::string &Name) const
template<class T >
bool reco::shower::ShowerProducedPtrsHolder::CheckForMultipleTypes ( type< T >  ,
const std::string &  Name,
const std::string &  Instance 
) const
inlineprivate

Definition at line 643 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerUniqueAssnPtr< T >::GetInstanceName().

644  {
645 
646  //Check the a product of the same does not exist without a different instance name
647  for (auto const& assn : showerassnPtrs) {
649  dynamic_cast<reco::shower::ShowerUniqueAssnPtr<T>*>(assn.second.get());
650  if (assnptr != nullptr) {
651  if (assnptr->GetInstanceName() == Instance) { return false; }
652  }
653  }
654  return true;
655  }
std::string GetInstanceName() const override
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
template<class T >
bool reco::shower::ShowerProducedPtrsHolder::CheckForMultipleTypes ( type< std::vector< T >>  ,
const std::string &  Name,
const std::string &  Instance 
) const
inlineprivate

Definition at line 659 of file ShowerProducedPtrsHolder.hh.

662  {
663 
664  //Check the a product of the same does not exist without a different instance name
665  for (auto const& product : showerproductPtrs) {
667  dynamic_cast<reco::shower::ShowerUniqueProductPtr<std::vector<T>>*>(product.second.get());
668  if (prod != nullptr) {
669  if (prod->GetInstanceName() == Instance) { return false; }
670  }
671  }
672  return true;
673  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
bool reco::shower::ShowerProducedPtrsHolder::CheckUniqueProduerPtr ( const std::string &  Name) const
inline

Definition at line 364 of file ShowerProducedPtrsHolder.hh.

Referenced by reco::shower::LArPandoraModularShowerCreation::GetProducedElementPtr(), and ShowerRecoTools::IShowerTool::GetProducedElementPtr().

365  {
366  if (showerproductPtrs.find(Name) != showerproductPtrs.end()) { return true; }
367  if (showerassnPtrs.find(Name) != showerassnPtrs.end()) { return true; }
368  return false;
369  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
template<class T >
art::Ptr<T> reco::shower::ShowerProducedPtrsHolder::GetArtPtr ( const std::string &  Name,
const int &  iter 
) const
inline

Definition at line 501 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerPtrMaker< T >::GetArtPtr().

Referenced by reco::shower::LArPandoraModularShowerCreation::GetProducedElementPtr(), and ShowerRecoTools::IShowerTool::GetProducedElementPtr().

502  {
503  auto const showerPtrMakersIt = showerPtrMakers.find(Name);
504  if (showerPtrMakersIt == showerPtrMakers.end()) {
505  throw cet::exception("ShowerProducedPtrsHolder")
506  << "PtrMaker does not exist for " << Name << " Did you initialise this? " << std::endl;
507  }
508  else {
509  if (!showerPtrMakersIt->second->CheckPtrMaker()) {
510  throw cet::exception("ShowerProducedPtrsHolder")
511  << "PtrMaker is not set. This is an issue for the devlopment team me. Contact Dom Barker"
512  << std::endl;
513  }
515  dynamic_cast<reco::shower::ShowerPtrMaker<T>*>(showerPtrMakersIt->second.get());
516  if (ptrmaker == nullptr) {
517  throw cet::exception("ShowerProducedPtrsHolder")
518  << "Failed to cast back. Maybe you got the type wrong or you are accidently accessing a "
519  "differently named product"
520  << std::endl;
521  }
522  return ptrmaker->GetArtPtr(iter);
523  }
524  }
art::Ptr< T > GetArtPtr(int iter) const
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<class T >
T& reco::shower::ShowerProducedPtrsHolder::GetPtr ( const std::string &  Name)
inline

Definition at line 415 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerUniqueAssnPtr< T >::GetPtr().

416  {
417  auto const showerproductPtrsIt = showerproductPtrs.find(Name);
418  if (showerproductPtrsIt != showerproductPtrs.end()) {
420  dynamic_cast<reco::shower::ShowerUniqueProductPtr<T>*>(showerproductPtrsIt->second.get());
421  return prod->GetPtr();
422  }
423 
424  auto const showerassnPtrsIt = showerassnPtrs.find(Name);
425  if (showerassnPtrsIt != showerassnPtrs.end()) {
427  dynamic_cast<reco::shower::ShowerUniqueAssnPtr<T>*>(showerassnPtrsIt->second.get());
428  return assn->GetPtr();
429  }
430 
431  throw cet::exception("ShowerProducedPtrsHolder")
432  << "Trying to get Ptr for: " << Name << " but Element does not exist" << std::endl;
433  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<class T >
art::PtrMaker<T>& reco::shower::ShowerProducedPtrsHolder::GetPtrMaker ( const std::string &  Name)
inline

Definition at line 483 of file ShowerProducedPtrsHolder.hh.

References reco::shower::ShowerPtrMaker< T >::GetPtrMaker().

484  {
485  auto const showerPtrMakersIt = showerPtrMakers.find(Name);
486  if (showerPtrMakersIt == showerPtrMakers.end()) {
487  throw cet::exception("ShowerProducedPtrsHolder") << "PtrMaker does not exist" << std::endl;
488  }
489  else {
490  if (!showerPtrMakersIt->second->CheckPtrMaker()) {
491  throw cet::exception("ShowerProducedPtrsHolder") << "PtrMaker is not set" << std::endl;
492  }
494  dynamic_cast<reco::shower::ShowerPtrMaker<T>*>(showerassnPtrs[Name].get());
495  return ptrmaker->GetPtrMaker();
496  }
497  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
int reco::shower::ShowerProducedPtrsHolder::GetVectorPtrSize ( const std::string &  Name) const
inline

Definition at line 535 of file ShowerProducedPtrsHolder.hh.

Referenced by ShowerRecoTools::IShowerTool::GetVectorPtrSize().

536  {
537  auto const showerproductPtrsIt = showerproductPtrs.find(Name);
538  if (showerproductPtrsIt != showerproductPtrs.end()) {
539  return showerproductPtrsIt->second->GetVectorPtrSize();
540  }
541  throw cet::exception("ShowerProducedPtrsHolder")
542  << "Product: " << Name << " has not been set in the producers map" << std::endl;
543  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void reco::shower::ShowerProducedPtrsHolder::MoveAllToEvent ( art::Event evt)
inline

Definition at line 393 of file ShowerProducedPtrsHolder.hh.

Referenced by reco::shower::LArPandoraModularShowerCreation::produce().

394  {
395  for (auto const& showerproductPtr : showerproductPtrs) {
396  (showerproductPtr.second)->MoveToEvent(evt);
397  }
398  for (auto const& showerassnPtr : showerassnPtrs) {
399  (showerassnPtr.second)->MoveToEvent(evt);
400  }
401  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
void reco::shower::ShowerProducedPtrsHolder::PrintPtr ( const std::string &  Name) const
inline

Definition at line 546 of file ShowerProducedPtrsHolder.hh.

Referenced by ShowerRecoTools::IShowerTool::PrintPtr().

547  {
548  auto const showerproductPtrsIt = showerproductPtrs.find(Name);
549  if (showerproductPtrsIt != showerproductPtrs.end()) {
550  const std::string Type = showerproductPtrsIt->second->GetType();
551  const std::string InstanceName = showerproductPtrsIt->second->GetInstanceName();
552  std::cout << "Element Name: " << Name << " Instance Name: " << InstanceName
553  << " Type: " << Type << std::endl;
554  return;
555  }
556  auto const showerassnPtrsIt = showerassnPtrs.find(Name);
557  if (showerassnPtrsIt != showerassnPtrs.end()) {
558  const std::string Type = showerassnPtrsIt->second->GetType();
559  const std::string InstanceName = showerassnPtrsIt->second->GetInstanceName();
560  std::cout << "Element Name: " << Name << " Instance Name: " << InstanceName
561  << " Type: " << Type << std::endl;
562  return;
563  }
564  mf::LogError("ShowerProducedPtrsHolder")
565  << "Trying to print Element: " << Name
566  << ". This element does not exist in the element holder" << std::endl;
567  return;
568  }
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
void reco::shower::ShowerProducedPtrsHolder::PrintPtrs ( ) const
inline

Definition at line 571 of file ShowerProducedPtrsHolder.hh.

References art::left(), and n.

Referenced by reco::shower::LArPandoraModularShowerCreation::LArPandoraModularShowerCreation(), and ShowerRecoTools::IShowerTool::PrintPtrs().

572  {
573 
574  unsigned int maxname = 0;
575  for (auto const& showerprodPtr : showerproductPtrs) {
576  if (showerprodPtr.first.size() > maxname) { maxname = showerprodPtr.first.size(); }
577  }
578  for (auto const& showerassnPtr : showerassnPtrs) {
579  if (showerassnPtr.first.size() > maxname) { maxname = showerassnPtr.first.size(); }
580  }
581 
582  std::map<std::string, std::pair<std::string, std::string>> Type_showerprodPtrs;
583  std::map<std::string, std::pair<std::string, std::string>> Type_showerassnPtrs;
584  for (auto const& showerprodPtr : showerproductPtrs) {
585  const std::string Type = (showerprodPtr.second)->GetType();
586  const std::string InstanceName = (showerprodPtr.second)->GetInstanceName();
587  Type_showerprodPtrs[showerprodPtr.first] = std::make_pair(InstanceName, Type);
588  }
589  for (auto const& showerassnPtr : showerassnPtrs) {
590  const std::string Type = (showerassnPtr.second)->GetType();
591  const std::string InstanceName = (showerassnPtr.second)->GetInstanceName();
592  Type_showerassnPtrs[showerassnPtr.first] = std::make_pair(InstanceName, Type);
593  }
594 
595  unsigned int maxtype = 0;
596  unsigned int maxinstname = 0;
597  for (auto const& Type_showerprodPtr : Type_showerprodPtrs) {
598  if (Type_showerprodPtr.second.second.size() > maxtype) {
599  maxtype = Type_showerprodPtr.second.second.size();
600  }
601  if (Type_showerprodPtr.second.first.size() > maxinstname) {
602  maxinstname = Type_showerprodPtr.second.first.size();
603  }
604  }
605  for (auto const& Type_showerassnPtr : Type_showerassnPtrs) {
606  if (Type_showerassnPtr.second.second.size() > maxtype) {
607  maxtype = Type_showerassnPtr.second.second.size();
608  }
609  if (Type_showerassnPtr.second.first.size() > maxinstname) {
610  maxinstname = Type_showerassnPtr.second.first.size();
611  }
612  }
613 
614  unsigned int n = maxname + maxtype + maxinstname + 51;
615  std::cout << std::left << std::setfill('*') << std::setw(n - 1) << "**" << std::endl;
616  std::cout << "Unique Ptrs that are added to the event" << std::endl;
617  std::cout << std::left << std::setfill('*') << std::setw(n - 1) << "**" << std::endl;
618  for (auto const& Type_showerprodPtr : Type_showerprodPtrs) {
619  std::cout << std::left << std::setfill(' ') << std::setw(21)
620  << "* Data Product Name: " << std::setw(maxname) << Type_showerprodPtr.first;
621  std::cout << std::left << std::setfill(' ') << " * Instance Name: " << std::setw(maxinstname)
622  << Type_showerprodPtr.second.first;
623  std::cout << std::left << std::setfill(' ') << " * Type: " << std::setw(maxtype)
624  << Type_showerprodPtr.second.second << " *" << std::endl;
625  }
626  for (auto const& Type_showerassnPtr : Type_showerassnPtrs) {
627  std::cout << std::left << std::setfill(' ') << std::setw(maxname) << std::setw(21)
628  << "* Association Name: " << std::setw(maxname) << Type_showerassnPtr.first;
629  std::cout << std::left << std::setfill(' ') << " * Instance Name: " << std::setw(maxinstname)
630  << Type_showerassnPtr.second.first;
631  std::cout << std::left << std::setfill(' ') << " * Type: " << std::setw(maxtype)
632  << Type_showerassnPtr.second.second << " *" << std::endl;
633  }
634  std::cout << std::left << std::setfill('*') << std::setw(n - 1) << "**" << std::endl;
635  std::cout << std::setfill(' ');
636  std::cout << std::setw(0);
637  return;
638  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
Char_t n[5]
void reco::shower::ShowerProducedPtrsHolder::reset ( )
inline

Definition at line 372 of file ShowerProducedPtrsHolder.hh.

Referenced by reco::shower::LArPandoraModularShowerCreation::produce().

373  {
374  for (auto const& showerptr : showerproductPtrs) {
375  (showerptr.second)->reset();
376  }
377  for (auto const& showerptr : showerassnPtrs) {
378  (showerptr.second)->reset();
379  }
380  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
void reco::shower::ShowerProducedPtrsHolder::ResetPtrMakers ( )
inline

Definition at line 527 of file ShowerProducedPtrsHolder.hh.

References Reset().

528  {
529  for (auto const& showerPtrMaker : showerPtrMakers) {
530  (showerPtrMaker.second)->Reset();
531  }
532  }
ntupleExperimental Reset()
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
void reco::shower::ShowerProducedPtrsHolder::SetPtrMakers ( art::Event evt)
inline

Definition at line 470 of file ShowerProducedPtrsHolder.hh.

Referenced by reco::shower::LArPandoraModularShowerCreation::produce().

471  {
472  for (auto const& showerPtrMaker : showerPtrMakers) {
473  if (showerPtrMakers.find(showerPtrMaker.first) == showerPtrMakers.end()) {
474  throw cet::exception("ShowerProducedPtrsHolder")
475  << "PtrMaker was empty. This is concerning" << std::endl;
476  }
477  showerPtrMakers[showerPtrMaker.first]->SetPtrMaker(evt);
478  }
479  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<class T >
int reco::shower::ShowerProducedPtrsHolder::SetShowerUniqueProduerPtr ( type< T >  ,
const std::string &  Name,
const std::string &  Instance = "" 
)
inline

Definition at line 308 of file ShowerProducedPtrsHolder.hh.

Referenced by ShowerRecoTools::IShowerTool::InitialiseProduct(), and reco::shower::LArPandoraModularShowerCreation::LArPandoraModularShowerCreation().

309  {
310 
311  //Add to the assns
312  if (showerassnPtrs.find(Name) != showerassnPtrs.end()) {
313  mf::LogWarning("ShowerProducedPtrsHolder")
314  << "Trying to set Element: " << Name << ". This element has already been set. Please check."
315  << std::endl;
316  return 1;
317  }
318 
319  //Check the same type has not already been set.
320  if (!CheckForMultipleTypes(type<T>(), Name, Instance)) {
321  throw cet::exception("ShowerProducedPtrsHolder")
322  << "Trying to set multiple objects with same type with no instance name or same instance "
323  "name"
324  << std::endl;
325  }
326 
327  showerassnPtrs[Name] = std::make_unique<ShowerUniqueAssnPtr<T>>(Instance);
328  return 0;
329  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerassnPtrs
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
bool CheckForMultipleTypes(type< T >, const std::string &Name, const std::string &Instance) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<class T >
int reco::shower::ShowerProducedPtrsHolder::SetShowerUniqueProduerPtr ( type< std::vector< T >>  ,
const std::string &  Name,
const std::string &  Instance = "" 
)
inline

Definition at line 333 of file ShowerProducedPtrsHolder.hh.

336  {
337 
338  //Then add the products
339  if (showerproductPtrs.find(Name) != showerproductPtrs.end()) {
340  mf::LogWarning("ShowerProducedPtrsHolder")
341  << "Trying to set Element: " << Name << ". This element has already been set. Please check."
342  << std::endl;
343  return 1;
344  }
345 
346  //Check the same type has not already been set.
347  if (!CheckForMultipleTypes(type<std::vector<T>>(), Name, Instance)) {
348  throw cet::exception("ShowerProducedPtrsHolder")
349  << "Trying to set multiple objects with same type with no instance name or same instance "
350  "name"
351  << std::endl;
352  }
353 
354  if (showerPtrMakers.find(Name) != showerPtrMakers.end()) {
355  throw cet::exception("ShowerProducedPtrsHolder")
356  << "PtrMaker already exist. It should not be set again" << std::endl;
357  }
358  showerPtrMakers[Name] = std::make_unique<ShowerPtrMaker<T>>(Instance);
359  showerproductPtrs[Name] = std::make_unique<ShowerUniqueProductPtr<std::vector<T>>>(Instance);
360  return 0;
361  }
std::map< std::string, std::unique_ptr< reco::shower::ShowerUniqueProduerPtrBase > > showerproductPtrs
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::map< std::string, std::unique_ptr< reco::shower::ShowerPtrMakerBase > > showerPtrMakers
bool CheckForMultipleTypes(type< T >, const std::string &Name, const std::string &Instance) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

Member Data Documentation

std::map<std::string, std::unique_ptr<reco::shower::ShowerUniqueProduerPtrBase> > reco::shower::ShowerProducedPtrsHolder::showerassnPtrs
private

Definition at line 680 of file ShowerProducedPtrsHolder.hh.

std::map<std::string, std::unique_ptr<reco::shower::ShowerUniqueProduerPtrBase> > reco::shower::ShowerProducedPtrsHolder::showerproductPtrs
private

Definition at line 677 of file ShowerProducedPtrsHolder.hh.

std::map<std::string, std::unique_ptr<reco::shower::ShowerPtrMakerBase> > reco::shower::ShowerProducedPtrsHolder::showerPtrMakers
private

Definition at line 683 of file ShowerProducedPtrsHolder.hh.


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