9 #include "Math/SVector.h"
10 #include "Math/SMatrix.h"
31 typedef ROOT::Math::SVector<double, 3>
SVector3;
32 typedef ROOT::Math::SMatrix<double, 3,3,ROOT::Math::MatRepSym<double,3> >
SMatrixSym3;
57 return TVector3(_pos(0), _pos(1), _pos(2));
68 typedef ROOT::Math::SVector<double, 5>
SVector5;
69 typedef ROOT::Math::SVector<double, 3>
SVector3;
70 typedef ROOT::Math::SMatrix<double, 5,5,ROOT::Math::MatRepSym<double,5> >
SMatrixSym5;
73 typedef ROOT::Math::SMatrix<double, 3,3,ROOT::Math::MatRepSym<double,3> >
SMatrixSym3;
74 typedef ROOT::Math::SMatrix<double, 3,3>
SMatrix3;
89 void operator() (
const double* t,
double* output);
124 double Variance(
const TVector3& p,
double t)
const;
127 TVector3
GetPos(
double t)
const;
138 _hel = hel, _err = err;
145 _charge = ref._charge;
149 void GetCenter(
double& x,
double& y)
const;
150 void FindZCross(
double x,
double y,
double& zi,
double& zp)
const;
162 typedef ROOT::Math::SVector<double, 3> SVector3;
163 typedef ROOT::Math::SMatrix<double, 3,3,ROOT::Math::MatRepSym<double,3> > SMatrixSym3;
169 class VarianceFunctor {
171 VarianceFunctor(
const VertexLine& line,
const TVector3& p) : _line(line), _p(p) {}
172 double operator() (
const double* t) {
173 return _line.Variance(_p,*t);
187 double Variance(
const TVector3& p,
double t)
const;
193 _origin = _vertex->
getPos();
194 _unit = (_origin - _ip->
getPos()).Unit();
204 void Set(
const TVector3& origin,
const TVector3& dir) {
230 TVector3 p(xx[0], xx[1], xx[2]);
233 for (
unsigned int i=0; i<_points.size(); i++) {
234 ll += _points[i]->LogLikelihood(p);
240 const vector<PointBase*> _points;
251 TVector3 p(xx[0], xx[1], xx[2]);
255 for (
unsigned int i=0; i<_points.size(); i++) {
256 _points[i]->LogLikelihoodDeriv(p,tmp);
263 const vector<PointBase*> _points;
267 double PointFit(
const vector<PointBase*>& points,
const TVector3& initial,
Point* result = 0);
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > SMatrixSym5
Definition: Driver.cc:963
ROOT::Math::SVector< double, 5 > SVector5
Definition: geometry.h:68
Definition: geometry.h:66
VertexLine()
Definition: geometry.h:189
~Helix()
Definition: geometry.h:147
double Variance(const TVector3 &p, double t) const
Helix(const SVector5 &hel, const SMatrixSym5 &err, int charge)
Definition: geometry.h:137
Definition: geometry.h:66
double GetErr(int i, int j) const
Definition: geometry.h:53
Definition: lcfiplus.h:771
par
Definition: geometry.h:66
Definition: geometry.h:222
double operator()(const double *t)
Definition: geometry.h:99
double LongitudinalDeviation(const Vertex *ip, const Vertex *sec)
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > SMatrixSym3
Definition: Driver.cc:962
ROOT::Math::SMatrix< double, 3, 5 > SMatrix35
Definition: geometry.h:72
void GetPosErr(double t, SVector3 &pos, SMatrixSym3 &err) const
Definition: geometry.h:66
Definition: lcfiplus.h:384
void LogLikelihoodDeriv(const TVector3 &p, double *output) const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > SMatrixSym3
Definition: geometry.h:73
void operator()(const double *xx, double *output)
Definition: geometry.h:246
Definition: geometry.h:226
double operator()(const double *xx)
Definition: geometry.h:229
Definition: geometry.h:64
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > SMatrixSym5
Definition: geometry.h:70
static GeometryHandler * Instance()
TVector3 getPos() const
Definition: lcfiplus.h:817
Definition: geometry.h:66
Definition: geometry.h:107
double LogLikelihood(const TVector3 &p) const
void operator()(const double *t, double *output)
PointBase()
Definition: geometry.h:26
PointFitFunctor(const vector< PointBase * > &points)
Definition: geometry.h:228
ROOT::Math::SVector< double, 3 > SVector3
Definition: Driver.cc:958
double operator()(const double *t)
Definition: geometry.h:110
Definition: geometry.h:86
double Variance(const TVector3 &p, double t) const
double HelixPointFit(const vector< Helix * > &helices, Point *result=0)
double operator()(const double *t)
void GetPosErrDeriv2(double t, SVector3 &pos, SMatrixSym3 &err) const
ROOT::Math::SVector< double, 3 > SVector3
Definition: geometry.h:69
VertexLine(const Vertex *ip, const Vertex *secvtx)
Definition: geometry.h:190
ROOT::Math::SMatrix< double, 5, 3 > SMatrix53
Definition: geometry.h:71
Definition: geometry.h:76
void Set(const TVector3 &origin, const TVector3 &dir)
Definition: geometry.h:204
Definition: geometry.h:29
TVector3 GetPos() const
Definition: geometry.h:56
virtual void LogLikelihoodDeriv(const TVector3 &p, double *output) const =0
Definition: geometry.h:96
void SetPosErr(const SVector3 &pos, const SMatrixSym3 &err)
Definition: geometry.h:49
Point(const SVector3 &pos, const SMatrixSym3 &err)
Definition: geometry.h:38
Definition: geometry.h:66
Helix(const Helix &ref)
Definition: geometry.h:142
void FindZCross(double x, double y, double &zi, double &zp) const
HelixLineDistance2DerivFunctor(const Helix *hel, const VertexLine *line)
Definition: geometry.h:88
void GetCenter(double &x, double &y) const
double VarianceDeriv2(const TVector3 &p, double t) const
Definition: geometry.h:161
TVector3 ClosePoint(const Helix &hel) const
Definition: geometry.h:19
void LogLikelihoodDeriv(const TVector3 &p, double *output) const
double PointFit(const vector< PointBase * > &points, const TVector3 &initial, Point *result=0)
virtual double LogLikelihood(const TVector3 &p) const =0
void GetPosErrDeriv(double t, SVector3 &pos, SMatrixSym3 &err) const
ROOT::Math::SMatrix< double, 3, 3 > SMatrix3
Definition: geometry.h:74
Helix()
Definition: geometry.h:136
double VarianceDeriv(const TVector3 &p, double t) const
TVector3 GetPosDerivT(double t) const
TVector3 GetPos(double t) const
~Point()
Definition: geometry.h:47
PointFitDerivFunctor(const vector< PointBase * > &points)
Definition: geometry.h:245
HelixLineDistance2Functor(const Helix *hel, const VertexLine *line)
Definition: geometry.h:78
void LogLikelihoodDeriv(const TVector3 &p, double *output) const
~VertexLine()
Definition: geometry.h:202
virtual double LogLikelihood(const TVector3 &p) const
Definition: geometry.h:118
Point(const Point &ref)
Definition: geometry.h:42
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > SMatrixSym3
Definition: geometry.h:32
ROOT::Math::SVector< double, 3 > SVector3
Definition: geometry.h:31
VarianceDerivFunctor(const Helix *hel, const TVector3 &p)
Definition: geometry.h:109
Point()
Definition: geometry.h:37
virtual ~PointBase()
Definition: geometry.h:23
VarianceFunctor(const Helix *hel, const TVector3 &p)
Definition: geometry.h:98
Definition: geometry.h:66
virtual double LogLikelihood(const TVector3 &p) const
Definition: geometry.h:181
Definition: geometry.h:243
VertexLine(const TVector3 &origin, const TVector3 &dir)
Definition: geometry.h:196