21 std::vector<double>& H,
unsigned int order )
25 if(
order==0)
return true;
31 std::vector<double>
P(
order, 1);
33 for (
I4MomIter_t itr_i = iBeg; itr_i != iEnd; ++itr_i )
35 CLHEP::Hep3Vector ci( (*itr_i)->px(), (*itr_i)->py(), (*itr_i)->pz() );
37 for (
I4MomIter_t itr_j = iBeg; itr_j != iEnd; ++itr_j )
39 CLHEP::Hep3Vector cj( (*itr_j)->px(), (*itr_j)->py(), (*itr_j)->pz() );
40 double x=
cos(ci.angle(cj));
44 double P2=0.5*(3.0*
x*
x-1);
45 double P3=0.5*(5.0*
x*
x*
x-3.0*
x);
46 double P4=0.125*(35.0*
x*
x*
x*
x-30*
x*
x+3);
48 H[0]+=abs(ci.mag())*abs(cj.mag())*P0;
51 H[1]+=abs(ci.mag())*abs(cj.mag())*P1;
56 H[2]+=abs(ci.mag())*abs(cj.mag())*P2;
61 H[3]+=abs(ci.mag())*abs(cj.mag())*P3;
66 H[4]+=abs(ci.mag())*abs(cj.mag())*P4;
83 const double inv_N0 = 1. / N0;