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 
24 class Propagator;
25 class MeasurementTracker;
29 class TrackerTopology;
30 
32 
33 public:
36 
38 
40  ~TSGFromPropagation() override;
41 
43  void trackerSeeds(const TrackCand&, const TrackingRegion&, const TrackerTopology *, std::vector<TrajectorySeed>&) override;
44 
46  void init(const MuonServiceProxy*) override;
47 
49  void setEvent(const edm::Event&) override;
50 
51 private:
52 
54 
56 
58 
59  const TrajectoryStateUpdator* updator() const {return theUpdator;}
60 
61  const Chi2MeasurementEstimator* estimator() const { return theEstimator; }
62 
64 
67 
69  TrajectorySeed createSeed(const TrajectoryStateOnSurface& tsos, const edm::OwnVector<TrackingRecHit>& container, const DetId& id) const;
70 
72  void validMeasurements(std::vector<TrajectoryMeasurement>&) const;
73 
75  std::vector<TrajectoryMeasurement> findMeasurements_new(const DetLayer*, const TrajectoryStateOnSurface&) const;
76 
78  std::vector<TrajectoryMeasurement> findMeasurements(const DetLayer*, const TrajectoryStateOnSurface&) const;
79 
81  bool passSelection(const TrajectoryStateOnSurface&) const;
82 
83  void getRescalingFactor(const TrackCand& staMuon);
84 
86  void adjust(FreeTrajectoryState &) const;
87 
89  void adjust(TrajectoryStateOnSurface &) const;
90 
91  double dxyDis(const TrajectoryStateOnSurface& tsos) const;
92 
93  double zDis(const TrajectoryStateOnSurface& tsos) const;
94 
97  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()) || !((measurement).updatedState().isValid()) );
105  }
106  };
107 
108  unsigned long long theCacheId_MT;
109  unsigned long long theCacheId_TG;
110 
112 
114 
116 
121 
123 
125 
127 
129 
131 
132  double theMaxChi2;
133 
135 
137 
139 
141 
143 
145 
147 
149 
151 
152  double theSigmaZ;
153 
155 
160 };
161 
162 #endif
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, std::vector< TrajectorySeed > &) override
generate seed(s) for a track
const MuonServiceProxy * theService
TrajectoryStateTransform * theTSTransformer
bool operator()(const TrajectoryMeasurement &measurement)
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
std::pair< const Trajectory *, reco::TrackRef > TrackCand
void init(const MuonServiceProxy *) override
initialize
double zDis(const TrajectoryStateOnSurface &tsos) const
unsigned long long theCacheId_TG
LayerMeasurements theTkLayerMeasurements
TSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
edm::ParameterSet theConfig
const TrajectoryStateUpdator * theUpdator
void setEvent(const edm::Event &) override
set an event
TrajectoryStateOnSurface innerState(const TrackCand &) const
edm::ESHandle< MeasurementTracker > theMeasTracker
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
void getRescalingFactor(const TrackCand &staMuon)
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
double dxyDis(const TrajectoryStateOnSurface &tsos) const
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken
const TrajectoryStateUpdator * updator() const
bool operator()(const TrajectoryMeasurement &lhs, const TrajectoryMeasurement &rhs) const
edm::InputTag theMeasurementTrackerEventTag
std::string thePropagatorName
Definition: DetId.h:18
edm::ESHandle< GeometricSearchTracker > theTracker
const LayerMeasurements * tkLayerMeasurements() const
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
const DirectTrackerNavigation * theNavigation
std::string theMeasTrackerName
unsigned long long theCacheId_MT
edm::InputTag theBeamSpotInputTag
const Chi2MeasurementEstimator * estimator() const
std::vector< TrajectoryMeasurement > findMeasurements_new(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer (faster way)
MuonErrorMatrix * theErrorMatrixAdjuster
edm::ESHandle< Propagator > propagator() const
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
const Chi2MeasurementEstimator * theEstimator
edm::Handle< reco::BeamSpot > beamSpot
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
~TSGFromPropagation() override
destructor