CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
25 
27 
28 /* ====================================================================== */
29 
30 /* Collaborating Class Declarations */
31 class DTSegmentCand;
32 class DTRecSegment2D;
33 class DTRecSegment4D;
34 class DTLinearFit;
35 class DTRecHitBaseAlgo;
37 class DTGeometry;
38 class MuonGeometryRecord;
39 
40 namespace edm {
41  class EventSetup;
42  class ParameterSet;
43 } // namespace edm
44 
45 /* Class DTSegmentUpdator Interface */
47 public:
50 
53 
54  /* Operations */
55 
58  bool fit(DTSegmentCand* seg, bool allow3par, const bool fitdebug) const;
59 
63  void fit(DTRecSegment2D* seg, bool allow3par, bool block3par) const;
64 
69  void fit(DTRecSegment4D* seg, bool allow3par) const;
70 
72  void update(DTRecSegment4D* seg, const bool calcT0, bool allow3par) const;
73 
75  void update(DTRecSegment2D* seg, bool allow3par) const;
76 
77  void calculateT0corr(DTRecSegment2D* seg) const;
78  void calculateT0corr(DTRecSegment4D* seg) const;
79 
81  void setES(const edm::EventSetup& setup);
82 
83 protected:
84 private:
85  std::unique_ptr<DTLinearFit> theFitter; // the linear fitter
86  std::unique_ptr<DTRecHitBaseAlgo> theAlgo; // the algo for hit reconstruction
89 
90  void updateHits(DTRecSegment2D* seg, GlobalPoint& gpos, GlobalVector& gdir, const int step = 2) const;
91 
92  //rejects bad hits (due to deltas) for phi segment
94 
96  void fit(const std::vector<float>& x,
97  const std::vector<float>& y,
98  const std::vector<int>& lfit,
99  const std::vector<double>& dist,
100  const std::vector<float>& sigy,
101  LocalPoint& pos,
102  LocalVector& dir,
103  float& cminf,
104  float& vminf,
105  AlgebraicSymMatrix& covMat,
106  double& chi2,
107  const bool allow3par = false,
108  const bool block3par = false) const;
109 
110  double intime_cut;
114  bool debug;
115 };
116 
117 #endif // DTSegment_DTSegmentUpdator_h
void rejectBadHits(DTChamberRecSegment2D *) const
DTSegmentUpdator(const edm::ParameterSet &config, edm::ConsumesCollector)
Constructor.
void updateHits(DTRecSegment2D *seg, GlobalPoint &gpos, GlobalVector &gdir, const int step=2) const
void calculateT0corr(DTRecSegment2D *seg) const
~DTSegmentUpdator()
Destructor.
edm::ESHandle< DTGeometry > theGeom
std::unique_ptr< DTRecHitBaseAlgo > theAlgo
void setES(const edm::EventSetup &setup)
set the setup
std::unique_ptr< DTLinearFit > theFitter
tuple config
parse the configuration file
const edm::ESGetToken< DTGeometry, MuonGeometryRecord > theGeomToken
CLHEP::HepSymMatrix AlgebraicSymMatrix
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
step
Definition: StallMonitor.cc:94
bool fit(DTSegmentCand *seg, bool allow3par, const bool fitdebug) const