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