CMS 3D CMS Logo

DAFTrackProducer Class Reference

#include <RecoTracker/TrackProducer/plugins/DAFTrackProducer.h>

Inheritance diagram for DAFTrackProducer:

KfTrackProducerBase edm::EDProducer TrackProducerBase< reco::Track > edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 DAFTrackProducer (const edm::ParameterSet &iConfig)
 Constructor.
virtual void produce (edm::Event &, const edm::EventSetup &)
 Implementation of produce method.

Private Attributes

DAFTrackProducerAlgorithm theAlgo


Detailed Description

Definition at line 7 of file DAFTrackProducer.h.


Constructor & Destructor Documentation

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

Constructor.

Definition at line 20 of file DAFTrackProducer.cc.

References TrackProducerBase< reco::Track >::alias_, edm::ParameterSet::getParameter(), TrackProducerBase< reco::Track >::setAlias(), TrackProducerBase< reco::Track >::setConf(), and TrackProducerBase< reco::Track >::setSrc().

00020                                                                 :
00021   KfTrackProducerBase(iConfig.getParameter<bool>("TrajectoryInEvent"),false),
00022   theAlgo(iConfig)
00023 {
00024   setConf(iConfig);
00025   setSrc( iConfig.getParameter<edm::InputTag>( "src" ), iConfig.getParameter<edm::InputTag>( "beamSpot" ));
00026   setAlias( iConfig.getParameter<std::string>( "@module_label" ) );
00027   //register your products
00028   produces<reco::TrackCollection>().setBranchAlias( alias_ + "Tracks" );
00029   produces<reco::TrackExtraCollection>().setBranchAlias( alias_ + "TrackExtras" );
00030   produces<TrackingRecHitCollection>().setBranchAlias( alias_ + "RecHits" );
00031   produces<std::vector<Trajectory> >() ;
00032   produces<TrajTrackAssociationCollection>();
00033 }


Member Function Documentation

void DAFTrackProducer::produce ( edm::Event theEvent,
const edm::EventSetup setup 
) [virtual]

Implementation of produce method.

Implements edm::EDProducer.

Definition at line 36 of file DAFTrackProducer.cc.

References e, edm::EventSetup::get(), TrackProducerBase< reco::Track >::getConf(), TrackProducerBase< reco::Track >::getFromES(), TrackProducerBase< reco::Track >::getFromEvt(), edm::ParameterSet::getParameter(), edm::Event::id(), LogDebug, edm::ESHandle< T >::product(), KfTrackProducerBase::putInEvt(), DAFTrackProducerAlgorithm::runWithCandidate(), and theAlgo.

00037 {
00038   edm::LogInfo("DAFTrackProducer") << "Analyzing event number: " << theEvent.id() << "\n";
00039   //
00040   // create empty output collections
00041   //
00042   std::auto_ptr<TrackingRecHitCollection>    outputRHColl (new TrackingRecHitCollection);
00043   std::auto_ptr<reco::TrackCollection>       outputTColl(new reco::TrackCollection);
00044   std::auto_ptr<reco::TrackExtraCollection>  outputTEColl(new reco::TrackExtraCollection);
00045   std::auto_ptr<std::vector<Trajectory> >    outputTrajectoryColl(new std::vector<Trajectory>);
00046 
00047   //
00048   //declare and get stuff to be retrieved from ES
00049   //
00050   edm::ESHandle<TrackerGeometry> theG;
00051   edm::ESHandle<MagneticField> theMF;
00052   edm::ESHandle<TrajectoryFitter> theFitter;
00053   edm::ESHandle<Propagator> thePropagator;
00054   edm::ESHandle<TransientTrackingRecHitBuilder> theBuilder;
00055   getFromES(setup,theG,theMF,theFitter,thePropagator,theBuilder);
00056   //get additional es_modules needed by the DAF 
00057   edm::ESHandle<MultiRecHitCollector> measurementCollectorHandle;
00058   edm::ESHandle<SiTrackerMultiRecHitUpdator> updatorHandle;     
00059   std::string measurementCollectorName = getConf().getParameter<std::string>("MeasurementCollector");
00060   setup.get<MultiRecHitRecord>().get(measurementCollectorName, measurementCollectorHandle);
00061   std::string  updatorName = getConf().getParameter<std::string>("UpdatorName");        
00062   setup.get<MultiRecHitRecord>().get(updatorName, updatorHandle);        
00063   //
00064   //declare and get TrackColection to be retrieved from the event
00065   //
00066   AlgoProductCollection algoResults;
00067   try{  
00068     edm::Handle<TrackCandidateCollection> theTCCollection;
00069     reco::BeamSpot bs;
00070     getFromEvt(theEvent,theTCCollection,bs);
00071     measurementCollectorHandle->updateEvent(theEvent);  
00072     //
00073     //run the algorithm  
00074     //
00075     LogDebug("DAFTrackProducer") << "run the algorithm" << "\n";
00076     theAlgo.runWithCandidate(theG.product(), theMF.product(), *theTCCollection, 
00077                              theFitter.product(), theBuilder.product(), measurementCollectorHandle.product(), updatorHandle.product(),bs,algoResults);
00078   } catch (cms::Exception &e){ edm::LogInfo("DAFTrackProducer") << "cms::Exception caught!!!" << "\n" << e << "\n";}
00079   //
00080   //put everything in the event
00081   putInEvt(theEvent, outputRHColl, outputTColl, outputTEColl, outputTrajectoryColl, algoResults);
00082   LogDebug("DAFTrackProducer") << "end" << "\n";
00083 }


Member Data Documentation

DAFTrackProducerAlgorithm DAFTrackProducer::theAlgo [private]

Definition at line 17 of file DAFTrackProducer.h.

Referenced by produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:37 2009 for CMSSW by  doxygen 1.5.4