CMS 3D CMS Logo

Public Member Functions | Private Types | Private Member Functions | Private Attributes

Strip1DMeasurementTransformator Class Reference

#include <Strip1DMeasurementTransformator.h>

List of all members.

Public Member Functions

const TransientTrackingRecHithit () const
double hitError () const
double hitParameters () const
const StripTopologyidealTopology () const
 return ideal topology, as if the sensor were flat
double projectedTrajectoryError () const
double projectedTrajectoryParameters () const
AM15 projectionMatrix () const
const TSOSstate () const
 Strip1DMeasurementTransformator (const TSOS &aTsos, const TransientTrackingRecHit &aHit)
const StripTopologytopology () const
 return real topology, taking sensor deformations into account
const ASM55trajectoryError () const
AV5 trajectoryParameters () const
 ~Strip1DMeasurementTransformator ()

Private Types

typedef AlgebraicMatrix15 AM15
typedef AlgebraicSymMatrix55 ASM55
typedef AlgebraicVector5 AV5
typedef TrajectoryStateOnSurface TSOS

Private Member Functions

void init ()

Private Attributes

const StripTopologytheIdealTopology
const TransientTrackingRecHittheRecHit
TSOS theState
const StripTopologytheTopology

Detailed Description

Helper class for accessing the RecHit and the TrajectoryState parameters and errors in the measurement frame. The RecHits are treated as 1-dimensional, the second coordinate is ignored. Ported from ORCA.

Date:
2010/12/14 15:55:58
Revision:
1.5
Author:
todorov, cerati

Definition at line 19 of file Strip1DMeasurementTransformator.h.


Member Typedef Documentation

Definition at line 25 of file Strip1DMeasurementTransformator.h.

Definition at line 24 of file Strip1DMeasurementTransformator.h.

Definition at line 26 of file Strip1DMeasurementTransformator.h.

Definition at line 23 of file Strip1DMeasurementTransformator.h.


Constructor & Destructor Documentation

Strip1DMeasurementTransformator::Strip1DMeasurementTransformator ( const TSOS aTsos,
const TransientTrackingRecHit aHit 
)

Definition at line 7 of file Strip1DMeasurementTransformator.cc.

References init().

                                                                                             : 
  theRecHit(hit),
  theState(tsos),
  theTopology(0) {

  init();
}
Strip1DMeasurementTransformator::~Strip1DMeasurementTransformator ( ) [inline]

Definition at line 32 of file Strip1DMeasurementTransformator.h.

{}

Member Function Documentation

const TransientTrackingRecHit& Strip1DMeasurementTransformator::hit ( void  ) const [inline]

Definition at line 42 of file Strip1DMeasurementTransformator.h.

References theRecHit.

Referenced by hitError(), hitParameters(), init(), and projectionMatrix().

{return theRecHit;}
double Strip1DMeasurementTransformator::hitError ( ) const

Definition at line 37 of file Strip1DMeasurementTransformator.cc.

References hit(), Topology::measurementError(), topology(), and MeasurementError::uu().

Referenced by KFStrip1DUpdator::update().

                                                       {

  return     
    topology()->measurementError(hit().localPosition(),
                                 hit().localPositionError()).uu();
}
double Strip1DMeasurementTransformator::hitParameters ( ) const
const StripTopology* Strip1DMeasurementTransformator::idealTopology ( ) const [inline]

return ideal topology, as if the sensor were flat

Definition at line 45 of file Strip1DMeasurementTransformator.h.

References theIdealTopology.

Referenced by projectionMatrix().

{return theIdealTopology;}
void Strip1DMeasurementTransformator::init ( void  ) [private]
double Strip1DMeasurementTransformator::projectedTrajectoryError ( ) const

Definition at line 49 of file Strip1DMeasurementTransformator.cc.

References Topology::measurementError(), state(), topology(), and MeasurementError::uu().

Referenced by KFStrip1DUpdator::update().

                                                                       {

  return 
    topology()->measurementError(state().localPosition(),
                                 state().localError().positionError()).uu();
}
double Strip1DMeasurementTransformator::projectedTrajectoryParameters ( ) const
AlgebraicMatrix15 Strip1DMeasurementTransformator::projectionMatrix ( ) const

Definition at line 56 of file Strip1DMeasurementTransformator.cc.

References funct::A, funct::cos(), CommonMethods::cp(), funct::D, hit(), idealTopology(), StripTopology::localPitch(), TrackingRecHit::localPosition(), phi, indexGen::s2, funct::sin(), mathSSE::sqrt(), state(), strip(), StripTopology::stripAngle(), lumiQTWidget::t, tmp, topology(), PV3DBase< T, PVType, FrameType >::x(), and detailsBasic3DVector::y.

Referenced by KFStrip1DUpdator::update().

                                                                          {

  //  H(measurement <- local)
  //  m_meas = H*x_local + c
  AlgebraicMatrix15 H;
  if(const RadialStripTopology* tmp = dynamic_cast<const RadialStripTopology*>(idealTopology())) {
    double yHitToInter = tmp->yDistanceToIntersection( hit().localPosition().y() );
    double t  = tmp->yAxisOrientation() * hit().localPosition().x() / yHitToInter;
    double c2 = 1./(1. + t*t);  // cos(angle)**2
    //double cs = t*c2;           // sin(angle)*cos(angle); tan carries sign of sin!
    double s2 = 1. - c2;        // sin(angle)**2
    double A  = tmp->angularWidth();
    // D is distance from intersection of edges to hit on strip
    double D2 = hit().localPosition().x()*hit().localPosition().x() + yHitToInter*yHitToInter;
    double D = std::sqrt(D2);
    
    double cp = std::sqrt(c2);
    double sp;
    if(t > 0) {
      sp = std::sqrt(s2);
    } else {
      sp = -std::sqrt(s2);
    }
    H(0,3) = cp/(D*A); H(0,4) = -sp/(D*A);
  } else {
    double phi = 
      topology()->stripAngle(topology()->strip(state().localPosition()));
    double pitch = topology()->localPitch(state().localPosition());
    H(0,3) = cos(phi)/pitch; H(0,4) = sin(phi)/pitch;
  }
  return H;
}
const TSOS& Strip1DMeasurementTransformator::state ( ) const [inline]
const StripTopology* Strip1DMeasurementTransformator::topology ( ) const [inline]

return real topology, taking sensor deformations into account

Definition at line 47 of file Strip1DMeasurementTransformator.h.

References theTopology.

Referenced by hitError(), hitParameters(), projectedTrajectoryError(), projectedTrajectoryParameters(), and projectionMatrix().

{return theTopology;}
const AlgebraicSymMatrix55 & Strip1DMeasurementTransformator::trajectoryError ( ) const
AlgebraicVector5 Strip1DMeasurementTransformator::trajectoryParameters ( ) const

Member Data Documentation

Definition at line 53 of file Strip1DMeasurementTransformator.h.

Referenced by idealTopology(), and init().

Definition at line 51 of file Strip1DMeasurementTransformator.h.

Referenced by hit().

Definition at line 52 of file Strip1DMeasurementTransformator.h.

Referenced by state().

Definition at line 53 of file Strip1DMeasurementTransformator.h.

Referenced by init(), and topology().