CMS 3D CMS Logo

Public Member Functions | Private Types | Private Member Functions | Private Attributes

Merger< InputCollection, OutputCollection, P > Class Template Reference

#include <Merger.h>

Inheritance diagram for Merger< InputCollection, OutputCollection, P >:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 Merger (const edm::ParameterSet &)
 constructor from parameter set
 ~Merger ()
 destructor

Private Types

typedef std::vector
< edm::InputTag
vtag
 vector of strings

Private Member Functions

virtual void produce (edm::Event &, const edm::EventSetup &)
 process an event

Private Attributes

vtag src_
 labels of the collections to be merged

Detailed Description

template<typename InputCollection, typename OutputCollection = InputCollection, typename P = typename edm::clonehelper::CloneTrait<InputCollection>::type>
class Merger< InputCollection, OutputCollection, P >

Merges an arbitrary number of collections into a single collection.

Template parameters:

Author:
Luca Lista, INFN
Version:
Revision:
1.2
Id:
Merger.h,v 1.2 2010/02/20 20:55:21 wmtan Exp

Definition at line 30 of file Merger.h.


Member Typedef Documentation

template<typename InputCollection , typename OutputCollection = InputCollection, typename P = typename edm::clonehelper::CloneTrait<InputCollection>::type>
typedef std::vector<edm::InputTag> Merger< InputCollection, OutputCollection, P >::vtag [private]

vector of strings

Definition at line 41 of file Merger.h.


Constructor & Destructor Documentation

template<typename InputCollection , typename OutputCollection , typename P >
Merger< InputCollection, OutputCollection, P >::Merger ( const edm::ParameterSet par) [explicit]

constructor from parameter set

Definition at line 47 of file Merger.h.

                                                                                 : 
  src_( par.template getParameter<vtag>( "src" ) ) {
  produces<OutputCollection>();
}
template<typename InputCollection , typename OutputCollection , typename P >
Merger< InputCollection, OutputCollection, P >::~Merger ( )

destructor

Definition at line 53 of file Merger.h.

                                                      {
}

Member Function Documentation

template<typename InputCollection , typename OutputCollection , typename P >
void Merger< InputCollection, OutputCollection, P >::produce ( edm::Event evt,
const edm::EventSetup  
) [private, virtual]

process an event

Implements edm::EDProducer.

Definition at line 57 of file Merger.h.

References trackerHits::c, clone(), coll, edm::Event::getByLabel(), h, edm::Event::put(), and alignCSCRings::s.

                                                                                                {
  std::auto_ptr<OutputCollection> coll( new OutputCollection );
  for( vtag::const_iterator s = src_.begin(); s != src_.end(); ++ s ) {
    edm::Handle<InputCollection> h;
    evt.getByLabel( * s, h );
    for( typename InputCollection::const_iterator c = h->begin(); c != h->end(); ++c ) {
      coll->push_back( P::clone( * c ) );
    }
  }
  evt.put( coll );
}

Member Data Documentation

template<typename InputCollection , typename OutputCollection = InputCollection, typename P = typename edm::clonehelper::CloneTrait<InputCollection>::type>
vtag Merger< InputCollection, OutputCollection, P >::src_ [private]

labels of the collections to be merged

Definition at line 43 of file Merger.h.