CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
Strip1DMeasurementTransformator Class Reference

#include <Strip1DMeasurementTransformator.h>

Public Member Functions

const TrackingRecHithit () const
 
double hitError () const
 
double hitParameters () const
 
const StripTopologyidealTopology () const
 return ideal topology, as if the sensor were flat More...
 
double projectedTrajectoryError () const
 
double projectedTrajectoryParameters () const
 
AM15 projectionMatrix () const
 
const TSOSstate () const
 
 Strip1DMeasurementTransformator (const TSOS &aTsos, const TrackingRecHit &aHit)
 
const StripTopologytopology () const
 return real topology, taking sensor deformations into account More...
 
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 TrackingRecHittheRecHit
 
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.

Author
todorov, cerati

Definition at line 17 of file Strip1DMeasurementTransformator.h.

Member Typedef Documentation

◆ AM15

Definition at line 21 of file Strip1DMeasurementTransformator.h.

◆ ASM55

Definition at line 20 of file Strip1DMeasurementTransformator.h.

◆ AV5

Definition at line 22 of file Strip1DMeasurementTransformator.h.

◆ TSOS

Definition at line 19 of file Strip1DMeasurementTransformator.h.

Constructor & Destructor Documentation

◆ Strip1DMeasurementTransformator()

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

Definition at line 7 of file Strip1DMeasurementTransformator.cc.

8  : theRecHit(hit), theState(tsos), theTopology(nullptr) {
9  init();
10 }

References init().

◆ ~Strip1DMeasurementTransformator()

Strip1DMeasurementTransformator::~Strip1DMeasurementTransformator ( )
inline

Definition at line 27 of file Strip1DMeasurementTransformator.h.

27 {}

Member Function Documentation

◆ hit()

const TrackingRecHit& Strip1DMeasurementTransformator::hit ( ) const
inline

Definition at line 37 of file Strip1DMeasurementTransformator.h.

37 { return theRecHit; }

References theRecHit.

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

◆ hitError()

double Strip1DMeasurementTransformator::hitError ( ) const

Definition at line 29 of file Strip1DMeasurementTransformator.cc.

29  {
30  return topology()->measurementError(hit().localPosition(), hit().localPositionError()).uu();
31 }

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

Referenced by KFStrip1DUpdator::update().

◆ hitParameters()

double Strip1DMeasurementTransformator::hitParameters ( ) const

Definition at line 17 of file Strip1DMeasurementTransformator.cc.

17  {
18  return topology()->measurementPosition(hit().localPosition()).x();
19 }

References hit(), Topology::measurementPosition(), topology(), and PV2DBase< T, PVType, FrameType >::x().

Referenced by KFStrip1DUpdator::update().

◆ idealTopology()

const StripTopology* Strip1DMeasurementTransformator::idealTopology ( ) const
inline

return ideal topology, as if the sensor were flat

Definition at line 40 of file Strip1DMeasurementTransformator.h.

40 { return theIdealTopology; }

References theIdealTopology.

Referenced by projectionMatrix().

◆ init()

void Strip1DMeasurementTransformator::init ( void  )
private

Definition at line 12 of file Strip1DMeasurementTransformator.cc.

12  {
13  theTopology = dynamic_cast<const StripTopology*>(&(hit().detUnit()->topology()));
14  theIdealTopology = dynamic_cast<const StripTopology*>(&(hit().detUnit()->type().topology()));
15 }

References hit(), theIdealTopology, theTopology, and topology().

Referenced by Strip1DMeasurementTransformator().

◆ projectedTrajectoryError()

double Strip1DMeasurementTransformator::projectedTrajectoryError ( ) const

Definition at line 37 of file Strip1DMeasurementTransformator.cc.

37  {
38  return topology()->measurementError(state().localPosition(), state().localError().positionError()).uu();
39 }

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

Referenced by KFStrip1DUpdator::update().

◆ projectedTrajectoryParameters()

double Strip1DMeasurementTransformator::projectedTrajectoryParameters ( ) const

Definition at line 25 of file Strip1DMeasurementTransformator.cc.

25  {
26  return topology()->measurementPosition(state().localPosition()).x();
27 }

References Topology::measurementPosition(), state(), topology(), and PV2DBase< T, PVType, FrameType >::x().

Referenced by KFStrip1DUpdator::update().

◆ projectionMatrix()

AlgebraicMatrix15 Strip1DMeasurementTransformator::projectionMatrix ( ) const

Definition at line 41 of file Strip1DMeasurementTransformator.cc.

41  {
42  // H(measurement <- local)
43  // m_meas = H*x_local + c
45  if (const RadialStripTopology* tmp = dynamic_cast<const RadialStripTopology*>(idealTopology())) {
46  double yHitToInter = tmp->yDistanceToIntersection(hit().localPosition().y());
47  double t = tmp->yAxisOrientation() * hit().localPosition().x() / yHitToInter;
48  double c2 = 1. / (1. + t * t); // cos(angle)**2
49  //double cs = t*c2; // sin(angle)*cos(angle); tan carries sign of sin!
50  double s2 = 1. - c2; // sin(angle)**2
51  double A = tmp->angularWidth();
52  // D is distance from intersection of edges to hit on strip
53  double D2 = hit().localPosition().x() * hit().localPosition().x() + yHitToInter * yHitToInter;
54  double D = std::sqrt(D2);
55 
56  double cp = std::sqrt(c2);
57  double sp;
58  if (t > 0) {
59  sp = std::sqrt(s2);
60  } else {
61  sp = -std::sqrt(s2);
62  }
63  H(0, 3) = cp / (D * A);
64  H(0, 4) = -sp / (D * A);
65  } else {
66  double phi = topology()->stripAngle(topology()->strip(state().localPosition()));
67  double pitch = topology()->localPitch(state().localPosition());
68  H(0, 3) = cos(phi) / pitch;
69  H(0, 4) = sin(phi) / pitch;
70  }
71  return H;
72 }

References MaterialEffects_cfi::A, funct::cos(), data-class-funcs::H, hit(), idealTopology(), StripTopology::localPitch(), TrackingRecHit::localPosition(), phi, funct::sin(), mathSSE::sqrt(), state(), digitizers_cfi::strip, StripTopology::stripAngle(), submitPVValidationJobs::t, createJobs::tmp, topology(), PV3DBase< T, PVType, FrameType >::x(), and y.

Referenced by KFStrip1DUpdator::update().

◆ state()

const TSOS& Strip1DMeasurementTransformator::state ( ) const
inline

◆ topology()

const StripTopology* Strip1DMeasurementTransformator::topology ( ) const
inline

return real topology, taking sensor deformations into account

Definition at line 42 of file Strip1DMeasurementTransformator.h.

42 { return theTopology; }

References theTopology.

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

◆ trajectoryError()

const AlgebraicSymMatrix55 & Strip1DMeasurementTransformator::trajectoryError ( ) const

◆ trajectoryParameters()

AlgebraicVector5 Strip1DMeasurementTransformator::trajectoryParameters ( ) const

Member Data Documentation

◆ theIdealTopology

const StripTopology * Strip1DMeasurementTransformator::theIdealTopology
private

Definition at line 47 of file Strip1DMeasurementTransformator.h.

Referenced by idealTopology(), and init().

◆ theRecHit

const TrackingRecHit& Strip1DMeasurementTransformator::theRecHit
private

Definition at line 45 of file Strip1DMeasurementTransformator.h.

Referenced by hit().

◆ theState

TSOS Strip1DMeasurementTransformator::theState
private

Definition at line 46 of file Strip1DMeasurementTransformator.h.

Referenced by state().

◆ theTopology

const StripTopology* Strip1DMeasurementTransformator::theTopology
private

Definition at line 47 of file Strip1DMeasurementTransformator.h.

Referenced by init(), and topology().

RadialStripTopology
Definition: RadialStripTopology.h:28
DDAxes::y
Strip1DMeasurementTransformator::theTopology
const StripTopology * theTopology
Definition: Strip1DMeasurementTransformator.h:47
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
funct::D2
Divides< B, C > D2
Definition: Factorize.h:137
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
hgcal_conditions::parameters
Definition: HGCConditions.h:86
LocalTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition: LocalTrajectoryError.h:60
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
Strip1DMeasurementTransformator::theRecHit
const TrackingRecHit & theRecHit
Definition: Strip1DMeasurementTransformator.h:45
TrackingRecHit::localPosition
virtual LocalPoint localPosition() const =0
StripTopology::localPitch
virtual float localPitch(const LocalPoint &) const =0
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Strip1DMeasurementTransformator::init
void init()
Definition: Strip1DMeasurementTransformator.cc:12
Strip1DMeasurementTransformator::theIdealTopology
const StripTopology * theIdealTopology
Definition: Strip1DMeasurementTransformator.h:47
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Topology::measurementError
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
LocalTrajectoryParameters::vector
AlgebraicVector5 vector() const
Definition: LocalTrajectoryParameters.h:120
Strip1DMeasurementTransformator::idealTopology
const StripTopology * idealTopology() const
return ideal topology, as if the sensor were flat
Definition: Strip1DMeasurementTransformator.h:40
TrajectoryStateOnSurface::localParameters
const LocalTrajectoryParameters & localParameters() const
Definition: TrajectoryStateOnSurface.h:73
Strip1DMeasurementTransformator::state
const TSOS & state() const
Definition: Strip1DMeasurementTransformator.h:38
PV2DBase::x
T x() const
Definition: PV2DBase.h:43
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
A
StripTopology::stripAngle
virtual float stripAngle(float strip) const =0
Topology::measurementPosition
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
Strip1DMeasurementTransformator::hit
const TrackingRecHit & hit() const
Definition: Strip1DMeasurementTransformator.h:37
DDAxes::phi
Strip1DMeasurementTransformator::topology
const StripTopology * topology() const
return real topology, taking sensor deformations into account
Definition: Strip1DMeasurementTransformator.h:42
MaterialEffects_cfi.A
A
Definition: MaterialEffects_cfi.py:11
funct::D
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
AlgebraicMatrix15
ROOT::Math::SMatrix< double, 1, 5, ROOT::Math::MatRepStd< double, 1, 5 > > AlgebraicMatrix15
Definition: AlgebraicROOTObjects.h:31
data-class-funcs.H
H
Definition: data-class-funcs.py:33
MeasurementError::uu
float uu() const
Definition: MeasurementError.h:14
Strip1DMeasurementTransformator::theState
TSOS theState
Definition: Strip1DMeasurementTransformator.h:46
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
hit
Definition: SiStripHitEffFromCalibTree.cc:88