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;
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
auto_ptr< ClusterSequence > cs
virtual int numberOfEquations() const =0
virtual AlgebraicMatrix parametersDerivative(const std::vector< KinematicState > &, const GlobalPoint &) const =0
VertexKinematicConstraint * vConstraint
AlgebraicMatrix parametersDerivative(const std::vector< KinematicState > &states, const GlobalPoint &point) const override
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
AlgebraicVector value(const std::vector< KinematicState > &states, const GlobalPoint &point) const override
GlobalErrorBase< double, ErrorMatrixTag > GlobalError
ROOT::Math::SVector< double, 7 > AlgebraicVector7
CLHEP::HepMatrix AlgebraicMatrix
KinematicConstrainedVertexUpdator()
KinematicVertexFactory * vFactory
CLHEP::HepVector AlgebraicVector
~KinematicConstrainedVertexUpdator()
ReferenceCountingPointer< KinematicVertex > RefCountedKinematicVertex
virtual AlgebraicMatrix positionDerivative(const std::vector< KinematicState > &, const GlobalPoint &) const =0
virtual AlgebraicVector value(const std::vector< KinematicState > &, const GlobalPoint &) const =0
CLHEP::HepSymMatrix AlgebraicSymMatrix
static RefCountedKinematicVertex vertex(const VertexState &state, float totalChiSq, float degreesOfFr)
AlgebraicMatrix positionDerivative(const std::vector< KinematicState > &states, const GlobalPoint &point) const override