]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/ITS/tracking/AliHLTITSLayer.h
AliHLTVertexer is moved from ITS/tracking/. to global/.
[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();
29 void ResetClusters();
30 void ResetWeights();
31 void SelectClusters(Double_t zmin,Double_t zmax,Double_t ymin,Double_t ymax);
32 const AliITSRecPoint *GetNextCluster(Int_t &ci,Bool_t test=kFALSE);
33 void ResetRoad();
34 Double_t GetRoad() const {return fRoad;}
35 Double_t GetR() const {return fR;}
36 Int_t FindClusterIndex(Float_t z) const;
37 AliITSRecPoint *GetCluster(Int_t i) const {return i<fN? fClusters[i]:0;}
38 Float_t *GetWeight(Int_t i) {return i<fN ?&fClusterWeight[i]:0;}
39 AliHLTITSDetector &GetDetector(Int_t n) const { return fDetectors[n]; }
40 Int_t FindDetectorIndex(Double_t phi, Double_t z) const;
41 Double_t GetThickness(Double_t y, Double_t z, Double_t &x0) const;
42 Int_t InRoad() const ;
43 Int_t GetNumberOfClusters() const {return fN;}
44 Int_t GetNladders() const {return fNladders;}
45 Int_t GetNdetectors() const {return fNdetectors;}
46 Int_t GetSkip() const {return fSkip;}
47 void SetSkip(Int_t skip){fSkip=skip;}
48 void IncAccepted(){fAccepted++;}
49 Int_t GetAccepted() const {return fAccepted;}
50 Int_t GetClusterTracks(Int_t i, Int_t j) const {return fClusterTracks[i][j];}
51 void SetClusterTracks(Int_t i, Int_t j, Int_t c) {fClusterTracks[i][j]=c;}
52
53 protected:
54
55 AliHLTITSLayer(const AliHLTITSLayer& layer);
56 AliHLTITSLayer & operator=(const AliHLTITSLayer& layer){
57 this->~AliHLTITSLayer();new(this) AliHLTITSLayer(layer);
58 return *this;}
59 Double_t fR; // mean radius of this layer
60 Double_t fPhiOffset; // offset of the first detector in Phi
61 Int_t fNladders; // number of ladders
62 Double_t fZOffset; // offset of the first detector in Z
63 Int_t fNdetectors; // detectors/ladder
64 AliHLTITSDetector *fDetectors; // array of detectors
65 Int_t fN; // number of clusters
66 AliITSRecPoint *fClusters[AliITSRecoParam::fgkMaxClusterPerLayer]; // pointers to clusters
67 Int_t fClusterIndex[AliITSRecoParam::fgkMaxClusterPerLayer]; // pointers to clusters
68 Float_t fY[AliITSRecoParam::fgkMaxClusterPerLayer]; // y position of the clusters
69 Float_t fZ[AliITSRecoParam::fgkMaxClusterPerLayer]; // z position of the clusters
70 Float_t fYB[2]; // ymin and ymax
71 //
72 AliITSRecPoint *fClusters5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // pointers to clusters - slice in y
73 Int_t fClusterIndex5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // pointers to clusters - slice in y
74 Float_t fY5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // y position of the clusters slice in y
75 Float_t fZ5[6][AliITSRecoParam::fgkMaxClusterPerLayer5]; // z position of the clusters slice in y
76 Int_t fN5[6]; // number of cluster in slice
77 Float_t fDy5; //delta y
78 Float_t fBy5[6][2]; //slice borders
79 //
80 AliITSRecPoint *fClusters10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // pointers to clusters - slice in y
81 Int_t fClusterIndex10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // pointers to clusters - slice in y
82 Float_t fY10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // y position of the clusters slice in y
83 Float_t fZ10[11][AliITSRecoParam::fgkMaxClusterPerLayer10]; // z position of the clusters slice in y
84 Int_t fN10[11]; // number of cluster in slice
85 Float_t fDy10; // delta y
86 Float_t fBy10[11][2]; // slice borders
87 //
88 AliITSRecPoint *fClusters20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // pointers to clusters - slice in y
89 Int_t fClusterIndex20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // pointers to clusters - slice in y
90 Float_t fY20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // y position of the clusters slice in y
91 Float_t fZ20[21][AliITSRecoParam::fgkMaxClusterPerLayer20]; // z position of the clusters slice in y
92 Int_t fN20[21]; // number of cluster in slice
93 Float_t fDy20; //delta y
94 Float_t fBy20[21][2]; //slice borders
95 //
96 AliITSRecPoint** fClustersCs; //clusters table in current slice
97 Int_t *fClusterIndexCs; //cluster index in current slice
98 Float_t *fYcs; //y position in current slice
99 Float_t *fZcs; //z position in current slice
100 Int_t fNcs; //number of clusters in current slice
101 Int_t fCurrentSlice; //current slice
102 //
103 Float_t fClusterWeight[AliITSRecoParam::fgkMaxClusterPerLayer]; // probabilistic weight of the cluster
104 Int_t fClusterTracks[4][AliITSRecoParam::fgkMaxClusterPerLayer]; //tracks registered to given cluster
105 Float_t fZmax; // edges
106 Float_t fYmin; // of the
107 Float_t fYmax; // "window"
108 Int_t fI; // index of the current cluster within the "window"
109 Int_t fImax; // index of the last cluster within the "window"
110 Int_t fSkip; // indicates possibility to skip cluster
111 Int_t fAccepted; // accept indicator
112 Double_t fRoad; // road defined by the cluster density
113};
114
115
116#endif