7 #include "TMatrixDSym.h" 
  122   fAl0.ResizeTo(7*nd,1);
 
  124   fAl1.ResizeTo(7*nd,1);
 
  151   chi2_0[0][0]=10000000.;
 
  154   for(Int_t j1=0;j1<j1Max;++j1)
 
  176   if(TMath::IsNaN(chi2_new[0][0])) 
continue;
 
  177   double delchi2 = chi2_0[0][0]- chi2_new[0][0];
 
  180  if( chi2_new[0][0] < chi2_0[0][0]|| 
fabs(delchi2)<1.){
 
  184    chi2_0[0][0]= chi2_new[0][0];
 
  186   if(
fabs(delchi2)<0.01||j1==j1Max-1){ 
fV_al1= V_al_new; 
break;}
 
  225     for(
int i=0; 
i<7; 
i++) {
 
  226       for (
int j=0; j<7; j++) {
 
  235     for(
int i=0; 
i<7; 
i++) {
 
  236       for(
int j=0; j<7; j++) {
 
  239             HeadCov[
i-4][j-4] = p1Cov[
i][j];
 
  240           } 
else { HeadCov[
i-4][j+3] = p1Cov[
i][j]; }
 
  243             HeadCov[
i+3][j-4] = p1Cov[
i][j];
 
  244           } 
else { HeadCov[
i+3][j+3] = p1Cov[
i][j]; }
 
  256     TLorentzVector tot(0,0.0,0.0,0.0);
 
  257     for (
int k=0; k<nd; k++) {
 
  266     TLorentzVector mom4(
fAl0[k*7+0][0],
fAl0[k*7+1][0],
fAl0[k*7+2][0],E);
 
  272     for(
int i=0; 
i<7; 
i++) {
 
  273       for (
int j=0; j<7; j++) {
 
  283     for(
int i=0; 
i<7; 
i++) {
 
  284       for(
int j=0; j<7; j++) {
 
  287             p2Cov[
i-4][j-4] = p1Cov[
i][j];
 
  288           } 
else { p2Cov[
i-4][j+3] = p1Cov[
i][j]; }
 
  291             p2Cov[
i+3][j-4] = p1Cov[
i][j];
 
  292           } 
else { p2Cov[
i+3][j+3] = p1Cov[
i][j]; }
 
  335     for (
int ii=0; ii<6; ii++) {
for(
int jj=0; 
jj<6; 
jj++) {HeadCov[ii][
jj]=p1Cov[ii][
jj];}} 
 
  343     for(
int i=0; 
i<7; 
i++) {
 
  344       for(
int j=0; j<7; j++) {
 
  347             p4Cov[
i-3][j-3] = p3Cov[
i][j];
 
  348           } 
else { p4Cov[
i-3][j+4] = p3Cov[
i][j]; }
 
  351             p4Cov[
i+4][j-3] = p3Cov[
i][j];
 
  352           } 
else { p4Cov[
i+4][j+4] = p3Cov[
i][j]; }
 
  359     for(
int i=0; 
i<7; 
i++) {
 
  360       for (
int j=0; j<7; j++) {
 
  422     double px = al1p[0][0];
 
  423     double py = al1p[1][0];
 
  424     double pz = al1p[2][0];
 
  425     double E =  al1p[3][0];
 
  450   for (k=0; k<nd; k++) {
 
  456    double E =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
 
  457                    alp[k*7+1][0]*alp[k*7+1][0]+
 
  458                    alp[k*7+2][0]*alp[k*7+2][0]+
 
  463       fmD[
fNc+3][k*7+
i]   = alp[k*7+
i][0]/E;
 
  475     for (i=0; i<3; i++) {
 
  496   for (k=0; k<nd; k++) {
 
  497     for (i=0; i<3; i++) {
 
  500     for (i=0; i<3; i++) {
 
  518   for (k=0; k<nd; k++) {
 
  521     double E =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
 
  522                    alp[k*7+1][0]*alp[k*7+1][0]+
 
  523                    alp[k*7+2][0]*alp[k*7+2][0]+
 
  525     for (i=0; i<3; i++) {
 
  542   for (k=0; k<nd; k++) {
 
  543     double Ptot =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
 
  544                       alp[k*7+1][0]*alp[k*7+1][0]+
 
  545                       alp[k*7+2][0]*alp[k*7+2][0]);
 
  546     for (i=0; i<3; i++) {
 
  548       fmD[
fNc+0][k*7+
i]  = alp[k*7+
i][0]/Ptot;
 
RhoKinHyperonFitter(RhoCandidate *b)
void SetP7(const TVector3 &pos, const TLorentzVector &p4)
void SetInputMatrix(TMatrixD M1, TMatrixD V1)
friend F32vec4 sqrt(const F32vec4 &a)
void Add4MomConstraint(TLorentzVector lv)
ClassImp(RhoKinHyperonFitter) TBuffer &operator>>(TBuffer &buf
void SetP4(Double_t mass, const TVector3 &p3)
TLorentzVector P4() const 
friend F32vec4 fabs(const F32vec4 &a)
std::vector< RhoCandidate * > fDaughters
void AddTotMomConstraint(double momentum)
RhoCandidate * fHeadOfTree
void AddTotEConstraint(double energy)
virtual ~RhoKinHyperonFitter()
void AddMomConstraint(TVector3 v)
void SetDaugthersFromComposite(RhoCandidate *cand)
RhoKinHyperonFitter *& obj
void SetCov7(const TMatrixD &cov7)
void AddMassConstraint(double mass)
TMatrixT< double > TMatrixD
void ReadTotMomKinMatrix()