#include <Strip1DMeasurementTransformator.h>
Public Member Functions | |
const TransientTrackingRecHit & | hit () const |
double | hitError () const |
double | hitParameters () const |
const StripTopology * | idealTopology () const |
return ideal topology, as if the sensor were flat | |
double | projectedTrajectoryError () const |
double | projectedTrajectoryParameters () const |
AM15 | projectionMatrix () const |
const TSOS & | state () const |
Strip1DMeasurementTransformator (const TSOS &aTsos, const TransientTrackingRecHit &aHit) | |
const StripTopology * | topology () const |
return real topology, taking sensor deformations into account | |
const ASM55 & | trajectoryError () 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 StripTopology * | theIdealTopology |
const TransientTrackingRecHit & | theRecHit |
TSOS | theState |
const StripTopology * | theTopology |
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.
Definition at line 19 of file Strip1DMeasurementTransformator.h.
typedef AlgebraicMatrix15 Strip1DMeasurementTransformator::AM15 [private] |
Definition at line 25 of file Strip1DMeasurementTransformator.h.
typedef AlgebraicSymMatrix55 Strip1DMeasurementTransformator::ASM55 [private] |
Definition at line 24 of file Strip1DMeasurementTransformator.h.
typedef AlgebraicVector5 Strip1DMeasurementTransformator::AV5 [private] |
Definition at line 26 of file Strip1DMeasurementTransformator.h.
typedef TrajectoryStateOnSurface Strip1DMeasurementTransformator::TSOS [private] |
Definition at line 23 of file Strip1DMeasurementTransformator.h.
Strip1DMeasurementTransformator::Strip1DMeasurementTransformator | ( | const TSOS & | aTsos, |
const TransientTrackingRecHit & | aHit | ||
) |
Definition at line 6 of file Strip1DMeasurementTransformator.cc.
References init().
: theRecHit(hit), theState(tsos), theTopology(0) { init(); }
Strip1DMeasurementTransformator::~Strip1DMeasurementTransformator | ( | ) | [inline] |
Definition at line 32 of file Strip1DMeasurementTransformator.h.
{}
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 36 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 |
Definition at line 21 of file Strip1DMeasurementTransformator.cc.
References hit(), Topology::measurementPosition(), topology(), and PV2DBase< T, PVType, FrameType >::x().
Referenced by KFStrip1DUpdator::update().
{ return topology()->measurementPosition(hit().localPosition()).x(); }
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] |
Definition at line 15 of file Strip1DMeasurementTransformator.cc.
References TransientTrackingRecHit::detUnit(), hit(), theIdealTopology, theTopology, GeomDetUnit::topology(), GeomDetType::topology(), and GeomDetUnit::type().
Referenced by Strip1DMeasurementTransformator().
{ theTopology = dynamic_cast<const StripTopology*>(&(hit().detUnit()->topology())); theIdealTopology = dynamic_cast<const StripTopology*>(&(hit().detUnit()->type().topology())); }
double Strip1DMeasurementTransformator::projectedTrajectoryError | ( | ) | const |
Definition at line 48 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 |
Definition at line 31 of file Strip1DMeasurementTransformator.cc.
References Topology::measurementPosition(), state(), topology(), and PV2DBase< T, PVType, FrameType >::x().
Referenced by KFStrip1DUpdator::update().
{ return topology()->measurementPosition(state().localPosition()).x(); }
AlgebraicMatrix15 Strip1DMeasurementTransformator::projectionMatrix | ( | ) | const |
Definition at line 55 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(), matplotRender::t, tmp, topology(), PV3DBase< T, PVType, FrameType >::x(), and ExpressReco_HICollisions_FallBack::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] |
Definition at line 43 of file Strip1DMeasurementTransformator.h.
References theState.
Referenced by projectedTrajectoryError(), projectedTrajectoryParameters(), projectionMatrix(), trajectoryError(), and trajectoryParameters().
{return theState;}
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 |
Definition at line 43 of file Strip1DMeasurementTransformator.cc.
References TrajectoryStateOnSurface::localError(), LocalTrajectoryError::matrix(), and state().
Referenced by KFStrip1DUpdator::update().
{ return state().localError().matrix(); }
AlgebraicVector5 Strip1DMeasurementTransformator::trajectoryParameters | ( | ) | const |
Definition at line 26 of file Strip1DMeasurementTransformator.cc.
References TrajectoryStateOnSurface::localParameters(), state(), and LocalTrajectoryParameters::vector().
Referenced by KFStrip1DUpdator::update().
{ return state().localParameters().vector(); }
const StripTopology * Strip1DMeasurementTransformator::theIdealTopology [private] |
Definition at line 53 of file Strip1DMeasurementTransformator.h.
Referenced by idealTopology(), and init().
const TransientTrackingRecHit& Strip1DMeasurementTransformator::theRecHit [private] |
Definition at line 51 of file Strip1DMeasurementTransformator.h.
Referenced by hit().
Definition at line 52 of file Strip1DMeasurementTransformator.h.
Referenced by state().
const StripTopology* Strip1DMeasurementTransformator::theTopology [private] |
Definition at line 53 of file Strip1DMeasurementTransformator.h.
Referenced by init(), and topology().