CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTSegmentUpdator.h
Go to the documentation of this file.
1 #ifndef DTSegment_DTSegmentUpdator_h
2 #define DTSegment_DTSegmentUpdator_h
3 
19 /* C++ Headers */
20 #include <vector>
21 
24 
26 
28 
29 /* ====================================================================== */
30 
31 /* Collaborating Class Declarations */
32 class DTSegmentCand;
33 class DTRecSegment2D;
34 class DTRecSegment4D;
35 class DTLinearFit;
36 class DTRecHitBaseAlgo;
38 
39 namespace edm{class EventSetup; class ParameterSet;}
40 
41 /* Class DTSegmentUpdator Interface */
43 
44  public:
45 
48 
51 
52  /* Operations */
53 
56  bool fit(DTSegmentCand* seg) const;
57 
61  void fit(DTRecSegment2D* seg) const;
62 
67  void fit(DTRecSegment4D* seg) const;
68 
70  void update(DTRecSegment4D* seg, const bool calcT0 = false) const;
71 
73  void update(DTRecSegment2D* seg) const;
74 
75  void calculateT0corr(DTRecSegment2D* seg) const;
76  void calculateT0corr(DTRecSegment4D* seg) const;
77 
79  void setES(const edm::EventSetup& setup);
80 
81  protected:
82 
83  private:
84  DTLinearFit* theFitter; // the linear fitter
85  DTRecHitBaseAlgo* theAlgo; // the algo for hit reconstruction
87 
88  void updateHits(DTRecSegment2D* seg,
89  GlobalPoint &gpos,
90  GlobalVector &gdir,
91  const int step=2) const;
92 
93  //rejects bad hits (due to deltas) for phi segment
95 
97  void fit(const std::vector<float>& x,
98  const std::vector<float>& y,
99  const std::vector<float>& sigy,
100  LocalPoint& pos,
101  LocalVector& dir,
102  AlgebraicSymMatrix& covMat,
103  double& chi2) const;
104 
105  void Fit4Var(const std::vector<float>& xfit,
106  const std::vector<float>& yfit,
107  const std::vector<int>& lfit,
108  const std::vector<double>& tfit,
109  const int nptfit,
110  float& cminf, double& vminf,
111  double& chi2fit) const;
112 
116  bool debug;
117 
118 };
119 
120 #endif // DTSegment_DTSegmentUpdator_h
void rejectBadHits(DTChamberRecSegment2D *) const
void Fit4Var(const std::vector< float > &xfit, const std::vector< float > &yfit, const std::vector< int > &lfit, const std::vector< double > &tfit, const int nptfit, float &cminf, double &vminf, double &chi2fit) const
void update(DTRecSegment4D *seg, const bool calcT0=false) const
recompute hits position and refit the segment4D
void updateHits(DTRecSegment2D *seg, GlobalPoint &gpos, GlobalVector &gdir, const int step=2) const
list step
Definition: launcher.py:15
void calculateT0corr(DTRecSegment2D *seg) const
~DTSegmentUpdator()
Destructor.
edm::ESHandle< DTGeometry > theGeom
DTLinearFit * theFitter
void setES(const edm::EventSetup &setup)
set the setup
bool fit(DTSegmentCand *seg) const
CLHEP::HepSymMatrix AlgebraicSymMatrix
dbl *** dir
Definition: mlp_gen.cc:35
x
Definition: VDTMath.h:216
DTRecHitBaseAlgo * theAlgo
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
DTSegmentUpdator(const edm::ParameterSet &config)
Constructor.