CMS 3D CMS Logo

TSGFromPropagation.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackerSeedGenerator_TSGFromPropagation_H
2 #define RecoMuon_TrackerSeedGenerator_TSGFromPropagation_H
3 
22 
23 #include <memory>
24 
26 class Propagator;
27 class MeasurementTracker;
31 class TrackerTopology;
33 
35 public:
38 
40 
42  ~TSGFromPropagation() override;
43 
45  void trackerSeeds(const TrackCand&,
46  const TrackingRegion&,
47  const TrackerTopology*,
48  std::vector<TrajectorySeed>&) override;
49 
51  void init(const MuonServiceProxy*) override;
52 
54  void setEvent(const edm::Event&) override;
55 
56 private:
58 
60 
61  const TrajectoryStateUpdator* updator() const { return theUpdator.get(); }
62 
63  const Chi2MeasurementEstimator* estimator() const { return theEstimator.get(); }
64 
66 
69 
72  const edm::OwnVector<TrackingRecHit>& container,
73  const DetId& id) const;
74 
76  void validMeasurements(std::vector<TrajectoryMeasurement>&) const;
77 
79  std::vector<TrajectoryMeasurement> findMeasurements(const DetLayer*, const TrajectoryStateOnSurface&) const;
80 
82  bool passSelection(const TrajectoryStateOnSurface&) const;
83 
84  void getRescalingFactor(const TrackCand& staMuon);
85 
87  void adjust(FreeTrajectoryState&) const;
88 
90  void adjust(TrajectoryStateOnSurface&) const;
91 
92  double dxyDis(const TrajectoryStateOnSurface& tsos) const;
93 
94  double zDis(const TrajectoryStateOnSurface& tsos) const;
95 
97  bool operator()(const TrajectoryMeasurement& lhs, const TrajectoryMeasurement& rhs) const {
98  return lhs.estimate() < rhs.estimate();
99  }
100  };
101 
102  struct isInvalid {
103  bool operator()(const TrajectoryMeasurement& measurement) {
104  return (((measurement).recHit() == nullptr) || !((measurement).recHit()->isValid()) ||
105  !((measurement).updatedState().isValid()));
106  }
107  };
108 
109  unsigned long long theCacheId_TG;
110 
112 
114 
115  std::unique_ptr<const DirectTrackerNavigation> theNavigation;
116 
118 
119  std::unique_ptr<const TrajectoryStateUpdator> theUpdator;
120 
121  std::unique_ptr<const Chi2MeasurementEstimator> theEstimator;
122 
123  const double theMaxChi2;
124 
126 
128 
130 
131  const bool theUpdateStateFlag;
132 
133  enum class ResetMethod { discrete, fixed, matrix };
135 
136  const bool theSelectStateFlag;
137 
139 
140  std::unique_ptr<MuonErrorMatrix> theErrorMatrixAdjuster;
141 
142  const double theSigmaZ;
143 
145 
150 };
151 
152 #endif
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, std::vector< TrajectorySeed > &) override
generate seed(s) for a track
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
const MuonServiceProxy * theService
const edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken
bool operator()(const TrajectoryMeasurement &measurement)
edm::ESHandle< Propagator > propagator() const
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
const TrajectoryStateUpdator * updator() const
void init(const MuonServiceProxy *) override
initialize
unsigned long long theCacheId_TG
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
TrajectoryStateOnSurface innerState(const TrackCand &) const
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
TSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
std::pair< const Trajectory *, reco::TrackRef > TrackCand
const ResetMethod theResetMethod
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
const Chi2MeasurementEstimator * estimator() const
void setEvent(const edm::Event &) override
set an event
bool operator()(const TrajectoryMeasurement &lhs, const TrajectoryMeasurement &rhs) const
std::unique_ptr< const DirectTrackerNavigation > theNavigation
void getRescalingFactor(const TrackCand &staMuon)
const double theFixedErrorRescaling
const edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
const std::string theCategory
const edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > theTrackerToken
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
const std::string thePropagatorName
const bool theUseVertexStateFlag
Definition: DetId.h:17
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
const edm::ParameterSet theErrorMatrixPset
double dxyDis(const TrajectoryStateOnSurface &tsos) const
double zDis(const TrajectoryStateOnSurface &tsos) const
edm::Handle< reco::BeamSpot > beamSpot
~TSGFromPropagation() override
destructor