]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRiemannFit.h
Deletion of PID root files included
[u/mrichter/AliRoot.git] / ITS / AliITSRiemannFit.h
1 #ifndef ALIITSRIEMANNFIT_H
2 #define ALIITSRIEMANNFIT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "TLorentzVector.h"
9 #include "TTree.h"
10 #include "AliITS.h"
11 #include "TVector3.h"
12
13 struct Point_tl{
14   Int_t lay,lad,det,track;
15   Float_t fx,fy,fz,fr;               // global position of point 
16   Float_t fdE,fdx,fdy,fdz;               // Errors
17   TLorentzVector fOrigin,fMomentum;  // position and momentum of 
18                                      //  particle at its origin
19   Int_t fCode;                       // Geant code of particle
20   const Char_t *fName;
21   Float_t fPt;                       // Pt at the origin
22   Float_t phi,eta,vertexPhi;         // phi eta on layer and phi on vertex
23 };
24
25
26 class AliITSRiemannFit : public TObject{
27  public:
28   AliITSRiemannFit();
29   AliITSRiemannFit(Int_t size,Int_t ntracks);
30   ~AliITSRiemannFit();
31   
32   Int_t GetSize() const {return this->fSizeEvent;}
33   Int_t GetPrimaryTracks() const {return this->fPrimaryTracks;}
34   Int_t GetPoints() const {return this->fPoints;}
35   Int_t GetParticles() const {return this->fParticles;}
36   Int_t GetLayPoints(Int_t layer) const {return this->fPLay[layer-1];}
37   Point_tl **GetPointRecs() const {return this->fPointRecs;}
38   Float_t GetX(Int_t i) const {return this->fPointRecs[i]->fx;}
39   Float_t GetY(Int_t i) const {return this->fPointRecs[i]->fy;}
40   Float_t GetZ(Int_t i) const {return this->fPointRecs[i]->fz;}
41   Float_t GetdX(Int_t i) const {return this->fPointRecs[i]->fdx;}
42   Float_t GetdY(Int_t i) const {return this->fPointRecs[i]->fdy;}
43   Float_t GetdZ(Int_t i) const {return this->fPointRecs[i]->fdz;}
44   
45   void     InitPoints(Int_t evnt,Int_t ntracks,AliITS *ITS,TTree *TR,Int_t nparticles);
46   void     WritePoints(void);
47   void     ReadPoints(void);
48   static Int_t SolveCubic(Double_t a,Double_t b,Double_t c,Double_t&,Double_t&,Double_t&);
49   Int_t FitHelix(Int_t tracknumber,Int_t charge,Double_t Px,Double_t Py,Double_t Pz,
50                  Double_t& fd0,Double_t& fphi,Double_t& u0, Double_t& v0, Double_t& rho,
51                  Double_t& omega, Double_t& z0,
52                  Double_t& vpar,Double_t& chisql,Double_t& fCorrLin,Double_t& fFit,
53                  Int_t first=1,Int_t second=1,Int_t third=1,Int_t fourth=1,Int_t fifth=1,Int_t sixth=1);  
54  private:
55   Int_t fSizeEvent;      // size of array 
56   Int_t fPrimaryTracks;  // number of primary tracks in the event
57   Int_t fPoints;         // number of Reconstructed Points in the event
58   Int_t fParticles;      // number of particles in the event
59   Int_t fPLay[6];           // number of points in each layer
60   Point_tl **fPointRecs;
61   //
62   // test erase
63 /*    Point_tl **fspdi,**fspdo; // This are for the first two layers and vertex analysis */
64   
65   ClassDef(AliITSRiemannFit,1)  // Fast fit of helices on ITS RecPoints
66     };
67 #endif
68