#include <RecoTracker/TrackProducer/plugins/DAFTrackProducer.h>
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 |
Definition at line 7 of file DAFTrackProducer.h.
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 }
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 }