]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliSymMatrix.cxx
bug fixed for alignment, removed alignment database access from AliPMDUtility class
[u/mrichter/AliRoot.git] / STEER / AliSymMatrix.cxx
index ef7cea57deed0797e5f643f32e9e48382a6df11d..2c000cce0830047b6fdd7bd1f3244953ea231d37 100644 (file)
@@ -108,12 +108,12 @@ AliSymMatrix&  AliSymMatrix::operator=(const AliSymMatrix& src)
       int nmainel = src.GetSizeBooked()*(src.GetSizeBooked()+1);
       memcpy(fElems,src.fElems,nmainel*sizeof(Double_t));
       if (src.GetSizeAdded()) { // transfer extra rows to main matrix
-       Double_t *pnt = fElems + nmainel*sizeof(Double_t);
+       Double_t *pnt = fElems + nmainel;//*sizeof(Double_t);
        int ncl = src.GetSizeBooked() + 1;
        for (int ir=0;ir<src.GetSizeAdded();ir++) {
          ncl += ir; 
          memcpy(pnt,src.fElemsAdd[ir],ncl*sizeof(Double_t));
-         pnt += ncl*sizeof(Double_t);
+         pnt += ncl;//*sizeof(Double_t);
        }
       }
       //
@@ -183,7 +183,7 @@ void AliSymMatrix::Print(Option_t* option) const
 }
 
 //___________________________________________________________
-void AliSymMatrix::MultiplyByVec(Double_t *vecIn,Double_t *vecOut) const
+void AliSymMatrix::MultiplyByVec(const Double_t *vecIn,Double_t *vecOut) const
 {
   // fill vecOut by matrix*vecIn
   // vector should be of the same size as the matrix
@@ -549,11 +549,11 @@ int AliSymMatrix::SolveSpmInv(double *vecB, Bool_t stabilize)
     }
   }
   //
-  for (Int_t i=0; i<nGlo; i++) for (Int_t j=0; j<nGlo; j++) {
-      double vl = TMath::Sqrt(colMax[i])*TMath::Sqrt(rowMax[j]); // Correct matrix V
-      if (i>=j) (*this)(i,j) *= vl;
-      else      (*fgBuffer)(j,i) *= vl;
-    }
+  if (stabilize) for (Int_t i=0; i<nGlo; i++) for (Int_t j=0; j<nGlo; j++) {
+       double vl = TMath::Sqrt(colMax[i])*TMath::Sqrt(rowMax[j]); // Correct matrix V
+       if (i>=j) (*this)(i,j) *= vl;
+       else      (*fgBuffer)(j,i) *= vl;
+      }
   //
   for (Int_t j=0; j<nGlo; j++) {
     rowMax[j] = 0.0;