7 #include "TMatrixDSym.h"
15 obj = (
RhoKinFitter*) buf.ReadObject(RhoKinFitter::Class());
108 fAl0.ResizeTo(7*nd,1);
110 fAl1.ResizeTo(7*nd,1);
163 double covdif=(fV_al0[0][0]-V_al_new[0][0]);
164 if (covdif > 0 ) {
fmPull[0][0] =(
fAl0[0][0]-al_new[0][0])/
sqrt(covdif);}
189 for (
int k=0; k<nd; k++) {
191 a = -0.00299792458*bField*
fDaughters[k]->GetCharge();
195 TLorentzVector mom4(
fAl0[k*7+0][0],
fAl0[k*7+1][0],
fAl0[k*7+2][0],
fAl0[k*7+3][0]);
197 p1.SetXYZM(
fAl0[k*7+0][0],
fAl0[k*7+1][0],
fAl0[k*7+2][0],m[k][0]);
204 for(
int i=0;
i<7;
i++) {
205 for (
int j=0; j<7; j++) {
236 for (
int k=0; k<nd; k++) {
241 fAl0[kN+0][0]=p1.X();
242 fAl0[kN+1][0]=p1.Y();
243 fAl0[kN+2][0]=p1.Z();
245 fAl0[kN+4][0]=p2.X();
246 fAl0[kN+5][0]=p2.Y();
247 fAl0[kN+6][0]=p2.Z();
259 for (
int ii=0; ii<6; ii++) {
for(
int jj=0;
jj<6;
jj++) {p2Cov[ii][
jj]=p1Cov[ii][
jj];}}
266 for (
int ii=0; ii<6; ii++) {
for(
int jj=0;
jj<6;
jj++) {J[ii][
jj] = 1;}}
267 for(
int i=3;
i<6; ++
i) {J[6][
i] =
fAl0[kN+
i-3][0]/
fAl0[kN+3][0];}
274 for(
int i=0;
i<7;
i++) {
275 for(
int j=0; j<7; j++) {
278 p4Cov[
i-3][j-3] = p3Cov[
i][j];
279 }
else { p4Cov[
i-3][j+4] = p3Cov[
i][j]; }
282 p4Cov[
i+4][j-3] = p3Cov[
i][j];
283 }
else { p4Cov[
i+4][j+4] = p3Cov[
i][j]; }
290 for(
int i=0;
i<7;
i++) {
291 for (
int j=0; j<7; j++) {
311 for(
int k=0; k<nd; ++k) {
316 double px = al1p[kN+0][0];
317 double py = al1p[kN+1][0];
318 double pz = al1p[kN+2][0];
319 double E =
TMath::Sqrt(px*px+py*py+pz*pz+m[k][0]*m[k][0]);
330 for(
int k=0; k<nd; ++k) {
339 a = -0.00299792458*bField*
fDaughters[k]->GetCharge();
344 fmD[
fNc+0][kN+0] = -2.*Px;
345 fmD[
fNc+0][kN+1] = -2.*Py;;
346 fmD[
fNc+0][kN+2] = -2.*Pz;
347 fmD[
fNc+0][kN+3] = 2.*Etot;
348 fmD[
fNc+0][kN+4] = 2.*a*Py;
349 fmD[
fNc+0][kN+5] = -2.*a*Px;
387 for (k=0; k<nd; k++) {
390 double E =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
391 alp[k*7+1][0]*alp[k*7+1][0]+
392 alp[k*7+2][0]*alp[k*7+2][0]+
394 for (i=0; i<3; i++) {
396 fmD[
fNc+3][k*7+
i] = alp[k*7+
i][0]/E;
400 for (i=0; i<3; i++) {
419 for (k=0; k<nd; k++) {
420 for (i=0; i<3; i++) {
423 for (i=0; i<3; i++) {
441 for (k=0; k<nd; k++) {
444 double E =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
445 alp[k*7+1][0]*alp[k*7+1][0]+
446 alp[k*7+2][0]*alp[k*7+2][0]+
448 for (i=0; i<3; i++) {
465 for (k=0; k<nd; k++) {
466 double Ptot =
sqrt(alp[k*7+0][0]*alp[k*7+0][0]+
467 alp[k*7+1][0]*alp[k*7+1][0]+
468 alp[k*7+2][0]*alp[k*7+2][0]);
469 for (i=0; i<3; i++) {
471 fmD[
fNc+0][k*7+
i] = alp[k*7+
i][0]/Ptot;
void AddMomConstraint(TVector3 v)
void AddTotMomConstraint(double momentum)
void AddMassConstraint(double mass)
ClassImp(RhoKinFitter) TBuffer &operator>>(TBuffer &buf
void FindAndAddFinalStateDaughters(RhoCandidate *cand)
friend F32vec4 sqrt(const F32vec4 &a)
static T Sqrt(const T &x)
RhoKinFitter(RhoCandidate *b)
void Add4MomConstraint(TLorentzVector lv)
void AddTotEConstraint(double energy)
void SetFourMomentumByDaughters(RhoCandidate *composite)
std::vector< RhoCandidate * > fDaughters
RhoCandidate * fHeadOfTree
TMatrixT< double > TMatrixD
void ReadTotMomKinMatrix()