4 BasicSingleVertexState::BasicSingleVertexState()
9 thePosAvailable(
false), theErrAvailable(
false),theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
14 BasicSingleVertexState::BasicSingleVertexState(
const GlobalPoint & pos,
16 const double & weightInMix)
21 theWeightInMix(weightInMix),
22 thePosAvailable(
true), theErrAvailable(
true),theWeightAvailable(
false), theWeightTimesPosAvailable(
false),
27 BasicSingleVertexState::BasicSingleVertexState(
const GlobalPoint & pos,
29 const double & weightInMix)
34 theWeightInMix(weightInMix),
35 thePosAvailable(
true), theErrAvailable(
false),theWeightAvailable(
true), theWeightTimesPosAvailable(
false),
40 BasicSingleVertexState::BasicSingleVertexState(
const AlgebraicVector3 & weightTimesPosition,
42 const double & weightInMix)
46 theWeightTimesPos(weightTimesPosition),
47 theWeightInMix(weightInMix),
48 thePosAvailable(
false), theErrAvailable(
false),theWeightAvailable(
true), theWeightTimesPosAvailable(
true),
56 if (!thePosAvailable) computePosition();
64 if (!theErrAvailable) computeError();
72 if (!theWeightAvailable) computeWeight();
80 if (!theWeightTimesPosAvailable) computeWeightTimesPos();
81 return theWeightTimesPos;
85 double BasicSingleVertexState::weightInMixture()
const
88 return theWeightInMix;
98 void BasicSingleVertexState::computePosition()
const
103 thePosAvailable =
true;
107 void BasicSingleVertexState::computeError()
const
111 theErr =
weight().matrix().Inverse(ifail);
112 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert weight matrix");
113 theErrAvailable =
true;
117 void BasicSingleVertexState::computeWeight()
const
121 theWeight =
error().matrix().Inverse(ifail);
122 if (ifail != 0)
throw VertexException(
"BasicSingleVertexState::could not invert error matrix");
123 theWeightAvailable =
true;
127 void BasicSingleVertexState::computeWeightTimesPos()
const
132 theWeightTimesPos =
weight().matrix_new()*pos;
133 theWeightTimesPosAvailable =
true;
Global3DPoint GlobalPoint
static int position[TOTALCHAMBERS][3]
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
ROOT::Math::SVector< double, 3 > AlgebraicVector3
volatile std::atomic< bool > shutdown_flag false