|
| 1 | +/** \class DAFTrackProducer |
| 2 | + * EDProducer for DAFTrackProducerAlgorithm. |
| 3 | + * |
| 4 | + * \author tropiano, genta |
| 5 | + * \review in May 2014 by brondolin |
| 6 | + */ |
| 7 | + |
1 | 8 | #include <memory> |
2 | 9 |
|
| 10 | +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" |
3 | 11 | #include "FWCore/Framework/interface/Frameworkfwd.h" |
4 | | -#include "FWCore/Framework/interface/MakerMacros.h" |
| 12 | +#include "FWCore/Framework/interface/stream/EDProducer.h" |
5 | 13 | #include "FWCore/MessageLogger/interface/MessageLogger.h" |
| 14 | +#include "Geometry/Records/interface/TrackerTopologyRcd.h" |
6 | 15 | #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" |
7 | 16 | #include "RecoTracker/Record/interface/MultiRecHitRecord.h" |
8 | 17 | #include "RecoTracker/SiTrackerMRHTools/interface/MultiRecHitCollector.h" |
9 | 18 | #include "RecoTracker/SiTrackerMRHTools/interface/SiTrackerMultiRecHitUpdator.h" |
10 | | -#include "RecoTracker/TrackProducer/plugins/DAFTrackProducer.h" |
| 19 | +#include "RecoTracker/TrackProducer/interface/DAFTrackProducerAlgorithm.h" |
| 20 | +#include "RecoTracker/TrackProducer/interface/KfTrackProducerBase.h" |
11 | 21 | #include "TrackingTools/GeomPropagators/interface/Propagator.h" |
12 | | -#include "TrackingTools/PatternTools/interface/Trajectory.h" |
13 | 22 | #include "TrackingTools/PatternTools/interface/TrajAnnealing.h" |
14 | 23 | #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" |
| 24 | +#include "TrackingTools/PatternTools/interface/Trajectory.h" |
15 | 25 | #include "TrackingTools/Records/interface/TrackingComponentsRecord.h" |
16 | 26 |
|
17 | | -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" |
18 | | -#include "Geometry/Records/interface/TrackerTopologyRcd.h" |
| 27 | +//class MultiRecHitRecord; |
| 28 | + |
| 29 | +class DAFTrackProducer : public KfTrackProducerBase, public edm::stream::EDProducer<> { |
| 30 | +public: |
| 31 | + typedef std::vector<Trajectory> TrajectoryCollection; |
| 32 | + // typedef std::vector<TrajAnnealing> TrajAnnealingCollection; |
| 33 | + explicit DAFTrackProducer(const edm::ParameterSet& iConfig); |
| 34 | + |
| 35 | + // Implementation of produce method |
| 36 | + void produce(edm::Event&, const edm::EventSetup&) override; |
| 37 | + |
| 38 | +private: |
| 39 | + DAFTrackProducerAlgorithm theAlgo; |
| 40 | + using TrackProducerBase<reco::Track>::getFromEvt; |
| 41 | + void getFromEvt(edm::Event&, edm::Handle<TrajTrackAssociationCollection>&, reco::BeamSpot&); |
| 42 | + void putInEvtTrajAnn(edm::Event& theEvent, |
| 43 | + TrajAnnealingCollection& trajannResults, |
| 44 | + std::unique_ptr<TrajAnnealingCollection>& selTrajAnn); |
| 45 | + |
| 46 | + bool TrajAnnSaving_; |
| 47 | + edm::EDGetTokenT<TrajTrackAssociationCollection> srcTT_; |
| 48 | + edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> ttopoToken_; |
| 49 | + edm::ESGetToken<MultiRecHitCollector, MultiRecHitRecord> measurementCollectorToken_; |
| 50 | + edm::ESGetToken<SiTrackerMultiRecHitUpdator, MultiRecHitRecord> updatorToken_; |
| 51 | +}; |
19 | 52 |
|
20 | 53 | DAFTrackProducer::DAFTrackProducer(const edm::ParameterSet& iConfig) |
21 | 54 | : KfTrackProducerBase(iConfig.getParameter<bool>("TrajectoryInEvent"), false), theAlgo(iConfig) { |
@@ -193,3 +226,6 @@ void DAFTrackProducer::putInEvtTrajAnn(edm::Event& theEvent, |
193 | 226 |
|
194 | 227 | theEvent.put(std::move(outputTrajAnnColl)); |
195 | 228 | } |
| 229 | + |
| 230 | +#include "FWCore/Framework/interface/MakerMacros.h" |
| 231 | +DEFINE_FWK_MODULE(DAFTrackProducer); |
0 commit comments