CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FastTSGFromPropagation.h
Go to the documentation of this file.
1 #ifndef FastSimulation_Muons_FastTSGFromPropagation_H
2 #define FastSimulation_Muons_FastTSGFromPropagation_H
3 
21 
27 
30 
31 
32 class LayerMeasurements;
34 class Propagator;
35 class MeasurementTracker;
39 class SimTrack;
40 class TrackerGeometry;
41 
43 
44 public:
47 
49 
51  virtual ~FastTSGFromPropagation();
52 
54  void trackerSeeds(const TrackCand&, const TrackingRegion&, std::vector<TrajectorySeed>&);
55 
57  void init(const MuonServiceProxy*);
58 
60  void setEvent(const edm::Event&);
61 
62 private:
64  void stateOnDet(const TrajectoryStateOnSurface& ts,
65  unsigned int detid,
66  PTrajectoryStateOnDet& pts) const;
67 
69 
71 
73 
74  const TrajectoryStateUpdator* updator() const {return theUpdator;}
75 
76  const Chi2MeasurementEstimator* estimator() const { return theEstimator; }
77 
79 
82 
84  TrajectorySeed createSeed(const TrajectoryStateOnSurface& tsos, const edm::OwnVector<TrackingRecHit>& container, const DetId& id) const;
85 
87  void validMeasurements(std::vector<TrajectoryMeasurement>&) const;
88 
90  std::vector<TrajectoryMeasurement> findMeasurements_new(const DetLayer*, const TrajectoryStateOnSurface&) const;
91 
93  std::vector<TrajectoryMeasurement> findMeasurements(const DetLayer*, const TrajectoryStateOnSurface&) const;
94 
96  bool passSelection(const TrajectoryStateOnSurface&) const;
97 
98  void getRescalingFactor(const TrackCand& staMuon);
99 
101  void adjust(FreeTrajectoryState &) const;
102 
104  void adjust(TrajectoryStateOnSurface &) const;
105 
106  double dxyDis(const TrajectoryStateOnSurface& tsos) const;
107 
108  double zDis(const TrajectoryStateOnSurface& tsos) const;
109 
112  const TrajectoryMeasurement& rhs) const{
113  return lhs.estimate() < rhs.estimate();
114  }
115  };
116 
117  struct isInvalid {
118  bool operator()(const TrajectoryMeasurement& measurement) {
119  return ( ((measurement).recHit() == 0) || !((measurement).recHit()->isValid()) || !((measurement).updatedState().isValid()) );
120  }
121  };
122 
123  unsigned long long theCacheId_MT;
124  unsigned long long theCacheId_TG;
125 
126  std::string theCategory;
127 
129 
131 
133 
136 
138 
140 
142 
144 
145  double theMaxChi2;
146 
148 
150 
152 
154 
157 
158  std::string theResetMethod;
159 
161 
162  std::string thePropagatorName;
163 
165 
167 
168  double theSigmaZ;
169 
171 
176 
177 };
178 
179 #endif
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
edm::ESHandle< MeasurementTracker > theMeasTracker
edm::Handle< reco::BeamSpot > theBeamSpot
const Chi2MeasurementEstimator * theEstimator
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
unsigned long long theCacheId_MT
bool operator()(const TrajectoryMeasurement &lhs, const TrajectoryMeasurement &rhs) const
std::pair< const Trajectory *, reco::TrackRef > TrackCand
const LayerMeasurements * tkLayerMeasurements() const
edm::Handle< edm::SimTrackContainer > theSimTracks
const DirectTrackerNavigation * theNavigation
virtual ~FastTSGFromPropagation()
destructor
edm::ESHandle< GeometricSearchTracker > theTracker
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
const MuonServiceProxy * theService
TrajectoryStateTransform * theTSTransformer
bool operator()(const TrajectoryMeasurement &measurement)
const Chi2MeasurementEstimator * estimator() const
FastTSGFromPropagation(const edm::ParameterSet &pset)
constructor
void getRescalingFactor(const TrackCand &staMuon)
static const double pts[33]
Definition: Constants.h:31
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
const TrajectoryStateUpdator * theUpdator
std::vector< TrajectoryMeasurement > findMeasurements_new(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer (faster way)
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
TrajectoryStateOnSurface innerState(const TrackCand &) const
MuonErrorMatrix * theErrorMatrixAdjuster
edm::Handle< SiTrackerGSMatchedRecHit2DCollection > theGSRecHits
Definition: DetId.h:20
const TrackerGeometry * theGeometry
void init(const MuonServiceProxy *)
initialize
double zDis(const TrajectoryStateOnSurface &tsos) const
const TrajectoryStateUpdator * updator() const
edm::ESHandle< Propagator > propagator() const
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
void stateOnDet(const TrajectoryStateOnSurface &ts, unsigned int detid, PTrajectoryStateOnDet &pts) const
A mere copy (without memory leak) of an existing tracking method.
void trackerSeeds(const TrackCand &, const TrackingRegion &, std::vector< TrajectorySeed > &)
generate seed(s) for a track
edm::InputTag theSimTrackCollectionLabel
const LayerMeasurements * theTkLayerMeasurements
double dxyDis(const TrajectoryStateOnSurface &tsos) const
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
void setEvent(const edm::Event &)
set an event
unsigned long long theCacheId_TG