]>
Commit | Line | Data |
---|---|---|
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 | ||
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 |