Improving event printout
[u/mrichter/AliRoot.git] / STEER / AliTrackFitterRieman.h
CommitLineData
98937d93 1#ifndef ALITRACKFITTERRIEMAN_H
2#define ALITRACKFITTERRIEMAN_H
6b6cba33 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
98937d93 5
6b6cba33 6/* $Id$ */
7
8///////////////////////////////////////////////////////////////////////////////
9//
10// Class to the track points on the Riemann sphere. Inputs are
11// the set of id's (volids) of the volumes in which residuals are
12// calculated to construct a chi2 function to be minimized during
13// the alignment procedures
14//
15//////////////////////////////////////////////////////////////////////////////
98937d93 16
17#include "AliTrackFitter.h"
8849da04 18#include "AliRieman.h"
19class TTreeSRedirector;
20class AliRieman;
98937d93 21
22class AliTrackFitterRieman : public AliTrackFitter{
23 public:
24 AliTrackFitterRieman();
25 AliTrackFitterRieman(AliTrackPointArray *array, Bool_t owner = kTRUE);
26 AliTrackFitterRieman(const AliTrackFitterRieman &rieman);
27 AliTrackFitterRieman &operator =(const AliTrackFitterRieman& rieman);
8849da04 28 virtual ~AliTrackFitterRieman();
98937d93 29
cc345ce3 30 Bool_t Fit(const TArrayI *volIds,const TArrayI *volIdsFit = 0x0,
25be1e5c 31 AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer,
32 AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer);
98937d93 33 Bool_t GetPCA(const AliTrackPoint &p, AliTrackPoint &p2) const;
186e6ced 34 void SetMaxDelta(Float_t maxDelta) { fMaxDelta = maxDelta;}
35 Float_t GetMaxDelta() const { return fMaxDelta;}
dfce6628 36 void SetCorrection(Bool_t correction){ fBCorrection=correction;}
37 Bool_t GetCorrection() const {return fBCorrection ;}
98937d93 38 void Reset();
39 void AddPoint(Float_t x, Float_t y, Float_t z, Float_t sy, Float_t sz);
9c4c8863 40 Bool_t Update();
98937d93 41
1501484e 42 Double_t GetC() const {return fRieman->GetC();}
dfce6628 43 Double_t GetYat(Double_t x) const;
44 Double_t GetZat(Double_t x) const;
8849da04 45 Double_t GetDYat(Double_t x) const {return fRieman->GetDYat(x);}
dfce6628 46 Double_t GetDZat(Double_t x) const {return fRieman->GetDZat(x);}
47 Double_t GetErrY2at(Double_t x) const;
48 Double_t GetErrZ2at(Double_t x) const;
49
8849da04 50 Bool_t GetXYZat(Double_t r, Float_t *xyz) const {return fRieman->GetXYZat(r, fAlpha,xyz);}
51 AliRieman *GetRieman() const {return fRieman;}
d4af2e1d 52
53 // Methods needed in order to use the class
54 // inside the millipede alignment algorithm
55 Double_t GetAlpha() const { return fAlpha; }
56 void SetParam(Int_t i, Double_t par);
57
58 void SetMinPointRadius(Double_t radius) { fMinPointRadius = radius; }
59 void SetMaxPointRadius(Double_t radius) { fMaxPointRadius = radius; }
60 Double_t GetMinPointRadius() const { return fMinPointRadius; }
61 Double_t GetMaxPointRadius() const { return fMaxPointRadius; }
62
98937d93 63 protected:
dfce6628 64 Bool_t fBCorrection; //add correction for non-helicity
98937d93 65 Double_t fAlpha; //angle to transform to the fitting coordinate system
46ae650f 66 Int_t fNUsed; //actual number of space-points used in the fit
8849da04 67 Bool_t fConv; //indicates convergation
186e6ced 68 Float_t fMaxDelta; // maximal allowed delta in PCA exported for PCA minimization
8849da04 69 AliRieman *fRieman; // rieman fitter
dfce6628 70 Double_t fCorrY[4]; // correction polynom coef
71 Double_t fCorrZ[4]; // correction polynom coef
d4af2e1d 72 Double_t fMinPointRadius; // minimal allowed radius for the point to be included in the fit
73 Double_t fMaxPointRadius; // maximal allowed radius for the point to be included in the fit
98937d93 74 private:
57c8a1c2 75 Bool_t Begin(Int_t, Int_t) {Reset(); return kTRUE;}
9c4c8863 76 Bool_t AddPoint(const AliTrackPoint *) {return kTRUE;}
8849da04 77 TTreeSRedirector *fDebugStream; //!debug streamer
d4af2e1d 78 ClassDef(AliTrackFitterRieman,3) // Fast fit of helices on ITS RecPoints
98937d93 79
80};
81
82#endif