Bug fix. Removed delete statement
[u/mrichter/AliRoot.git] / STEER / AliAlignObj.h
index 61dc08d..adb147b 100644 (file)
 //      name for alignable volumes, in form of a TGeo path otherwise,    *
 //      and as a unique integer identifier                               *
 //************************************************************************
-#include "TObject.h"
-#include "TString.h"
-#include "TGeoMatrix.h"
+#include <TObject.h>
+#include <TString.h>
 #include <Rtypes.h>
-#include <TMath.h>
 #include "AliGeomManager.h"
+#include <TMatrixD.h>
+#include <TMatrixDSym.h>
 
 
 class AliTrackPoint;
 class AliTrackPointArray;
+class TGeoMatrix;
 
 class AliAlignObj : public TObject {
 
@@ -54,6 +55,9 @@ class AliAlignObj : public TObject {
   void  SetVolUID(UShort_t voluid) {fVolUID=voluid;}
   void  SetVolUID(AliGeomManager::ELayerID layerId, Int_t modId);
   void  SetCorrMatrix(Double_t *cov);
+  void  SetCorrMatrix(TMatrixDSym& mcov);
+  Bool_t SetFromLocalCov(Double_t *lCov);
+  Bool_t SetFromLocalCov(TMatrixDSym& lCov);
 
   //Getters
   const char  *GetSymName()    const {return fVolPath.Data();}
@@ -68,6 +72,10 @@ class AliAlignObj : public TObject {
   virtual void GetMatrix(TGeoHMatrix& m) const=0;
   virtual Bool_t GetLocalMatrix(TGeoHMatrix& m) const;
   void  GetCovMatrix(Double_t *cov) const;
+  void  GetCovMatrix(TMatrixDSym& mcov) const;
+  Bool_t  GetJacobian(TMatrixD& mJ) const;
+  Bool_t  GetLocalCovMatrix(Double_t *cov) const;
+  Bool_t  GetLocalCovMatrix(TMatrixDSym& lCov) const;
 
   Bool_t   IsSortable() const {return kTRUE;}
   Int_t         GetLevel() const;
@@ -75,7 +83,7 @@ class AliAlignObj : public TObject {
 
   virtual AliAlignObj& Inverse() const=0;
 
-  void  Transform(AliTrackPoint &p) const;
+  void  Transform(AliTrackPoint &p, Bool_t copycov=kFALSE) const;
   void  Transform(AliTrackPointArray &array) const;
 
   void  Print(Option_t *) const;
@@ -95,7 +103,7 @@ class AliAlignObj : public TObject {
   static const char* SymName(UShort_t voluid) {return AliGeomManager::SymName(voluid);}
   static const char* SymName(AliGeomManager::ELayerID layerId, Int_t modId) {return AliGeomManager::SymName(layerId, modId);}
 
-  Bool_t ApplyToGeometry();
+  Bool_t ApplyToGeometry(Bool_t ovlpcheck=kFALSE);
   static Bool_t   GetFromGeometry(const char *symname, AliAlignObj &alobj) {return AliGeomManager::GetFromGeometry(symname, alobj);}
 
   static AliAlignObj* GetAlignObj(UShort_t voluid) {return AliGeomManager::GetAlignObj(voluid);}