CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonTrajectoryUpdator.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackingTools_MuonTrajectoryUpdator_H
2 #define RecoMuon_TrackingTools_MuonTrajectoryUpdator_H
3 
21 
22 #include <functional>
23 
24 class Propagator;
27 class Trajectory;
30 class DetLayer;
31 
32 namespace edm{class ParameterSet;}
33 
35 
36  public:
37 
41 
44  double chi2, int granularity);
45 
47  virtual ~MuonTrajectoryUpdator();
48 
49  // Operations
50 
52  virtual std::pair<bool,TrajectoryStateOnSurface> update(const TrajectoryMeasurement* measurement,
53  Trajectory& trajectory,
54  const Propagator *propagator);
55 
57  const MeasurementEstimator *estimator() const {return theEstimator;}
59 
61  double maxChi2() const {return theMaxChi2 ;}
62 
65 
67  void setMaxChi2(double chi2) {theMaxChi2 = chi2;}
68 
71 
73  void makeFirstTime();
74 
75  protected:
76 
77  private:
78 
83  const TrajectoryMeasurement* measurement,
85  const Propagator *propagator) const;
86 
88  double theMaxChi2;
89 
97  // FIXME: ask Tim if the CSC segments can be used, since in ORCA they wasn't.
98 
103  return a->det()->surface().position().perp() < b->det()->surface().position().perp();
104  }
105  };
106 
111  return a->det()->surface().position().perp() > b->det()->surface().position().perp();
112  }
113  };
114 
119  return fabs(a->globalPosition().z()) < fabs(b->globalPosition().z());
120  }
121  };
122 
127  return fabs(a->globalPosition().z()) > fabs(b->globalPosition().z());
128  }
129  };
130 
132 
135  const TrajectoryStateOnSurface &lastUpdatedTSOS,
137  const double &chi2, const DetLayer *detLayer,
138  const TrajectoryMeasurement *initialMeasurement);
139 
140 
141  // FIXME: change in a ESHandle
144 
145  // The fit direction.This is the global fit direction and it could be (LOCALLY!) different w.r.t. the
146  // propagation direction embeeded in the propagator (i.e. when it is used in the "anyDirection" mode)
147  // This data member is not set via parameter set since it must be consistent with the RefitterParameter.
149 
150  // Parameters for the error rescaling
154 
155  // parameter to use the "bad hits"
157  // exclude RPC from the fit (but allows to keep it in the muon signal confirmation)
159 
160 };
161 #endif
162 
Ordering along decreasing radius (for DT rechits)
const MeasurementEstimator * estimator() const
accasso at the propagator
void makeFirstTime()
reset the theFirstTSOSFlag
Ordering along increasing zed (for CSC rechits)
NavigationDirection fitDirection()
get the fit direction
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
virtual ~MuonTrajectoryUpdator()
Destructor.
TrajectoryStateOnSurface propagateState(const TrajectoryStateOnSurface &state, const TrajectoryMeasurement *measurement, const TransientTrackingRecHit::ConstRecHitPointer &current, const Propagator *propagator) const
MuonTrajectoryUpdator(const edm::ParameterSet &par, NavigationDirection fitDirection)
Constructor from Propagator and Parameter set.
double maxChi2() const
get the max chi2 allowed
void sort(TransientTrackingRecHit::ConstRecHitContainer &, const DetLayer *)
void setFitDirection(NavigationDirection fitDirection)
set fit direction
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) 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)
const TrajectoryStateUpdator * measurementUpdator() const
double b
Definition: hdecay.h:120
TrajectoryStateUpdator * theUpdator
char state
Definition: procUtils.cc:75
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
void setMaxChi2(double chi2)
set max chi2
double a
Definition: hdecay.h:121
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
virtual std::pair< bool, TrajectoryStateOnSurface > update(const TrajectoryMeasurement *measurement, Trajectory &trajectory, const Propagator *propagator)
update the Trajectory with the TrajectoryMeasurement
NavigationDirection theFitDirection
Ordering along decreasing zed (for CSC rechits)
MeasurementEstimator * theEstimator