Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef KfTrackProducerBase_h
0002 #define KfTrackProducerBase_h
0003 
0004 /** \class KfTrackProducerBase
0005  *  Produce Tracks from TrackCandidates
0006  *
0007  *  \author cerati
0008  */
0009 
0010 #include "RecoTracker/TrackProducer/interface/TrackProducerBase.h"
0011 
0012 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0013 
0014 class Trajectory;
0015 
0016 class KfTrackProducerBase : public TrackProducerBase<reco::Track> {
0017 public:
0018   /// Constructor
0019   explicit KfTrackProducerBase(bool trajectoryInEvent, bool split)
0020       : TrackProducerBase<reco::Track>(trajectoryInEvent), rekeyClusterRefs_(false), useSplitting(split) {}
0021 
0022   /// Put produced collections in the event
0023   virtual void putInEvt(edm::Event&,
0024                         const Propagator* prop,
0025                         const MeasurementTracker* measTk,
0026                         std::unique_ptr<TrackingRecHitCollection>&,
0027                         std::unique_ptr<reco::TrackCollection>&,
0028                         std::unique_ptr<reco::TrackExtraCollection>&,
0029                         std::unique_ptr<std::vector<Trajectory> >&,
0030                         std::unique_ptr<std::vector<int> >&,
0031                         AlgoProductCollection&,
0032                         TransientTrackingRecHitBuilder const*,
0033                         const TrackerTopology* ttopo,
0034                         //allow to fill different tracks collections if necessary ::
0035                         //0: not needed
0036                         //1: Before DAF
0037                         //2: After DAF
0038                         int BeforeOrAfter = 0);
0039 
0040   //  void setSecondHitPattern(Trajectory* traj, reco::Track& track);
0041 protected:
0042   /// Sets the information on cluster removal, and turns it on
0043   void setClusterRemovalInfo(const edm::InputTag& clusterRemovalInfo) {
0044     rekeyClusterRefs_ = true;
0045     clusterRemovalInfo_ = clusterRemovalInfo;
0046   }
0047 
0048   bool rekeyClusterRefs_;
0049   edm::InputTag clusterRemovalInfo_;
0050 
0051 private:
0052   bool useSplitting;
0053 };
0054 
0055 #endif