]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtracker.h
Forgot this one last time...
[u/mrichter/AliRoot.git] / TRD / AliTRDtracker.h
1 #ifndef ALITRDTRACKER_H
2 #define ALITRDTRACKER_H   
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */ 
6
7 ////////////////////////////////////////////////////////////////////////////////
8 //                                                                            //
9 //  The TRD tracker                                                           //
10 //                                                                            //
11 ////////////////////////////////////////////////////////////////////////////////
12
13 #include <TNamed.h>
14 #include <TH1.h>   
15
16 class TFile;
17 class TParticle;
18 class TParticlePDG;
19 class TObjArray;
20
21 class AliTRDgeometry;
22 class AliTRDtrack;
23 class AliTRDmcTrack;
24 class AliTRDtrackingSector;
25
26 class AliTRDtracker : public TNamed { 
27
28  public:
29
30   AliTRDtracker();
31   AliTRDtracker(const Text_t* name, const Text_t* title);
32   virtual ~AliTRDtracker(); 
33
34   virtual void  Clusters2Tracks(TH1F *hs, TH1F *hd); 
35   Double_t      ExpectedSigmaY2(Double_t r, Double_t tgl, Double_t pt) const;
36   Double_t      ExpectedSigmaZ2(Double_t r, Double_t tgl) const;
37   Int_t         FindProlongation(AliTRDtrack& t, AliTRDtrackingSector *sec,
38                               Int_t s, Int_t rf=0, Int_t matched_index = -1,
39                                  TH1F *hs=0, TH1F *hd=0);
40   void          GetEvent(const Char_t *hitfile, const Char_t *clusterfile);
41   void          SetUpSectors(AliTRDtrackingSector *sec);
42   virtual void  MakeSeeds(Int_t inner, Int_t outer, AliTRDtrackingSector *sec,
43                           Int_t turn, TH1F *hs, TH1F *hd);
44   virtual void  FindTracks(AliTRDtrackingSector *sec, TH1F *hs, TH1F *hd);
45   virtual void  UseClusters(AliTRDtrack t);
46   virtual Int_t GetTrackLabel(AliTRDtrack t);
47   Int_t         WriteTracks(const Char_t *filename); 
48   void          ReadClusters(TObjArray *array, const Char_t *filename);
49
50   Float_t  GetSeedGap()       const {return fgkSeedGap;}   
51   Float_t  GetSeedStep()      const {return fgkSeedStep;}
52   Float_t  GetSeedDepth()     const {return fgkSeedDepth;}
53   Float_t  GetSkipDepth()     const {return fgkSkipDepth;}
54   Double_t GetMaxChi2()       const {return fgkMaxChi2;}
55   Float_t  GetMaxSeedC()      const {return fgkMaxSeedC;}
56   Float_t  GetMaxSeedTan()    const {return fgkMaxSeedTan;}
57   Double_t GetSeedErrorSY()   const {return fgkSeedErrorSY;}
58   Double_t GetSeedErrorSY3()  const {return fgkSeedErrorSY3;}
59   Double_t GetSeedErrorSZ()   const {return fgkSeedErrorSZ;}
60   Float_t  GetLabelFraction() const {return fgkLabelFraction;}
61   Float_t  GetWideRoad()      const {return fgkWideRoad;}
62
63   Float_t  GetMinClustersInTrack() const {return fgkMinClustersInTrack;}
64   Float_t  GetMinClustersInSeed()  const {return fgkMinClustersInSeed;} 
65   Float_t  GetMaxSeedDeltaZ()      const {return fgkMaxSeedDeltaZ;}
66   Float_t  GetMaxSeedVertexZ()     const {return fgkMaxSeedVertexZ;}
67
68   void     SetSY2corr(Float_t w)    {fSY2corr = w;}
69
70  protected:
71
72   Int_t            fEvent;            // Event number
73
74   AliTRDgeometry   *fGeom;            // Pointer to TRD geometry
75
76   Int_t            fNclusters;        // Number of clusters in TRD 
77   TObjArray        *fClusters;        // List of clusters for all sectors
78
79   Int_t            fNseeds;           // Number of track seeds  
80   TObjArray        *fSeeds;           // List of track seeds
81    
82   Int_t            fNtracks;          // Number of reconstructed tracks 
83   TObjArray        *fTracks;          // List of reconstructed tracks   
84
85   Float_t          fSY2corr;          // Correction coefficient for
86                                       // cluster SigmaY2 
87
88   static const Float_t  fgkSeedGap;   // Distance between inner and outer
89                                       // time bin in seeding 
90                                       // (fraction of all time bins) 
91   
92   static const Float_t  fgkSeedStep;  // Step in iterations
93   static const Float_t  fgkSeedDepth; // Fraction of TRD allocated for seeding
94   static const Float_t  fgkSkipDepth; // Fraction of TRD which can be skipped
95                                       // in track prolongation             
96   static const Double_t fgkMaxChi2;   // max increment in track chi2 
97         
98   static const Float_t  fgkMinClustersInTrack; // min fraction of clusters in track
99   static const Float_t  fgkMinClustersInSeed;  // min fraction of clusters in seed
100   static const Float_t  fgkMaxSeedDeltaZ;      // max dZ in MakeSeeds
101   static const Float_t  fgkMaxSeedDeltaZ12;    // max abs(z1-z2) in MakeSeeds
102   static const Float_t  fgkMaxSeedC;           // max initial curvature in MakeSeeds
103   static const Float_t  fgkMaxSeedTan;         // max initial Tangens(lambda) in MakeSeeds
104   static const Float_t  fgkMaxSeedVertexZ;     // max vertex Z in MakeSeeds
105   static const Double_t fgkSeedErrorSY;        // sy parameter in MakeSeeds
106   static const Double_t fgkSeedErrorSY3;       // sy3 parameter in MakeSeeds
107   static const Double_t fgkSeedErrorSZ;        // sz parameter in MakeSeeds
108   static const Float_t  fgkLabelFraction;      // min fraction of clusters in GetTrackLabel
109   static const Float_t  fgkWideRoad;           // max road width in FindProlongation
110  
111   ClassDef(AliTRDtracker,1)           // manager base class  
112
113 };
114
115 #endif