CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes
edm::FwdPtrProducer< T, H > Class Template Reference

Produces a list of FwdPtr's to an input collection. More...

#include "CommonTools/UtilAlgos/interface/FwdPtrProducer.h"

Inheritance diagram for edm::FwdPtrProducer< T, H >:
edm::stream::EDProducer<>

Public Member Functions

 FwdPtrProducer (edm::ParameterSet const &params)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~FwdPtrProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Protected Attributes

edm::EDGetTokenT< edm::View< T > > srcToken_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

template<class T, class H = FwdPtrFromProductFactory<T>>
class edm::FwdPtrProducer< T, H >

Produces a list of FwdPtr's to an input collection.

Author
Salvatore Rappoccio

Definition at line 24 of file FwdPtrProducer.h.

Constructor & Destructor Documentation

◆ FwdPtrProducer()

template<class T , class H = FwdPtrFromProductFactory<T>>
edm::FwdPtrProducer< T, H >::FwdPtrProducer ( edm::ParameterSet const &  params)
inlineexplicit

Definition at line 26 of file FwdPtrProducer.h.

27  : srcToken_(consumes<edm::View<T> >(params.getParameter<edm::InputTag>("src"))) {
28  produces<std::vector<edm::FwdPtr<T> > >();
29  }

◆ ~FwdPtrProducer()

template<class T , class H = FwdPtrFromProductFactory<T>>
edm::FwdPtrProducer< T, H >::~FwdPtrProducer ( )
inlineoverride

Definition at line 31 of file FwdPtrProducer.h.

31 {}

Member Function Documentation

◆ produce()

template<class T , class H = FwdPtrFromProductFactory<T>>
void edm::FwdPtrProducer< T, H >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
inlineoverride

Definition at line 33 of file FwdPtrProducer.h.

33  {
35  iEvent.getByToken(srcToken_, hSrc);
36 
37  std::unique_ptr<std::vector<edm::FwdPtr<T> > > pOutputFwdPtr(new std::vector<edm::FwdPtr<T> >);
38 
39  for (typename edm::View<T>::const_iterator ibegin = hSrc->begin(), iend = hSrc->end(), i = ibegin; i != iend;
40  ++i) {
41  H factory;
42  FwdPtr<T> ptr = factory(*hSrc, i - ibegin);
43  pOutputFwdPtr->push_back(ptr);
44  }
45 
46  iEvent.put(std::move(pOutputFwdPtr));
47  }

References class-composition::H, mps_fire::i, iEvent, eostools::move(), edm::FwdPtrProducer< T, H >::srcToken_, and trackerHitRTTI::vector.

Member Data Documentation

◆ srcToken_

template<class T , class H = FwdPtrFromProductFactory<T>>
edm::EDGetTokenT<edm::View<T> > edm::FwdPtrProducer< T, H >::srcToken_
protected

Definition at line 50 of file FwdPtrProducer.h.

Referenced by edm::FwdPtrProducer< T, H >::produce().

edm::FwdPtrProducer::srcToken_
edm::EDGetTokenT< edm::View< T > > srcToken_
Definition: FwdPtrProducer.h:50
class-composition.H
H
Definition: class-composition.py:31
mps_fire.i
i
Definition: mps_fire.py:428
CalibrationSummaryClient_cfi.params
params
Definition: CalibrationSummaryClient_cfi.py:14
edm::Handle
Definition: AssociativeIterator.h:50
edm::FwdPtr
Definition: FwdPtr.h:40
edm::View
Definition: CaloClusterFwd.h:14
iEvent
int iEvent
Definition: GenABIO.cc:224
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::InputTag
Definition: InputTag.h:15