#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 |
double | intime_cut |
bool | perform_delta_rejecting |
double | T0_hit_resolution |
std::unique_ptr< DTRecHitBaseAlgo > | theAlgo |
std::unique_ptr< 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 43 of file DTSegmentUpdator.h.
DTSegmentUpdator::DTSegmentUpdator | ( | const edm::ParameterSet & | config | ) |
Constructor.
Definition at line 47 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, timingPdfMaker::get, intime_cut, perform_delta_rejecting, T0_hit_resolution, theAlgo, vdrift_4parfit, and ~DTSegmentUpdator().
|
default |
Destructor.
Referenced by DTSegmentUpdator().
void DTSegmentUpdator::calculateT0corr | ( | DTRecSegment2D * | seg | ) | const |
Definition at line 618 of file DTSegmentUpdator.cc.
References a, b, gather_cfg::cout, debug, HLT_2018_cff::distance, TrackingRecHit::geographicalId(), hfClusterShapes_cfi::hits, DTGeometry::idToDet(), DTGeometry::layer(), DTEnums::Left, DTRecSegment2D::setT0(), DTRecSegment2D::setVdrift(), DTRecSegment2D::specificRecHits(), DTLayer::specificTopology(), theFitter, theGeom, vdrift_4parfit, DTTopology::wirePosition(), x, PV3DBase< T, PVType, FrameType >::x(), hit::x, 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 611 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 216 of file DTSegmentUpdator.cc.
References hltPixelTracks_cff::chi2, gather_cfg::cout, debug, DeadROC_duringRun::dir, HLT_2018_cff::distance, DTSegmentCand::hits(), mps_fire::i, DTEnums::Left, DTEnums::Right, DTSegmentCand::setChi2(), DTSegmentCand::setCovMatrix(), DTSegmentCand::setDirection(), DTSegmentCand::setPosition(), DTSegmentCand::sett0(), mathSSE::sqrt(), x, PV3DBase< T, PVType, FrameType >::x(), y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by DTCombinatorialExtendedPatternReco::buildPointsCollection(), DTCombinatorialPatternReco::buildPointsCollection(), DTCombinatorialExtendedPatternReco::extendCandidates(), fit(), DTMeantimerPatternReco::fitWithT0(), trackingPlots.Iteration::modules(), 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 283 of file DTSegmentUpdator.cc.
References hltPixelTracks_cff::chi2, gather_cfg::cout, debug, DeadROC_duringRun::dir, HLT_2018_cff::distance, fit(), TrackingRecHit::geographicalId(), hfClusterShapes_cfi::hits, DTGeometry::idToDet(), DTGeometry::layer(), 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(), y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by trackingPlots.Iteration::modules().
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 115 of file DTSegmentUpdator.cc.
References DTGeometry::chamber(), DTSuperLayerId::chamberId(), DTRecSegment4D::chamberId(), DTRecSegment2D::chi2(), funct::cos(), gather_cfg::cout, debug, DeadROC_duringRun::dir, fit(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), intime_cut, DTRecSegment2D::localDirection(), DTRecSegment2D::localPosition(), DTRecSegment2D::parametersError(), DTRecSegment4D::phiSegment(), DTRecSegment4D::setCovMatrix(), DTRecSegment4D::setCovMatrixForZed(), DTRecSegment4D::setDirection(), DTRecSegment4D::setPosition(), DTGeometry::superLayer(), DTSLRecSegment2D::superLayerId(), DTRecSegment2D::t0(), theGeom, PV3DBase< T, PVType, FrameType >::theta(), GeomDet::toGlobal(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and DTRecSegment4D::zSegment().
Referenced by trackingPlots.Iteration::modules().
|
private |
interface to LinearFit
Definition at line 354 of file DTSegmentUpdator.cc.
References hltPixelTracks_cff::chi2, debug, mps_fire::i, intime_cut, slope, theFitter, and Vector3DBase< T, FrameTag >::unit().
Referenced by trackingPlots.Iteration::modules().
|
private |
Definition at line 490 of file DTSegmentUpdator.cc.
References funct::abs(), gather_cfg::cout, debug, dumpMFGeometry_cfg::delta, TrackingRecHit::geographicalId(), hfClusterShapes_cfi::hits, mps_fire::i, DTGeometry::idToDet(), DTGeometry::layer(), N, DTRecSegment2D::specificRecHits(), theGeom, DTRecSegment2D::update(), x, PV3DBase< T, PVType, FrameType >::x(), y, and PV3DBase< T, PVType, FrameType >::z().
Referenced by update().
void DTSegmentUpdator::setES | ( | const edm::EventSetup & | setup | ) |
set the setup
Definition at line 68 of file DTSegmentUpdator.cc.
References edm::EventSetup::get(), theAlgo, and theGeom.
Referenced by DTRefitAndCombineReco4D::setES(), DTMeantimerPatternReco4D::setES(), DTCombinatorialPatternReco4D::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 73 of file DTSegmentUpdator.cc.
References calculateT0corr(), gather_cfg::cout, debug, DeadROC_duringRun::dir, fit(), TrackingRecHit::geographicalId(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), DTGeometry::idToDet(), DTRecSegment4D::localDirection(), DTRecSegment4D::localPosition(), perform_delta_rejecting, DTRecSegment4D::phiSegment(), rejectBadHits(), theGeom, updateHits(), and DTRecSegment4D::zSegment().
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.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(), MatrixUtil.Steps::overwrite(), DTRefitAndCombineReco4D::reconstruct(), DTMeantimerPatternReco4D::reconstruct(), DTCombinatorialPatternReco4D::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 105 of file DTSegmentUpdator.cc.
References gather_cfg::cout, debug, DeadROC_duringRun::dir, fit(), TrackingRecHit::geographicalId(), DTGeometry::idToDet(), DTRecSegment2D::localDirection(), DTRecSegment2D::localPosition(), theGeom, and updateHits().
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.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(), MatrixUtil.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 416 of file DTSegmentUpdator.cc.
References angle(), funct::cos(), HLT_2018_cff::distance, relativeConstraints::error, Exception, DTRecSegment2D::ist0Valid(), DTGeometry::layer(), 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 110 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), DTSegmentUpdator(), fit(), runTauIdMVA.TauIDEmbedder::loadMVA_WPs_run2_2017(), rejectBadHits(), runTauIdMVA.TauIDEmbedder::runTauID(), and update().
|
private |
Definition at line 106 of file DTSegmentUpdator.h.
Referenced by DTSegmentUpdator(), and fit().
|
private |
Definition at line 109 of file DTSegmentUpdator.h.
Referenced by DTSegmentUpdator(), and update().
|
private |
Definition at line 108 of file DTSegmentUpdator.h.
Referenced by DTSegmentUpdator(), and 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(), and fit().
|
private |
Definition at line 84 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), fit(), rejectBadHits(), setES(), update(), and updateHits().
|
private |
Definition at line 107 of file DTSegmentUpdator.h.
Referenced by calculateT0corr(), DTSegmentUpdator(), and updateHits().