]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRiemannFit.h
Correct dependence for the CINT dictionaries
[u/mrichter/AliRoot.git] / ITS / AliITSRiemannFit.h
CommitLineData
8db76038 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
13struct 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
26class 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