adding map include file to solve compilation issue (bug https://savannah.cern.ch...
[u/mrichter/AliRoot.git] / HLT / ITS / tracking / AliHLTITSLayer.h
1 // ************************************************************************
2 // This file is property of and copyright by the ALICE HLT Project        *
3 // ALICE Experiment at CERN, All rights reserved.                         *
4 // See cxx source for full Copyright notice                               *
5 //                                                                        *
6 //*************************************************************************
7
8 #ifndef ALIHLTITSLAYER_H
9 #define ALIHLTITSLAYER_H
10
11 #include "AliHLTITSDetector.h"
12 #include "AliITSRecoParam.h"
13
14 /**
15  * @class AliHLTITSLayer
16  *
17  * The AliHLTTPCCAHit class is the internal representation
18  * of the TPC clusters for the AliHLTTPCCATracker algorithm.
19  *
20  */
21 class AliHLTITSLayer 
22 {
23  public:
24   AliHLTITSLayer();
25   AliHLTITSLayer(Double_t r, Double_t p, Double_t z, Int_t nl, Int_t nd);
26   ~AliHLTITSLayer();
27   Int_t InsertCluster(AliITSRecPoint *c);
28   void  SortClusters();
29   void ResetClusters(); 
30   void SelectClusters(Double_t zmin,Double_t zmax,Double_t ymin,Double_t ymax);
31   const AliITSRecPoint *GetNextCluster(Int_t &ci,Bool_t test=kFALSE);
32   void ResetRoad();
33   Double_t GetRoad() const {return fRoad;}
34   Double_t GetR() const {return fR;}
35   Int_t FindClusterIndex(Float_t z) const;
36   AliITSRecPoint *GetCluster(Int_t i) const {return i<fN? fClusters[i]:0;} 
37   AliHLTITSDetector &GetDetector(Int_t n) const { return fDetectors[n]; }
38   Int_t FindDetectorIndex(Double_t phi, Double_t z) const;
39   Double_t GetThickness(Double_t y, Double_t z, Double_t &x0) const;
40   Int_t InRoad() const ;
41   Int_t GetNumberOfClusters() const {return fN;}
42   Int_t GetNladders() const {return fNladders;}
43   Int_t GetNdetectors() const {return fNdetectors;}
44   Int_t GetSkip() const {return fSkip;}
45   void  SetSkip(Int_t skip){fSkip=skip;}
46   void IncAccepted(){fAccepted++;}
47   Int_t GetAccepted() const {return fAccepted;}    
48
49  protected:
50
51   AliHLTITSLayer(const AliHLTITSLayer& layer);
52   AliHLTITSLayer & operator=(const AliHLTITSLayer& layer){
53     this->~AliHLTITSLayer();new(this) AliHLTITSLayer(layer);
54     return *this;}
55   Double_t fR;                // mean radius of this layer
56   Double_t fPhiOffset;        // offset of the first detector in Phi
57   Int_t fNladders;            // number of ladders
58   Double_t fZOffset;          // offset of the first detector in Z
59   Int_t fNdetectors;          // detectors/ladder
60   AliHLTITSDetector *fDetectors; // array of detectors
61   Int_t fN;                   // number of clusters
62   AliITSRecPoint *fClusters[AliITSRecoParam::fgkMaxClusterPerLayer]; // pointers to clusters
63   Int_t        fClusterIndex[AliITSRecoParam::fgkMaxClusterPerLayer]; // pointers to clusters
64   Float_t fY[AliITSRecoParam::fgkMaxClusterPerLayer];                // y position of the clusters      
65   Float_t fZ[AliITSRecoParam::fgkMaxClusterPerLayer];                // z position of the clusters      
66   Float_t fYB[2];                                       // ymin and ymax
67   //
68   AliITSRecPoint *fClusters5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // pointers to clusters -     slice in y
69   Int_t        fClusterIndex5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // pointers to clusters -     slice in y    
70   Float_t fY5[6][AliITSRecoParam::fgkMaxClusterPerLayer5];                // y position of the clusters  slice in y    
71   Float_t fZ5[6][AliITSRecoParam::fgkMaxClusterPerLayer5];                // z position of the clusters  slice in y 
72   Int_t fN5[6];                                       // number of cluster in slice
73   Float_t fDy5;                                       //delta y
74   Float_t fBy5[6][2];                                    //slice borders
75   //
76   AliITSRecPoint *fClusters10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // pointers to clusters -     slice in y
77   Int_t        fClusterIndex10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // pointers to clusters -     slice in y    
78   Float_t fY10[11][AliITSRecoParam::fgkMaxClusterPerLayer10];                // y position of the clusters  slice in y    
79   Float_t fZ10[11][AliITSRecoParam::fgkMaxClusterPerLayer10];                // z position of the clusters  slice in y 
80   Int_t fN10[11];                                       // number of cluster in slice
81   Float_t fDy10;                                        // delta y
82   Float_t fBy10[11][2];                                 // slice borders
83   //
84   AliITSRecPoint *fClusters20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // pointers to clusters -     slice in y
85   Int_t        fClusterIndex20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // pointers to clusters -     slice in y    
86   Float_t fY20[21][AliITSRecoParam::fgkMaxClusterPerLayer20];                // y position of the clusters  slice in y    
87   Float_t fZ20[21][AliITSRecoParam::fgkMaxClusterPerLayer20];                // z position of the clusters  slice in y 
88   Int_t fN20[21];                                       // number of cluster in slice
89   Float_t fDy20;                                        //delta y 
90   Float_t fBy20[21][2];                                 //slice borders
91   //
92   AliITSRecPoint** fClustersCs;                         //clusters table in current slice
93   Int_t   *fClusterIndexCs;                             //cluster index in current slice 
94   Float_t *fYcs;                                        //y position in current slice
95   Float_t *fZcs;                                        //z position in current slice
96   Int_t    fNcs;                                        //number of clusters in current slice    
97   Int_t fCurrentSlice;                                  //current slice
98   //
99
100   Float_t fZmax;      //    edges
101   Float_t fYmin;      //   of  the
102   Float_t fYmax;      //   "window"
103   Int_t fI;            // index of the current cluster within the "window"
104   Int_t fImax;            // index of the last cluster within the "window"    
105   Int_t fSkip;     // indicates possibility to skip cluster
106   Int_t fAccepted;     // accept indicator 
107   Double_t fRoad;      // road defined by the cluster density
108 };
109
110
111 #endif