File indexing completed on 2024-04-06 12:26:58
0001 #ifndef RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H
0002 #define RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H
0003
0004 #include "FWCore/Framework/interface/ESWatcher.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0006 #include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h"
0007
0008 class TrackingComponentsRecord;
0009
0010 class MuonCkfTrajectoryBuilder : public CkfTrajectoryBuilder {
0011 public:
0012 MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC);
0013 ~MuonCkfTrajectoryBuilder() override;
0014
0015 static void fillPSetDescription(edm::ParameterSetDescription& iDesc);
0016
0017 protected:
0018 void setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0019
0020 void collectMeasurement(const DetLayer* layer,
0021 const std::vector<const DetLayer*>& nl,
0022 const TrajectoryStateOnSurface& currentState,
0023 std::vector<TM>& result,
0024 int& invalidHits,
0025 const Propagator*) const;
0026
0027 void findCompatibleMeasurements(const TrajectorySeed& seed,
0028 const TempTrajectory& traj,
0029 std::vector<TrajectoryMeasurement>& result) const override;
0030
0031
0032 bool theUseSeedLayer;
0033 double theRescaleErrorIfFail;
0034 const double theDeltaEta;
0035 const double theDeltaPhi;
0036 const std::string theProximityPropagatorName;
0037 const Propagator* theProximityPropagator;
0038 const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorToken;
0039 edm::ESWatcher<BaseCkfTrajectoryBuilder::Chi2MeasurementEstimatorRecord> theEstimatorWatcher;
0040 std::unique_ptr<Chi2MeasurementEstimatorBase> theEtaPhiEstimator;
0041 };
0042
0043 #endif