]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackFitterRieman.h
Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.h
index 0b9b578bafa2226a9df1c55e4a94a97898ed48a7..e7ab0efec33b364ef1503806b3cdd139f6ece77f 100644 (file)
@@ -28,30 +28,54 @@ class AliTrackFitterRieman : public AliTrackFitter{
   virtual ~AliTrackFitterRieman();
 
   Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0,
-            AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
-            AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer);
+            AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer,
+            AliGeomManager::ELayerID layerRangeMax = AliGeomManager::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();
+  Bool_t Update();
 
-  Double_t GetC() const
-  Double_t GetYat(Double_t x) const  {return fRieman->GetYat(x);}
-  Double_t GetZat(Double_t x) const  {return fRieman->GetZat(x);}
+  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 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:
 
+  // Methods needed in order to use the class
+  // inside the millipede alignment algorithm
+  Double_t   GetAlpha() const { return fAlpha; }
+  void SetParam(Int_t i, Double_t par);
+
+  void SetMinPointRadius(Double_t radius) { fMinPointRadius = radius; }
+  void SetMaxPointRadius(Double_t radius) { fMaxPointRadius = radius; }
+  Double_t GetMinPointRadius() const { return fMinPointRadius; }
+  Double_t GetMaxPointRadius() const { return fMaxPointRadius; }
+
+ protected:
+  Bool_t        fBCorrection; //add  correction for non-helicity
   Double_t      fAlpha;     //angle to transform to the fitting coordinate system
   Int_t         fNUsed;     //actual number of space-points used in the fit
   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
+  Double_t      fMinPointRadius; // minimal allowed radius for the point to be included in the fit
+  Double_t      fMaxPointRadius; // maximal allowed radius for the point to be included in the fit
  private:
+  Bool_t Begin(Int_t, Int_t) {Reset(); return kTRUE;}
+  Bool_t AddPoint(const AliTrackPoint *) {return kTRUE;}
   TTreeSRedirector *fDebugStream;   //!debug streamer
-  ClassDef(AliTrackFitterRieman,1)  // Fast fit of helices on ITS RecPoints
+  ClassDef(AliTrackFitterRieman,3)  // Fast fit of helices on ITS RecPoints
 
 };