6 constexpr double dNaN = std::numeric_limits<double>::quiet_NaN();
15 thePosAvailable(
false), theTimeAvailable(
false), theErrAvailable(
false),theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
21 const double & weightInMix)
27 theWeightInMix(weightInMix),
28 thePosAvailable(
true), theTimeAvailable(
false), theErrAvailable(
true),theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
35 const double & weightInMix)
41 theWeightInMix(weightInMix),
42 thePosAvailable(
true), theTimeAvailable(
false), theErrAvailable(
false),theWeightAvailable(
true), theWeightTimesPosAvailable(
false),
49 const double & weightInMix)
54 theWeightTimesPos(weightTimesPosition[0], weightTimesPosition[1], weightTimesPosition[2], 0),
55 theWeightInMix(weightInMix),
56 thePosAvailable(
false), theTimeAvailable(
false), theErrAvailable(
false),theWeightAvailable(
true), theWeightTimesPosAvailable(
true),
65 const double & weightInMix)
71 theWeightInMix(weightInMix),
72 thePosAvailable(
true), theTimeAvailable(
true), theErrAvailable(
true), theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
79 0.,0.,0.,timeErr*timeErr);
87 const double timeWeight,
88 const double & weightInMix)
94 theWeightInMix(weightInMix),
95 thePosAvailable(
true), theTimeAvailable(
true), theErrAvailable(
false), theWeightAvailable(
true), theWeightTimesPosAvailable(
false),
101 0.,0.,0.,timeWeight);
108 const double weightTimesTime,
109 const double timeWeight,
110 const double & weightInMix)
114 theWeight(posWeight),
115 theWeightTimesPos(weightTimesPosition[0],weightTimesPosition[1],weightTimesPosition[2],weightTimesTime),
116 theWeightInMix(weightInMix),
117 thePosAvailable(
false), theTimeAvailable(
false), theErrAvailable(
false), theWeightAvailable(
true), theWeightTimesPosAvailable(
true),
123 0.,0.,0.,timeWeight);
131 const double & weightInMix)
137 theWeightInMix(weightInMix),
138 thePosAvailable(
true), theTimeAvailable(
true), theErrAvailable(
true), theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
146 const double & weightInMix)
150 theWeight(posTimeWeight),
152 theWeightInMix(weightInMix),
153 thePosAvailable(
true), theTimeAvailable(
true), theErrAvailable(
false), theWeightAvailable(
true), theWeightTimesPosAvailable(
false),
160 const double & weightInMix)
164 theWeight(posWeight),
165 theWeightTimesPos(weightTimesPosition),
166 theWeightInMix(weightInMix),
167 thePosAvailable(
false), theTimeAvailable(
false), theErrAvailable(
false), theWeightAvailable(
true), theWeightTimesPosAvailable(
true),
262 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert weight matrix");
265 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert weight matrix");
277 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert error matrix");
280 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert error matrix");
GlobalError error4D() const
const AlgebraicSymMatrix33 matrix() const
Global3DPoint GlobalPoint
AlgebraicVector4 weightTimesPosition4D() const
void computeWeight() const
GlobalWeight weight4D() const
const AlgebraicSymMatrix44 & matrix4D() const
void computePosition() const
GlobalWeight weight() const
GlobalErrorBase< double, ErrorMatrixTag > GlobalError
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > AlgebraicSymMatrix44
GlobalError error() const
double weightInMixture() const
GlobalPoint position() const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
void computeError() const
GlobalErrorBase< double, WeightMatrixTag > GlobalWeight
bool theWeightTimesPosAvailable
volatile std::atomic< bool > shutdown_flag false
AlgebraicVector3 weightTimesPosition() const
ROOT::Math::SVector< double, 4 > AlgebraicVector4
void computeWeightTimesPos() const
AlgebraicVector4 theWeightTimesPos