CMS 3D CMS Logo

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

List of all members.

Public Member Functions

virtual double chi2 () const
 the chi2 of the fit
virtual DTRecSegment2Dclone () const
AlgebraicSymMatrix covMatrix () const
 the Covariance Matrix
virtual int degreesOfFreedom () const
 return the DOF of the segment
virtual int dimension () const
 return 2. The dimension of the matrix
 DTRecSegment2D ()
 DTRecSegment2D (DetId id, const std::vector< DTRecHit1D > &hits)
 c'tor from hits
 DTRecSegment2D (DetId id, LocalPoint &position, LocalVector &direction, AlgebraicSymMatrix &covMatrix, double chi2, std::vector< DTRecHit1D > &hits1D)
 complete constructor
bool ist0Valid () const
virtual LocalVector localDirection () const
 the local direction in SL frame
virtual LocalError localDirectionError () const
 the local direction error (xx,xy,yy) in SL frame: only xx is not 0.
virtual LocalPoint localPosition () const
 local position in SL frame
virtual LocalError localPositionError () const
 local position error in SL frame
virtual AlgebraicVector parameters () const
 the vector of parameters (dx/dz,x)
virtual AlgebraicSymMatrix parametersError () const
virtual AlgebraicMatrix projectionMatrix () const
virtual std::vector< const
TrackingRecHit * > 
recHits () const
 Access to component RecHits (if any)
virtual std::vector
< TrackingRecHit * > 
recHits ()
 Non-const access to component RecHits (if any)
std::vector< DTRecHit1DspecificRecHits () const
 Access to specific components.
double t0 () const
 Get the segment t0 (if recomputed, 0 is returned otherwise)
double vDrift () const
virtual ~DTRecSegment2D ()
 Destructor.

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 Attributes

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

Private Member Functions

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

Static Private Attributes

static bool isInitialized
static AlgebraicMatrix theProjectionMatrix

Friends

class DTSegmentUpdator

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).

Date:
2012/04/30 08:32:03
Revision:
1.18
Author:
Stefano Lacaprara - INFN Legnaro <stefano.lacaprara@pd.infn.it>
Riccardo Bellan - INFN TO <riccardo.bellan@cern.ch>

Definition at line 47 of file DTRecSegment2D.h.


Constructor & Destructor Documentation

DTRecSegment2D::DTRecSegment2D ( ) [inline]

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

Definition at line 53 of file DTRecSegment2D.h.

Referenced by clone().

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

c'tor from hits

DTRecSegment2D::DTRecSegment2D ( DetId  id,
LocalPoint position,
LocalVector direction,
AlgebraicSymMatrix covMatrix,
double  chi2,
std::vector< DTRecHit1D > &  hits1D 
)

complete constructor

Definition at line 57 of file DTRecSegment2D.cc.

                                             :
 RecSegment(id), thePosition(position),theDirection(direction),
  theCovMatrix(covMatrix),theChi2(chi2),theT0(0.),theVdrift(0.),theHits(hits1D){}
DTRecSegment2D::~DTRecSegment2D ( ) [virtual]

Destructor.

Definition at line 51 of file DTRecSegment2D.cc.

{}

Member Function Documentation

virtual double DTRecSegment2D::chi2 ( void  ) const [inline, virtual]
virtual DTRecSegment2D* DTRecSegment2D::clone ( void  ) const [inline, virtual]

Implements TrackingRecHit.

Reimplemented in DTChamberRecSegment2D, and DTSLRecSegment2D.

Definition at line 69 of file DTRecSegment2D.h.

References DTRecSegment2D().

{ return new DTRecSegment2D(*this);}
AlgebraicSymMatrix DTRecSegment2D::covMatrix ( ) const [inline]
int DTRecSegment2D::degreesOfFreedom ( ) const [virtual]

return the DOF of the segment

Implements RecSegment.

Definition at line 73 of file DTRecSegment2D.cc.

References dimension(), and theHits.

Referenced by DTLocalTriggerLutTask::analyze(), DTLocalTriggerSynchTask::analyze(), DTRecSegment4D::degreesOfFreedom(), operator<<(), and DTLocalTriggerTask::runSegmentAnalysis().

                                           {
  return theHits.size()-dimension();
}
virtual int DTRecSegment2D::dimension ( ) const [inline, virtual]

return 2. The dimension of the matrix

Implements RecSegment.

Definition at line 89 of file DTRecSegment2D.h.

Referenced by degreesOfFreedom().

{ return 2;}
void DTRecSegment2D::initialize ( ) const [inline, private]

Definition at line 159 of file DTRecSegment2D.h.

References isInitialized, and theProjectionMatrix.

Referenced by projectionMatrix().

bool DTRecSegment2D::ist0Valid ( ) const [inline]
virtual LocalVector DTRecSegment2D::localDirection ( ) const [inline, virtual]
LocalError DTRecSegment2D::localDirectionError ( ) const [virtual]

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

Implements RecSegment.

Definition at line 69 of file DTRecSegment2D.cc.

References theCovMatrix.

Referenced by DTSegment4DQuality::analyze(), DTSegment2DQuality::analyze(), and DTSegment2DSLPhiQuality::analyze().

                                                    {
  return LocalError(theCovMatrix[0][0],0.,0.);
}
virtual LocalPoint DTRecSegment2D::localPosition ( ) const [inline, virtual]
LocalError DTRecSegment2D::localPositionError ( ) const [virtual]

local position error in SL frame

Implements TrackingRecHit.

Definition at line 65 of file DTRecSegment2D.cc.

References theCovMatrix.

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

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

Definition at line 166 of file DTRecSegment2D.h.

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

Referenced by parameters().

                                                                            {
    AlgebraicVector result(2);
    result[1]=lp.x();
    result[0]=lv.x()/lv.z();
    return result;
  }
virtual AlgebraicVector DTRecSegment2D::parameters ( void  ) const [inline, virtual]

the vector of parameters (dx/dz,x)

Implements TrackingRecHit.

Definition at line 73 of file DTRecSegment2D.h.

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

                                             {
    return param( localPosition(), localDirection());
  }
AlgebraicSymMatrix DTRecSegment2D::parametersError ( ) const [virtual]

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

Implements TrackingRecHit.

Definition at line 26 of file DTRecSegment2D.cc.

References m.

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

                                                         {
  AlgebraicSymMatrix m(2);
  // if ( det().alignmentPositionError()) {
  //   LocalError lape = 
  //     ErrorFrameTransformer().transform( det().alignmentPositionError()->globalError(), 
  //                                        det().surface());
  //   m[0][0] = lv.xx();
  //   m[0][1] = 0.;
  //   m[1][1] = lp.xx()+lape.xx();
  // } else {
    m[0][0] = theCovMatrix[0][0];
    m[0][1] = theCovMatrix[0][1];
    m[1][1] = theCovMatrix[1][1];
  //};

    //cout << "theCovMatrix elements " << theCovMatrix[0][0] << " , " << theCovMatrix[0][1] <<
    //        " , " << theCovMatrix[1][0] << " , " << theCovMatrix[1][1] << endl;

  return m;

}
virtual AlgebraicMatrix DTRecSegment2D::projectionMatrix ( ) const [inline, virtual]

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 83 of file DTRecSegment2D.h.

References initialize(), isInitialized, and theProjectionMatrix.

std::vector< const TrackingRecHit * > DTRecSegment2D::recHits ( ) const [virtual]

Access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 84 of file DTRecSegment2D.cc.

References theHits.

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

                                                               {

  std::vector<const TrackingRecHit*> pointersOfRecHits; 
  
  for(std::vector<DTRecHit1D>::const_iterator rechit = theHits.begin();
      rechit != theHits.end(); rechit++)
    pointersOfRecHits.push_back( &(*rechit) );
  
  return pointersOfRecHits;
}
std::vector< TrackingRecHit * > DTRecSegment2D::recHits ( ) [virtual]

Non-const access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 95 of file DTRecSegment2D.cc.

References theHits.

                                                   {

  std::vector<TrackingRecHit*> pointersOfRecHits; 
    
  for(std::vector<DTRecHit1D>::iterator rechit = theHits.begin();
      rechit != theHits.end(); rechit++)
    pointersOfRecHits.push_back( &(*rechit) );
  
  return pointersOfRecHits;
}
void DTRecSegment2D::setChi2 ( const double &  chi2) [protected]

Definition at line 126 of file DTRecSegment2D.cc.

References chi2(), and theChi2.

Referenced by DTSegmentUpdator::fit().

                                               {
  theChi2=chi2;
}
void DTRecSegment2D::setCovMatrix ( const AlgebraicSymMatrix cov) [protected]

Definition at line 122 of file DTRecSegment2D.cc.

References theCovMatrix.

Referenced by DTSegmentUpdator::fit().

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

Definition at line 118 of file DTRecSegment2D.cc.

References dir, and theDirection.

Referenced by DTSegmentUpdator::fit().

void DTRecSegment2D::setPosition ( const LocalPoint pos) [protected]

Definition at line 114 of file DTRecSegment2D.cc.

References pos, and thePosition.

Referenced by DTSegmentUpdator::fit().

void DTRecSegment2D::setT0 ( const double &  t0) [protected]

Definition at line 130 of file DTRecSegment2D.cc.

References t0(), and theT0.

Referenced by DTSegmentUpdator::calculateT0corr().

                                          {
  theT0=t0;
}
void DTRecSegment2D::setVdrift ( const double &  vdrift) [protected]

Definition at line 134 of file DTRecSegment2D.cc.

References theVdrift.

Referenced by DTSegmentUpdator::calculateT0corr().

                                                  {
  theVdrift=vdrift;
}
std::vector< DTRecHit1D > DTRecSegment2D::specificRecHits ( ) const
double DTRecSegment2D::t0 ( ) const [inline]

Get the segment t0 (if recomputed, 0 is returned otherwise)

Definition at line 122 of file DTRecSegment2D.h.

References theT0.

Referenced by TrackDetectorAssociator::addTAMuonSegmentMatch(), DTTimingExtractor::fillTiming(), setT0(), CosmicMuonTrajectoryBuilder::t0(), and DTSegmentUpdator::updateHits().

{return theT0;}
void DTRecSegment2D::update ( std::vector< DTRecHit1D > &  updatedRecHits) [protected]

Definition at line 110 of file DTRecSegment2D.cc.

References theHits.

Referenced by DTSegmentUpdator::rejectBadHits(), and DTSegmentUpdator::updateHits().

                                                                 {
  theHits = updatedRecHits;
}
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 127 of file DTRecSegment2D.h.

References theVdrift.

Referenced by DTSegmentUpdator::updateHits().

{return theVdrift;}

Friends And Related Function Documentation

friend class DTSegmentUpdator [friend]

Reimplemented in DTChamberRecSegment2D, and DTSLRecSegment2D.

Definition at line 130 of file DTRecSegment2D.h.


Member Data Documentation

bool DTRecSegment2D::isInitialized [static, private]

Definition at line 156 of file DTRecSegment2D.h.

Referenced by initialize(), and projectionMatrix().

double DTRecSegment2D::theChi2 [protected]

Definition at line 147 of file DTRecSegment2D.h.

Referenced by chi2(), and setChi2().

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

Definition at line 145 of file DTRecSegment2D.h.

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

Definition at line 140 of file DTRecSegment2D.h.

Referenced by localDirection(), and setDirection().

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

Definition at line 151 of file DTRecSegment2D.h.

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

Definition at line 139 of file DTRecSegment2D.h.

Referenced by localPosition(), and setPosition().

Definition at line 157 of file DTRecSegment2D.h.

Referenced by initialize(), and projectionMatrix().

double DTRecSegment2D::theT0 [protected]

Definition at line 148 of file DTRecSegment2D.h.

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

double DTRecSegment2D::theVdrift [protected]

Definition at line 149 of file DTRecSegment2D.h.

Referenced by setVdrift(), and vDrift().