don't sort clusters after local reco, do this in AliITSUTrackerGlo
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoSens.h
1 #ifndef ALIITSURECOSENS
2 #define ALIITSURECOSENS
3
4 #include <TObject.h>
5
6 ///////////////////////////////////////////////////////////////////////
7 //                                                                   //
8 //  Class AliITSURecoSens                                            //
9 //  Interface between the framework and reconstruction for           //
10 //  single ITS sensor                                                //
11 //                                                                   //
12 ///////////////////////////////////////////////////////////////////////
13
14 class AliITSURecoSens : public TObject
15 {
16  public:
17   //
18   enum {kLeft=BIT(1),kRight=BIT(2),kUp=BIT(3),kDown=BIT(4)};
19   //
20   AliITSURecoSens(Int_t id=0);
21   AliITSURecoSens(const AliITSURecoSens &source); 
22   virtual ~AliITSURecoSens() {}
23   AliITSURecoSens& operator=(const AliITSURecoSens &source); 
24   //
25   Int_t              GetID()                       const {return (int)GetUniqueID();}
26   Int_t              CheckCoverage(double phi, double z) const;
27   Double_t           GetXTF()                      const {return fXTF;}
28   Double_t           GetPhiTF()                    const {return fPhiTF;}
29   Double_t           GetPhiMin()                   const {return fPhiMin;}
30   Double_t           GetPhiMax()                   const {return fPhiMax;}
31   Double_t           GetZMin()                     const {return fZMin;}
32   Double_t           GetZMax()                     const {return fZMax;}
33   //
34   Int_t              GetNClusters()                const {return fNClusters;}
35   Int_t              GetFirstClusterId()           const {return fFirstClusterId;}
36   //
37   void               SetID(Int_t i)                      {SetUniqueID(i);}
38   void               SetXTF(double v)                    {fXTF = v;}
39   void               SetPhiTF(double v)                  {fPhiTF = v;}
40   void               SetBoundaries(double phiMn,double phiMx, double zMn, double zMx);
41   //
42   void               SetNClusters(Int_t ncl)             {fNClusters = ncl;}
43   void               IncNClusters()                      {fNClusters++;}
44   void               SetFirstClusterId(Int_t id)         {fFirstClusterId = id;}
45   void               ResetClusters(); 
46   void               ProcessClusters(Int_t mode=0);
47   //
48   virtual void       Print(Option_t* option = "")  const;
49   //
50   virtual Bool_t     IsSortable()                 const {return kTRUE;}
51   virtual Int_t      Compare(const TObject* obj)  const;
52   virtual Bool_t     IsEqual(const TObject* obj)  const {return Compare(obj)==0;}
53   //
54  protected:
55   Int_t              fNClusters;                   // number of clusters
56   Int_t              fFirstClusterId;              // index of the 1st cluster in the layer's clusters array
57   Double_t           fXTF;                         // X in tracking frame
58   Double_t           fPhiTF;                       // phi of tracking frame
59   Double_t           fPhiMin;                      // lab phi min
60   Double_t           fPhiMax;                      // lab phi max
61   Double_t           fZMin;                        // lab & trk Z min
62   Double_t           fZMax;                        // lab & trk Z max
63   //
64   ClassDef(AliITSURecoSens,1); // helper for sensor data used in reco
65 };
66
67
68 #endif