7 int inSize = exPoint.num_row();
9 throw VertexException(
"BackToBackKinematicConstraint::linearization point has a wrong dimension");
14 vl(1) =
pr(4) +
pr(11);
15 vl(2) =
pr(5) +
pr(12);
16 vl(3) =
pr(6) +
pr(13);
17 return std::pair<AlgebraicVector, AlgebraicVector>(vl,
pr);
23 int inSize = exPoint.num_row();
25 throw VertexException(
"BackToBackKinematicConstraint::linearization point has a wrong dimension");
36 return std::pair<AlgebraicMatrix, AlgebraicVector>(
dr,
pr);
40 const std::vector<RefCountedKinematicParticle>& par)
const {
41 int nStates = par.size();
43 throw VertexException(
"BackToBackKinematicConstraint::number of tracks is not equal to 2");
46 for (std::vector<RefCountedKinematicParticle>::const_iterator
i = par.begin();
i != par.end();
i++) {
48 for (
int j = 1;
j < 8;
j++) {
54 AlgebraicVector st1 = asHepVector<7>(par[0]->currentState().kinematicParameters().vector());
55 AlgebraicVector st2 = asHepVector<7>(par[1]->currentState().kinematicParameters().vector());
56 vl(1) = st1(4) + st2(4);
57 vl(2) = st1(5) + st2(5);
58 vl(3) = st1(6) + st2(6);
60 return std::pair<AlgebraicVector, AlgebraicVector>(vl,
point);
64 const std::vector<RefCountedKinematicParticle>& par)
const {
65 int nStates = par.size();
67 throw VertexException(
"BackToBackKinematicConstraint::number of tracks is not equal to 2");
70 for (std::vector<RefCountedKinematicParticle>::const_iterator
i = par.begin();
i != par.end();
i++) {
72 for (
int j = 1;
j < 8;
j++) {
79 return std::pair<AlgebraicMatrix, AlgebraicVector>(
dr,
point);