File indexing completed on 2024-04-06 12:27:59
0001 #ifndef CkfTrajectoryMaker_h
0002 #define CkfTrajectoryMaker_h
0003
0004 #include "FWCore/Framework/interface/stream/EDProducer.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009
0010 #include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleaner.h"
0011
0012 #include "MagneticField/Engine/interface/MagneticField.h"
0013 #include "TrackingTools/DetLayers/interface/NavigationSchool.h"
0014 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
0015
0016 #include "RecoTracker/CkfPattern/interface/RedundantSeedCleaner.h"
0017 #include "RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h"
0018 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
0019 #include "DataFormats/TrackReco/interface/SeedStopInfo.h"
0020
0021 class TransientInitialStateEstimator;
0022
0023 namespace cms {
0024 class dso_internal CkfTrajectoryMaker : public edm::stream::EDProducer<>, public CkfTrackCandidateMakerBase {
0025 public:
0026 typedef std::vector<Trajectory> TrajectoryCollection;
0027
0028 explicit CkfTrajectoryMaker(const edm::ParameterSet& conf) : CkfTrackCandidateMakerBase(conf, consumesCollector()) {
0029 theTrackCandidateOutput = conf.getParameter<bool>("trackCandidateAlso");
0030 theTrajectoryOutput = true;
0031 if (theTrackCandidateOutput)
0032 produces<TrackCandidateCollection>();
0033 produces<TrajectoryCollection>();
0034 produces<std::vector<SeedStopInfo> >();
0035 }
0036
0037 ~CkfTrajectoryMaker() override { ; }
0038
0039 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0040 edm::ParameterSetDescription desc;
0041 desc.setComment("Make CKF trajectories");
0042 desc.add<bool>("trackCandidateAlso", false);
0043 CkfTrackCandidateMakerBase::fillPSetDescription(desc);
0044 descriptions.addWithDefaultLabel(desc);
0045 }
0046
0047 void beginRun(edm::Run const& run, edm::EventSetup const& es) override { beginRunBase(run, es); }
0048
0049 void produce(edm::Event& e, const edm::EventSetup& es) override { produceBase(e, es); }
0050 };
0051 }
0052
0053 #endif