1#ifndef __JFIT__JMATRIXNZ__
2#define __JFIT__JMATRIXNZ__
6#include "JMath/JMatrixNS.hh"
7#include "JGeometry3D/JVector3D.hh"
8#include "JPhysics/JConstants.hh"
16namespace JPP {
using namespace JFIT; }
20 using JMATH::JMatrixNS;
21 using JGEOMETRY3D::JVector3D;
33 using JMatrixNS::getDot;
66 set(pos, __begin, __end, alpha, sigma);
85 void set(
const JVector3D& pos,
95 const int N = distance(__begin, __end);
100 const double ta = alpha * PI / 180.0;
101 const double ct = cos(ta);
102 const double st = sin(ta);
107 for (T i = __begin; i != __end; ++i) {
109 const double dx = i->getX() - pos.getX();
110 const double dy = i->getY() - pos.getY();
111 const double dz = i->getZ() - pos.getZ();
113 const double R = sqrt(dx*dx + dy*dy);
115 double x = ta * getKappaC() * getInverseSpeedOfLight();
116 double y = ta * getKappaC() * getInverseSpeedOfLight();
117 double v = ta * getInverseSpeedOfLight();
118 double w = ta * getInverseSpeedOfLight();
125 x *= (dz*ct - dx*st);
126 y *= (dz*ct - dy*st);
127 v *= -(dx*ct + dz*st);
128 w *= -(dy*ct + dz*st);
133 for (
int i = 0; i != N; ++i) {
135 for (
int j = 0; j != i; ++j) {
137 (*this)(j, i) = (*
this)(i, j);
198 return (first.
x * second.
x +
Determination of the co-variance matrix of hits for a track along z-axis (JFIT::JLine1Z).
std::vector< variance > buffer
void set(const JVector3D &pos, T __begin, T __end, const double alpha, const double sigma)
Set co-variance matrix.
static double getDot(const variance &first, const variance &second)
Get dot product.
JMatrixNZ(const JVector3D &pos, T __begin, T __end, const double alpha, const double sigma)
Constructor.
JMatrixNZ()
Default contructor.
Auxiliary classes and methods for linear and iterative data regression.
Auxiliary data structure for co-variance calculation.
variance(const double __x, const double __y, const double __v, const double __w)
Constructor.
variance()
Default constructor.