TrackingTools
TrajectoryParametrization
interface
CurvilinearTrajectoryError.h
Go to the documentation of this file.
1
#ifndef _TRACKER_CURVILINEARTRAJECTORYERROR_H_
2
#define _TRACKER_CURVILINEARTRAJECTORYERROR_H_
3
4
#include "
DataFormats/GeometrySurface/interface/TrivialError.h
"
5
#include "
DataFormats/Math/interface/AlgebraicROOTObjects.h
"
6
#include "
DataFormats/Math/interface/Error.h
"
7
27
class
CurvilinearTrajectoryError
{
28
public
:
30
enum
{
dimension
= 5 };
32
typedef
math::Error<dimension>::type
MathCovarianceMatrix
;
33
34
// construct
35
CurvilinearTrajectoryError
() {}
36
37
CurvilinearTrajectoryError
(
InvalidError
) :
theCovarianceMatrix
(
ROOT
::Math::SMatrixNoInit()) {
38
theCovarianceMatrix
(0, 0) = -99999.e10;
39
}
40
44
CurvilinearTrajectoryError
(
const
AlgebraicSymMatrix55
&aCovarianceMatrix) :
theCovarianceMatrix
(aCovarianceMatrix) {}
45
template
<
typename
M55>
46
CurvilinearTrajectoryError
(
const
M55 &aCovarianceMatrix) :
theCovarianceMatrix
(aCovarianceMatrix) {}
47
48
bool
invalid
()
const
{
return
theCovarianceMatrix
(0, 0) < -1.e10; }
49
bool
valid
()
const
{
return
!
invalid
(); }
50
51
// not really full check of posdef
52
bool
posDef
()
const
{
53
return
(
theCovarianceMatrix
(0, 0) >= 0) && (
theCovarianceMatrix
(1, 1) >= 0) && (
theCovarianceMatrix
(2, 2) >= 0) &&
54
(
theCovarianceMatrix
(3, 3) >= 0) && (
theCovarianceMatrix
(4, 4) >= 0);
55
}
56
57
// access
58
61
const
AlgebraicSymMatrix55
&
matrix
()
const
{
return
theCovarianceMatrix
; }
62
63
AlgebraicSymMatrix55
&
matrix
() {
return
theCovarianceMatrix
; }
64
68
void
operator*=
(
double
factor
) {
theCovarianceMatrix
*=
factor
; }
69
70
void
zeroFieldScaling
(
double
factor
) {
71
double
root_of_factor =
sqrt
(
factor
);
72
//scale the 0 indexed covariance by the factor
73
for
(
unsigned
int
i
= 1;
i
!= 5; ++
i
)
74
theCovarianceMatrix
(
i
, 0) *= root_of_factor;
75
76
//scale all others by the scared factor
77
for
(
unsigned
int
i
= 1;
i
!= 5; ++
i
)
78
for
(
unsigned
int
j
=
i
;
j
!= 5; ++
j
)
79
theCovarianceMatrix
(
i
,
j
) *=
factor
;
80
//term 0,0 is not scaled at all
81
}
82
83
operator
MathCovarianceMatrix
&() {
return
theCovarianceMatrix
; }
84
operator
const
MathCovarianceMatrix
&()
const
{
return
theCovarianceMatrix
; }
85
86
private
:
87
AlgebraicSymMatrix55
theCovarianceMatrix
;
88
};
89
90
#endif
CurvilinearTrajectoryError::matrix
AlgebraicSymMatrix55 & matrix()
Definition:
CurvilinearTrajectoryError.h:63
mps_fire.i
i
Definition:
mps_fire.py:428
CurvilinearTrajectoryError::CurvilinearTrajectoryError
CurvilinearTrajectoryError()
Definition:
CurvilinearTrajectoryError.h:35
CurvilinearTrajectoryError::invalid
bool invalid() const
Definition:
CurvilinearTrajectoryError.h:48
CurvilinearTrajectoryError::valid
bool valid() const
Definition:
CurvilinearTrajectoryError.h:49
CurvilinearTrajectoryError::CurvilinearTrajectoryError
CurvilinearTrajectoryError(InvalidError)
Definition:
CurvilinearTrajectoryError.h:37
CurvilinearTrajectoryError::CurvilinearTrajectoryError
CurvilinearTrajectoryError(const AlgebraicSymMatrix55 &aCovarianceMatrix)
Definition:
CurvilinearTrajectoryError.h:44
CurvilinearTrajectoryError::operator*=
void operator*=(double factor)
Definition:
CurvilinearTrajectoryError.h:68
CurvilinearTrajectoryError::MathCovarianceMatrix
math::Error< dimension >::type MathCovarianceMatrix
5 parameter covariance matrix
Definition:
CurvilinearTrajectoryError.h:32
TrivialError.h
CurvilinearTrajectoryError::zeroFieldScaling
void zeroFieldScaling(double factor)
Definition:
CurvilinearTrajectoryError.h:70
CurvilinearTrajectoryError
Definition:
CurvilinearTrajectoryError.h:27
CurvilinearTrajectoryError::theCovarianceMatrix
AlgebraicSymMatrix55 theCovarianceMatrix
Definition:
CurvilinearTrajectoryError.h:87
mathSSE::sqrt
T sqrt(T t)
Definition:
SSEVec.h:19
DQMScaleToClient_cfi.factor
factor
Definition:
DQMScaleToClient_cfi.py:8
CurvilinearTrajectoryError::dimension
Definition:
CurvilinearTrajectoryError.h:30
Error.h
CurvilinearTrajectoryError::CurvilinearTrajectoryError
CurvilinearTrajectoryError(const M55 &aCovarianceMatrix)
Definition:
CurvilinearTrajectoryError.h:46
math::Error::type
ErrorD< N >::type type
Definition:
Error.h:32
CurvilinearTrajectoryError::posDef
bool posDef() const
Definition:
CurvilinearTrajectoryError.h:52
dqmiolumiharvest.j
j
Definition:
dqmiolumiharvest.py:66
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition:
AlgebraicROOTObjects.h:23
ROOT
Definition:
Transform3DPJ.h:35
AlgebraicROOTObjects.h
CurvilinearTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition:
CurvilinearTrajectoryError.h:61
InvalidError
Definition:
TrivialError.h:8
Generated for CMSSW Reference Manual by
1.8.16