8 #include "TDecompSVD.h" 
    9 #include "TLorentzVector.h" 
   24   TMatrixD MomentumTensor(3,3);
 
   27   for(std::vector<fastjet::PseudoJet>::const_iterator Itr=
clusters.begin(); Itr!=
clusters.end(); ++Itr) {
 
   28     MomentumTensor(0,0) += (*Itr).px()*(*Itr).px();
 
   29     MomentumTensor(0,1) += (*Itr).px()*(*Itr).py();
 
   30     MomentumTensor(0,2) += (*Itr).px()*(*Itr).pz();
 
   31     MomentumTensor(1,0) += (*Itr).py()*(*Itr).px();
 
   32     MomentumTensor(1,1) += (*Itr).py()*(*Itr).py();
 
   33     MomentumTensor(1,2) += (*Itr).py()*(*Itr).pz();
 
   34     MomentumTensor(2,0) += (*Itr).pz()*(*Itr).px();
 
   35     MomentumTensor(2,1) += (*Itr).pz()*(*Itr).py();
 
   36     MomentumTensor(2,2) += (*Itr).pz()*(*Itr).pz();
 
   38     P2Sum += (*Itr).px()*(*Itr).px()+(*Itr).py()*(*Itr).py()+(*Itr).pz()*(*Itr).pz();
 
   41   double Aplanarity = -1;
 
   42   double Sphericity = -1;
 
   45     const double inv_P2Sum = 1. / P2Sum;
 
   46     for(
int i=0; 
i<3; 
i++) {
 
   47       for(
int j=0; j<3; j++) {
 
   48         MomentumTensor(
i,j) *= inv_P2Sum;
 
   52     TDecompSVD * aSVD = 
new TDecompSVD(MomentumTensor);
 
   53     TVectorD 
Lambda = aSVD->GetSig();
 
   55     Aplanarity = 1.5*
Lambda[2];