CMS 3D CMS Logo

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

ExtraFromSeeds Class Reference

#include <RecoTracker/ExtraFromSeeds/src/ExtraFromSeeds.cc>

Inheritance diagram for ExtraFromSeeds:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 ExtraFromSeeds (const edm::ParameterSet &)
 ~ExtraFromSeeds ()

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)

Private Types

typedef std::vector< unsigned int > ExtremeLight

Private Member Functions

virtual void beginJob ()
virtual void endJob ()
virtual void produce (edm::Event &, const edm::EventSetup &) override

Private Attributes

edm::InputTag tracks_

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 46 of file ExtraFromSeeds.h.


Member Typedef Documentation

typedef std::vector<unsigned int> ExtraFromSeeds::ExtremeLight [private]

Definition at line 59 of file ExtraFromSeeds.h.


Constructor & Destructor Documentation

ExtraFromSeeds::ExtraFromSeeds ( const edm::ParameterSet iConfig) [explicit]

Definition at line 30 of file ExtraFromSeeds.cc.

References edm::ParameterSet::getParameter(), and tracks_.

{
  tracks_=iConfig.getParameter<edm::InputTag>("tracks");
  produces<ExtremeLight>();
  produces<TrackingRecHitCollection>();
  
}
ExtraFromSeeds::~ExtraFromSeeds ( )

Definition at line 39 of file ExtraFromSeeds.cc.

{
 
   // do anything here that needs to be done at desctruction time
   // (e.g. close files, deallocate resources etc.)

}

Member Function Documentation

void ExtraFromSeeds::beginJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 90 of file ExtraFromSeeds.cc.

{
}
void ExtraFromSeeds::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 96 of file ExtraFromSeeds.cc.

                       {
}
void ExtraFromSeeds::fillDescriptions ( edm::ConfigurationDescriptions descriptions) [static]

Reimplemented from edm::EDProducer.

Definition at line 101 of file ExtraFromSeeds.cc.

References edm::ConfigurationDescriptions::addDefault(), and edm::ParameterSetDescription::setUnknown().

                                                                           {
  //The following says we do not know what parameters are allowed so do no validation
  // Please change this to state exactly what you do use, even if it is no parameters
  edm::ParameterSetDescription desc;
  desc.setUnknown();
  descriptions.addDefault(desc);
}
void ExtraFromSeeds::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [override, private, virtual]

Implements edm::EDProducer.

Definition at line 54 of file ExtraFromSeeds.cc.

References reco::Track::extra(), edm::Event::getByLabel(), edm::Event::getRefBeforePut(), reco::TrackBase::highPurity, edm::Event::put(), reco::TrackBase::quality(), edm::OwnVector< T, P >::reserve(), reco::TrackExtra::seedRef(), testEve_cfg::tracks, and tracks_.

{

  // in
  edm::Handle<reco::TrackCollection> tracks;
  iEvent.getByLabel(tracks_,tracks);

  // out  
  std::auto_ptr<ExtremeLight> exxtralOut(new ExtremeLight());
  exxtralOut->resize(tracks->size());

  std::auto_ptr<TrackingRecHitCollection> hitOut(new TrackingRecHitCollection());
  TrackingRecHitRefProd rHits = iEvent.getRefBeforePut<TrackingRecHitCollection>();
  hitOut->reserve(3*tracks->size());

  for (unsigned int ie=0;ie!=tracks->size();++ie){
    const reco::Track & track = (*tracks)[ie];
    const reco::TrackExtra & extra = *track.extra();
    //only for high purity tracks
    if (!track.quality(reco::TrackBase::highPurity)) continue;

    TrajectorySeed::range seedRange=extra.seedRef()->recHits();
    TrajectorySeed::const_iterator seedHit;
    (*exxtralOut)[ie]=extra.seedRef()->nHits();
    for (seedHit=seedRange.first;seedHit!=seedRange.second;++seedHit){
      TrackingRecHit * hit = seedHit->clone();
      hitOut->push_back( hit );
    }

  }
  
  iEvent.put(exxtralOut);
  iEvent.put(hitOut);
}

Member Data Documentation

Definition at line 58 of file ExtraFromSeeds.h.

Referenced by ExtraFromSeeds(), and produce().