]>
Commit | Line | Data |
---|---|---|
75bd7f81 | 1 | #ifndef ALITRDSEED_H |
0906e73e | 2 | #define ALITRDSEED_H |
75bd7f81 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
ad670fba | 6 | /* $Id$ */ |
7 | ||
8 | //////////////////////////////////////////////////////////////////////////// | |
9 | // // | |
10 | // The TRD track seed // | |
11 | // // | |
12 | //////////////////////////////////////////////////////////////////////////// | |
13 | ||
75bd7f81 | 14 | #include "TObject.h" |
15 | ||
16 | class AliTRDcluster; | |
17 | ||
18 | class AliTRDseed : public TObject { | |
19 | ||
75bd7f81 | 20 | public: |
e4f2f73d | 21 | enum { knTimebins = 35 }; |
75bd7f81 | 22 | |
23 | AliTRDseed(); | |
ad670fba | 24 | AliTRDseed(const AliTRDseed &s); |
0906e73e | 25 | ~AliTRDseed() {}; |
75bd7f81 | 26 | |
79289e74 | 27 | AliTRDseed &operator=(const AliTRDseed &s) { *(new(this) AliTRDseed(s)); |
28 | return *this; } | |
29 | ||
ad670fba | 30 | static Float_t FitRiemanTilt(AliTRDseed *seed, Bool_t error); |
31 | void UseClusters(); | |
32 | void Update(); | |
33 | void CookLabels(); | |
34 | void UpdateUsed(); | |
35 | void Reset(); | |
ca1e1e5b | 36 | |
e4f2f73d | 37 | Bool_t IsOK() const { return fN2 > 4; } |
ca1e1e5b | 38 | Bool_t IsUsable(Int_t i) const { return fUsable[i]; } |
39 | ||
40 | Float_t GetTilt() const { return fTilt; } | |
41 | Float_t GetPadLength() const { return fPadLength; } | |
42 | Float_t GetX0() const { return fX0; } | |
bcb6fb78 | 43 | Float_t GetY0() const { return fYfit[0]; } |
44 | Float_t GetZ0() const { return fZfit[0]; } | |
ca1e1e5b | 45 | Float_t GetX(Int_t i) const { return fX[i]; } |
46 | Float_t GetY(Int_t i) const { return fY[i]; } | |
47 | Float_t GetZ(Int_t i) const { return fZ[i]; } | |
48 | Int_t GetIndexes(Int_t i) const { return fIndexes[i]; } | |
49 | AliTRDcluster *GetClusters(Int_t i) const { return fClusters[i]; } | |
50 | Float_t GetYref(Int_t i) const { return fYref[i]; } | |
51 | Float_t GetZref(Int_t i) const { return fZref[i]; } | |
52 | Float_t GetYfit(Int_t i) const { return fYfit[i]; } | |
53 | Float_t GetYfitR(Int_t i) const { return fYfitR[i]; } | |
54 | Float_t GetZfit(Int_t i) const { return fZfit[i]; } | |
55 | Float_t GetZfitR(Int_t i) const { return fZfitR[i]; } | |
56 | Float_t GetSigmaY() const { return fSigmaY; } | |
57 | Float_t GetSigmaY2() const { return fSigmaY2; } | |
58 | Float_t GetMeanz() const { return fMeanz; } | |
59 | Float_t GetZProb() const { return fZProb; } | |
60 | Int_t GetLabels(Int_t i) const { return fLabels[i]; } | |
61 | Int_t GetN2() const { return fN2; } | |
62 | Int_t GetNUsed() const { return fNUsed; } | |
63 | Int_t GetFreq() const { return fFreq; } | |
64 | Float_t GetC() const { return fC; } | |
65 | Float_t GetCC() const { return fCC; } | |
66 | Float_t GetChi2() const { return fChi2; } | |
67 | Float_t GetChi2Z() const { return fChi2Z; } | |
68 | ||
0906e73e | 69 | |
ca1e1e5b | 70 | void SetTilt(Float_t tilt) { fTilt = tilt; } |
71 | void SetPadLength(Float_t len) { fPadLength = len; } | |
72 | void SetX0(Float_t x0) { fX0 = x0; } | |
73 | void SetX(Int_t i, Float_t x) { fX[i] = x; } | |
74 | void SetY(Int_t i, Float_t y) { fY[i] = y; } | |
75 | void SetZ(Int_t i, Float_t z) { fZ[i] = z; } | |
76 | void SetIndexes(Int_t i, Int_t idx) { fIndexes[i] = idx; } | |
77 | void SetClusters(Int_t i, AliTRDcluster *c) { fClusters[i] = c; } | |
78 | void SetUsable(Int_t i, Bool_t usable) { fUsable[i] = usable; } | |
79 | void SetYref(Int_t i, Float_t yref) { fYref[i] = yref; } | |
80 | void SetZref(Int_t i, Float_t zref) { fZref[i] = zref; } | |
81 | void SetYfit(Int_t i, Float_t yfit) { fYfit[i] = yfit; } | |
82 | void SetYfitR(Int_t i, Float_t yfitr) { fYfitR[i] = yfitr; } | |
83 | void SetZfit(Int_t i, Float_t zfit) { fZfit[i] = zfit; } | |
84 | void SetZfitR(Int_t i, Float_t zfitr) { fZfitR[i] = zfitr; } | |
85 | void SetSigmaY(Float_t sigmay) { fSigmaY = sigmay; } | |
86 | void SetSigmaY2(Float_t sigmay) { fSigmaY2 = sigmay; } | |
87 | void SetMeanz(Float_t meanz) { fMeanz = meanz; } | |
88 | void SetZProb(Float_t zprob) { fZProb = zprob; } | |
89 | void SetLabels(Int_t i, Int_t label) { fLabels[i] = label; } | |
90 | void SetN2(Int_t n2) { fN2 = n2; } | |
91 | void SetNUsed(Int_t nused) { fNUsed = nused; } | |
92 | void SetFreq(Int_t freq) { fFreq = freq; } | |
93 | void SetC(Float_t c) { fC = c; } | |
94 | void SetCC(Float_t cc) { fCC = cc; } | |
95 | void SetChi2(Float_t chi2) { fChi2 = chi2; } | |
96 | void SetChi2Z(Float_t chi2z) { fChi2Z = chi2z; } | |
75bd7f81 | 97 | |
e4f2f73d | 98 | protected: |
75bd7f81 | 99 | |
e4f2f73d | 100 | void Copy(TObject &o) const; |
101 | ||
0906e73e | 102 | Float_t fTilt; // Tilting angle |
103 | Float_t fPadLength; // Pad length | |
104 | Float_t fX0; // X0 position | |
105 | Float_t fX[knTimebins]; //! X position | |
106 | Float_t fY[knTimebins]; //! Y position | |
107 | Float_t fZ[knTimebins]; //! Z position | |
108 | Int_t fIndexes[knTimebins]; //! Indexes | |
109 | AliTRDcluster *fClusters[knTimebins]; // Clusters | |
110 | Bool_t fUsable[knTimebins]; // Indication - usable cluster | |
111 | Float_t fYref[2]; // Reference y | |
112 | Float_t fZref[2]; // Reference z | |
113 | Float_t fYfit[2]; // Y fit position +derivation | |
114 | Float_t fYfitR[2]; // Y fit position +derivation | |
115 | Float_t fZfit[2]; // Z fit position | |
116 | Float_t fZfitR[2]; // Z fit position | |
117 | Float_t fSigmaY; // "Robust" sigma in Y - constant fit | |
118 | Float_t fSigmaY2; // "Robust" sigma in Y - line fit | |
119 | Float_t fMeanz; // Mean vaue of z | |
120 | Float_t fZProb; // Max probbable z | |
121 | Int_t fLabels[2]; // Labels | |
122 | Int_t fN; // Number of associated clusters | |
123 | Int_t fN2; // Number of not crossed | |
124 | Int_t fNUsed; // Number of used clusters | |
125 | Int_t fFreq; // Frequency | |
126 | Int_t fNChange; // Change z counter | |
127 | Float_t fMPads; // Mean number of pads per cluster | |
128 | ||
129 | Float_t fC; // Curvature | |
130 | Float_t fCC; // Curvature with constrain | |
131 | Float_t fChi2; // Global chi2 | |
132 | Float_t fChi2Z; // Global chi2 | |
133 | ||
134 | ClassDef(AliTRDseed,1) // Seed for a local TRD track | |
75bd7f81 | 135 | |
136 | }; | |
ad670fba | 137 | |
75bd7f81 | 138 | #endif |