CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MuonTrajectoryUpdator.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackingTools_MuonTrajectoryUpdator_H
2 #define RecoMuon_TrackingTools_MuonTrajectoryUpdator_H
3 
19 
20 #include <functional>
21 
22 class Propagator;
25 class Trajectory;
28 class DetLayer;
29 
30 namespace edm {
31  class ParameterSet;
32 }
33 
35 public:
38 
41 
43  virtual ~MuonTrajectoryUpdator();
44 
45  // Operations
46 
48  virtual std::pair<bool, TrajectoryStateOnSurface> update(const TrajectoryMeasurement *measurement,
49  Trajectory &trajectory,
50  const Propagator *propagator);
51 
53  const MeasurementEstimator *estimator() const { return theEstimator; }
55 
57  double maxChi2() const { return theMaxChi2; }
58 
61 
63  void setMaxChi2(double chi2) { theMaxChi2 = chi2; }
64 
67 
69  void makeFirstTime();
70 
71 protected:
72 private:
77  const TrajectoryMeasurement *measurement,
79  const Propagator *propagator) const;
80 
82  double theMaxChi2;
83 
91  // FIXME: ask Tim if the CSC segments can be used, since in ORCA they wasn't.
92 
97  return a->det()->surface().position().perp() < b->det()->surface().position().perp();
98  }
99  };
100 
105  return a->det()->surface().position().perp() > b->det()->surface().position().perp();
106  }
107  };
108 
113  return fabs(a->globalPosition().z()) < fabs(b->globalPosition().z());
114  }
115  };
116 
121  return fabs(a->globalPosition().z()) > fabs(b->globalPosition().z());
122  }
123  };
124 
126 
129  const TrajectoryStateOnSurface &lastUpdatedTSOS,
131  const double &chi2,
132  const DetLayer *detLayer,
133  const TrajectoryMeasurement *initialMeasurement);
134 
135  // FIXME: change in a ESHandle
138 
139  // The fit direction.This is the global fit direction and it could be (LOCALLY!) different w.r.t. the
140  // propagation direction embeeded in the propagator (i.e. when it is used in the "anyDirection" mode)
141  // This data member is not set via parameter set since it must be consistent with the RefitterParameter.
143 
144  // Parameters for the error rescaling
148 
149  // parameter to use the "bad hits"
151  // exclude RPC from the fit (but allows to keep it in the muon signal confirmation)
153 };
154 #endif
Ordering along decreasing radius (for DT rechits)
void makeFirstTime()
reset the theFirstTSOSFlag
Ordering along increasing zed (for CSC rechits)
NavigationDirection fitDirection()
get the fit direction
virtual ~MuonTrajectoryUpdator()
Destructor.
MuonTrajectoryUpdator(const edm::ParameterSet &par, NavigationDirection fitDirection)
Constructor from Propagator and Parameter set.
void sort(TransientTrackingRecHit::ConstRecHitContainer &, const DetLayer *)
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
void setFitDirection(NavigationDirection fitDirection)
set fit direction
const TrajectoryStateUpdator * measurementUpdator() const
TrajectoryMeasurement updateMeasurement(const TrajectoryStateOnSurface &propagatedTSOS, const TrajectoryStateOnSurface &lastUpdatedTSOS, const TransientTrackingRecHit::ConstRecHitPointer &recHit, const double &chi2, const DetLayer *detLayer, const TrajectoryMeasurement *initialMeasurement)
Return the trajectory measurement. It handles both the fw and the bw propagation. ...
double theMaxChi2
the max chi2 allowed
std::vector< ConstRecHitPointer > ConstRecHitContainer
Ordering along increasing radius (for DT rechits)
double maxChi2() const
get the max chi2 allowed
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
double b
Definition: hdecay.h:120
TrajectoryStateUpdator * theUpdator
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
void setMaxChi2(double chi2)
set max chi2
HLT enums.
const MeasurementEstimator * estimator() const
accasso at the propagator
double a
Definition: hdecay.h:121
virtual std::pair< bool, TrajectoryStateOnSurface > update(const TrajectoryMeasurement *measurement, Trajectory &trajectory, const Propagator *propagator)
update the Trajectory with the TrajectoryMeasurement
TrajectoryStateOnSurface propagateState(const TrajectoryStateOnSurface &state, const TrajectoryMeasurement *measurement, const TransientTrackingRecHit::ConstRecHitPointer &current, const Propagator *propagator) const
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
NavigationDirection theFitDirection
Ordering along decreasing zed (for CSC rechits)
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
MeasurementEstimator * theEstimator