adding map include file to solve compilation issue (bug https://savannah.cern.ch...
[u/mrichter/AliRoot.git] / HLT / ITS / tracking / AliHLTITSLayer.h
CommitLineData
2f399afc 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 */
21class 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();
ef6e2aa2 29 void ResetClusters();
2f399afc 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;}
2f399afc 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;}
2f399afc 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 //
ef6e2aa2 99
2f399afc 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