19 const AlgebraicMatrix& inCov,
const std::vector<KinematicState> &lStates,
26 int vSize = lStates.size();
35 for(std::vector<KinematicState>::const_iterator
i = lStates.begin();
i != lStates.end();
i++)
38 for(
int j = 1;
j<lst_par.num_row()+1;
j++)
39 {d_a(3+7*cst+
j) = lst_par(
j);}
81 g.sub(n_eq+1, 1, e_matrix);
82 g.sub(n_eq+1, 4, d_matrix);
85 for(
int i = 1;
i< n_eq+1;
i++)
87 for(
int i = 1;
i<(2*vSize+1);
i++)
88 {val(
i+n_eq) = val_s(
i);}
92 for(
int i = 1;
i<=val.num_row();++
i) {
94 LogDebug(
"KinematicConstrainedVertexUpdator")
97 std::pair<std::vector<KinematicState>, AlgebraicMatrix>(std::vector<KinematicState>(),
AlgebraicMatrix(1,0)),
105 for(
int i = 1;
i<7*vSize+4; ++
i)
107 for(
int j = 1;
j<7*vSize+4; ++
j)
108 {
if(
i<=
j) in_cov_sym(
i,
j) = inCov(
i,
j);}
115 v_g_sym.invert(ifl1);
117 LogDebug(
"KinematicConstrainedVertexFitter")
118 <<
"Fit failed: unable to invert SYM gain matrix\n";
120 std::pair<std::vector<KinematicState>, AlgebraicMatrix>(std::vector<KinematicState>(),
AlgebraicMatrix(1,0)),
132 AlgebraicMatrix mFactor = in_cov_sym *(v_g_sym.similarityT(g))* in_cov_sym;
139 for(
int i = 1;
i<7*vSize+4; ++
i)
141 for(
int j = 1;
j<7*vSize+4; ++
j)
142 {
if(
i<=
j)r_cov_sym(
i,
j) = rCov(
i,
j);}
152 float ndf = 2*vSize - 3;
158 VertexState st(vPos,
GlobalError( asSMatrix<3>(pCov)));
163 std::vector<KinematicState> ns;
164 for(std::vector<KinematicState>::const_iterator i_st=lStates.begin(); i_st != lStates.end(); i_st++)
167 for(
int i =0;
i<7;
i++)
168 {newPar(
i) = finPar(4 + i_int*7 +
i);}
175 ns.push_back(newState);
std::pair< std::pair< std::vector< KinematicState >, AlgebraicMatrix >, RefCountedKinematicVertex > update(const AlgebraicVector &inState, const AlgebraicMatrix &inCov, const std::vector< KinematicState > &lStates, const GlobalPoint &lPoint, MultiTrackKinematicConstraint *cs) const
virtual AlgebraicMatrix positionDerivative(const std::vector< KinematicState > &, const GlobalPoint &) const =0
auto_ptr< ClusterSequence > cs
VertexKinematicConstraint * vConstraint
virtual AlgebraicVector value(const std::vector< KinematicState > &, const GlobalPoint &) const =0
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
GlobalErrorBase< double, ErrorMatrixTag > GlobalError
ROOT::Math::SVector< double, 7 > AlgebraicVector7
CLHEP::HepMatrix AlgebraicMatrix
virtual AlgebraicVector value(const std::vector< KinematicState > &states, const GlobalPoint &point) const
KinematicConstrainedVertexUpdator()
virtual int numberOfEquations() const =0
KinematicVertexFactory * vFactory
CLHEP::HepVector AlgebraicVector
~KinematicConstrainedVertexUpdator()
ReferenceCountingPointer< KinematicVertex > RefCountedKinematicVertex
CLHEP::HepSymMatrix AlgebraicSymMatrix
virtual AlgebraicMatrix parametersDerivative(const std::vector< KinematicState > &, const GlobalPoint &) const =0
static RefCountedKinematicVertex vertex(const VertexState &state, float totalChiSq, float degreesOfFr)
virtual AlgebraicMatrix parametersDerivative(const std::vector< KinematicState > &states, const GlobalPoint &point) const
virtual AlgebraicMatrix positionDerivative(const std::vector< KinematicState > &states, const GlobalPoint &point) const