1 #ifndef ALITPCCLUSTERMI_H
2 #define ALITPCCLUSTERMI_H
4 //-------------------------------------------------------
7 // Origin: Marian Ivanov
8 //-------------------------------------------------------
13 #include "AliCluster.h"
15 #include "AliTPCclusterInfo.h"
16 #include <AliTrackPointArray.h>
18 //_____________________________________________________________________________
19 class AliTPCclusterMI : public AliCluster {
20 enum Status{ kDisabled = 0x7F};
23 AliTPCclusterMI(const AliTPCclusterMI & cluster);
24 AliTPCclusterMI &operator = (const AliTPCclusterMI & cluster); //assignment operator
25 AliTPCclusterMI(Int_t *lab, Float_t *hit);
26 virtual ~AliTPCclusterMI();
27 virtual void Clear(const Option_t*) { delete fInfo; fInfo=0;}
28 virtual Bool_t IsSortable() const;
29 virtual Int_t Compare(const TObject* obj) const;
30 inline void Use(Int_t inc=10);
31 inline void Disable(){fUsed=kDisabled;}
32 inline Bool_t IsDisabled() const {return (fUsed==kDisabled);}
34 virtual Int_t GetDetector() const {return fDetector;}
35 virtual Int_t GetRow() const {return fRow;}
36 virtual void SetDetector(Int_t detector);
37 virtual void SetRow(Int_t row){fRow = (UChar_t)(row%256);}
38 virtual void SetTimeBin(Float_t timeBin){ fTimeBin= timeBin;}
39 virtual void SetPad(Float_t pad){ fPad = pad;}
41 void SetQ(Float_t q) {fQ=(UShort_t)q;}
42 void SetType(Char_t type) {fType=type;}
43 void SetMax(UShort_t max) {fMax=max;}
44 Int_t IsUsed(Int_t th=10) const {return (fUsed>=th) ? 1 : 0;}
45 Float_t GetQ() const {return TMath::Abs(fQ);}
46 Float_t GetMax() const {return fMax;}
47 Char_t GetType()const {return fType;}
48 Float_t GetTimeBin() const { return fTimeBin;}
49 Float_t GetPad() const { return fPad;}
50 AliTPCclusterInfo * GetInfo() const { return fInfo;}
51 void SetInfo(AliTPCclusterInfo * info);
53 AliTPCclusterMI* MakeCluster(AliTrackPoint* point);
54 AliTrackPoint* MakePoint();
55 static void SetGlobalTrackPoint(const AliCluster &cl, AliTrackPoint &point);
58 AliTPCclusterInfo * fInfo; // pointer to the cluster debug info
59 Float_t fTimeBin; //time bin coordinate
60 Float_t fPad; //pad coordinate
61 Short_t fQ ; //Q of cluster (in ADC counts)
62 Short_t fMax; //maximal amplitude in cluster
63 Char_t fType; //type of the cluster 0 means golden
64 Char_t fUsed; //counter of usage
65 UChar_t fDetector; //detector number
66 UChar_t fRow; //row number number
67 ClassDef(AliTPCclusterMI,5) // Time Projection Chamber clusters
70 void AliTPCclusterMI::Use(Int_t inc)
72 if (inc>0) fUsed+=inc;