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
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
Vector3DBase
Definition: Vector3DBase.h:8
DTLinearFit
Definition: DTLinearFit.h:26
DDAxes::y
DTRecSegment4D
Definition: DTRecSegment4D.h:23
DTSegmentUpdator::perform_delta_rejecting
bool perform_delta_rejecting
Definition: DTSegmentUpdator.h:109
DTSegmentUpdator::debug
bool debug
Definition: DTSegmentUpdator.h:110
ESHandle.h
AlgebraicObjects.h
step
step
Definition: StallMonitor.cc:94
DTSegmentUpdator::DTSegmentUpdator
DTSegmentUpdator(const edm::ParameterSet &config)
Constructor.
Definition: DTSegmentUpdator.cc:47
DTSegmentUpdator::calculateT0corr
void calculateT0corr(DTRecSegment2D *seg) const
Definition: DTSegmentUpdator.cc:618
DTSegmentUpdator::T0_hit_resolution
double T0_hit_resolution
Definition: DTSegmentUpdator.h:108
edm
HLT enums.
Definition: AlignableModifier.h:19
DTRecHitBaseAlgo
Definition: DTRecHitBaseAlgo.h:29
pos
Definition: PixelAliasList.h:18
DDAxes::x
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
DTSegmentUpdator
Definition: DTSegmentUpdator.h:43
DTSegmentUpdator::theAlgo
std::unique_ptr< DTRecHitBaseAlgo > theAlgo
Definition: DTSegmentUpdator.h:83
config
Definition: config.py:1
DTSegmentUpdator::rejectBadHits
void rejectBadHits(DTChamberRecSegment2D *) const
Definition: DTSegmentUpdator.cc:490
DTSegmentUpdator::fit
bool fit(DTSegmentCand *seg, bool allow3par, const bool fitdebug) const
Definition: DTSegmentUpdator.cc:216
edm::ESHandle< DTGeometry >
DTSegmentCand
Definition: DTSegmentCand.h:34
Point3DBase< float, GlobalTag >
DTGeometry.h
edm::ParameterSet
Definition: ParameterSet.h:36
DTRecSegment2D
Definition: DTRecSegment2D.h:45
ParameterSet
Definition: Functions.h:16
DTSegmentUpdator::theGeom
edm::ESHandle< DTGeometry > theGeom
Definition: DTSegmentUpdator.h:84
DTChamberRecSegment2D
Definition: DTChamberRecSegment2D.h:31
AlgebraicSymMatrix
CLHEP::HepSymMatrix AlgebraicSymMatrix
Definition: AlgebraicObjects.h:15
edm::EventSetup
Definition: EventSetup.h:57
DTSegmentUpdator::setES
void setES(const edm::EventSetup &setup)
set the setup
Definition: DTSegmentUpdator.cc:68
DTSegmentUpdator::intime_cut
double intime_cut
Definition: DTSegmentUpdator.h:106
DTSegmentUpdator::theFitter
std::unique_ptr< DTLinearFit > theFitter
Definition: DTSegmentUpdator.h:82
DTSegmentUpdator::~DTSegmentUpdator
~DTSegmentUpdator()
Destructor.
EventSetup
DTSegmentUpdator::updateHits
void updateHits(DTRecSegment2D *seg, GlobalPoint &gpos, GlobalVector &gdir, const int step=2) const
Definition: DTSegmentUpdator.cc:416
DTSegmentUpdator::vdrift_4parfit
bool vdrift_4parfit
Definition: DTSegmentUpdator.h:107
GlobalPoint.h
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
DTSegmentUpdator::update
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
Definition: DTSegmentUpdator.cc:73