CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TSGFromPropagation.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackerSeedGenerator_TSGFromPropagation_H
2 #define RecoMuon_TrackerSeedGenerator_TSGFromPropagation_H
3 
21 
23 class Propagator;
24 class MeasurementTracker;
28 class TrackerTopology;
29 
31 
32 public:
35 
37 
39  virtual ~TSGFromPropagation();
40 
42  void trackerSeeds(const TrackCand&, const TrackingRegion&, const TrackerTopology *, std::vector<TrajectorySeed>&);
43 
45  void init(const MuonServiceProxy*);
46 
48  void setEvent(const edm::Event&);
49 
50 private:
51 
53 
55 
57 
58  const TrajectoryStateUpdator* updator() const {return theUpdator;}
59 
60  const Chi2MeasurementEstimator* estimator() const { return theEstimator; }
61 
63 
66 
68  TrajectorySeed createSeed(const TrajectoryStateOnSurface& tsos, const edm::OwnVector<TrackingRecHit>& container, const DetId& id) const;
69 
71  void validMeasurements(std::vector<TrajectoryMeasurement>&) const;
72 
74  std::vector<TrajectoryMeasurement> findMeasurements_new(const DetLayer*, const TrajectoryStateOnSurface&) const;
75 
77  std::vector<TrajectoryMeasurement> findMeasurements(const DetLayer*, const TrajectoryStateOnSurface&) const;
78 
80  bool passSelection(const TrajectoryStateOnSurface&) const;
81 
82  void getRescalingFactor(const TrackCand& staMuon);
83 
85  void adjust(FreeTrajectoryState &) const;
86 
88  void adjust(TrajectoryStateOnSurface &) const;
89 
90  double dxyDis(const TrajectoryStateOnSurface& tsos) const;
91 
92  double zDis(const TrajectoryStateOnSurface& tsos) const;
93 
96  const TrajectoryMeasurement& rhs) const{
97  return lhs.estimate() < rhs.estimate();
98  }
99  };
100 
101  struct isInvalid {
102  bool operator()(const TrajectoryMeasurement& measurement) {
103  return ( ((measurement).recHit() == 0) || !((measurement).recHit()->isValid()) || !((measurement).updatedState().isValid()) );
104  }
105  };
106 
107  unsigned long long theCacheId_MT;
108  unsigned long long theCacheId_TG;
109 
111 
113 
115 
120 
122 
124 
126 
128 
130 
131  double theMaxChi2;
132 
134 
136 
138 
140 
142 
144 
146 
148 
150 
151  double theSigmaZ;
152 
154 
157 
158 };
159 
160 #endif
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
const MuonServiceProxy * theService
TrajectoryStateTransform * theTSTransformer
bool operator()(const TrajectoryMeasurement &measurement)
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
std::pair< const Trajectory *, reco::TrackRef > TrackCand
double zDis(const TrajectoryStateOnSurface &tsos) const
unsigned long long theCacheId_TG
LayerMeasurements theTkLayerMeasurements
void init(const MuonServiceProxy *)
initialize
TSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
edm::ParameterSet theConfig
const TrajectoryStateUpdator * theUpdator
virtual ~TSGFromPropagation()
destructor
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
const TrajectoryStateUpdator * updator() const
bool operator()(const TrajectoryMeasurement &lhs, const TrajectoryMeasurement &rhs) const
edm::InputTag theMeasurementTrackerEventTag
std::string thePropagatorName
Definition: DetId.h:18
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, std::vector< TrajectorySeed > &)
generate seed(s) for a track
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
void setEvent(const edm::Event &)
set an event
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
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