Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:59

0001 /** \class DAFTrackProducer
0002   *  EDProducer for DAFTrackProducerAlgorithm.
0003   *
0004   *  \author tropiano, genta
0005   *  \review in May 2014 by brondolin 
0006   */
0007 
0008 #ifndef DAFTrackProducer_h
0009 #define DAFTrackProducer_h
0010 
0011 #include "FWCore/Framework/interface/stream/EDProducer.h"
0012 #include "RecoTracker/TrackProducer/interface/KfTrackProducerBase.h"
0013 #include "RecoTracker/TrackProducer/interface/DAFTrackProducerAlgorithm.h"
0014 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0015 #include "TrackingTools/PatternTools/interface/TrajAnnealing.h"
0016 
0017 class MultiRecHitRecord;
0018 
0019 class DAFTrackProducer : public KfTrackProducerBase, public edm::stream::EDProducer<> {
0020 public:
0021   typedef std::vector<Trajectory> TrajectoryCollection;
0022   //  typedef std::vector<TrajAnnealing> TrajAnnealingCollection;
0023   explicit DAFTrackProducer(const edm::ParameterSet& iConfig);
0024 
0025   // Implementation of produce method
0026   void produce(edm::Event&, const edm::EventSetup&) override;
0027 
0028 private:
0029   DAFTrackProducerAlgorithm theAlgo;
0030   using TrackProducerBase<reco::Track>::getFromEvt;
0031   void getFromEvt(edm::Event&, edm::Handle<TrajTrackAssociationCollection>&, reco::BeamSpot&);
0032   void putInEvtTrajAnn(edm::Event& theEvent,
0033                        TrajAnnealingCollection& trajannResults,
0034                        std::unique_ptr<TrajAnnealingCollection>& selTrajAnn);
0035 
0036   bool TrajAnnSaving_;
0037   edm::EDGetTokenT<TrajTrackAssociationCollection> srcTT_;
0038   edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> ttopoToken_;
0039   edm::ESGetToken<MultiRecHitCollector, MultiRecHitRecord> measurementCollectorToken_;
0040   edm::ESGetToken<SiTrackerMultiRecHitUpdator, MultiRecHitRecord> updatorToken_;
0041 };
0042 
0043 #endif