33 namespace RestFrames {
36 const std::string& stitle,
37 int N_comb,
int N_mass)
39 m_Ncomb(N_comb), m_Nmass(N_mass) {}
41 MinMassDiffCombJigsaw::~MinMassDiffCombJigsaw() {}
43 bool MinMassDiffCombJigsaw::EvaluateMetric(
double& metric)
const {
46 TLorentzVector P1, P2;
48 for(
int i = 0; i < m_Nmass-1; i++){
50 int N = GetDependancyStates(i).GetN();
51 P1.SetPxPyPzE(0.,0.,0.,0.);
52 for(
int j = 0; j < N; j++){
53 TLorentzVector v = GetDependancyStates(i)[j].GetFourVector();
54 TVector3 p = v.Vect() - v.Vect().Dot(GetTransverseAxis())*GetTransverseAxis();
59 P1 = GetDependancyStates(i).GetFourVector();
62 for(
int j = i+1; i < m_Nmass; j++){
64 int N = GetDependancyStates(j).GetN();
65 P2.SetPxPyPzE(0.,0.,0.,0.);
66 for(
int k = 0; k < N; k++){
67 TLorentzVector v = GetDependancyStates(j)[k].GetFourVector();
68 TVector3 p = v.Vect() - v.Vect().Dot(GetTransverseAxis())*GetTransverseAxis();
73 P2 = GetDependancyStates(j).GetFourVector();
76 diff += (m1-m2)*(m1-m2);