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)
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)
void SetCov7(const TMatrixD &cov7)
void AddMassConstraint(double mass)
TMatrixT< double > TMatrixD
void ReadTotMomKinMatrix()