8 int inSize = exPoint.num_row();
9 if(inSize != 14)
throw VertexException(
"BackToBackKinematicConstraint::linearization point has a wrong dimension");
17 return std::pair<AlgebraicVector, AlgebraicVector>(vl,pr);
23 int inSize = exPoint.num_row();
24 if(inSize != 14)
throw VertexException(
"BackToBackKinematicConstraint::linearization point has a wrong dimension");
35 return std::pair<AlgebraicMatrix, AlgebraicVector>(dr,pr);
40 int nStates = par.size();
41 if(nStates != 2)
throw VertexException(
"BackToBackKinematicConstraint::number of tracks is not equal to 2");
44 for(std::vector<RefCountedKinematicParticle>::const_iterator
i = par.begin();
i!=par.end();
i++)
47 for(
int j = 1;
j<8;
j++){
point((co-1)*7+
j) = cPar(
j-1);}
51 AlgebraicVector st1 = asHepVector<7>(par[0]->currentState().kinematicParameters().vector());
52 AlgebraicVector st2 = asHepVector<7>(par[1]->currentState().kinematicParameters().vector());
53 vl(1) = st1(4)+st2(4);
54 vl(2) = st1(5)+st2(5);
55 vl(3) = st1(6)+st2(6);
57 return std::pair<AlgebraicVector, AlgebraicVector>(vl,
point);
62 int nStates = par.size();
63 if(nStates != 2)
throw VertexException(
"BackToBackKinematicConstraint::number of tracks is not equal to 2");
66 for(std::vector<RefCountedKinematicParticle>::const_iterator
i = par.begin();
i!=par.end();
i++)
69 for(
int j = 1;
j<8;
j++){
point((co-1)*7+
j) = cPar(
j-1);}
74 return std::pair<AlgebraicMatrix, AlgebraicVector>(dr,
point);
virtual int numberOfEquations() const
virtual KinematicConstraint * clone() const
virtual std::pair< AlgebraicMatrix, AlgebraicVector > derivative(const AlgebraicVector &exPoint) const
ROOT::Math::SVector< double, 7 > AlgebraicVector7
CLHEP::HepMatrix AlgebraicMatrix
virtual AlgebraicVector deviations(int nStates) const
CLHEP::HepVector AlgebraicVector
virtual std::pair< AlgebraicVector, AlgebraicVector > value(const AlgebraicVector &exPoint) const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
BackToBackKinematicConstraint()
const double par[8 *NPar][4]