#include <DTSegmentUpdator.h>
Public Member Functions | |
void | calculateT0corr (DTRecSegment2D *seg) const |
void | calculateT0corr (DTRecSegment4D *seg) const |
DTSegmentUpdator (const edm::ParameterSet &config) | |
Constructor. More... | |
bool | fit (DTSegmentCand *seg, bool allow3par, const bool fitdebug) const |
void | fit (DTRecSegment2D *seg, bool allow3par, bool block3par) const |
void | fit (DTRecSegment4D *seg, bool allow3par) const |
void | setES (const edm::EventSetup &setup) |
set the setup More... | |
void | update (DTRecSegment4D *seg, const bool calcT0, bool allow3par) const |
recompute hits position and refit the segment4D More... | |
void | update (DTRecSegment2D *seg, bool allow3par) const |
recompute hits position and refit the segment2D More... | |
~DTSegmentUpdator () | |
Destructor. More... | |
Private Member Functions | |
void | fit (const std::vector< float > &x, const std::vector< float > &y, const std::vector< int > &lfit, const std::vector< double > &dist, const std::vector< float > &sigy, LocalPoint &pos, LocalVector &dir, float &cminf, float &vminf, AlgebraicSymMatrix &covMat, double &chi2, const bool allow3par=false, const bool block3par=false) const |
interface to LinearFit More... | |
void | rejectBadHits (DTChamberRecSegment2D *) const |
void | updateHits (DTRecSegment2D *seg, GlobalPoint &gpos, GlobalVector &gdir, const int step=2) const |
Private Attributes | |
bool | debug |
bool | perform_delta_rejecting |
double | T0_hit_resolution |
DTRecHitBaseAlgo * | theAlgo |
DTLinearFit * | theFitter |
edm::ESHandle< DTGeometry > | theGeom |
bool | vdrift_4parfit |
Perform linear fit and hits update for DT segments. Update a segment by improving the hits thanks to the refined knowledge of impact angle and position (also along the wire) and perform linear fit on improved hits.
Definition at line 40 of file DTSegmentUpdator.h.
DTSegmentUpdator::DTSegmentUpdator | ( | const edm::ParameterSet & | config | ) |
Constructor.
Definition at line 47 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, reco::get(), edm::ParameterSet::getParameter(), and theAlgo.
DTSegmentUpdator::~DTSegmentUpdator | ( | ) |
void DTSegmentUpdator::calculateT0corr | ( | DTRecSegment2D * | seg | ) | const |
Definition at line 626 of file DTSegmentUpdator.cc.
References a, b, gather_cfg::cout, debug, DTLinearFit::fit4Var(), TrackingRecHit::geographicalId(), DTEnums::Left, DTRecSegment2D::setT0(), DTRecSegment2D::setVdrift(), DTRecSegment2D::specificRecHits(), DTLayer::specificTopology(), theFitter, theGeom, vdrift_4parfit, DTTopology::wirePosition(), x, PV3DBase< T, PVType, FrameType >::x(), hit::x, detailsBasic3DVector::y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by calculateT0corr(), DTMeantimerPatternReco4D::reconstruct(), DTCombinatorialPatternReco4D::reconstruct(), and update().
void DTSegmentUpdator::calculateT0corr | ( | DTRecSegment4D * | seg | ) | const |
Definition at line 621 of file DTSegmentUpdator.cc.
References calculateT0corr(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), DTRecSegment4D::phiSegment(), and DTRecSegment4D::zSegment().
bool DTSegmentUpdator::fit | ( | DTSegmentCand * | seg, |
bool | allow3par, | ||
const bool | fitdebug | ||
) | const |
do the linear fit on the hits of the segment candidate and update it. Returns false if the segment candidate is not good()
Definition at line 215 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, dir, DTSegmentCand::good(), DTSegmentCand::hits(), i, getDQMSummary::iter, DTEnums::Left, DTEnums::Right, DTSegmentCand::setChi2(), DTSegmentCand::setCovMatrix(), DTSegmentCand::setDirection(), DTSegmentCand::setPosition(), DTSegmentCand::sett0(), mathSSE::sqrt(), x, PV3DBase< T, PVType, FrameType >::x(), detailsBasic3DVector::y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by DTCombinatorialPatternReco::buildPointsCollection(), DTCombinatorialExtendedPatternReco::buildPointsCollection(), DTCombinatorialExtendedPatternReco::extendCandidates(), fit(), DTMeantimerPatternReco::fitWithT0(), DTRefitAndCombineReco4D::refitSuperSegments(), and update().
void DTSegmentUpdator::fit | ( | DTRecSegment2D * | seg, |
bool | allow3par, | ||
bool | block3par | ||
) | const |
ditto for true segment: since the fit is applied on a true segment, by definition the segment is "good", while it's not the case for just candidates
Definition at line 280 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, dir, fit(), TrackingRecHit::geographicalId(), DTEnums::Left, DTRecSegment2D::setChi2(), DTRecSegment2D::setCovMatrix(), DTRecSegment2D::setDirection(), DTRecSegment2D::setPosition(), DTRecSegment2D::setT0(), DTRecSegment2D::specificRecHits(), DTLayer::specificTopology(), mathSSE::sqrt(), theGeom, ErrorFrameTransformer::transform(), DTTopology::wirePosition(), x, PV3DBase< T, PVType, FrameType >::x(), hit::x, LocalError::xx(), detailsBasic3DVector::y, and PV3DBase< T, PVType, FrameType >::z().
void DTSegmentUpdator::fit | ( | DTRecSegment4D * | seg, |
bool | allow3par | ||
) | const |
ditto for true segment 4D, the fit is done on either projection and then the 4D direction and position is built. Since the fit is applied on a true segment, by definition the segment is "good", while it's not the case for just candidates
Definition at line 109 of file DTSegmentUpdator.cc.
References DTSuperLayerId::chamberId(), DTRecSegment4D::chamberId(), DTRecSegment2D::chi2(), funct::cos(), gather_cfg::cout, debug, dir, fit(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), DTRecSegment2D::localDirection(), DTRecSegment2D::localPosition(), DTRecSegment2D::parametersError(), DTRecSegment4D::phiSegment(), DTRecSegment4D::setCovMatrix(), DTRecSegment4D::setCovMatrixForZed(), DTRecSegment4D::setDirection(), DTRecSegment4D::setPosition(), DTSLRecSegment2D::superLayerId(), DTRecSegment2D::t0(), theGeom, PV3DBase< T, PVType, FrameType >::theta(), GeomDet::toGlobal(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), detailsBasic3DVector::y, PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), zPos, and DTRecSegment4D::zSegment().
|
private |
interface to LinearFit
Definition at line 349 of file DTSegmentUpdator.cc.
References debug, DTLinearFit::fit(), DTLinearFit::fitNpar(), i, slope, theFitter, and Vector3DBase< T, FrameTag >::unit().
|
private |
Definition at line 486 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, delta, TrackingRecHit::geographicalId(), i, N, DTRecSegment2D::specificRecHits(), theGeom, DTRecSegment2D::update(), x, PV3DBase< T, PVType, FrameType >::x(), detailsBasic3DVector::y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by update().
void DTSegmentUpdator::setES | ( | const edm::EventSetup & | setup | ) |
set the setup
Definition at line 69 of file DTSegmentUpdator.cc.
References edm::EventSetup::get(), DTRecHitBaseAlgo::setES(), theAlgo, and theGeom.
Referenced by DTCombinatorialPatternReco4D::setES(), DTMeantimerPatternReco4D::setES(), DTRefitAndCombineReco4D::setES(), DTCombinatorialPatternReco::setES(), DTCombinatorialExtendedPatternReco::setES(), and DTMeantimerPatternReco::setES().
void DTSegmentUpdator::update | ( | DTRecSegment4D * | seg, |
const bool | calcT0, | ||
bool | allow3par | ||
) | const |
recompute hits position and refit the segment4D
Definition at line 74 of file DTSegmentUpdator.cc.
References calculateT0corr(), gather_cfg::cout, debug, dir, fit(), TrackingRecHit::geographicalId(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), DTRecSegment4D::localDirection(), DTRecSegment4D::localPosition(), perform_delta_rejecting, DTRecSegment4D::phiSegment(), rejectBadHits(), relval_parameters_module::step, theGeom, updateHits(), and DTRecSegment4D::zSegment().
Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), relval_steps.Steps::overwrite(), DTMeantimerPatternReco4D::reconstruct(), DTCombinatorialPatternReco4D::reconstruct(), DTRefitAndCombineReco4D::reconstruct(), DTCombinatorialPatternReco::reconstruct(), DTCombinatorialExtendedPatternReco::reconstruct(), DTMeantimerPatternReco::reconstruct(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
void DTSegmentUpdator::update | ( | DTRecSegment2D * | seg, |
bool | allow3par | ||
) | const |
recompute hits position and refit the segment2D
Definition at line 100 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, dir, fit(), TrackingRecHit::geographicalId(), DTRecSegment2D::localDirection(), DTRecSegment2D::localPosition(), theGeom, and updateHits().
Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), relval_steps.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
private |
Definition at line 409 of file DTSegmentUpdator.cc.
References angle(), DTRecHitBaseAlgo::compute(), funct::cos(), relativeConstraints::error, edm::hlt::Exception, DTRecSegment2D::ist0Valid(), DTEnums::Left, convertSQLiteXML::ok, point, DTRecSegment2D::specificRecHits(), DTLayer::specificTopology(), DTRecSegment2D::t0(), T0_hit_resolution, theAlgo, theGeom, PV3DBase< T, PVType, FrameType >::theta(), GeomDet::toLocal(), DTRecSegment2D::update(), DTRecSegment2D::vDrift(), vdrift_4parfit, DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), hit::x, and PV3DBase< T, PVType, FrameType >::z().
Referenced by update().
|
private |
Definition at line 112 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), DTSegmentUpdator(), fit(), rejectBadHits(), and update().
|
private |
Definition at line 111 of file DTSegmentUpdator.h.
Referenced by update().
|
private |
Definition at line 110 of file DTSegmentUpdator.h.
Referenced by updateHits().
|
private |
Definition at line 83 of file DTSegmentUpdator.h.
Referenced by DTSegmentUpdator(), setES(), and updateHits().
|
private |
Definition at line 82 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), fit(), and ~DTSegmentUpdator().
|
private |
Definition at line 84 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), fit(), rejectBadHits(), setES(), update(), and updateHits().
|
private |
Definition at line 109 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), and updateHits().