CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes | Friends
DTRecSegment2D Class Reference

#include <DTRecSegment2D.h>

Inheritance diagram for DTRecSegment2D:
RecSegment TrackingRecHit DTChamberRecSegment2D DTSLRecSegment2D

Public Member Functions

double chi2 () const override
 the chi2 of the fit More...
 
DTRecSegment2Dclone () const override
 
AlgebraicSymMatrix covMatrix () const
 the Covariance Matrix More...
 
int degreesOfFreedom () const override
 return the DOF of the segment More...
 
int dimension () const override
 return 2. The dimension of the matrix More...
 
 DTRecSegment2D ()
 
 DTRecSegment2D (DetId id, const std::vector< DTRecHit1D > &hits)
 c'tor from hits More...
 
 DTRecSegment2D (DetId id, LocalPoint &position, LocalVector &direction, AlgebraicSymMatrix &covMatrix, double chi2, std::vector< DTRecHit1D > &hits1D)
 complete constructor More...
 
bool ist0Valid () const
 
LocalVector localDirection () const override
 the local direction in SL frame More...
 
LocalError localDirectionError () const override
 the local direction error (xx,xy,yy) in SL frame: only xx is not 0. More...
 
LocalPoint localPosition () const override
 local position in SL frame More...
 
LocalError localPositionError () const override
 local position error in SL frame More...
 
AlgebraicVector parameters () const override
 the vector of parameters (dx/dz,x) More...
 
AlgebraicSymMatrix parametersError () const override
 
AlgebraicMatrix projectionMatrix () const override
 
std::vector< const TrackingRecHit * > recHits () const override
 Access to component RecHits (if any) More...
 
std::vector< TrackingRecHit * > recHits () override
 Non-const access to component RecHits (if any) More...
 
std::vector< DTRecHit1DspecificRecHits () const
 Access to specific components. More...
 
double t0 () const
 Get the segment t0 (if recomputed, 0 is returned otherwise) More...
 
double vDrift () const
 
 ~DTRecSegment2D () override
 Destructor. More...
 
- Public Member Functions inherited from RecSegment
 RecSegment (DetId id)
 
 RecSegment (TrackingRecHit::id_type id=0)
 
 ~RecSegment () override
 Destructor. More...
 
- Public Member Functions inherited from TrackingRecHit
virtual bool canImproveWithTrack () const
 
RecHitPointer cloneForFit (const GeomDet &idet) const
 
virtual TrackingRecHitcloneHit () const
 
virtual RecHitPointer cloneSH () const
 
const GeomDetdet () const
 
virtual const GeomDetUnitdetUnit () const
 
virtual float errorGlobalR () const
 
virtual float errorGlobalRPhi () const
 
virtual float errorGlobalZ () const
 
DetId geographicalId () const
 
virtual void getKfComponents (KfComponentsHolder &holder) const
 
unsigned int getRTTI () const
 
Type getType () const
 
virtual GlobalPoint globalPosition () const
 
virtual GlobalError globalPositionError () const
 
virtual bool hasPositionAndError () const
 to be redefined by daughter class More...
 
virtual TrackingRecHit const * hit () const
 
bool isValid () const
 
id_type rawId () const
 
virtual void recHitsV (std::vector< const TrackingRecHit * > &) const
 
virtual void recHitsV (std::vector< TrackingRecHit * > &)
 
virtual void setDet (const GeomDet &idet)
 
virtual bool sharesInput (const TrackingRecHit *other, SharedInputType what) const
 
virtual const Surfacesurface () const
 
 TrackingRecHit (DetId id, Type type=valid)
 
 TrackingRecHit (id_type id=0, Type type=valid)
 
 TrackingRecHit (DetId id, unsigned int rt, Type type=valid)
 
 TrackingRecHit (const GeomDet &idet, Type type=valid)
 
 TrackingRecHit (const GeomDet &idet, unsigned int rt, Type type=valid)
 
 TrackingRecHit (const GeomDet &idet, TrackingRecHit const &rh)
 
virtual ConstRecHitContainer transientHits () const
 
Type type () const
 
virtual float weight () const
 
virtual ~TrackingRecHit ()
 

Protected Member Functions

void setChi2 (const double &chi2)
 
void setCovMatrix (const AlgebraicSymMatrix &cov)
 
void setDirection (const LocalVector &dir)
 
void setPosition (const LocalPoint &pos)
 
void setT0 (const double &t0)
 
void setVdrift (const double &vdrift)
 
void update (std::vector< DTRecHit1D > &updatedRecHits)
 
- Protected Member Functions inherited from TrackingRecHit
void setId (id_type iid)
 
void setRTTI (unsigned int rt)
 
void setType (Type ttype)
 

Protected Attributes

double theChi2
 
AlgebraicSymMatrix theCovMatrix
 
LocalVector theDirection
 
std::vector< DTRecHit1DtheHits
 
LocalPoint thePosition
 
double theT0
 
double theVdrift
 

Private Member Functions

AlgebraicVector param (const LocalPoint &lp, const LocalVector &lv) const
 

Static Private Attributes

static const AlgebraicMatrix theProjectionMatrix {initTheProjectionMatrix()}
 

Friends

class DTSegmentUpdator
 

Additional Inherited Members

- Public Types inherited from TrackingRecHit
typedef std::vector< ConstRecHitPointerConstRecHitContainer
 
using ConstRecHitPointer = std::shared_ptr< TrackingRecHit const >
 
typedef unsigned int id_type
 
typedef std::vector< ConstRecHitPointerRecHitContainer
 
using RecHitPointer = std::shared_ptr< TrackingRecHit const >
 
enum  SharedInputType { all, some }
 definition of equality via shared input More...
 
enum  Type {
  valid = 0, missing = 1, inactive = 2, bad = 3,
  missing_inner = 4, missing_outer = 5, inactive_inner = 6, inactive_outer = 7
}
 
- Static Public Attributes inherited from TrackingRecHit
static const int rttiShift = 24
 
static const int typeMask = 0xf
 

Detailed Description

Base class for 2-parameters segments measuring position and direction in X projection.

Implements the AbstractDetMeasurement part of the interface for 2D RecHits in terms of localPosition() and localPositionError() and Direction. This segment is measuring the position and the direction in just one projection, the "X". Typical use case is a segment reconstructed only in X projection. To be used as base class for all 2D positional-directional segments. The coordinate measured is assumend to be the local "x" and "dx/dz"

2D Segments for the muon barrel system. 2D means that this segment has information about position and direction in one projection (r-phi or r-theta/zeta).

Author
Stefano Lacaprara - INFN Legnaro stefa.nosp@m.no.l.nosp@m.acapr.nosp@m.ara@.nosp@m.pd.in.nosp@m.fn.i.nosp@m.t
Riccardo Bellan - INFN TO ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 45 of file DTRecSegment2D.h.

Constructor & Destructor Documentation

DTRecSegment2D::DTRecSegment2D ( )
inline

Constructor empty c'tor needed by POOL (I guess)

Definition at line 49 of file DTRecSegment2D.h.

References chi2(), covMatrix(), hfClusterShapes_cfi::hits, position, and ~DTRecSegment2D().

Referenced by clone().

49 : theChi2(0.0), theT0(0.), theVdrift(0.) {}
DTRecSegment2D::DTRecSegment2D ( DetId  id,
const std::vector< DTRecHit1D > &  hits 
)

c'tor from hits

Definition at line 55 of file DTRecSegment2D.cc.

56  : RecSegment(id), theChi2(0.0), theT0(0.), theVdrift(0.), theHits(hits) {}
std::vector< DTRecHit1D > theHits
RecSegment(DetId id)
Definition: RecSegment.h:29
DTRecSegment2D::DTRecSegment2D ( DetId  id,
LocalPoint position,
LocalVector direction,
AlgebraicSymMatrix covMatrix,
double  chi2,
std::vector< DTRecHit1D > &  hits1D 
)

complete constructor

Definition at line 58 of file DTRecSegment2D.cc.

64  : RecSegment(id),
65  thePosition(position),
66  theDirection(direction),
68  theChi2(chi2),
69  theT0(0.),
70  theVdrift(0.),
71  theHits(hits1D) {}
std::vector< DTRecHit1D > theHits
AlgebraicSymMatrix theCovMatrix
double chi2() const override
the chi2 of the fit
AlgebraicSymMatrix covMatrix() const
the Covariance Matrix
LocalPoint thePosition
LocalVector theDirection
RecSegment(DetId id)
Definition: RecSegment.h:29
DTRecSegment2D::~DTRecSegment2D ( )
override

Destructor.

Definition at line 53 of file DTRecSegment2D.cc.

Referenced by DTRecSegment2D().

53 {}

Member Function Documentation

double DTRecSegment2D::chi2 ( void  ) const
inlineoverridevirtual
DTRecSegment2D* DTRecSegment2D::clone ( void  ) const
inlineoverridevirtual

Implements TrackingRecHit.

Reimplemented in DTSLRecSegment2D.

Definition at line 67 of file DTRecSegment2D.h.

References DTRecSegment2D().

67 { return new DTRecSegment2D(*this); }
AlgebraicSymMatrix DTRecSegment2D::covMatrix ( ) const
inline
int DTRecSegment2D::degreesOfFreedom ( ) const
overridevirtual

return the DOF of the segment

Implements RecSegment.

Definition at line 78 of file DTRecSegment2D.cc.

References dimension(), and theHits.

Referenced by DTLocalTriggerSynchTask::analyze(), chi2(), DTRecSegment4D::degreesOfFreedom(), and operator<<().

78 { return theHits.size() - dimension(); }
std::vector< DTRecHit1D > theHits
int dimension() const override
return 2. The dimension of the matrix
int DTRecSegment2D::dimension ( ) const
inlineoverridevirtual

return 2. The dimension of the matrix

Implements RecSegment.

Definition at line 81 of file DTRecSegment2D.h.

Referenced by degreesOfFreedom().

81 { return 2; }
bool DTRecSegment2D::ist0Valid ( ) const
inline
LocalVector DTRecSegment2D::localDirection ( ) const
inlineoverridevirtual
LocalError DTRecSegment2D::localDirectionError ( ) const
overridevirtual

the local direction error (xx,xy,yy) in SL frame: only xx is not 0.

Implements RecSegment.

Definition at line 76 of file DTRecSegment2D.cc.

References theCovMatrix.

Referenced by DTSegment2DQuality::dqmAnalyze(), DTSegment2DSLPhiQuality::dqmAnalyze(), DTSegment4DQuality::dqmAnalyze(), and localDirection().

76 { return LocalError(theCovMatrix[0][0], 0., 0.); }
AlgebraicSymMatrix theCovMatrix
LocalPoint DTRecSegment2D::localPosition ( ) const
inlineoverridevirtual
LocalError DTRecSegment2D::localPositionError ( ) const
overridevirtual

local position error in SL frame

Implements TrackingRecHit.

Definition at line 74 of file DTRecSegment2D.cc.

References theCovMatrix.

Referenced by DTSegment2DQuality::dqmAnalyze(), DTSegment2DSLPhiQuality::dqmAnalyze(), DTSegment4DQuality::dqmAnalyze(), localPosition(), and DTCombinatorialPatternReco4D::segmentSpecialZed().

74 { return LocalError(theCovMatrix[1][1], 0., 0.); }
AlgebraicSymMatrix theCovMatrix
AlgebraicVector DTRecSegment2D::param ( const LocalPoint lp,
const LocalVector lv 
) const
inlineprivate

Definition at line 148 of file DTRecSegment2D.h.

References operator<<(), mps_fire::result, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by parameters().

148  {
150  result[1] = lp.x();
151  result[0] = lv.x() / lv.z();
152  return result;
153  }
T z() const
Definition: PV3DBase.h:61
CLHEP::HepVector AlgebraicVector
T x() const
Definition: PV3DBase.h:59
AlgebraicVector DTRecSegment2D::parameters ( void  ) const
inlineoverridevirtual

the vector of parameters (dx/dz,x)

Implements TrackingRecHit.

Definition at line 70 of file DTRecSegment2D.h.

References localDirection(), localPosition(), param(), and parametersError().

Referenced by Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::inputTags(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::properties(), and Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::recursePSetProperties().

70 { return param(localPosition(), localDirection()); }
LocalPoint localPosition() const override
local position in SL frame
AlgebraicVector param(const LocalPoint &lp, const LocalVector &lv) const
LocalVector localDirection() const override
the local direction in SL frame
AlgebraicSymMatrix DTRecSegment2D::parametersError ( ) const
overridevirtual

mat[0][0]=sigma (dx/dz) mat[1][1]=sigma (x) mat[0][1]=cov(dx/dz,x)

Implements TrackingRecHit.

Definition at line 29 of file DTRecSegment2D.cc.

References visualization-live-secondInstance_cfg::m.

Referenced by DTSegmentUpdator::fit(), parameters(), and DTRecSegment4D::setCovMatrixForZed().

29  {
34  // if ( det().alignmentPositionError()) {
35  // LocalError lape =
36  // ErrorFrameTransformer().transform( det().alignmentPositionError()->globalError(),
37  // det().surface());
38  // m[0][0] = lv.xx();
39  // m[0][1] = 0.;
40  // m[1][1] = lp.xx()+lape.xx();
41  // } else {
42  m[0][0] = theCovMatrix[0][0];
43  m[0][1] = theCovMatrix[0][1];
44  m[1][1] = theCovMatrix[1][1];
45  //};
46 
47  //cout << "theCovMatrix elements " << theCovMatrix[0][0] << " , " << theCovMatrix[0][1] <<
48  // " , " << theCovMatrix[1][0] << " , " << theCovMatrix[1][1] << endl;
49 
50  return m;
51 }
AlgebraicSymMatrix theCovMatrix
CLHEP::HepSymMatrix AlgebraicSymMatrix
AlgebraicMatrix DTRecSegment2D::projectionMatrix ( ) const
inlineoverridevirtual

return the projection matrix, which must project a parameter vector, whose components are (q/p, dx/dz, dy/dz, x, y), into the vector returned by parameters()

Implements TrackingRecHit.

Definition at line 78 of file DTRecSegment2D.h.

References theProjectionMatrix.

78 { return theProjectionMatrix; }
static const AlgebraicMatrix theProjectionMatrix
std::vector< const TrackingRecHit * > DTRecSegment2D::recHits ( ) const
overridevirtual

Access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 86 of file DTRecSegment2D.cc.

References theHits.

Referenced by chi2(), DTSegment4DQuality::dqmAnalyze(), DTChamberEfficiencyTask::getBestSegment(), MuonAssociatorByHitsHelper::getMatchedIds(), TrackerMuonHitExtractor::getMuonHits(), DTChamberEfficiencyTask::isGoodSegment(), MuonSegmentMatcher::matchDT(), operator<<(), and MuonTrackProducer::produce().

86  {
87  std::vector<const TrackingRecHit*> pointersOfRecHits;
88 
89  for (std::vector<DTRecHit1D>::const_iterator rechit = theHits.begin(); rechit != theHits.end(); rechit++)
90  pointersOfRecHits.push_back(&(*rechit));
91 
92  return pointersOfRecHits;
93 }
std::vector< DTRecHit1D > theHits
std::vector< TrackingRecHit * > DTRecSegment2D::recHits ( )
overridevirtual

Non-const access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 95 of file DTRecSegment2D.cc.

References theHits.

95  {
96  std::vector<TrackingRecHit*> pointersOfRecHits;
97 
98  for (std::vector<DTRecHit1D>::iterator rechit = theHits.begin(); rechit != theHits.end(); rechit++)
99  pointersOfRecHits.push_back(&(*rechit));
100 
101  return pointersOfRecHits;
102 }
std::vector< DTRecHit1D > theHits
void DTRecSegment2D::setChi2 ( const double &  chi2)
protected

Definition at line 114 of file DTRecSegment2D.cc.

References chi2(), and theChi2.

Referenced by DTSegmentUpdator::fit().

114 { theChi2 = chi2; }
double chi2() const override
the chi2 of the fit
void DTRecSegment2D::setCovMatrix ( const AlgebraicSymMatrix cov)
protected

Definition at line 112 of file DTRecSegment2D.cc.

References theCovMatrix.

Referenced by DTSegmentUpdator::fit().

112 { theCovMatrix = cov; }
AlgebraicSymMatrix theCovMatrix
void DTRecSegment2D::setDirection ( const LocalVector dir)
protected

Definition at line 110 of file DTRecSegment2D.cc.

References DeadROC_duringRun::dir, and theDirection.

Referenced by DTSegmentUpdator::fit().

void DTRecSegment2D::setPosition ( const LocalPoint pos)
protected

Definition at line 108 of file DTRecSegment2D.cc.

References thePosition.

Referenced by DTSegmentUpdator::fit().

108 { thePosition = pos; }
LocalPoint thePosition
void DTRecSegment2D::setT0 ( const double &  t0)
protected

Definition at line 116 of file DTRecSegment2D.cc.

References t0(), and theT0.

Referenced by DTSegmentUpdator::calculateT0corr(), and DTSegmentUpdator::fit().

116 { theT0 = t0; }
double t0() const
Get the segment t0 (if recomputed, 0 is returned otherwise)
void DTRecSegment2D::setVdrift ( const double &  vdrift)
protected

Definition at line 118 of file DTRecSegment2D.cc.

References theVdrift.

Referenced by DTSegmentUpdator::calculateT0corr().

118 { theVdrift = vdrift; }
std::vector< DTRecHit1D > DTRecSegment2D::specificRecHits ( ) const
double DTRecSegment2D::t0 ( ) const
inline
void DTRecSegment2D::update ( std::vector< DTRecHit1D > &  updatedRecHits)
protected

Definition at line 106 of file DTRecSegment2D.cc.

References theHits.

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(), dqm-mbProfile.Profile::finish(), 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(), DTSegmentUpdator::rejectBadHits(), 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(), Vispa.Gui.PortConnection.PointToPointConnection::updateConnection(), and DTSegmentUpdator::updateHits().

106 { theHits = updatedRecHits; }
std::vector< DTRecHit1D > theHits
double DTRecSegment2D::vDrift ( ) const
inline

Get the vDirft as computed by the algo for the computation of the segment t0 (if recomputed, 0 is returned otherwise)

Definition at line 119 of file DTRecSegment2D.h.

References theVdrift.

Referenced by DTSegmentUpdator::updateHits().

119 { return theVdrift; }

Friends And Related Function Documentation

friend class DTSegmentUpdator
friend

Definition at line 122 of file DTRecSegment2D.h.

Member Data Documentation

double DTRecSegment2D::theChi2
protected

Definition at line 139 of file DTRecSegment2D.h.

Referenced by chi2(), and setChi2().

AlgebraicSymMatrix DTRecSegment2D::theCovMatrix
protected

mat[0][0]=sigma (dx/dz) mat[1][1]=sigma (x) mat[0][1]=cov(dx/dz,x)

Definition at line 137 of file DTRecSegment2D.h.

Referenced by covMatrix(), localDirectionError(), localPositionError(), and setCovMatrix().

LocalVector DTRecSegment2D::theDirection
protected

Definition at line 132 of file DTRecSegment2D.h.

Referenced by localDirection(), and setDirection().

std::vector<DTRecHit1D> DTRecSegment2D::theHits
protected

Definition at line 143 of file DTRecSegment2D.h.

Referenced by degreesOfFreedom(), recHits(), specificRecHits(), and update().

LocalPoint DTRecSegment2D::thePosition
protected

Definition at line 131 of file DTRecSegment2D.h.

Referenced by localPosition(), and setPosition().

const AlgebraicMatrix DTRecSegment2D::theProjectionMatrix {initTheProjectionMatrix()}
staticprivate

Definition at line 146 of file DTRecSegment2D.h.

Referenced by initTheProjectionMatrix(), and projectionMatrix().

double DTRecSegment2D::theT0
protected

Definition at line 140 of file DTRecSegment2D.h.

Referenced by ist0Valid(), setT0(), and t0().

double DTRecSegment2D::theVdrift
protected

Definition at line 141 of file DTRecSegment2D.h.

Referenced by setVdrift(), and vDrift().