]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtracker.h
Class to generate combinations for merging
[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 #include <TNamed.h>
8 #include <TH1.h>   
9
10 class TFile;
11 class TParticle;
12 class TParticlePDG;
13 class TObjArray;
14
15 class AliTRDgeometry;
16 class AliTRDtrack;
17 class AliTRDmcTrack;
18 class AliTRDtrackingSector;
19
20 class AliTRDtracker : public TNamed { 
21
22  public:
23
24   AliTRDtracker();
25   AliTRDtracker(const Text_t* name, const Text_t* title);
26   ~AliTRDtracker(); 
27
28   virtual void  Clusters2Tracks(TH1F *hs, TH1F *hd); 
29   Double_t      ExpectedSigmaY2(Double_t r, Double_t tgl, Double_t pt);
30   Double_t      ExpectedSigmaZ2(Double_t r, Double_t tgl);
31   Int_t         FindProlongation(AliTRDtrack& t, AliTRDtrackingSector *sec,
32                               Int_t s, Int_t rf=0, Int_t matched_index = -1,
33                                  TH1F *hs=0, TH1F *hd=0);
34   void          GetEvent(const Char_t *hitfile, const Char_t *clusterfile);
35   void          SetUpSectors(AliTRDtrackingSector *sec);
36   virtual void  MakeSeeds(Int_t inner, Int_t outer, AliTRDtrackingSector *sec,
37                           Int_t turn, TH1F *hs, TH1F *hd);
38   virtual void  FindTracks(AliTRDtrackingSector *sec, TH1F *hs, TH1F *hd);
39   virtual void  UseClusters(AliTRDtrack t);
40   virtual Int_t GetTrackLabel(AliTRDtrack t);
41   Int_t         WriteTracks(const Char_t *filename); 
42   void          ReadClusters(TObjArray *array, const Char_t *filename);
43
44   Float_t  GetSeedGap()       const {return fSeedGap;}   
45   Float_t  GetSeedStep()      const {return fSeedStep;}
46   Float_t  GetSeedDepth()     const {return fSeedDepth;}
47   Float_t  GetSkipDepth()     const {return fSkipDepth;}
48   Double_t GetMaxChi2()       const {return fMaxChi2;}
49   Float_t  GetMaxSeedC()      const {return fMaxSeedC;}
50   Float_t  GetMaxSeedTan()    const {return fMaxSeedTan;}
51   Double_t GetSeedErrorSY()   const {return fSeedErrorSY;}
52   Double_t GetSeedErrorSY3()  const {return fSeedErrorSY3;}
53   Double_t GetSeedErrorSZ()   const {return fSeedErrorSZ;}
54   Float_t  GetLabelFraction() const {return fLabelFraction;}
55   Float_t  GetWideRoad()      const {return fWideRoad;}
56
57   Float_t  GetMinClustersInTrack() const {return fMinClustersInTrack;}
58   Float_t  GetMinClustersInSeed()  const {return fMinClustersInSeed;} 
59   Float_t  GetMaxSeedDeltaZ()      const {return fMaxSeedDeltaZ;}
60   Float_t  GetMaxSeedVertexZ()     const {return fMaxSeedVertexZ;}
61
62   void     SetSY2corr(Float_t w)    {fSY2corr = w;}
63
64  protected:
65
66   Int_t            fEvent;            // Event number
67
68   AliTRDgeometry   *fGeom;            // Pointer to TRD geometry
69
70   Int_t            fNclusters;        // Number of clusters in TRD 
71   TObjArray        *fClusters;        // List of clusters for all sectors
72
73   Int_t            fNseeds;           // Number of track seeds  
74   TObjArray        *fSeeds;           // List of track seeds
75    
76   Int_t            fNtracks;          // Number of reconstructed tracks 
77   TObjArray        *fTracks;          // List of reconstructed tracks   
78
79   Float_t          fSY2corr;          // Correction coefficient for
80                                       // cluster SigmaY2 
81
82   static const Float_t  fSeedGap;   // Distance between inner and outer
83                                     // time bin in seeding 
84                                     // (fraction of all time bins) 
85   
86   static const Float_t  fSeedStep;    // Step in iterations
87   static const Float_t  fSeedDepth;   // Fraction of TRD allocated for seeding
88   static const Float_t  fSkipDepth;   // Fraction of TRD which can be skipped
89                                       // in track prolongation             
90   static const Double_t fMaxChi2;     // max increment in track chi2 
91         
92   static const Float_t  fMinClustersInTrack; // min fraction of clusters in track
93   static const Float_t  fMinClustersInSeed;  // min fraction of clusters in seed
94   static const Float_t  fMaxSeedDeltaZ;   // max dZ in MakeSeeds
95   static const Float_t  fMaxSeedDeltaZ12; // max abs(z1-z2) in MakeSeeds
96   static const Float_t  fMaxSeedC;       // max initial curvature in MakeSeeds
97   static const Float_t  fMaxSeedTan;     // max initial Tangens(lambda) in MakeSeeds
98   static const Float_t  fMaxSeedVertexZ; // max vertex Z in MakeSeeds
99   static const Double_t fSeedErrorSY;    // sy parameter in MakeSeeds
100   static const Double_t fSeedErrorSY3;   // sy3 parameter in MakeSeeds
101   static const Double_t fSeedErrorSZ;    // sz parameter in MakeSeeds
102   static const Float_t  fLabelFraction;  // min fraction of clusters in GetTrackLabel
103   static const Float_t  fWideRoad;       // max road width in FindProlongation
104  
105   ClassDef(AliTRDtracker,1)           // manager base class  
106
107 };
108
109 #endif