1 #ifndef ALIITSUCACELL_H
2 #define ALIITSUCACELL_H
9 AliITSUCACell(int xx = 0u,int yy = 0u, int zz = 0u, int dd0 = 0,
10 int dd1 = 0, float curv = 0.f, float n[3] = 0x0)
11 : f1OverR(curv), fd0(dd0), fd1(dd1), fN(), fVector()
14 fVector.push_back(xx);
15 fVector.push_back(yy);
16 fVector.push_back(zz);
17 fVector.push_back(1u);
25 int x() const { return fVector[0]; }
26 int y() const { return fVector[1]; }
27 int z() const { return fVector[2]; }
28 int d0() const { return fd0; }
29 int d1() const { return fd1; }
30 int GetLevel() const { return fVector[3]; }
31 float GetCurvature() const { return f1OverR; }
32 float* GetN() { return fN; }
34 void SetLevel(int lev) { fVector[3] = lev; }
36 int operator()(const int i) { return fVector[4 + i]; }
38 size_t NumberOfNeighbours() { return (fVector.size() - 4u); }
40 bool Combine(AliITSUCACell &neigh, int idd)
42 // From outside inward
43 if (this->y() == neigh.z() && this->x() == neigh.y()) // Cells sharing two points
45 fVector.push_back(idd);
46 if (neigh.GetLevel() + 1 > GetLevel())
48 SetLevel(neigh.GetLevel() + 1u);
59 std::vector<int> fVector;
64 AliITSUCARoad() : Elements(), N(0)
69 AliITSUCARoad(int layer, int idd) : Elements(), N()
73 Elements[layer] = idd;
76 AliITSUCARoad(const AliITSUCARoad& copy) : Elements(), N(copy.N)
79 for ( int i=0; i<5; ++i )
81 Elements[i] = copy.Elements[i];
85 int &operator[] (const int &i) {
91 for ( int i=0; i<5; ++i )
96 void AddElement(int i, int el)
106 #endif // ALIITSUCACELL_H