fAlarms is not deleted by AliPHOSQAVirtualChekable
[u/mrichter/AliRoot.git] / TRD / AliTRDtracker.h
CommitLineData
46d29e70 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
0a29d0f1 7////////////////////////////////////////////////////////////////////////////////
8// //
9// The TRD tracker //
10// //
11////////////////////////////////////////////////////////////////////////////////
12
46d29e70 13#include <TNamed.h>
a819a5f7 14#include <TH1.h>
46d29e70 15
16class TFile;
bbf92647 17class TParticle;
18class TParticlePDG;
46d29e70 19class TObjArray;
20
21class AliTRDgeometry;
46d29e70 22class AliTRDtrack;
bbf92647 23class AliTRDmcTrack;
a819a5f7 24class AliTRDtrackingSector;
46d29e70 25
26class AliTRDtracker : public TNamed {
27
28 public:
29
30 AliTRDtracker();
31 AliTRDtracker(const Text_t* name, const Text_t* title);
0a29d0f1 32 virtual ~AliTRDtracker();
46d29e70 33
a819a5f7 34 virtual void Clusters2Tracks(TH1F *hs, TH1F *hd);
0a29d0f1 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;
bbf92647 37 Int_t FindProlongation(AliTRDtrack& t, AliTRDtrackingSector *sec,
a819a5f7 38 Int_t s, Int_t rf=0, Int_t matched_index = -1,
39 TH1F *hs=0, TH1F *hd=0);
bbf92647 40 void GetEvent(const Char_t *hitfile, const Char_t *clusterfile);
41 void SetUpSectors(AliTRDtrackingSector *sec);
a819a5f7 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);
bbf92647 45 virtual void UseClusters(AliTRDtrack t);
46 virtual Int_t GetTrackLabel(AliTRDtrack t);
47 Int_t WriteTracks(const Char_t *filename);
a819a5f7 48 void ReadClusters(TObjArray *array, const Char_t *filename);
49
0a29d0f1 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;}
a819a5f7 67
68 void SetSY2corr(Float_t w) {fSY2corr = w;}
46d29e70 69
70 protected:
71
46d29e70 72 Int_t fEvent; // Event number
73
bbf92647 74 AliTRDgeometry *fGeom; // Pointer to TRD geometry
75
46d29e70 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
a819a5f7 85 Float_t fSY2corr; // Correction coefficient for
86 // cluster SigmaY2
87
0a29d0f1 88 static const Float_t fgkSeedGap; // Distance between inner and outer
89 // time bin in seeding
90 // (fraction of all time bins)
bbf92647 91
0a29d0f1 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
bbf92647 95 // in track prolongation
0a29d0f1 96 static const Double_t fgkMaxChi2; // max increment in track chi2
bbf92647 97
0a29d0f1 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
bbf92647 110
46d29e70 111 ClassDef(AliTRDtracker,1) // manager base class
112
113};
114
115#endif