CMS 3D CMS Logo

DTSegmentUpdator.h
Go to the documentation of this file.
1 #ifndef DTSegment_DTSegmentUpdator_h
2 #define DTSegment_DTSegmentUpdator_h
3 
17 /* C++ Headers */
18 #include <vector>
19 
22 
24 
26 
27 /* ====================================================================== */
28 
29 /* Collaborating Class Declarations */
30 class DTSegmentCand;
31 class DTRecSegment2D;
32 class DTRecSegment4D;
33 class DTLinearFit;
34 class DTRecHitBaseAlgo;
36 
37 namespace edm {
38  class EventSetup;
39  class ParameterSet;
40 } // namespace edm
41 
42 /* Class DTSegmentUpdator Interface */
44 public:
47 
50 
51  /* Operations */
52 
55  bool fit(DTSegmentCand* seg, bool allow3par, const bool fitdebug) const;
56 
60  void fit(DTRecSegment2D* seg, bool allow3par, bool block3par) const;
61 
66  void fit(DTRecSegment4D* seg, bool allow3par) const;
67 
69  void update(DTRecSegment4D* seg, const bool calcT0, bool allow3par) const;
70 
72  void update(DTRecSegment2D* seg, bool allow3par) const;
73 
74  void calculateT0corr(DTRecSegment2D* seg) const;
75  void calculateT0corr(DTRecSegment4D* seg) const;
76 
78  void setES(const edm::EventSetup& setup);
79 
80 protected:
81 private:
82  std::unique_ptr<DTLinearFit> theFitter; // the linear fitter
83  std::unique_ptr<DTRecHitBaseAlgo> theAlgo; // the algo for hit reconstruction
85 
86  void updateHits(DTRecSegment2D* seg, GlobalPoint& gpos, GlobalVector& gdir, const int step = 2) const;
87 
88  //rejects bad hits (due to deltas) for phi segment
89  void rejectBadHits(DTChamberRecSegment2D*) const;
90 
92  void fit(const std::vector<float>& x,
93  const std::vector<float>& y,
94  const std::vector<int>& lfit,
95  const std::vector<double>& dist,
96  const std::vector<float>& sigy,
97  LocalPoint& pos,
99  float& cminf,
100  float& vminf,
101  AlgebraicSymMatrix& covMat,
102  double& chi2,
103  const bool allow3par = false,
104  const bool block3par = false) const;
105 
106  double intime_cut;
110  bool debug;
111 };
112 
113 #endif // DTSegment_DTSegmentUpdator_h
Definition: config.py:1
edm::ESHandle< DTGeometry > theGeom
std::unique_ptr< DTRecHitBaseAlgo > theAlgo
std::unique_ptr< DTLinearFit > theFitter
HLT enums.
#define update(a, b)
CLHEP::HepSymMatrix AlgebraicSymMatrix
step
Definition: StallMonitor.cc:94