]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliStrLine.h
Link against libXMLParser.
[u/mrichter/AliRoot.git] / STEER / AliStrLine.h
index 16c22fd88308569d0e3ef32ebac9bdd28cce402c..7af058d6cc902c8910e1226545f0531a9010ff07 100644 (file)
@@ -16,30 +16,42 @@ class AliStrLine : public TObject {
  public:
     AliStrLine();        // default constructor
     AliStrLine(Double_t *point, Double_t *cd, Bool_t twopoints=kFALSE);  // standard constructor
+    AliStrLine(Float_t *pointf, Float_t *cdf, Bool_t twopoints=kFALSE); 
+    AliStrLine(Double_t *point, Double_t *sig2point, Double_t *cd, Bool_t twopoints=kFALSE);
+    AliStrLine(Float_t *pointf, Float_t *sig2point, Float_t *cdf, Bool_t twopoints=kFALSE); 
+    AliStrLine(Double_t *point, Double_t *sig2point, Double_t *wmat, Double_t *cd, Bool_t twopoints=kFALSE);
+    AliStrLine(Float_t *pointf, Float_t *sig2point, Float_t *wmat, Float_t *cdf, Bool_t twopoints=kFALSE); 
     virtual ~AliStrLine(); // destructor
     void PrintStatus() const;
     void SetP0(Double_t *point) {for(Int_t i=0;i<3;i++)fP0[i]=point[i];}
+    void SetSigma2P0(Double_t *sigsq) {for(Int_t i=0;i<3;i++)fSigma2P0[i]=sigsq[i];}
+    void SetWMatrix(Double_t *wmat) {for(Int_t i=0;i<9;i++)fWMatrix[i]=wmat[i];}
     void SetCd(Double_t *cd) {for(Int_t i=0;i<3;i++)fCd[i]=cd[i];}
     void SetDebug(Int_t dbfl = 0){fDebug = dbfl; }  
     void GetP0(Double_t *point) const {for(Int_t i=0;i<3;i++)point[i]=fP0[i];}
+    void GetSigma2P0(Double_t *sigsq) const {for(Int_t i=0;i<3;i++)sigsq[i]=fSigma2P0[i];}
+    void GetWMatrix(Double_t *wmat) const {for(Int_t i=0;i<9;i++)wmat[i]=fWMatrix[i];}
     void GetCd(Double_t *cd) const {for(Int_t i=0;i<3;i++)cd[i]=fCd[i];}
     void GetCurrentPoint(Double_t *point) const;
     Int_t IsParallelTo(AliStrLine *line) const;
     Int_t Crossrphi(AliStrLine *line);
     Int_t CrossPoints(AliStrLine *line, Double_t *point1, Double_t *point2);
     Int_t Cross(AliStrLine *line, Double_t *point);
-    Double_t GetDCA(AliStrLine *line);
+    Double_t GetDCA(AliStrLine *line) const;
+    Double_t GetDistFromPoint(Double_t *point) const;
  protected:
     void InitDirection(Double_t *point, Double_t *cd);
     void InitTwoPoints(Double_t *pA, Double_t *pB);
     Double_t fP0[3];           // given point
+    Double_t fSigma2P0[3];           // errors on coordinates of given point
+    Double_t fWMatrix[9];           // weighting matrix
     Double_t fCd[3];           // direction cosines
     Double_t fTpar;            //! parameter 
     Int_t   fDebug;           //! debug flag - verbose printing if >0
  private:
     void SetPar(Double_t par){fTpar = par;}
 
-  ClassDef(AliStrLine,1);
+  ClassDef(AliStrLine,3);
 };
 
 #endif