| 600 |
// |
// |
| 601 |
// Int_t mindgf = 48; |
// Int_t mindgf = 48; |
| 602 |
// Int_t dgf = 143; |
// Int_t dgf = 143; |
| 603 |
Int_t mindgf = 0; |
// Int_t mindgf = 0; //tutto |
| 604 |
Int_t dgf = 191; |
// Int_t dgf = 191; //tutto |
| 605 |
// Int_t mindgf = 85; |
// Int_t mindgf = 94; |
| 606 |
// Int_t dgf = 115; |
// Int_t dgf = 96; |
| 607 |
|
Int_t mindgf = 84; |
| 608 |
|
Int_t dgf = 106; |
| 609 |
Int_t cs = 0; |
Int_t cs = 0; |
| 610 |
Int_t cd = 0; |
Int_t cd = 0; |
| 611 |
Int_t mstrip = 0; |
Int_t mstrip = 0; |
| 718 |
// (*fmatrix[rbi])[mi][mj] += (mipv[nplane1][mstrip1] - cf->GetFullAverageAt(nplane1,mstrip1,erig)) * (mipv[nplane2][mstrip2] - cf->GetFullAverageAt(nplane2,mstrip2,erig)); |
// (*fmatrix[rbi])[mi][mj] += (mipv[nplane1][mstrip1] - cf->GetFullAverageAt(nplane1,mstrip1,erig)) * (mipv[nplane2][mstrip2] - cf->GetFullAverageAt(nplane2,mstrip2,erig)); |
| 719 |
// (*fnmat[rbi])[mi][mj] += 1.; |
// (*fnmat[rbi])[mi][mj] += 1.; |
| 720 |
(*fmatrix)[mi][mj] += (mip1 * mip2); // giusto |
(*fmatrix)[mi][mj] += (mip1 * mip2); // giusto |
| 721 |
|
// (*fmatrix)[mi][mj] += (mip1 * mip2) * 1000000.; |
| 722 |
toto++; |
toto++; |
| 723 |
// (*fmatrix)[mi][mj] += 1.; |
// (*fmatrix)[mi][mj] += 1.; |
| 724 |
// cf->GetFullAverageAt(nplane1,mstrip1,erig,rbi); |
// cf->GetFullAverageAt(nplane1,mstrip1,erig,rbi); |
| 825 |
// }; |
// }; |
| 826 |
// }; |
// }; |
| 827 |
// |
// |
| 828 |
|
// TMatrixF *mymat = new TMatrixF(129,129); |
| 829 |
|
TMatrixF *mymat = new TMatrixF(989,989); |
| 830 |
Int_t i1 = -1; |
Int_t i1 = -1; |
| 831 |
Int_t j1 = -1; |
Int_t j1 = -1; |
| 832 |
|
int mi,mj; |
| 833 |
Int_t nonzero = 0; |
Int_t nonzero = 0; |
| 834 |
Int_t nonzero1 = 0; |
Int_t nonzero1 = 0; |
| 835 |
for (Int_t ii=0; ii<43; ii++){ |
for (Int_t ii=0; ii<43; ii++){ |
| 849 |
// if ( finmat[ii][j] > 0 ){ |
// if ( finmat[ii][j] > 0 ){ |
| 850 |
// (*fmatrix)[i1][j1] /= finmat[ii][j]; |
// (*fmatrix)[i1][j1] /= finmat[ii][j]; |
| 851 |
if ( (*fnmat[i])[ii][j] == 0. || (*fmatrix)[i1][j1] == 0. || !((*fmatrix)[i1][j1] == (*fmatrix)[i1][j1]) ){ |
if ( (*fnmat[i])[ii][j] == 0. || (*fmatrix)[i1][j1] == 0. || !((*fmatrix)[i1][j1] == (*fmatrix)[i1][j1]) ){ |
| 852 |
(*fmatrix)[i1][j1] = 0.; |
(*fmatrix)[i1][j1] = 1.; |
| 853 |
} else { |
} else { |
| 854 |
(*fmatrix)[i1][j1] /= (*fnmat[i])[ii][j]; |
(*fmatrix)[i1][j1] /= (*fnmat[i])[ii][j]; |
| 855 |
nonzero++; |
nonzero++; |
| 856 |
if ( i1 == 0 ) nonzero1++; |
if ( i1 == 0 ) nonzero1++; |
| 857 |
}; |
}; |
| 858 |
|
// if ( j>=94 && j <=96 && jj >=94 && jj<=96 ){ |
| 859 |
|
// mi = (ii*3) + j -94; |
| 860 |
|
// mj = (iij*3) + jj -94; |
| 861 |
|
// (*mymat)[mi][mj] = (*fmatrix)[i1][j1]; |
| 862 |
|
// }; |
| 863 |
|
|
| 864 |
|
|
| 865 |
|
if ( j>=84 && j <=106 && jj >=84 && jj<=106 ){ |
| 866 |
|
mi = (ii*3) + j -84; |
| 867 |
|
mj = (iij*3) + jj -84; |
| 868 |
|
(*mymat)[mi][mj] = (*fmatrix)[i1][j1]; |
| 869 |
|
}; |
| 870 |
|
|
| 871 |
}; |
}; |
| 872 |
}; |
}; |
| 873 |
}; |
}; |
| 919 |
printf(" Bin %i determinant is %f \n",i,det); |
printf(" Bin %i determinant is %f \n",i,det); |
| 920 |
cf->WriteInvertedFullMatrix((TMatrixF)invmatrix,i); |
cf->WriteInvertedFullMatrix((TMatrixF)invmatrix,i); |
| 921 |
}; |
}; |
| 922 |
|
|
| 923 |
|
if ( mymat->Determinant() == 0. ){ |
| 924 |
|
printf(" ERROR: the matrix at bin %i is singular, determinant = 0., it cannot be inverted! \n",i); |
| 925 |
|
} else { |
| 926 |
|
Double_t det = 0.; |
| 927 |
|
TMatrixF invmatrix = (TMatrixF)(mymat->Invert(&det)); |
| 928 |
|
printf(" Bin %i determinant is %f \n",i,det); |
| 929 |
|
cf->WriteInvertedFullMatrix((TMatrixF)invmatrix,i); |
| 930 |
|
}; |
| 931 |
|
cf->WriteFullMatrix(mymat, 99); |
| 932 |
|
|
| 933 |
|
|
| 934 |
// |
// |
| 935 |
cf->UnLoadFullMatrix(i); |
cf->UnLoadFullMatrix(i); |
| 936 |
// cf->UnLoadFullNMatrix(i); |
// cf->UnLoadFullNMatrix(i); |