]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackFitterRieman.h
PID implementation fixed. Calculation of mass, energy, and rapidity introduced.
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.h
index 207756e3a75fdb55aceb9f41ef9cb06fd1f3779b..9f4ac96ed65a017023b363c756af66da4748dd0a 100644 (file)
@@ -1,9 +1,23 @@
 #ifndef ALITRACKFITTERRIEMAN_H
 #define ALITRACKFITTERRIEMAN_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
 
-#include "TMatrixDSym.h"
+/* $Id$ */
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Class to the track points on the Riemann sphere. Inputs are
+// the set of id's (volids) of the volumes in which residuals are
+// calculated to construct a chi2 function to be minimized during 
+// the alignment procedures
+//
+//////////////////////////////////////////////////////////////////////////////
 
 #include "AliTrackFitter.h"
+#include "AliRieman.h"  
+class TTreeSRedirector;
+class AliRieman;
 
 class AliTrackFitterRieman : public AliTrackFitter{
  public:
@@ -13,35 +27,40 @@ class AliTrackFitterRieman : public AliTrackFitter{
   AliTrackFitterRieman &operator =(const AliTrackFitterRieman& rieman);
   virtual ~AliTrackFitterRieman();
 
-  Bool_t Fit(UShort_t volId,UShort_t volIdFit = 0,
+  Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0,
             AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
             AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer);
   Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const;
-
+  void SetMaxDelta(Float_t maxDelta) { fMaxDelta = maxDelta;}
+  Float_t GetMaxDelta() const { return fMaxDelta;}
+  void  SetCorrection(Bool_t correction){ fBCorrection=correction;}
+  Bool_t  GetCorrection() const {return fBCorrection ;}
   void Reset();
   void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz);
   void Update();
 
-  Double_t GetC(); 
-  Double_t GetYat(Double_t x);
-  Double_t GetZat(Double_t x);
-  Double_t GetDYat(Double_t x);
-  Double_t GetDZat(Double_t x);
-  Bool_t   GetXYZat(Double_t r, Float_t *xyz);
+  Double_t GetC() const              {return fRieman->GetC();}
+  Double_t GetYat(Double_t x) const;
+  Double_t GetZat(Double_t x) const;
+  Double_t GetDYat(Double_t x) const {return fRieman->GetDYat(x);}
+  Double_t GetDZat(Double_t x) const {return fRieman->GetDZat(x);}  
+  Double_t GetErrY2at(Double_t x) const;
+  Double_t GetErrZ2at(Double_t x) const;
 
+  Bool_t   GetXYZat(Double_t r, Float_t *xyz) const {return fRieman->GetXYZat(r, fAlpha,xyz);}
+  AliRieman *GetRieman() const {return fRieman;}
  protected:
-
+  Bool_t        fBCorrection; //add  correction for non-helicity
   Double_t      fAlpha;     //angle to transform to the fitting coordinate system
-  Double_t      fSumXY[9];  //sums for XY part
-  Double_t      fSumYY;     //sum for YY part
-  Double_t      fSumXZ[9];  //sums for XZ part
-  Double_t      fSumZZ;     //sum for ZZ part
   Int_t         fNUsed;     //actual number of space-points used in the fit
-  Bool_t        fConv;      // indicates convergation
-
+  Bool_t        fConv;      //indicates convergation
+  Float_t       fMaxDelta;  // maximal allowed delta in PCA exported for PCA minimization
+  AliRieman    *fRieman;    // rieman fitter
+  Double_t      fCorrY[4];  // correction polynom coef
+  Double_t      fCorrZ[4];  // correction polynom coef
  private:
-
-  ClassDef(AliTrackFitterRieman,1)  // Fast fit of helices on ITS RecPoints
+  TTreeSRedirector *fDebugStream;   //!debug streamer
+  ClassDef(AliTrackFitterRieman,2)  // Fast fit of helices on ITS RecPoints
 
 };