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 {
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
MeasurementEstimator
Definition: MeasurementEstimator.h:19
DetLayer
Definition: DetLayer.h:21
MuonTrajectoryUpdator::theRescaleErrorFlag
bool theRescaleErrorFlag
Definition: MuonTrajectoryUpdator.h:146
edm
HLT enums.
Definition: AlignableModifier.h:19
MuonTrajectoryUpdator::update
virtual std::pair< bool, TrajectoryStateOnSurface > update(const TrajectoryMeasurement *measurement, Trajectory &trajectory, const Propagator *propagator)
update the Trajectory with the TrajectoryMeasurement
Definition: MuonTrajectoryUpdator.cc:87
MuonTrajectoryUpdator::RadiusComparatorInOut
Ordering along increasing radius (for DT rechits)
Definition: MuonTrajectoryUpdator.h:94
TransientTrackingRecHit.h
MuonTrajectoryUpdator::makeFirstTime
void makeFirstTime()
reset the theFirstTSOSFlag
Definition: MuonTrajectoryUpdator.cc:85
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
MuonTrajectoryUpdator::ZedComparatorOutIn
Ordering along decreasing zed (for CSC rechits)
Definition: MuonTrajectoryUpdator.h:118
MuonTrajectoryUpdator::theRPCExFlag
bool theRPCExFlag
Definition: MuonTrajectoryUpdator.h:152
Propagator
Definition: Propagator.h:44
MuonTrajectoryUpdator::theRescaleFactor
double theRescaleFactor
Definition: MuonTrajectoryUpdator.h:147
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MuonTrajectoryUpdator::propagateState
TrajectoryStateOnSurface propagateState(const TrajectoryStateOnSurface &state, const TrajectoryMeasurement *measurement, const TransientTrackingRecHit::ConstRecHitPointer &current, const Propagator *propagator) const
Definition: MuonTrajectoryUpdator.cc:206
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
MuonTrajectoryUpdator::useInvalidHits
bool useInvalidHits
Definition: MuonTrajectoryUpdator.h:150
MuonTrajectoryUpdator::ZedComparatorInOut::operator()
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
Definition: MuonTrajectoryUpdator.h:111
MuonTrajectoryUpdator::theMaxChi2
double theMaxChi2
the max chi2 allowed
Definition: MuonTrajectoryUpdator.h:82
MuonTrajectoryUpdator::ZedComparatorInOut
Ordering along increasing zed (for CSC rechits)
Definition: MuonTrajectoryUpdator.h:110
MuonTrajectoryUpdator::theFitDirection
NavigationDirection theFitDirection
Definition: MuonTrajectoryUpdator.h:142
b
double b
Definition: hdecay.h:118
MuonTrajectoryUpdator::setMaxChi2
void setMaxChi2(double chi2)
set max chi2
Definition: MuonTrajectoryUpdator.h:63
MuonTrajectoryUpdator::theEstimator
MeasurementEstimator * theEstimator
Definition: MuonTrajectoryUpdator.h:136
MuonTrajectoryUpdator::theFirstTSOSFlag
bool theFirstTSOSFlag
Definition: MuonTrajectoryUpdator.h:145
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
MuonTrajectoryUpdator::sort
void sort(TransientTrackingRecHit::ConstRecHitContainer &, const DetLayer *)
Definition: MuonTrajectoryUpdator.cc:244
MuonTrajectoryUpdator::fitDirection
NavigationDirection fitDirection()
get the fit direction
Definition: MuonTrajectoryUpdator.h:60
ParameterSet
Definition: Functions.h:16
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
MuonTrajectoryUpdator::RadiusComparatorOutIn
Ordering along decreasing radius (for DT rechits)
Definition: MuonTrajectoryUpdator.h:102
MuonTrajectoryUpdator::setFitDirection
void setFitDirection(NavigationDirection fitDirection)
set fit direction
Definition: MuonTrajectoryUpdator.h:66
TrackingRecHit::ConstRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
Definition: TrackingRecHit.h:25
MuonTrajectoryUpdator::RadiusComparatorOutIn::operator()
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
Definition: MuonTrajectoryUpdator.h:103
MuonTrajectoryUpdator::theUpdator
TrajectoryStateUpdator * theUpdator
Definition: MuonTrajectoryUpdator.h:137
MuonTrajectoryUpdator::ZedComparatorOutIn::operator()
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
Definition: MuonTrajectoryUpdator.h:119
MuonTrajectoryUpdator
Definition: MuonTrajectoryUpdator.h:34
MuonTrajectoryUpdator::estimator
const MeasurementEstimator * estimator() const
accasso at the propagator
Definition: MuonTrajectoryUpdator.h:53
NavigationDirection
NavigationDirection
Definition: NavigationDirection.h:4
MuonTrajectoryUpdator::theGranularity
int theGranularity
Definition: MuonTrajectoryUpdator.h:90
MuonTrajectoryUpdator::~MuonTrajectoryUpdator
virtual ~MuonTrajectoryUpdator()
Destructor.
Definition: MuonTrajectoryUpdator.cc:80
MuonTrajectoryUpdator::measurementUpdator
const TrajectoryStateUpdator * measurementUpdator() const
Definition: MuonTrajectoryUpdator.h:54
Trajectory
Definition: Trajectory.h:38
MuonTrajectoryUpdator::MuonTrajectoryUpdator
MuonTrajectoryUpdator(const edm::ParameterSet &par, NavigationDirection fitDirection)
Constructor from Propagator and Parameter set.
Definition: MuonTrajectoryUpdator.cc:42
MuonTrajectoryUpdator::RadiusComparatorInOut::operator()
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
Definition: MuonTrajectoryUpdator.h:95
MuonTrajectoryUpdator::updateMeasurement
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.
Definition: MuonTrajectoryUpdator.cc:221
TrajectoryStateUpdator
Definition: TrajectoryStateUpdator.h:14
NavigationDirection.h
MuonTrajectoryUpdator::maxChi2
double maxChi2() const
get the max chi2 allowed
Definition: MuonTrajectoryUpdator.h:57
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25