CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
SeedCombiner Class Reference

#include <SeedCombiner.h>

Inheritance diagram for SeedCombiner:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (edm::Run &run, const edm::EventSetup &es)
 
virtual void produce (edm::Event &ev, const edm::EventSetup &es)
 
 SeedCombiner (const edm::ParameterSet &cfg)
 
 ~SeedCombiner ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

std::vector< edm::InputTagclusterRemovalInfos_
 
std::vector< edm::InputTaginputCollections_
 
bool reKeing_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 11 of file SeedCombiner.h.

Constructor & Destructor Documentation

SeedCombiner::SeedCombiner ( const edm::ParameterSet cfg)

Definition at line 28 of file SeedCombiner.cc.

References clusterRemovalInfos_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), inputCollections_, and reKeing_.

30  :
31  inputCollections_(cfg.getParameter<std::vector<edm::InputTag> >("seedCollections"))
32 {
33  produces<TrajectorySeedCollection>();
34  reKeing_=false;
35  if (cfg.exists("clusterRemovalInfos")){
36  clusterRemovalInfos_=cfg.getParameter<std::vector<edm::InputTag> >("clusterRemovalInfos");
37  if (clusterRemovalInfos_.size()!=0 && clusterRemovalInfos_.size()==inputCollections_.size()) reKeing_=true;
38  }
39 }
T getParameter(std::string const &) const
std::vector< edm::InputTag > clusterRemovalInfos_
Definition: SeedCombiner.h:24
std::vector< edm::InputTag > inputCollections_
Definition: SeedCombiner.h:22
bool exists(std::string const &parameterName) const
checks if a parameter exists
SeedCombiner::~SeedCombiner ( )

Definition at line 42 of file SeedCombiner.cc.

43 {
44 }

Member Function Documentation

void SeedCombiner::beginRun ( edm::Run run,
const edm::EventSetup es 
)
virtual

Reimplemented from edm::EDProducer.

Definition at line 47 of file SeedCombiner.cc.

48 {
49 }
void SeedCombiner::produce ( edm::Event ev,
const edm::EventSetup es 
)
virtual

Implements edm::EDProducer.

Definition at line 51 of file SeedCombiner.cc.

References edm::OwnVector< T, P >::back(), clusterRemovalInfos_, runEdmFileComparison::collection, edm::Event::getByLabel(), i, inputCollections_, edm::OwnVector< T, P >::push_back(), edm::Event::put(), reKeing_, ClusterRemovalRefSetter::reKey(), edm::OwnVector< T, P >::reserve(), and query::result.

52 {
53  // Read inputs, and count total seeds
54  size_t ninputs = inputCollections_.size();
55  size_t nseeds = 0;
56  std::vector<Handle<TrajectorySeedCollection > > seedCollections(ninputs);
57  for (size_t i = 0; i < ninputs; ++i) {
58  ev.getByLabel(inputCollections_[i], seedCollections[i]);
59  nseeds += seedCollections[i]->size();
60  }
61 
62  // Prepare output collections, with the correct capacity
63  std::auto_ptr<TrajectorySeedCollection> result(new TrajectorySeedCollection());
64  result->reserve( nseeds );
65 
66  // Write into output collection
67  unsigned int iSC=0,iSC_max=seedCollections.size();
68  for (;iSC!=iSC_max;++iSC){
69  Handle<TrajectorySeedCollection> & collection=seedCollections[iSC];
70  if (reKeing_ && !(clusterRemovalInfos_[iSC]==edm::InputTag(""))){
72 
73  for (TrajectorySeedCollection::const_iterator iS=collection->begin();
74  iS!=collection->end();++iS){
75  TrajectorySeed::recHitContainer newRecHitContainer;
76  newRecHitContainer.reserve(iS->nHits());
77  TrajectorySeed::const_iterator iH=iS->recHits().first;
78  TrajectorySeed::const_iterator iH_end=iS->recHits().second;
79  //loop seed rechits, copy over and rekey.
80  for (;iH!=iH_end;++iH){
81  newRecHitContainer.push_back(*iH);
82  refSetter.reKey(&newRecHitContainer.back());
83  }
84  result->push_back(TrajectorySeed(iS->startingState(),
85  std::move(newRecHitContainer),
86  iS->direction()));
87  }
88  }else{
89  //just insert the new seeds as they are
90  result->insert(result->end(), collection->begin(), collection->end());
91  }
92  }
93 
94  // Save result into the event
95  ev.put(result);
96 }
std::vector< edm::InputTag > clusterRemovalInfos_
Definition: SeedCombiner.h:24
int i
Definition: DBlmapReader.cc:9
reference back()
Definition: OwnVector.h:320
std::vector< edm::InputTag > inputCollections_
Definition: SeedCombiner.h:22
void push_back(D *&d)
Definition: OwnVector.h:273
std::vector< TrajectorySeed > TrajectorySeedCollection
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
recHitContainer::const_iterator const_iterator
tuple result
Definition: query.py:137
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
void reserve(size_t)
Definition: OwnVector.h:267

Member Data Documentation

std::vector<edm::InputTag> SeedCombiner::clusterRemovalInfos_
private

Definition at line 24 of file SeedCombiner.h.

Referenced by produce(), and SeedCombiner().

std::vector<edm::InputTag> SeedCombiner::inputCollections_
private

Definition at line 22 of file SeedCombiner.h.

Referenced by produce(), and SeedCombiner().

bool SeedCombiner::reKeing_
private

Definition at line 23 of file SeedCombiner.h.

Referenced by produce(), and SeedCombiner().