]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCclusterMI.h
421f44ce42e43f995f9ed6064dcca5c42fbec2b8
[u/mrichter/AliRoot.git] / TPC / AliTPCclusterMI.h
1 #ifndef ALITPCCLUSTERMI_H
2 #define ALITPCCLUSTERMI_H
3
4 //-------------------------------------------------------
5 //                    TPC Cluster Class
6 //   Parallel tracking
7 //   Origin: Marian Ivanov
8 //-------------------------------------------------------
9
10 /* $Id$ */
11
12
13 #include "AliCluster.h"
14 #include "TMath.h"
15 class AliTPCclusterInfo;
16 //_____________________________________________________________________________
17 class AliTPCclusterMI : public AliCluster {
18 public:
19   AliTPCclusterMI(Bool_t withInfo=kTRUE);
20   AliTPCclusterMI(const AliTPCclusterMI & cluster);
21   AliTPCclusterMI &operator = (const AliTPCclusterMI & cluster); //assignment operator
22   AliTPCclusterMI(Int_t *lab, Float_t *hit);
23   virtual ~AliTPCclusterMI();
24   virtual Bool_t IsSortable() const; 
25   virtual Int_t Compare(const TObject* obj) const;
26   inline  void Use(Int_t inc=10);
27   virtual Float_t GetX() const { return fX;}
28   virtual void  SetX(Float_t x) { fX = x;}
29   virtual Int_t GetDetector() const {return fDetector;}
30   virtual Int_t GetRow() const {return fRow;}
31   virtual void SetDetector(Int_t detector){fDetector = (UChar_t)(detector%256);}
32   virtual void SetRow(Int_t row){fRow = (UChar_t)(row%256);}  
33   virtual void SetTimeBin(Float_t timeBin){ fTimeBin= timeBin;}
34   virtual void SetPad(Float_t pad){ fPad = pad;}
35   //
36   void SetQ(Float_t q) {fQ=(UShort_t)q;}
37   void SetType(Char_t type) {fType=type;}
38   void SetMax(UShort_t max) {fMax=max;}
39   Int_t IsUsed(Int_t th=10) const {return (fUsed>=th) ? 1 : 0;}
40   Float_t GetQ() const {return TMath::Abs(fQ);}
41   Float_t GetMax() const {return fMax;} 
42   Char_t  GetType()const {return fType;}
43   Float_t GetTimeBin() const { return fTimeBin;}
44   Float_t GetPad() const { return fPad;}
45   AliTPCclusterInfo * GetInfo() const { return fInfo;}
46   void SetInfo(AliTPCclusterInfo * info) { fInfo = info;}
47
48 private:
49   Float_t   fX;        //X position of cluster
50   Short_t   fQ ;       //Q of cluster (in ADC counts)  
51   Char_t    fType;     //type of the cluster 0 means golden 
52   Short_t   fMax;      //maximal amplitude in cluster
53   Char_t    fUsed;     //counter of usage  
54   UChar_t   fDetector; //detector  number
55   UChar_t   fRow;      //row number number
56   Float_t   fTimeBin;  //time bin coordinate
57   Float_t   fPad;  //pad coordinate
58   AliTPCclusterInfo * fInfo;  // pointer to the cluster debug info
59   ClassDef(AliTPCclusterMI,3)  // Time Projection Chamber clusters
60 };
61
62 void AliTPCclusterMI::Use(Int_t inc) 
63
64   if (inc>0)  fUsed+=inc; 
65   else 
66     fUsed=0;
67 }
68
69
70
71 #endif
72
73