CMS 3D CMS Logo

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{class ParameterSet;}
31 
33 
34  public:
35 
38  NavigationDirection fitDirection);
39 
42  double chi2, int granularity);
43 
45  virtual ~MuonTrajectoryUpdator();
46 
47  // Operations
48 
50  virtual std::pair<bool,TrajectoryStateOnSurface> update(const TrajectoryMeasurement* measurement,
51  Trajectory& trajectory,
52  const Propagator *propagator);
53 
55  const MeasurementEstimator *estimator() const {return theEstimator;}
56  const TrajectoryStateUpdator *measurementUpdator() const {return theUpdator;}
57 
59  double maxChi2() const {return theMaxChi2 ;}
60 
62  NavigationDirection fitDirection() {return theFitDirection;}
63 
65  void setMaxChi2(double chi2) {theMaxChi2 = chi2;}
66 
68  void setFitDirection(NavigationDirection fitDirection) {theFitDirection = fitDirection;}
69 
71  void makeFirstTime();
72 
73  protected:
74 
75  private:
76 
80  TrajectoryStateOnSurface propagateState(const TrajectoryStateOnSurface& state,
81  const TrajectoryMeasurement* measurement,
83  const Propagator *propagator) const;
84 
86  double theMaxChi2;
87 
95  // FIXME: ask Tim if the CSC segments can be used, since in ORCA they wasn't.
96 
101  return a->det()->surface().position().perp() < b->det()->surface().position().perp();
102  }
103  };
104 
109  return a->det()->surface().position().perp() > b->det()->surface().position().perp();
110  }
111  };
112 
117  return fabs(a->globalPosition().z()) < fabs(b->globalPosition().z());
118  }
119  };
120 
125  return fabs(a->globalPosition().z()) > fabs(b->globalPosition().z());
126  }
127  };
128 
130 
132  TrajectoryMeasurement updateMeasurement( const TrajectoryStateOnSurface &propagatedTSOS,
133  const TrajectoryStateOnSurface &lastUpdatedTSOS,
135  const double &chi2, const DetLayer *detLayer,
136  const TrajectoryMeasurement *initialMeasurement);
137 
138 
139  // FIXME: change in a ESHandle
142 
143  // The fit direction.This is the global fit direction and it could be (LOCALLY!) different w.r.t. the
144  // propagation direction embeeded in the propagator (i.e. when it is used in the "anyDirection" mode)
145  // This data member is not set via parameter set since it must be consistent with the RefitterParameter.
147 
148  // Parameters for the error rescaling
152 
153  // parameter to use the "bad hits"
155  // exclude RPC from the fit (but allows to keep it in the muon signal confirmation)
157 
158 };
159 #endif
160 
Ordering along decreasing radius (for DT rechits)
const MeasurementEstimator * estimator() const
accasso at the propagator
Ordering along increasing zed (for CSC rechits)
NavigationDirection fitDirection()
get the fit direction
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
double maxChi2() const
get the max chi2 allowed
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
void setFitDirection(NavigationDirection fitDirection)
set fit direction
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
double theMaxChi2
the max chi2 allowed
std::vector< ConstRecHitPointer > ConstRecHitContainer
Ordering along increasing radius (for DT rechits)
const TrajectoryStateUpdator * measurementUpdator() 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.
#define update(a, b)
double a
Definition: hdecay.h:121
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
NavigationDirection theFitDirection
Ordering along decreasing zed (for CSC rechits)
MeasurementEstimator * theEstimator